You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/12/29 08:48:34 UTC
svn commit: r607392 - in /openejb/trunk/openejb3:
assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/
container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/
container/openejb-core/src...
Author: dblevins
Date: Fri Dec 28 23:48:33 2007
New Revision: 607392
URL: http://svn.apache.org/viewvc?rev=607392&view=rev
Log:
OPENEJB-743: Improved configuration error detection and help
OPENEJB-742: java.lang.NullPointerException at ConfigurationFactory$DefaultService.access$000(ConfigurationFactory.java:NNN)
Added:
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ResourceInfoComparatorTest.java
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Openejb.java
openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
openejb/trunk/openejb3/container/openejb-core/src/main/resources/default.openejb.conf
openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties
openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/util/resources/Messages.properties
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml?rev=607392&r1=607391&r2=607392&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml Fri Dec 28 23:48:33 2007
@@ -641,6 +641,7 @@
<ServiceProvider
id="Default JMS Resource Adapter"
service="Resource"
+ types="ActiveMQResourceAdapter"
class-name="org.apache.activemq.ra.ActiveMQResourceAdapter">
# Broker configuration
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=607392&r1=607391&r2=607392&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Fri Dec 28 23:48:33 2007
@@ -820,18 +820,21 @@
private void replaceResourceAdapterProperty(ObjectRecipe serviceRecipe) throws OpenEJBException {
Object resourceAdapterId = serviceRecipe.getProperty("ResourceAdapter");
if (resourceAdapterId instanceof String) {
+ String id = (String) resourceAdapterId;
+ id = id.trim();
+
Object resourceAdapter = null;
try {
- resourceAdapter = containerSystem.getJNDIContext().lookup("java:openejb/Resource/" + resourceAdapterId);
+ resourceAdapter = containerSystem.getJNDIContext().lookup("java:openejb/Resource/" + id);
} catch (NamingException e) {
// handled below
}
if (resourceAdapter == null) {
- throw new OpenEJBException("No existing resource adapter defined with id '" + resourceAdapterId + "'.");
+ throw new OpenEJBException("No existing resource adapter defined with id '" + id + "'.");
}
if (!(resourceAdapter instanceof ResourceAdapter)) {
- throw new OpenEJBException("Resource adapter defined with id '" + resourceAdapterId + "' is not an instance of ResourceAdapter, " +
+ throw new OpenEJBException("Resource adapter defined with id '" + id + "' is not an instance of ResourceAdapter, " +
"but is an instance of " + resourceAdapter.getClass());
}
serviceRecipe.setProperty("ResourceAdapter", resourceAdapter);
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=607392&r1=607391&r2=607392&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Fri Dec 28 23:48:33 2007
@@ -64,8 +64,11 @@
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.Messages;
import org.apache.openejb.util.URISupport;
+import org.apache.openejb.util.Join;
import java.io.File;
+import java.io.DataOutputStream;
+import java.io.PrintWriter;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
@@ -75,11 +78,12 @@
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.Comparator;
public class ConfigurationFactory implements OpenEjbConfigurationFactory {
- private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP_CONFIG, "org.apache.openejb.util.resources");
- private static final Messages messages = new Messages("org.apache.openejb.util.resources");
+ private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP_CONFIG, ConfigurationFactory.class);
+ private static final Messages messages = new Messages(ConfigurationFactory.class);
private String configLocation = "";
@@ -250,10 +254,16 @@
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);
- sys.facilities.resources.add(resourceInfo);
+ resources.add(resourceInfo);
}
+ Collections.sort(resources, new ResourceInfoComparator(resources));
+
+ sys.facilities.resources.addAll(resources);
+
+
// ConnectionManagerInfo service = configureService(openejb.getConnectionManager(), ConnectionManagerInfo.class);
// sys.facilities.connectionManagers.add(service);
@@ -363,14 +373,12 @@
AppModule appModule = deploymentLoader.load(jarFile);
appInfo = configureApplication(appModule);
} catch (ValidationFailedException e) {
- String message = messages.format("conf.0004", jarFile.getAbsolutePath(), e.getMessage());
- logger.warning(message); // DO not include the stacktrace in the message
+ logger.warning("configureApplication.loadFailed", jarFile.getAbsolutePath(), e.getMessage()); // DO not include the stacktrace in the message
throw e;
} catch (OpenEJBException e) {
- String message = messages.format("conf.0004", jarFile.getAbsolutePath(), e.getMessage());
// DO NOT REMOVE THE EXCEPTION FROM THIS LOG MESSAGE
// removing this message causes NO messages to be printed when embedded
- logger.warning(message, e);
+ logger.warning("configureApplication.loadFailed", e, jarFile.getAbsolutePath(), e.getMessage());
throw e;
}
return appInfo;
@@ -452,75 +460,109 @@
public <T extends ServiceInfo> T configureService(Class<? extends T> type) throws OpenEJBException {
- Service service = getDefaultService(type);
-
- return configureService(service, type);
+ return configureService((Service)null, type);
}
private <T extends ServiceInfo>Service getDefaultService(Class<? extends T> type) throws OpenEJBException {
DefaultService defaultService = defaultProviders.get(type);
+ if (defaultService == null) return null;
+
Service service;
try {
service = JaxbOpenejb.create(defaultService.type);
service.setType(defaultService.id);
} catch (Exception e) {
- throw new OpenEJBException("Cannot instantiate class " + defaultService.type.getName(), e);
+ String name = (defaultService == null || defaultService.type == null) ? "null" : defaultService.type.getName();
+ throw new OpenEJBException("Cannot instantiate class " + name, e);
}
return service;
}
public <T extends ServiceInfo> T configureService(Service service, Class<? extends T> infoType) throws OpenEJBException {
- if (infoType == null) throw new NullPointerException("type");
-
- if (service == null) {
- service = getDefaultService(infoType);
- }
-
- String providerType = service.getClass().getSimpleName();
+ try {
+ if (infoType == null) throw new NullPointerException("type");
- ServiceProvider provider = resolveServiceProvider(service, infoType);
+ if (service == null) {
+ service = getDefaultService(infoType);
+ if (service == null){
+ throw new OpenEJBException(messages.format("configureService.noDefaultService", infoType.getName()));
+ }
+ }
- if (provider == null){
- throw new NoSuchProviderException("Cannot determine a default provider for Service("+service.getId() +", "+infoType.getSimpleName()+")");
- }
- if (service.getId() == null) service.setId(provider.getId());
+ String providerType = service.getClass().getSimpleName();
- logger.info("Configuring Service(id=" + service.getId() + ", type=" + provider.getService() + ", provider-id=" + provider.getId() + ")");
+ ServiceProvider provider = resolveServiceProvider(service, infoType);
- Properties props = new Properties();
- props.putAll(provider.getProperties());
- props.putAll(service.getProperties());
- props.putAll(getSystemProperties(service.getId(), provider.getService()));
+ if (provider == null){
+ List<ServiceProvider> providers = ServiceUtils.getServiceProvidersByServiceType(providerType);
+ StringBuilder sb = new StringBuilder();
+// for (ServiceProvider p : providers) {
+// sb.append(System.getProperty("line.separator"));
+// sb.append(" <").append(p.getService());
+// sb.append(" id=\"").append(service.getId()).append('"');
+// sb.append(" provider=\"").append(p.getId()).append("\"/>");
+// }
+
+ List<String> types = new ArrayList<String>();
+ for (ServiceProvider p : providers) {
+ for (String type : p.getTypes()) {
+ if (types.contains(type)) continue;
+ types.add(type);
+ sb.append(System.getProperty("line.separator"));
+ sb.append(" <").append(p.getService());
+ sb.append(" id=\"").append(service.getId()).append('"');
+ sb.append(" type=\"").append(type).append("\"/>");
+ }
+ }
+ String noProviderMessage = messages.format("configureService.noProviderForService", providerType, service.getId(), service.getType(), service.getProvider(), sb.toString());
+ throw new NoSuchProviderException(noProviderMessage);
+ }
- if (providerType != null && !provider.getService().equals(providerType)) {
- throw new OpenEJBException(messages.format("conf.4902", service.getId(), providerType));
- }
+ if (service.getId() == null) service.setId(provider.getId());
- T info;
+ logger.info("configureService.configuring", service.getId(), provider.getService(), provider.getId());
- try {
- info = infoType.newInstance();
- } catch (Exception e) {
- throw new OpenEJBException("Cannot instantiate class " + infoType.getName(), e);
- }
+ Properties props = new Properties();
+ props.putAll(provider.getProperties());
+ props.putAll(service.getProperties());
+ props.putAll(getSystemProperties(service.getId(), provider.getService()));
- info.service = provider.getService();
- info.types.addAll(provider.getTypes());
- info.description = provider.getDescription();
- info.displayName = provider.getDisplayName();
- info.className = provider.getClassName();
- info.factoryMethod = provider.getFactoryName();
- info.id = service.getId();
- info.properties = props;
- info.constructorArgs.addAll(parseConstructorArgs(provider));
+ if (providerType != null && !provider.getService().equals(providerType)) {
+ throw new OpenEJBException(messages.format("configureService.wrongProviderType", service.getId(), providerType));
+ }
- specialProcessing(info);
+ T info;
+ try {
+ info = infoType.newInstance();
+ } catch (Exception e) {
+ throw new OpenEJBException("Cannot instantiate class " + infoType.getName(), e);
+ }
- return info;
+ info.service = provider.getService();
+ info.types.addAll(provider.getTypes());
+ info.description = provider.getDescription();
+ info.displayName = provider.getDisplayName();
+ info.className = provider.getClassName();
+ info.factoryMethod = provider.getFactoryName();
+ info.id = service.getId();
+ info.properties = props;
+ info.constructorArgs.addAll(parseConstructorArgs(provider));
+
+ specialProcessing(info);
+
+
+ return info;
+ } catch (NoSuchProviderException e) {
+ 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());
+ throw new OpenEJBException(message, e);
+ }
}
private <T extends ServiceInfo> void specialProcessing(T info) {
@@ -549,7 +591,9 @@
if (infoType != null) {
Service defaultService = getDefaultService(infoType);
- return resolveServiceProvider(defaultService, null);
+ if (defaultService != null) {
+ return resolveServiceProvider(defaultService, null);
+ }
}
return null;
@@ -776,6 +820,62 @@
}
return property;
+ }
+ }
+
+ public static class ResourceInfoComparator implements Comparator<ResourceInfo> {
+ private final List<String> ids;
+
+ public ResourceInfoComparator(List<ResourceInfo> resources){
+ ids = new ArrayList<String>();
+ for (ResourceInfo info : resources) {
+ ids.add(info.id);
+ }
+ }
+
+ public int compare(ResourceInfo a, ResourceInfo b) {
+ String refA = getReference(a);
+ String refB = getReference(b);
+
+ // both null or the same id
+ if (refA == refB) return 0;
+
+ // b is null
+ if (refA != null && refB == null){
+ return 1;
+ }
+
+ // a is null
+ if (refB != null && refA == null){
+ return -1;
+ }
+
+ // b is referencing a
+ if (a.id.equals(refB)) {
+ return 1;
+ }
+
+ // a is referencing b
+ if (b.id.equals(refA)) {
+ return 1;
+ }
+
+ return 0;
+ }
+
+ public int hasReference(ResourceInfo info){
+ for (Object value : info.properties.values()) {
+ if (ids.contains(value)) return 1;
+ }
+ return 0;
+ }
+
+ public String getReference(ResourceInfo info){
+ for (Object value : info.properties.values()) {
+ value = ((String)value).trim();
+ if (ids.contains(value)) return (String) value;
+ }
+ return null;
}
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java?rev=607392&r1=607391&r2=607392&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ServiceUtils.java Fri Dec 28 23:48:33 2007
@@ -63,7 +63,7 @@
try {
ProviderInfo info = getProviderInfo(id);
- List<ServiceProvider> services = getServices(info.getPackageName());
+ List<ServiceProvider> services = getServiceProviders(info.getPackageName());
for (ServiceProvider service : services) {
if (service.getId().equals(id)) {
@@ -79,7 +79,7 @@
public static ServiceProvider getServiceProvider(String id) throws OpenEJBException {
ProviderInfo info = getProviderInfo(id);
- List<ServiceProvider> services = getServices(info.getPackageName());
+ List<ServiceProvider> services = getServiceProviders(info.getPackageName());
for (ServiceProvider service : services) {
if (service.getId().equals(info.getServiceName())) {
@@ -95,10 +95,27 @@
return provider != null? provider.getId(): null;
}
+
+ public static List<ServiceProvider> getServiceProvidersByServiceType(String type) throws OpenEJBException {
+ ArrayList<ServiceProvider> providers = new ArrayList<ServiceProvider>();
+ if (type == null) return providers;
+
+ List<ServiceProvider> services = getServiceProviders(defaultProviderURL);
+
+ for (ServiceProvider service : services) {
+ if (service.getService().equals(type)) {
+ providers.add(service);
+ }
+ }
+
+ return providers;
+ }
+
+
public static ServiceProvider getServiceProviderByType(String type) throws OpenEJBException {
if (type == null) return null;
- List<ServiceProvider> services = getServices(defaultProviderURL);
+ List<ServiceProvider> services = getServiceProviders(defaultProviderURL);
for (ServiceProvider service : services) {
if (service.getTypes().contains(type)) {
@@ -112,11 +129,9 @@
public static ServiceProvider getServiceProviderByType(String providerType, String serviceType) throws OpenEJBException {
if (serviceType == null) return null;
- List<ServiceProvider> services = getServices(defaultProviderURL);
+ List<ServiceProvider> services = getServiceProvidersByServiceType(providerType);
for (ServiceProvider service : services) {
- if (!service.getService().equals(providerType)) continue;
-
if (service.getTypes().contains(serviceType)) {
return service;
}
@@ -125,7 +140,11 @@
return null;
}
- private static List<ServiceProvider> getServices(String packageName) throws OpenEJBException {
+ public static List<ServiceProvider> getServiceProviders() throws OpenEJBException {
+ return getServiceProviders(defaultProviderURL);
+ }
+
+ public static List<ServiceProvider> getServiceProviders(String packageName) throws OpenEJBException {
List<ServiceProvider> services = loadedServiceJars.get(packageName);
if (services == null) {
ServicesJar servicesJar = JaxbOpenejb.readServicesJar(packageName);
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Openejb.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Openejb.java?rev=607392&r1=607391&r2=607392&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Openejb.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Openejb.java Fri Dec 28 23:48:33 2007
@@ -266,6 +266,7 @@
Resource resource = new Resource();
resource.setJar(connector.getJar());
resource.setId(connector.getId());
+ resource.setType(connector.getType());
resource.setProvider(connector.getProvider());
resource.getProperties().putAll(connector.getProperties());
this.resource.add(resource);
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?rev=607392&r1=607391&r2=607392&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml Fri Dec 28 23:48:33 2007
@@ -634,6 +634,7 @@
<ServiceProvider
id="Default JMS Resource Adapter"
service="Resource"
+ types="ActiveMQResourceAdapter"
class-name="org.apache.activemq.ra.ActiveMQResourceAdapter">
# Broker configuration
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/resources/default.openejb.conf
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/default.openejb.conf?rev=607392&r1=607391&r2=607392&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/default.openejb.conf (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/default.openejb.conf Fri Dec 28 23:48:33 2007
@@ -22,7 +22,7 @@
<openejb>
-<Container id="Default CMP Container" ctype="CMP_ENTITY">
+<Container id="My CMP Container" type="CMP_ENTITY">
# This container can service CMP 1.1 and 2.x Entity Beans
#
# Persistence is achived by taking the entity beans deployed
@@ -38,12 +38,12 @@
# ConnectorName is he id of the Connector element which
# should provide connectivity for this CMP Container
- ConnectorName Default JDBC Database
+ ConnectorName My DataSource
</Container>
-<Container id="Default BMP Container" ctype="BMP_ENTITY">
+<Container id="My BMP Container" type="BMP_ENTITY">
# Specifies the size of the bean pools for this
# bmp entity container.
@@ -53,7 +53,7 @@
</Container>
-<Container id="Default Stateful Container" ctype="STATEFUL">
+<Container id="My Stateful Container" type="STATEFUL">
# The passivator is responsible for writing beans to disk
# at passivation time. Different passivators can be used
# by setting this property to the fully qualified class name
@@ -89,7 +89,7 @@
</Container>
-<Container id="Default Stateless Container" ctype="STATELESS">
+<Container id="My Stateless Container" type="STATELESS">
# Specifies the time to wait between invocations. This
# value is measured in milliseconds. A value of 5 would
# result in a time-out of 5 milliseconds between invocations.
@@ -119,11 +119,11 @@
</Container>
-<Container id="Default " ctype="MESSAGE">
+<Container id="My MDB Container " type="MESSAGE">
# The resource adapter delivers messages to the container
- ResourceAdapter Default JMS Resource Adapter
+ ResourceAdapter My JMS Resource Adapter
# Specifies the message listener interface handled by this container
@@ -146,7 +146,7 @@
# http://openejb.apache.org/3.0/databases.html
-->
-<Resource id="Default JDBC Database" >
+<Resource id="My DataSource" type="DataSource">
JdbcDriver org.hsqldb.jdbcDriver
JdbcUrl jdbc:hsqldb:file:hsqldb
UserName sa
@@ -155,7 +155,7 @@
</Resource>
-<Resource id="Default Unmanaged JDBC Database">
+<Resource id="My Unmanaged DataSource" type="DataSource">
JdbcDriver org.hsqldb.jdbcDriver
JdbcUrl jdbc:hsqldb:file:hsqldb
UserName sa
@@ -164,7 +164,7 @@
</Resource>
-<Resource id="Default JMS Resource Adapter">
+<Resource id="My JMS Resource Adapter" type="ActiveMQResourceAdapter">
# Broker configuration URI as defined by ActiveMQ
# see http://activemq.apache.org/broker-configuration-uri.html
@@ -180,9 +180,9 @@
</Resource>
-<Connector id="Default JMS Connection Factory">
+<Connector id="My JMS Connection Factory" type="javax.jms.ConnectionFactory">
- ResourceAdapter Default JMS Resource Adapter
+ ResourceAdapter My JMS Resource Adapter
# Specifies if the connection is enrolled in global transaction
# allowed values: xa, local or none
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties?rev=607392&r1=607391&r2=607392&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties Fri Dec 28 23:48:33 2007
@@ -97,3 +97,25 @@
#fatal("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
config.noBeanFound=Cannot find bean \"{0}\" referenced by bean \"{1}\".
+
+# info("configureService.configuring", service.getId(), provider.getService(), provider.getId());
+configureService.configuring=Configuring Service(id={0}, type={1}, provider-id={2})
+
+# fatal("configureService.failed", service.getId(), e)
+configureService.failed=Failed Configuring Service(id={0})
+
+# "configureService.wrongProviderType", service.getId(), providerType));
+configureService.wrongProviderType=ServiceProvider of "{0}" is not of type "{1}"
+
+
+# info("config.configApp", appModule.getJarLocation());
+config.configApp=Configuring app: {0}
+
+# warning("configureApplication.loadFailed", jarFile.getAbsolutePath(), e.getMessage());
+configureApplication.loadFailed=Jar not loaded. {0}. {1}
+
+# format("configureService.noDefaultService", infoType.getName())
+configureService.noDefaultService = No Default Service for {0}
+
+# format("configureService.noProviderForService", service.getClass().getName(), service.getId(), service.getType(), service.getProvider(), sb.toString());
+configureService.noProviderForService = Cannot determine a provider for {0}(id={1}, type={2}, provider={3}).\n\nPossible valid configurations might be: {4}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/util/resources/Messages.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/util/resources/Messages.properties?rev=607392&r1=607391&r2=607392&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/util/resources/Messages.properties (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/util/resources/Messages.properties Fri Dec 28 23:48:33 2007
@@ -229,7 +229,6 @@
config.usingDefault=OpenEJB configuration not found, using default configuration.
config.noContainerFound=Cannot find container "{0}" for bean "{1}".
config.noBeanFound=Cannot find bean "{0}" referenced by bean "{1}".
-config.configApp=Configuring app: {0}
init.0100=Invalid {0} provider {1}. The factory class specified, {2}, does not implement the {3} interface. Please check the configuration of {1}."
Added: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ResourceInfoComparatorTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ResourceInfoComparatorTest.java?rev=607392&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ResourceInfoComparatorTest.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ResourceInfoComparatorTest.java Fri Dec 28 23:48:33 2007
@@ -0,0 +1,63 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.assembler.classic;
+
+import junit.framework.TestCase;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Properties;
+
+import org.apache.openejb.config.ConfigurationFactory;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ResourceInfoComparatorTest extends TestCase {
+
+ public void test() throws Exception {
+ List<ResourceInfo> resources = new ArrayList<ResourceInfo>();
+
+ resources.add(new ResourceInfo());
+ resources.get(0).id = "Red";
+ resources.get(0).properties = new Properties();
+ resources.get(0).properties.put("someValue", "Blue");
+
+ resources.add(new ResourceInfo());
+ resources.get(1).id = "Blue";
+ resources.get(1).properties = new Properties();
+ resources.get(1).properties.put("foo", "Green");
+
+ resources.add(new ResourceInfo());
+ resources.get(2).properties = new Properties();
+ resources.get(2).id = "Green";
+
+ resources.add(new ResourceInfo());
+ resources.get(3).id = "Yellow";
+ resources.get(3).properties = new Properties();
+ resources.get(3).properties.put("foo", "Green");
+
+ Collections.sort(resources, new ConfigurationFactory.ResourceInfoComparator(resources));
+
+ assertEquals("Green", resources.get(0).id);
+ assertEquals("Blue", resources.get(1).id);
+ assertEquals("Red", resources.get(2).id);
+ assertEquals("Yellow", resources.get(3).id);
+
+ }
+}