[teiid-commits] teiid SVN: r4064 - trunk/jboss-integration/src/main/java/org/teiid/jboss.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Mon May 7 13:52:05 EDT 2012
Author: rareddy
Date: 2012-05-07 13:52:05 -0400 (Mon, 07 May 2012)
New Revision: 4064
Modified:
trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDependencyDeployer.java
Log:
TEIID-2029: Adding the ability to specify multiple modules using "lib" property in the vdb.xml file, as well as ability to support JAR based deployments as modules. Also corrected this feature such that, user can add dependencies through both "lib" property and addition into VDB archive's "lib" folder.
Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDependencyDeployer.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDependencyDeployer.java 2012-05-07 17:50:58 UTC (rev 4063)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/VDBDependencyDeployer.java 2012-05-07 17:52:05 UTC (rev 4064)
@@ -23,19 +23,12 @@
import java.io.Closeable;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
+import java.util.StringTokenizer;
-import org.jboss.as.server.deployment.Attachments;
-import org.jboss.as.server.deployment.DeploymentPhaseContext;
-import org.jboss.as.server.deployment.DeploymentUnit;
-import org.jboss.as.server.deployment.DeploymentUnitProcessingException;
-import org.jboss.as.server.deployment.DeploymentUnitProcessor;
-import org.jboss.as.server.deployment.module.ModuleDependency;
-import org.jboss.as.server.deployment.module.ModuleRootMarker;
-import org.jboss.as.server.deployment.module.ModuleSpecification;
-import org.jboss.as.server.deployment.module.MountHandle;
-import org.jboss.as.server.deployment.module.ResourceRoot;
-import org.jboss.as.server.deployment.module.TempFileProviderService;
+import org.jboss.as.server.deployment.*;
+import org.jboss.as.server.deployment.module.*;
import org.jboss.modules.Module;
import org.jboss.modules.ModuleIdentifier;
import org.jboss.modules.ModuleLoadException;
@@ -58,20 +51,35 @@
return;
}
- String moduleName = null;
- if (TeiidAttachments.isDynamicVDB(deploymentUnit)) {
- final VDBMetaData deployment = deploymentUnit.getAttachment(TeiidAttachments.VDB_METADATA);
- ModuleLoader ml = Module.getCallerModuleLoader();
- moduleName = deployment.getPropertyValue("lib"); //$NON-NLS-1$
- if (moduleName != null && ml != null) {
- try {
- ml.loadModule(ModuleIdentifier.create(moduleName));
- } catch (ModuleLoadException e) {
- throw new DeploymentUnitProcessingException(IntegrationPlugin.Util.gs(IntegrationPlugin.Event.TEIID50088, moduleName, deployment.getName(), deployment.getVersion(), e));
- }
- }
- }
- else {
+
+ final VDBMetaData deployment = deploymentUnit.getAttachment(TeiidAttachments.VDB_METADATA);
+ ArrayList<ModuleDependency> localDependencies = new ArrayList<ModuleDependency>();
+ ArrayList<ModuleDependency> userDependencies = new ArrayList<ModuleDependency>();
+ String moduleNames = deployment.getPropertyValue("lib"); //$NON-NLS-1$
+ if (moduleNames != null) {
+ StringTokenizer modules = new StringTokenizer(moduleNames);
+ while (modules.hasMoreTokens()) {
+ String moduleName = modules.nextToken().trim();
+ ModuleIdentifier lib = ModuleIdentifier.create(moduleName);
+ ModuleLoader moduleLoader = Module.getCallerModuleLoader();
+
+ try {
+ moduleLoader.loadModule(lib);
+ localDependencies.add(new ModuleDependency(moduleLoader, ModuleIdentifier.create(moduleName), false, false, false, false));
+ } catch (ModuleLoadException e) {
+ // this is to handle JAR based deployments which take on name like "deployment.<jar-name>"
+ moduleLoader = deploymentUnit.getAttachment(Attachments.SERVICE_MODULE_LOADER);
+ try {
+ moduleLoader.loadModule(lib);
+ userDependencies.add(new ModuleDependency(moduleLoader, ModuleIdentifier.create(moduleName), false, false, false, true));
+ } catch (ModuleLoadException e1) {
+ throw new DeploymentUnitProcessingException(IntegrationPlugin.Util.gs(IntegrationPlugin.Event.TEIID50088, moduleName, deployment.getName(), deployment.getVersion(), e1));
+ }
+ }
+ }
+ }
+
+ if (!TeiidAttachments.isDynamicVDB(deploymentUnit)) {
try {
final ResourceRoot deploymentResourceRoot = deploymentUnit.getAttachment(Attachments.DEPLOYMENT_ROOT);
final VirtualFile deploymentRoot = deploymentResourceRoot.getRoot();
@@ -105,9 +113,12 @@
moduleSpecification.addLocalDependency(new ModuleDependency(moduleLoader, ModuleIdentifier.create("org.jboss.teiid.api"), false, false, false, false)); //$NON-NLS-1$
moduleSpecification.addLocalDependency(new ModuleDependency(moduleLoader, ModuleIdentifier.create("org.jboss.teiid.common-core"), false, false, false, false)); //$NON-NLS-1$
moduleSpecification.addLocalDependency(new ModuleDependency(moduleLoader, ModuleIdentifier.create("javax.api"), false, false, false, false)); //$NON-NLS-1$
- if (moduleName != null) {
- moduleSpecification.addLocalDependency(new ModuleDependency(moduleLoader, ModuleIdentifier.create(moduleName), false, false, false, false));
- }
+ if (!localDependencies.isEmpty()) {
+ moduleSpecification.addLocalDependencies(localDependencies);
+ }
+ if (!userDependencies.isEmpty()) {
+ moduleSpecification.addUserDependencies(userDependencies);
+ }
} catch (ModuleLoadException e) {
throw new DeploymentUnitProcessingException(IntegrationPlugin.Event.TEIID50018.name(), e);
}
More information about the teiid-commits
mailing list