[jboss-cvs] JBossAS SVN: r67133 - trunk/server/src/main/org/jboss/deployment.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 15 09:32:49 EST 2007
Author: adrian at jboss.org
Date: 2007-11-15 09:32:49 -0500 (Thu, 15 Nov 2007)
New Revision: 67133
Modified:
trunk/server/src/main/org/jboss/deployment/JBossEjbParsingDeployer.java
Log:
[EJBTHREE-1067] - Add the loader reposository config from the new unified metadata for ejbs
Modified: trunk/server/src/main/org/jboss/deployment/JBossEjbParsingDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossEjbParsingDeployer.java 2007-11-15 14:01:04 UTC (rev 67132)
+++ trunk/server/src/main/org/jboss/deployment/JBossEjbParsingDeployer.java 2007-11-15 14:32:49 UTC (rev 67133)
@@ -22,16 +22,24 @@
package org.jboss.deployment;
import java.net.URL;
+import java.util.Set;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.metadata.common.jboss.LoaderRepositoryConfigMetaData;
+import org.jboss.metadata.common.jboss.LoaderRepositoryMetaData;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
import org.jboss.metadata.ejb.jboss.JBossMetaData;
import org.jboss.metadata.ejb.jboss.JBossMetaDataWrapper;
import org.jboss.metadata.ejb.spec.EjbJarMetaData;
+import org.jboss.mx.loading.LoaderRepositoryFactory.LoaderRepositoryConfig;
+import org.jboss.mx.server.ServerConstants;
import org.jboss.system.server.ServerConfig;
import org.jboss.virtual.VFS;
import org.jboss.virtual.VirtualFile;
@@ -132,5 +140,66 @@
unit.getTransientManagedObjects().addAttachment(JBossMetaData.class, wrapper);
// Keep the raw parsed metadata as well
unit.addAttachment("Raw"+JBossMetaData.class.getName(), metaData, JBossMetaData.class);
+
+ // Add the loader repository config
+ LoaderRepositoryConfig loaderRepositoryConfig = createLoaderRepositoryConfig(metaData);
+ if (loaderRepositoryConfig != null)
+ unit.addAttachment(LoaderRepositoryConfig.class.getName(), loaderRepositoryConfig);
}
+
+ /**
+ * Create the loader repository config
+ *
+ * @param jbossMetaData the jboss metadata
+ * @return the loader repository config or null if there isn't one
+ * @throws DeploymentException for any error
+ */
+ protected LoaderRepositoryConfig createLoaderRepositoryConfig(JBossMetaData jbossMetaData) throws DeploymentException
+ {
+ LoaderRepositoryMetaData config = jbossMetaData.getLoaderRepository();
+ if (config == null)
+ return null;
+
+ LoaderRepositoryConfig repositoryConfig = new LoaderRepositoryConfig();
+
+ repositoryConfig.repositoryClassName = config.getLoaderRepositoryClass();
+ if (repositoryConfig.repositoryClassName == null || repositoryConfig.repositoryClassName.length() == 0)
+ repositoryConfig.repositoryClassName = ServerConstants.DEFAULT_SCOPED_REPOSITORY_CLASS;
+
+ // Get the object name of the repository
+ String name = config.getName();
+ if (name != null)
+ {
+ try
+ {
+ repositoryConfig.repositoryName = new ObjectName(name.trim());
+ }
+ catch (MalformedObjectNameException e)
+ {
+ throw new DeploymentException("Loader repository name is malformed: " + name, e);
+ }
+ }
+
+ StringBuilder configData = new StringBuilder();
+ Set<LoaderRepositoryConfigMetaData> children = config.getLoaderRepositoryConfig();
+ if (children != null)
+ {
+ for (LoaderRepositoryConfigMetaData child : children)
+ {
+ // This looks stupid? Why inside a loop?
+ String parserClassName = child.getConfigParserClass();
+ if (parserClassName == null || parserClassName.length() == 0)
+ repositoryConfig.configParserClassName = ServerConstants.DEFAULT_SCOPED_REPOSITORY_PARSER_CLASS;
+ else
+ repositoryConfig.configParserClassName = parserClassName;
+
+ // Append all config
+ String childConfig = child.getConfig();
+ if (childConfig != null)
+ configData.append(childConfig);
+ }
+ }
+ repositoryConfig.repositoryConfig = configData.toString().trim();
+ return repositoryConfig;
+ }
}
More information about the jboss-cvs-commits
mailing list