You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2012/02/01 09:57:42 UTC
svn commit: r1239014 -
/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
Author: andygumbrecht
Date: Wed Feb 1 08:57:42 2012
New Revision: 1239014
URL: http://svn.apache.org/viewvc?rev=1239014&view=rev
Log:
Apply final where applicable.
Several minor optimizations.
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1239014&r1=1239013&r2=1239014&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Wed Feb 1 08:57:42 2012
@@ -18,47 +18,8 @@ package org.apache.openejb.config;
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.Vendor;
-import org.apache.openejb.assembler.classic.AppInfo;
-import org.apache.openejb.assembler.classic.Assembler;
-import org.apache.openejb.assembler.classic.BmpEntityContainerInfo;
-import org.apache.openejb.assembler.classic.ClientInfo;
-import org.apache.openejb.assembler.classic.CmpEntityContainerInfo;
-import org.apache.openejb.assembler.classic.ConnectionManagerInfo;
-import org.apache.openejb.assembler.classic.ConnectorInfo;
-import org.apache.openejb.assembler.classic.ContainerInfo;
-import org.apache.openejb.assembler.classic.ContainerSystemInfo;
-import org.apache.openejb.assembler.classic.DeploymentExceptionManager;
-import org.apache.openejb.assembler.classic.EjbJarInfo;
-import org.apache.openejb.assembler.classic.FacilitiesInfo;
-import org.apache.openejb.assembler.classic.HandlerChainInfo;
-import org.apache.openejb.assembler.classic.HandlerInfo;
-import org.apache.openejb.assembler.classic.JndiContextInfo;
-import org.apache.openejb.assembler.classic.ManagedContainerInfo;
-import org.apache.openejb.assembler.classic.MdbContainerInfo;
-import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
-import org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory;
-import org.apache.openejb.assembler.classic.ProxyFactoryInfo;
-import org.apache.openejb.assembler.classic.ResourceInfo;
-import org.apache.openejb.assembler.classic.SecurityServiceInfo;
-import org.apache.openejb.assembler.classic.ServiceInfo;
-import org.apache.openejb.assembler.classic.SingletonSessionContainerInfo;
-import org.apache.openejb.assembler.classic.StatefulSessionContainerInfo;
-import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
-import org.apache.openejb.assembler.classic.TransactionServiceInfo;
-import org.apache.openejb.assembler.classic.WebAppInfo;
-import org.apache.openejb.config.sys.AbstractService;
-import org.apache.openejb.config.sys.AdditionalDeployments;
-import org.apache.openejb.config.sys.ConnectionManager;
-import org.apache.openejb.config.sys.Container;
-import org.apache.openejb.config.sys.Deployments;
-import org.apache.openejb.config.sys.JaxbOpenejb;
-import org.apache.openejb.config.sys.JndiProvider;
-import org.apache.openejb.config.sys.Openejb;
-import org.apache.openejb.config.sys.ProxyFactory;
-import org.apache.openejb.config.sys.Resource;
-import org.apache.openejb.config.sys.SecurityService;
-import org.apache.openejb.config.sys.ServiceProvider;
-import org.apache.openejb.config.sys.TransactionManager;
+import org.apache.openejb.assembler.classic.*;
+import org.apache.openejb.config.sys.*;
import org.apache.openejb.jee.Application;
import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.Handler;
@@ -83,16 +44,7 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
+import java.util.*;
import static org.apache.openejb.config.DeploymentsResolver.DEPLOYMENTS_CLASSPATH_PROPERTY;
import static org.apache.openejb.config.ServiceUtils.implies;
@@ -107,11 +59,8 @@ public class ConfigurationFactory implem
private static final Messages messages = new Messages(ConfigurationFactory.class);
private String configLocation;
-
private OpenEjbConfiguration sys;
-
private Openejb openejb;
-
private DynamicDeployer deployer;
private final DeploymentLoader deploymentLoader;
private final boolean offline;
@@ -122,17 +71,17 @@ public class ConfigurationFactory implem
this(false);
}
- public ConfigurationFactory(boolean offline) {
+ public ConfigurationFactory(final boolean offline) {
this(offline, (DynamicDeployer) null);
}
- public ConfigurationFactory(boolean offline, DynamicDeployer preAutoConfigDeployer) {
+ public ConfigurationFactory(final boolean offline, final DynamicDeployer preAutoConfigDeployer) {
this.offline = offline;
this.deploymentLoader = new DeploymentLoader();
- Options options = SystemInstance.get().getOptions();
+ final Options options = SystemInstance.get().getOptions();
- Chain chain = new Chain();
+ final Chain chain = new Chain();
chain.add(new GeneratedClientModules.Add());
@@ -167,7 +116,7 @@ public class ConfigurationFactory implem
chain.add(new CmpJpaConversion());
// By default all vendor support is enabled
- Set<Vendor> support = SystemInstance.get().getOptions().getAll("openejb.vendor.config", Vendor.values());
+ final Set<Vendor> support = SystemInstance.get().getOptions().getAll("openejb.vendor.config", Vendor.values());
if (support.contains(Vendor.GERONIMO) || SystemInstance.get().hasProperty("openejb.geronimo")) {
chain.add(new OpenEjb2Conversion());
@@ -195,7 +144,7 @@ public class ConfigurationFactory implem
chain.add(new LinkBuiltInTypes());
if (offline) {
- AutoConfig autoConfig = new AutoConfig(this);
+ final AutoConfig autoConfig = new AutoConfig(this);
autoConfig.autoCreateResources(false);
autoConfig.autoCreateContainers(false);
chain.add(autoConfig);
@@ -212,40 +161,40 @@ public class ConfigurationFactory implem
this.deployer = chain;
}
- public ConfigurationFactory(boolean offline, OpenEjbConfiguration configuration) {
+ public ConfigurationFactory(final boolean offline, final OpenEjbConfiguration configuration) {
this(offline, (DynamicDeployer) null, configuration);
}
- public ConfigurationFactory(boolean offline,
- DynamicDeployer preAutoConfigDeployer,
- OpenEjbConfiguration configuration) {
+ public ConfigurationFactory(final boolean offline,
+ final DynamicDeployer preAutoConfigDeployer,
+ final OpenEjbConfiguration configuration) {
this(offline, preAutoConfigDeployer);
sys = configuration;
}
- public ConfigurationFactory(boolean offline, Chain deployerChain, OpenEjbConfiguration configuration) {
+ public ConfigurationFactory(final boolean offline, final Chain deployerChain, final OpenEjbConfiguration configuration) {
this.offline = offline;
this.deploymentLoader = new DeploymentLoader();
this.deployer = deployerChain;
this.sys = configuration;
}
- public static List<HandlerChainInfo> toHandlerChainInfo(HandlerChains chains) {
- List<HandlerChainInfo> handlerChains = new ArrayList<HandlerChainInfo>();
+ public static List<HandlerChainInfo> toHandlerChainInfo(final HandlerChains chains) {
+ final List<HandlerChainInfo> handlerChains = new ArrayList<HandlerChainInfo>();
if (chains == null) return handlerChains;
- for (HandlerChain handlerChain : chains.getHandlerChain()) {
- HandlerChainInfo handlerChainInfo = new HandlerChainInfo();
+ for (final HandlerChain handlerChain : chains.getHandlerChain()) {
+ final HandlerChainInfo handlerChainInfo = new HandlerChainInfo();
handlerChainInfo.serviceNamePattern = handlerChain.getServiceNamePattern();
handlerChainInfo.portNamePattern = handlerChain.getPortNamePattern();
handlerChainInfo.protocolBindings.addAll(handlerChain.getProtocolBindings());
- for (Handler handler : handlerChain.getHandler()) {
- HandlerInfo handlerInfo = new HandlerInfo();
+ for (final Handler handler : handlerChain.getHandler()) {
+ final HandlerInfo handlerInfo = new HandlerInfo();
handlerInfo.handlerName = handler.getHandlerName();
handlerInfo.handlerClass = handler.getHandlerClass();
handlerInfo.soapHeaders.addAll(handler.getSoapHeader());
handlerInfo.soapRoles.addAll(handler.getSoapRole());
- for (ParamValue param : handler.getInitParam()) {
+ for (final ParamValue param : handler.getInitParam()) {
handlerInfo.initParams.setProperty(param.getParamName(), param.getParamValue());
}
handlerChainInfo.handlers.add(handlerInfo);
@@ -258,19 +207,21 @@ public class ConfigurationFactory implem
public static class Chain implements DynamicDeployer {
private final List<DynamicDeployer> chain = new ArrayList<DynamicDeployer>();
- public boolean add(DynamicDeployer o) {
+ public boolean add(final DynamicDeployer o) {
return chain.add(o);
}
+ @Override
public AppModule deploy(AppModule appModule) throws OpenEJBException {
- for (DynamicDeployer deployer : chain) {
+ for (final DynamicDeployer deployer : chain) {
appModule = deployer.deploy(appModule);
}
return appModule;
}
}
- public void init(Properties props) throws OpenEJBException {
+ @Override
+ public void init(final Properties props) throws OpenEJBException {
configLocation = props.getProperty(CONF_FILE_PROPERTY);
if (configLocation == null) {
configLocation = props.getProperty(CONFIGURATION_PROPERTY);
@@ -284,20 +235,20 @@ public class ConfigurationFactory implem
}
- protected void install(ContainerInfo serviceInfo) throws OpenEJBException {
+ protected void install(final ContainerInfo serviceInfo) throws OpenEJBException {
if (sys != null) {
sys.containerSystem.containers.add(serviceInfo);
} else if (!offline) {
- Assembler assembler = SystemInstance.get().getComponent(Assembler.class);
+ final Assembler assembler = SystemInstance.get().getComponent(Assembler.class);
assembler.createContainer(serviceInfo);
}
}
- protected void install(ResourceInfo serviceInfo) throws OpenEJBException {
+ protected void install(final ResourceInfo serviceInfo) throws OpenEJBException {
if (sys != null) {
sys.facilities.resources.add(serviceInfo);
} else if (!offline) {
- Assembler assembler = SystemInstance.get().getComponent(Assembler.class);
+ final Assembler assembler = SystemInstance.get().getComponent(Assembler.class);
assembler.createResource(serviceInfo);
}
}
@@ -307,9 +258,10 @@ public class ConfigurationFactory implem
* <p/>
* This method is called by the Assembler once at startup.
*
- * @return
+ * @return OpenEjbConfiguration
* @throws OpenEJBException
*/
+ @Override
public OpenEjbConfiguration getOpenEjbConfiguration() throws OpenEJBException {
if (sys != null) {
return sys;
@@ -328,8 +280,8 @@ public class ConfigurationFactory implem
sys.facilities = new FacilitiesInfo();
- for (JndiProvider provider : openejb.getJndiProvider()) {
- JndiContextInfo info = configureService(provider, JndiContextInfo.class);
+ for (final JndiProvider provider : openejb.getJndiProvider()) {
+ final JndiContextInfo info = configureService(provider, JndiContextInfo.class);
sys.facilities.remoteJndiContexts.add(info);
}
@@ -337,9 +289,9 @@ public class ConfigurationFactory implem
sys.facilities.transactionService = configureService(openejb.getTransactionManager(), TransactionServiceInfo.class);
- List<ResourceInfo> resources = new ArrayList<ResourceInfo>();
- for (Resource resource : openejb.getResource()) {
- ResourceInfo resourceInfo = configureService(resource, ResourceInfo.class);
+ final List<ResourceInfo> resources = new ArrayList<ResourceInfo>();
+ for (final Resource resource : openejb.getResource()) {
+ final ResourceInfo resourceInfo = configureService(resource, ResourceInfo.class);
resources.add(resourceInfo);
}
Collections.sort(resources, new ResourceInfoComparator(resources));
@@ -354,16 +306,15 @@ public class ConfigurationFactory implem
sys.facilities.intraVmServer = configureService(openejb.getProxyFactory(), ProxyFactoryInfo.class);
}
- for (Container declaration : openejb.getContainer()) {
- ContainerInfo info = createContainerInfo(declaration);
+ for (final Container declaration : openejb.getContainer()) {
+ final ContainerInfo info = createContainerInfo(declaration);
sys.containerSystem.containers.add(info);
}
- List<String> declaredApps = getDeclaredApps();
+ final List<String> declaredApps = getDeclaredApps();
- for (String pathname : declaredApps) {
- AppInfo appInfo = null;
+ for (final String pathname : declaredApps) {
try {
try {
final File jarFile;
@@ -373,56 +324,47 @@ public class ConfigurationFactory implem
jarFile = new File(pathname);
}
- appInfo = configureApplication(jarFile);
-
+ final AppInfo appInfo = configureApplication(jarFile);
sys.containerSystem.applications.add(appInfo);
+
} catch (URISyntaxException e) {
logger.error("Invalid declaredApp URI '" + pathname + "'", e);
}
} catch (OpenEJBException alreadyHandled) {
final DeploymentExceptionManager exceptionManager = SystemInstance.get().getComponent(DeploymentExceptionManager.class);
- if (appInfo != null) {
- exceptionManager.saveDeploymentException(appInfo, alreadyHandled);
- } else {
- exceptionManager.pushDelpoymentException(alreadyHandled);
- }
+ exceptionManager.pushDelpoymentException(alreadyHandled);
}
}
final boolean embedded = SystemInstance.get().hasProperty(EJBContainer.class.getName());
if (SystemInstance.get().getOptions().get(DEPLOYMENTS_CLASSPATH_PROPERTY, !embedded)) {
- ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
- ArrayList<File> jarFiles = getModulesFromClassPath(declaredApps, classLoader);
- String appId = "classpath.ear";
+ final ArrayList<File> jarFiles = getModulesFromClassPath(declaredApps, classLoader);
+ final String appId = "classpath.ear";
- boolean classpathAsEar = SystemInstance.get().getOptions().get(CLASSPATH_AS_EAR, true);
+ final boolean classpathAsEar = SystemInstance.get().getOptions().get(CLASSPATH_AS_EAR, true);
try {
if (classpathAsEar && !jarFiles.isEmpty()) {
- AppInfo appInfo = configureApplication(classLoader, appId, jarFiles);
-
+ final AppInfo appInfo = configureApplication(classLoader, appId, jarFiles);
sys.containerSystem.applications.add(appInfo);
- } else for (File jarFile : jarFiles) {
-
- AppInfo appInfo = configureApplication(jarFile);
+ } else for (final File jarFile : jarFiles) {
+ final AppInfo appInfo = configureApplication(jarFile);
sys.containerSystem.applications.add(appInfo);
}
-
if (jarFiles.size() == 0) {
logger.warning("config.noModulesFoundToDeploy");
-
}
} catch (OpenEJBException alreadyHandled) {
+ logger.debug("config.alreadyHandled");
}
-
}
-
final OpenEjbConfiguration finished = sys;
sys = null;
openejb = null;
@@ -431,7 +373,7 @@ public class ConfigurationFactory implem
private List<String> getDeclaredApps() {
// make a copy of the list because we update it
- List<Deployments> deployments = new ArrayList<Deployments>();
+ final List<Deployments> deployments = new ArrayList<Deployments>();
if (openejb != null) {
deployments.addAll(openejb.getDeployments());
}
@@ -443,7 +385,7 @@ public class ConfigurationFactory implem
}
if (additionalDeploymentFile.exists()) {
try {
- AdditionalDeployments additionalDeployments = JaxbOpenejb.unmarshal(AdditionalDeployments.class, new FileInputStream(additionalDeploymentFile));
+ final AdditionalDeployments additionalDeployments = JaxbOpenejb.unmarshal(AdditionalDeployments.class, new FileInputStream(additionalDeploymentFile));
deployments.addAll(additionalDeployments.getDeployments());
} catch (Exception e) {
logger.error("can't read " + ADDITIONAL_DEPLOYMENTS, e);
@@ -452,11 +394,11 @@ public class ConfigurationFactory implem
// resolve jar locations ////////////////////////////////////// BEGIN ///////
- FileUtils base = SystemInstance.get().getBase();
+ final FileUtils base = SystemInstance.get().getBase();
- List<URL> declaredAppsUrls = new ArrayList<URL>();
+ final List<URL> declaredAppsUrls = new ArrayList<URL>();
try {
- for (Deployments deployment : deployments) {
+ for (final Deployments deployment : deployments) {
DeploymentsResolver.loadFrom(deployment, base, declaredAppsUrls);
}
} catch (SecurityException ignored) {
@@ -464,16 +406,16 @@ public class ConfigurationFactory implem
return toString(declaredAppsUrls);
}
- public ArrayList<File> getModulesFromClassPath(List<String> declaredApps, ClassLoader classLoader) {
- FileUtils base = SystemInstance.get().getBase();
+ public ArrayList<File> getModulesFromClassPath(List<String> declaredApps, final ClassLoader classLoader) {
+ final FileUtils base = SystemInstance.get().getBase();
if (declaredApps == null) {
declaredApps = getDeclaredApps();
}
- List<URL> classpathAppsUrls = new ArrayList<URL>();
+ final List<URL> classpathAppsUrls = new ArrayList<URL>();
DeploymentsResolver.loadFromClasspath(base, classpathAppsUrls, classLoader);
- ArrayList<File> jarFiles = new ArrayList<File>();
- for (URL path : classpathAppsUrls) {
+ final ArrayList<File> jarFiles = new ArrayList<File>();
+ for (final URL path : classpathAppsUrls) {
if (declaredApps.contains(URLs.toFilePath(path))) continue;
jarFiles.add(new File(URLs.toFilePath(path)));
@@ -481,9 +423,9 @@ public class ConfigurationFactory implem
return jarFiles;
}
- private List<String> toString(List<URL> urls) {
- List<String> toReturn = new ArrayList<String>(urls.size());
- for (URL url : urls) {
+ private List<String> toString(final List<URL> urls) {
+ final List<String> toReturn = new ArrayList<String>(urls.size());
+ for (final URL url : urls) {
try {
toReturn.add(url.toString());
} catch (Exception ignore) {
@@ -492,29 +434,29 @@ public class ConfigurationFactory implem
return toReturn;
}
- public ContainerInfo createContainerInfo(Container container) throws OpenEJBException {
- Class<? extends ContainerInfo> infoClass = getContainerInfoType(container.getType());
+ public ContainerInfo createContainerInfo(final Container container) throws OpenEJBException {
+ final Class<? extends ContainerInfo> infoClass = getContainerInfoType(container.getType());
if (infoClass == null) {
throw new OpenEJBException(messages.format("unrecognizedContainerType", container.getType()));
}
- ContainerInfo info = configureService(container, infoClass);
+ final ContainerInfo info = configureService(container, infoClass);
return info;
}
- private void loadPropertiesDeclaredConfiguration(Openejb openejb) {
+ private void loadPropertiesDeclaredConfiguration(final Openejb openejb) {
- Properties sysProps = new Properties(System.getProperties());
+ final Properties sysProps = new Properties(System.getProperties());
sysProps.putAll(SystemInstance.get().getProperties());
- for (Map.Entry<Object, Object> entry : sysProps.entrySet()) {
+ for (final Map.Entry<Object, Object> entry : sysProps.entrySet()) {
- Object o = entry.getValue();
+ final Object o = entry.getValue();
if (!(o instanceof String)) continue;
if (!((String) o).startsWith("new://")) continue;
- String name = (String) entry.getKey();
- String value = (String) entry.getValue();
+ final String name = (String) entry.getKey();
+ final String value = (String) entry.getValue();
try {
final Object service = toConfigDeclaration(name, value);
@@ -528,17 +470,17 @@ public class ConfigurationFactory implem
}
}
- protected Object toConfigDeclaration(String name, String value) throws URISyntaxException, OpenEJBException {
+ protected Object toConfigDeclaration(final String name, String value) throws URISyntaxException, OpenEJBException {
// value = value.replaceFirst("(.)#", "$1%23");
value = value.replaceFirst("(provider=[^#=&]+)#", "$1%23");
- URI uri = new URI(value);
+ final URI uri = new URI(value);
final Object service = toConfigDeclaration(name, uri);
return service;
}
- public Object toConfigDeclaration(String id, URI uri) throws OpenEJBException {
+ public Object toConfigDeclaration(final String id, final URI uri) throws OpenEJBException {
String serviceType = null;
try {
serviceType = uri.getHost();
@@ -557,23 +499,23 @@ public class ConfigurationFactory implem
throw new OpenEJBException("Unable to parse URI parameters '" + uri + "'. URISyntaxException: " + e.getMessage());
}
if (object instanceof AbstractService) {
- AbstractService service = (AbstractService) object;
+ final AbstractService service = (AbstractService) object;
service.setId(id);
service.setType(map.remove("type"));
service.setProvider(map.remove("provider"));
service.getProperties().putAll(map);
} else if (object instanceof Deployments) {
- Deployments deployments = (Deployments) object;
+ final Deployments deployments = (Deployments) object;
deployments.setDir(map.remove("dir"));
deployments.setJar(map.remove("jar"));
- String cp = map.remove("classpath");
+ final String cp = map.remove("classpath");
if (cp != null) {
- String[] paths = cp.split(File.pathSeparator);
- List<URL> urls = new ArrayList<URL>();
- for (String path : paths) {
+ final String[] paths = cp.split(File.pathSeparator);
+ final List<URL> urls = new ArrayList<URL>();
+ for (final String path : paths) {
urls.add(new File(path).toURI().normalize().toURL());
}
- deployments.setClasspath(new URLClassLoader(urls.toArray(new URL[0])));
+ deployments.setClasspath(new URLClassLoader(urls.toArray(new URL[urls.size()])));
}
}
@@ -583,12 +525,12 @@ public class ConfigurationFactory implem
}
}
- public AppInfo configureApplication(File jarFile) throws OpenEJBException {
+ public AppInfo configureApplication(final File jarFile) throws OpenEJBException {
logger.debug("Beginning load: " + jarFile.getAbsolutePath());
- AppInfo appInfo;
+ final AppInfo appInfo;
try {
- AppModule appModule = deploymentLoader.load(jarFile);
+ final AppModule appModule = deploymentLoader.load(jarFile);
appInfo = configureApplication(appModule);
} catch (ValidationFailedException e) {
logger.warning("configureApplication.loadFailed", jarFile.getAbsolutePath(), e.getMessage()); // DO not include the stacktrace in the message
@@ -611,10 +553,10 @@ public class ConfigurationFactory implem
* @return configured AppInfo
* @throws OpenEJBException on error
*/
- public AppInfo configureApplication(ClassLoader classLoader, String id, List<File> jarFiles) throws OpenEJBException {
- AppModule collection = loadApplication(classLoader, id, jarFiles);
+ public AppInfo configureApplication(final ClassLoader classLoader, final String id, final List<File> jarFiles) throws OpenEJBException {
+ final AppModule collection = loadApplication(classLoader, id, jarFiles);
- AppInfo appInfo;
+ final AppInfo appInfo;
try {
appInfo = configureApplication(collection);
} catch (ValidationFailedException e) {
@@ -630,21 +572,21 @@ public class ConfigurationFactory implem
return appInfo;
}
- public AppModule loadApplication(ClassLoader classLoader, String id, List<File> jarFiles) throws OpenEJBException {
+ public AppModule loadApplication(final ClassLoader classLoader, String id, final List<File> jarFiles) throws OpenEJBException {
final boolean standaloneModule = id == null;
if (standaloneModule) {
id = "";
}
- Application application = new Application();
+ final Application application = new Application();
application.setApplicationName(id);
- AppModule collection = new AppModule(classLoader, id, application, standaloneModule);
- Map<String, Object> altDDs = collection.getAltDDs();
+ final AppModule collection = new AppModule(classLoader, id, application, standaloneModule);
+ final Map<String, Object> altDDs = collection.getAltDDs();
- for (File jarFile : jarFiles) {
+ for (final File jarFile : jarFiles) {
logger.info("Beginning load: " + jarFile.getAbsolutePath());
try {
- AppModule module = deploymentLoader.load(jarFile);
+ final AppModule module = deploymentLoader.load(jarFile);
collection.getAdditionalLibraries().addAll(module.getAdditionalLibraries());
collection.getClientModules().addAll(module.getClientModules());
@@ -655,19 +597,19 @@ public class ConfigurationFactory implem
collection.getWatchedResources().addAll(module.getWatchedResources());
// Merge altDDs
- for (Map.Entry<String, Object> entry : module.getAltDDs().entrySet()) {
- Object existingValue = altDDs.get(entry.getKey());
+ for (final Map.Entry<String, Object> entry : module.getAltDDs().entrySet()) {
+ final Object existingValue = altDDs.get(entry.getKey());
if (existingValue == null) {
altDDs.put(entry.getKey(), entry.getValue());
} else if (entry.getValue() instanceof Collection) {
if (existingValue instanceof Collection) {
- Collection values = (Collection) existingValue;
+ final Collection values = (Collection) existingValue;
values.addAll((Collection) entry.getValue());
}
} else if (entry.getValue() instanceof Map) {
if (existingValue instanceof Map) {
- Map values = (Map) existingValue;
+ final Map values = (Map) existingValue;
values.putAll((Map) entry.getValue());
}
}
@@ -686,36 +628,36 @@ public class ConfigurationFactory implem
return collection;
}
- public EjbJarInfo configureApplication(EjbJar ejbJar) throws OpenEJBException {
- EjbModule ejbModule = new EjbModule(ejbJar);
+ public EjbJarInfo configureApplication(final EjbJar ejbJar) throws OpenEJBException {
+ final EjbModule ejbModule = new EjbModule(ejbJar);
return configureApplication(ejbModule);
}
- public EjbJarInfo configureApplication(EjbModule ejbModule) throws OpenEJBException {
- AppInfo appInfo = configureApplication(new AppModule(ejbModule));
+ public EjbJarInfo configureApplication(final EjbModule ejbModule) throws OpenEJBException {
+ final AppInfo appInfo = configureApplication(new AppModule(ejbModule));
return appInfo.ejbJars.get(0);
}
- public ClientInfo configureApplication(ClientModule clientModule) throws OpenEJBException {
- AppInfo appInfo = configureApplication(new AppModule(clientModule));
+ public ClientInfo configureApplication(final ClientModule clientModule) throws OpenEJBException {
+ final AppInfo appInfo = configureApplication(new AppModule(clientModule));
return appInfo.clients.get(0);
}
- public ConnectorInfo configureApplication(ConnectorModule connectorModule) throws OpenEJBException {
- AppInfo appInfo = configureApplication(new AppModule(connectorModule));
+ public ConnectorInfo configureApplication(final ConnectorModule connectorModule) throws OpenEJBException {
+ final AppInfo appInfo = configureApplication(new AppModule(connectorModule));
return appInfo.connectors.get(0);
}
- public WebAppInfo configureApplication(WebModule webModule) throws OpenEJBException {
- AppInfo appInfo = configureApplication(new AppModule(webModule));
+ public WebAppInfo configureApplication(final WebModule webModule) throws OpenEJBException {
+ final AppInfo appInfo = configureApplication(new AppModule(webModule));
return appInfo.webApps.get(0);
}
- public AppInfo configureApplication(AppModule appModule) throws OpenEJBException {
+ public AppInfo configureApplication(final AppModule appModule) throws OpenEJBException {
logger.info("config.configApp", appModule.getJarLocation());
deployer.deploy(appModule);
- AppInfoBuilder appInfoBuilder = new AppInfoBuilder(this);
+ final AppInfoBuilder appInfoBuilder = new AppInfoBuilder(this);
return appInfoBuilder.build(appModule);
}
@@ -724,7 +666,7 @@ public class ConfigurationFactory implem
private final Class<? extends Service> type;
private final String id;
- public DefaultService(String id, Class<? extends Service> type) {
+ public DefaultService(final String id, final Class<? extends Service> type) {
this.id = id;
this.type = type;
}
@@ -763,7 +705,7 @@ public class ConfigurationFactory implem
defaultProviders.put(ConnectionManagerInfo.class, new DefaultService("ConnectionManager", ConnectionManager.class));
defaultProviders.put(ProxyFactoryInfo.class, new DefaultService("ProxyFactory", ProxyFactory.class));
- for (Map.Entry<Class<? extends ServiceInfo>, DefaultService> entry : defaultProviders.entrySet()) {
+ for (final Map.Entry<Class<? extends ServiceInfo>, DefaultService> entry : defaultProviders.entrySet()) {
types.put(entry.getKey(), entry.getValue().type);
}
@@ -771,21 +713,21 @@ public class ConfigurationFactory implem
}
- public <T extends ServiceInfo> T configureService(Class<? extends T> type) throws OpenEJBException {
+ public <T extends ServiceInfo> T configureService(final Class<? extends T> type) throws OpenEJBException {
return configureService((Service) null, type);
}
- private <T extends ServiceInfo> Service getDefaultService(Class<? extends T> type) throws OpenEJBException {
- DefaultService defaultService = defaultProviders.get(type);
+ private <T extends ServiceInfo> Service getDefaultService(final Class<? extends T> type) throws OpenEJBException {
+ final DefaultService defaultService = defaultProviders.get(type);
if (defaultService == null) return null;
- Service service;
+ final Service service;
try {
service = JaxbOpenejb.create(defaultService.type);
service.setType(defaultService.id);
} catch (Exception e) {
- String name = (defaultService == null || defaultService.type == null) ? "null" : defaultService.type.getName();
+ final String name = (defaultService.type == null) ? "null" : defaultService.type.getName();
throw new OpenEJBException("Cannot instantiate class " + name, e);
}
return service;
@@ -796,17 +738,17 @@ public class ConfigurationFactory implem
* This is the major piece of code that configures services.
* It merges the data from the <ServiceProvider> declaration
* with the data from the openejb.xml file (say <Resource>)
- *
+ * <p/>
* The end result is a canonical (i.e. flattened) ServiceInfo
* The ServiceInfo will be of a specific type (ContainerInfo, ResourceInfo, etc)
*
- * @param service
- * @param infoType
- * @param <T>
- * @return
- * @throws OpenEJBException
+ * @param service Service
+ * @param infoType Class
+ * @param <T> infoType
+ * @return ServiceInfo
+ * @throws OpenEJBException On error
*/
- public <T extends ServiceInfo> T configureService(Service service, Class<? extends T> infoType) throws OpenEJBException {
+ public <T extends ServiceInfo> T configureService(Service service, final Class<? extends T> infoType) throws OpenEJBException {
try {
if (infoType == null) throw new NullPointerException("type");
@@ -818,13 +760,13 @@ public class ConfigurationFactory implem
}
- String providerType = service.getClass().getSimpleName();
+ final String providerType = service.getClass().getSimpleName();
- ServiceProvider provider = resolveServiceProvider(service, infoType);
+ final ServiceProvider provider = resolveServiceProvider(service, infoType);
if (provider == null) {
- List<ServiceProvider> providers = ServiceUtils.getServiceProvidersByServiceType(providerType);
- StringBuilder sb = new StringBuilder();
+ final List<ServiceProvider> providers = ServiceUtils.getServiceProvidersByServiceType(providerType);
+ final StringBuilder sb = new StringBuilder();
// for (ServiceProvider p : providers) {
// sb.append(System.getProperty("line.separator"));
// sb.append(" <").append(p.getService());
@@ -832,9 +774,9 @@ public class ConfigurationFactory implem
// sb.append(" provider=\"").append(p.getId()).append("\"/>");
// }
- List<String> types = new ArrayList<String>();
- for (ServiceProvider p : providers) {
- for (String type : p.getTypes()) {
+ final List<String> types = new ArrayList<String>();
+ for (final ServiceProvider p : providers) {
+ for (final String type : p.getTypes()) {
if (types.contains(type)) continue;
types.add(type);
sb.append(System.getProperty("line.separator"));
@@ -843,13 +785,13 @@ public class ConfigurationFactory implem
sb.append(" type=\"").append(type).append("\"/>");
}
}
- String noProviderMessage = messages.format("configureService.noProviderForService", providerType, service.getId(), service.getType(), service.getProvider(), sb.toString());
+ final String noProviderMessage = messages.format("configureService.noProviderForService", providerType, service.getId(), service.getType(), service.getProvider(), sb.toString());
throw new NoSuchProviderException(noProviderMessage);
}
if (service.getId() == null) service.setId(provider.getId());
- Properties overrides = trim(getSystemProperties(service.getId(), provider.getService()));
+ final Properties overrides = trim(getSystemProperties(service.getId(), provider.getService()));
trim(service.getProperties());
@@ -858,8 +800,8 @@ public class ConfigurationFactory implem
logger.info("configureService.configuring", service.getId(), provider.getService(), provider.getId());
if (logger.isDebugEnabled()) {
- for (Map.Entry<Object, Object> entry : service.getProperties().entrySet()) {
- Object key = entry.getKey();
+ for (final Map.Entry<Object, Object> entry : service.getProperties().entrySet()) {
+ final Object key = entry.getKey();
Object value = entry.getValue();
if (key instanceof String && "password".equalsIgnoreCase((String) key)) {
@@ -869,8 +811,8 @@ public class ConfigurationFactory implem
logger.debug("[" + key + "=" + value + "]");
}
- for (Map.Entry<Object, Object> entry : overrides.entrySet()) {
- Object key = entry.getKey();
+ for (final Map.Entry<Object, Object> entry : overrides.entrySet()) {
+ final Object key = entry.getKey();
Object value = entry.getValue();
if (key instanceof String && "password".equalsIgnoreCase((String) key)) {
@@ -881,7 +823,7 @@ public class ConfigurationFactory implem
}
}
- Properties props = new SuperProperties();
+ final Properties props = new SuperProperties();
props.putAll(provider.getProperties());
props.putAll(service.getProperties());
props.putAll(overrides);
@@ -890,7 +832,7 @@ public class ConfigurationFactory implem
throw new OpenEJBException(messages.format("configureService.wrongProviderType", service.getId(), providerType));
}
- T info;
+ final T info;
try {
info = infoType.newInstance();
} catch (Exception e) {
@@ -915,20 +857,20 @@ public class ConfigurationFactory implem
return info;
} catch (NoSuchProviderException e) {
- String message = logger.fatal("configureService.failed", e, service.getId());
+ final String message = logger.fatal("configureService.failed", e, service.getId());
throw new OpenEJBException(message + ": " + e.getMessage());
} catch (Throwable e) {
- String message = logger.fatal("configureService.failed", e, service.getId());
+ final String message = logger.fatal("configureService.failed", e, service.getId());
throw new OpenEJBException(message, e);
}
}
- private static Properties trim(Properties properties) {
- for (Map.Entry<Object, Object> entry : properties.entrySet()) {
- Object o = entry.getValue();
+ private static Properties trim(final Properties properties) {
+ for (final Map.Entry<Object, Object> entry : properties.entrySet()) {
+ final Object o = entry.getValue();
if (o instanceof String) {
- String value = (String) o;
- String trimmed = value.trim();
+ final String value = (String) o;
+ final String trimmed = value.trim();
if (value.length() != trimmed.length()) {
properties.put(entry.getKey(), trimmed);
}
@@ -937,14 +879,14 @@ public class ConfigurationFactory implem
return properties;
}
- private <T extends ServiceInfo> void specialProcessing(T info) {
- ServiceInfo serviceInfo = info;
+ private <T extends ServiceInfo> void specialProcessing(final T info) {
+ final ServiceInfo serviceInfo = info;
TopicOrQueueDefaults.process(serviceInfo);
}
@SuppressWarnings({"unchecked"})
- private ServiceProvider resolveServiceProvider(Service service, Class infoType) throws OpenEJBException {
+ private ServiceProvider resolveServiceProvider(final Service service, final Class infoType) throws OpenEJBException {
if (service.getProvider() != null) {
return ServiceUtils.getServiceProvider(service.getProvider());
@@ -958,11 +900,12 @@ public class ConfigurationFactory implem
try {
return ServiceUtils.getServiceProvider(service.getId());
} catch (NoSuchProviderException e) {
+ logger.debug("resolveServiceProvider", e);
}
}
if (infoType != null) {
- Service defaultService = getDefaultService(infoType);
+ final Service defaultService = getDefaultService(infoType);
if (defaultService != null) {
return resolveServiceProvider(defaultService, null);
}
@@ -971,25 +914,34 @@ public class ConfigurationFactory implem
return null;
}
- public <T extends ServiceInfo> T configureService(String id, Class<? extends T> type) throws OpenEJBException {
+ public <T extends ServiceInfo> T configureService(final String id, final Class<? extends T> type) throws OpenEJBException {
return configureService(type, id, null, id, null);
}
/**
* Resolving the provider for a particular service follows this algorithm:
- *
+ * <p/>
* 1. Attempt to load the provider specified by the 'providerId'.
* 2. If this fails, throw NoSuchProviderException
* 3. If providerId is null, attempt to load the specified provider using the 'serviceId' as the 'providerId'
* 4. If this fails, check the hardcoded defaults for a default providerId using the supplied 'type'
* 5. If this fails, throw NoSuchProviderException
+ *
+ * @param type
+ * @param serviceId
+ * @param declaredProperties
+ * @param providerId
+ * @param serviceType
+ * @return
+ * @throws org.apache.openejb.OpenEJBException
+ *
*/
- public <T extends ServiceInfo> T configureService(Class<? extends T> type, String serviceId, Properties declaredProperties, String providerId, String serviceType) throws OpenEJBException {
+ public <T extends ServiceInfo> T configureService(final Class<? extends T> type, final String serviceId, final Properties declaredProperties, final String providerId, final String serviceType) throws OpenEJBException {
if (type == null) throw new NullPointerException("type is null");
- Class<? extends Service> serviceClass = types.get(type);
+ final Class<? extends Service> serviceClass = types.get(type);
if (serviceClass == null) throw new OpenEJBException("Unsupported service info type: " + type.getName());
- Service service;
+ final Service service;
try {
service = serviceClass.newInstance();
} catch (Exception e) {
@@ -1005,7 +957,7 @@ public class ConfigurationFactory implem
return configureService(service, type);
}
- protected static Properties getSystemProperties(String serviceId, String serviceType) {
+ protected static Properties getSystemProperties(final String serviceId, final String serviceType) {
// Override with system properties
final Properties sysProps = new Properties(System.getProperties());
sysProps.putAll(SystemInstance.get().getProperties());
@@ -1014,24 +966,24 @@ public class ConfigurationFactory implem
return getOverrides(sysProps, serviceId, serviceType);
}
- protected static Properties getOverrides(Properties properties, String serviceId, String serviceType) {
+ protected static Properties getOverrides(final Properties properties, final String serviceId, final String serviceType) {
final String fullPrefix = serviceType.toUpperCase() + "." + serviceId + ".";
final String fullPrefix2 = serviceType.toUpperCase() + "." + serviceId + "|";
final String shortPrefix = serviceId + ".";
final String shortPrefix2 = serviceId + "|";
final Properties overrides = new Properties();
- for (Map.Entry<Object, Object> entry : properties.entrySet()) {
+ for (final Map.Entry<Object, Object> entry : properties.entrySet()) {
String name = (String) entry.getKey();
- for (String prefix : Arrays.asList(fullPrefix, fullPrefix2, shortPrefix, shortPrefix2)) {
+ for (final String prefix : Arrays.asList(fullPrefix, fullPrefix2, shortPrefix, shortPrefix2)) {
if (name.toLowerCase().startsWith(prefix.toLowerCase())) {
name = name.substring(prefix.length());
// TODO: Maybe use xbean-reflect to get the string value
- String value = entry.getValue().toString();
+ final String value = entry.getValue().toString();
overrides.setProperty(name, value);
break;
@@ -1054,12 +1006,12 @@ public class ConfigurationFactory implem
containerTypes.put(BeanTypes.MESSAGE, MdbContainerInfo.class);
}
- protected static Class<? extends ContainerInfo> getContainerInfoType(String ctype) {
+ protected static Class<? extends ContainerInfo> getContainerInfoType(final String ctype) {
return containerTypes.get(ctype);
}
- private List<String> parseConstructorArgs(ServiceProvider service) {
- String constructor = service.getConstructor();
+ private List<String> parseConstructorArgs(final ServiceProvider service) {
+ final String constructor = service.getConstructor();
if (constructor == null) {
return Collections.emptyList();
}
@@ -1071,18 +1023,18 @@ public class ConfigurationFactory implem
return getResourceIds(null);
}
- protected List<String> getResourceIds(String type) {
+ protected List<String> getResourceIds(final String type) {
return getResourceIds(type, null);
}
- protected List<String> getResourceIds(String type, Properties required) {
- List<String> resourceIds = new ArrayList<String>();
+ protected List<String> getResourceIds(final String type, Properties required) {
+ final List<String> resourceIds = new ArrayList<String>();
if (required == null) required = new Properties();
- OpenEjbConfiguration runningConfig = getRunningConfig();
+ final OpenEjbConfiguration runningConfig = getRunningConfig();
if (runningConfig != null) {
- for (ResourceInfo resourceInfo : runningConfig.facilities.resources) {
+ for (final ResourceInfo resourceInfo : runningConfig.facilities.resources) {
if (isResourceType(resourceInfo.service, resourceInfo.types, type) && implies(required, resourceInfo.properties)) {
resourceIds.add(resourceInfo.id);
}
@@ -1090,7 +1042,7 @@ public class ConfigurationFactory implem
}
if (sys != null) {
- for (ResourceInfo resourceInfo : sys.facilities.resources) {
+ for (final ResourceInfo resourceInfo : sys.facilities.resources) {
if (isResourceType(resourceInfo.service, resourceInfo.types, type) && implies(required, resourceInfo.properties)) {
resourceIds.add(resourceInfo.id);
}
@@ -1099,8 +1051,8 @@ public class ConfigurationFactory implem
// The only time we'd have one of these is if we were building
// the above sys instance
if (openejb != null) {
- for (Resource resource : openejb.getResource()) {
- ArrayList<String> types = new ArrayList<String>();
+ for (final Resource resource : openejb.getResource()) {
+ final ArrayList<String> types = new ArrayList<String>();
if (resource.getType() != null) {
types.add(resource.getType());
}
@@ -1113,19 +1065,19 @@ public class ConfigurationFactory implem
return resourceIds;
}
- protected ResourceInfo getResourceInfo(String id) {
- OpenEjbConfiguration runningConfig = getRunningConfig();
+ protected ResourceInfo getResourceInfo(final String id) {
+ final OpenEjbConfiguration runningConfig = getRunningConfig();
if (runningConfig != null) {
- for (ResourceInfo resourceInfo : runningConfig.facilities.resources) {
- if (resourceInfo.id == id) {
+ for (final ResourceInfo resourceInfo : runningConfig.facilities.resources) {
+ if (id.equals(resourceInfo.id)) {
return resourceInfo;
}
}
}
if (sys != null) {
- for (ResourceInfo resourceInfo : sys.facilities.resources) {
- if (resourceInfo.id == id) {
+ for (final ResourceInfo resourceInfo : sys.facilities.resources) {
+ if (id.equals(resourceInfo.id)) {
return resourceInfo;
}
}
@@ -1133,31 +1085,29 @@ public class ConfigurationFactory implem
return null;
}
- private boolean isResourceType(String service, List<String> types, String type) {
- if (type == null) return true;
- if (service == null) return false;
- return types.contains(type);
+ private boolean isResourceType(final String service, final List<String> types, final String type) {
+ return type == null || service != null && types.contains(type);
}
protected List<String> getContainerIds() {
- List<String> containerIds = new ArrayList<String>();
+ final List<String> containerIds = new ArrayList<String>();
- OpenEjbConfiguration runningConfig = getRunningConfig();
+ final OpenEjbConfiguration runningConfig = getRunningConfig();
if (runningConfig != null) {
- for (ContainerInfo containerInfo : runningConfig.containerSystem.containers) {
+ for (final ContainerInfo containerInfo : runningConfig.containerSystem.containers) {
containerIds.add(containerInfo.id);
}
}
if (sys != null) {
- for (ContainerInfo containerInfo : sys.containerSystem.containers) {
+ for (final ContainerInfo containerInfo : sys.containerSystem.containers) {
containerIds.add(containerInfo.id);
}
// The only time we'd have one of these is if we were building
// the above sys instance
if (openejb != null) {
- for (Container container : openejb.getContainer()) {
+ for (final Container container : openejb.getContainer()) {
containerIds.add(container.getId());
}
}
@@ -1167,17 +1117,17 @@ public class ConfigurationFactory implem
}
protected List<ContainerInfo> getContainerInfos() {
- List<ContainerInfo> containers = new ArrayList<ContainerInfo>();
+ final List<ContainerInfo> containers = new ArrayList<ContainerInfo>();
- OpenEjbConfiguration runningConfig = getRunningConfig();
+ final OpenEjbConfiguration runningConfig = getRunningConfig();
if (runningConfig != null) {
- for (ContainerInfo containerInfo : runningConfig.containerSystem.containers) {
+ for (final ContainerInfo containerInfo : runningConfig.containerSystem.containers) {
containers.add(containerInfo);
}
}
if (sys != null) {
- for (ContainerInfo containerInfo : sys.containerSystem.containers) {
+ for (final ContainerInfo containerInfo : sys.containerSystem.containers) {
containers.add(containerInfo);
}
}
@@ -1191,12 +1141,12 @@ public class ConfigurationFactory implem
private static class TopicOrQueueDefaults {
- public static void process(ServiceInfo provider) {
+ public static void process(final ServiceInfo provider) {
if (!provider.service.equals("Resource")) return;
if (!provider.types.contains("Topic") && !provider.types.contains("Queue")) return;
if (!provider.className.matches("org.apache.activemq.command.ActiveMQ(Topic|Queue)")) return;
- String dest = provider.properties.getProperty("destination");
+ final String dest = provider.properties.getProperty("destination");
if (dest == null || dest.length() == 0) {
provider.properties.setProperty("destination", provider.id);
}
@@ -1209,16 +1159,17 @@ public class ConfigurationFactory implem
private static final int GREATER = 1;
private static final int LESS = -1;
- public ResourceInfoComparator(List<ResourceInfo> resources) {
+ public ResourceInfoComparator(final List<ResourceInfo> resources) {
ids = new ArrayList<String>();
- for (ResourceInfo info : resources) {
+ for (final ResourceInfo info : resources) {
ids.add(info.id);
}
}
- public int compare(ResourceInfo a, ResourceInfo b) {
- String refA = getReference(a);
- String refB = getReference(b);
+ @Override
+ public int compare(final ResourceInfo a, final ResourceInfo b) {
+ final String refA = getReference(a);
+ final String refB = getReference(b);
// both null or the same id
if (refA == null && refB == null ||
@@ -1242,21 +1193,21 @@ public class ConfigurationFactory implem
}
// b has a ref and a doesn't
- if (refB != null && refA == null) {
+ if (refA == null) {
return LESS;
}
return EQUAL;
}
- public int hasReference(ResourceInfo info) {
- for (Object value : info.properties.values()) {
+ public int hasReference(final ResourceInfo info) {
+ for (final Object value : info.properties.values()) {
if (ids.contains(value)) return GREATER;
}
return EQUAL;
}
- public String getReference(ResourceInfo info) {
+ public String getReference(final ResourceInfo info) {
for (Object value : info.properties.values()) {
value = ((String) value).trim();
if (ids.contains(value)) return (String) value;