You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/06/21 11:16:40 UTC
svn commit: r1352468 - in /openejb/trunk/openejb/container:
openejb-core/src/main/java/org/apache/openejb/assembler/classic/
openejb-core/src/main/java/org/apache/openejb/config/
openejb-core/src/main/java/org/apache/openejb/config/sys/ openejb-core/sr...
Author: rmannibucau
Date: Thu Jun 21 09:16:39 2012
New Revision: 1352468
URL: http://svn.apache.org/viewvc?rev=1352468&view=rev
Log:
TOMEE-247 if no service-jar.xml is found simply mock it. Add services as observer if they contain a @Observes method
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Openejb.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SaxOpenejb.java
openejb/trunk/openejb/container/openejb-core/src/main/resources/default.exclusions
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java
openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1352468&r1=1352467&r2=1352468&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Thu Jun 21 09:16:39 2012
@@ -1520,6 +1520,7 @@ public class Assembler extends Assembler
ObjectRecipe serviceRecipe = createRecipe(serviceInfo);
Object service = serviceRecipe.create();
+ SystemInstance.get().addObserver(service);
Class serviceClass = service.getClass();
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=1352468&r1=1352467&r2=1352468&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 Thu Jun 21 09:16:39 2012
@@ -884,17 +884,12 @@ public class ConfigurationFactory implem
final String providerType = service.getClass().getSimpleName();
- final ServiceProvider provider = resolveServiceProvider(service, infoType);
+ ServiceProvider provider = resolveServiceProvider(service, infoType);
+ /* we mock the provider if not found now
if (provider == null) {
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());
-// sb.append(" id=\"").append(service.getId()).append('"');
-// sb.append(" provider=\"").append(p.getId()).append("\"/>");
-// }
final List<String> types = new ArrayList<String>();
for (final ServiceProvider p : providers) {
@@ -910,6 +905,11 @@ public class ConfigurationFactory implem
final String noProviderMessage = messages.format("configureService.noProviderForService", providerType, service.getId(), service.getType(), service.getProvider(), sb.toString());
throw new NoSuchProviderException(noProviderMessage);
}
+ */
+
+ if (provider == null) { // mock it, service-jar.xml is just a pain for simple resources with no real default
+ provider = new ServiceProvider(service.getType(), service.getId(), providerType);
+ }
if (service.getId() == null) service.setId(provider.getId());
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java?rev=1352468&r1=1352467&r2=1352468&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JaxbOpenejb.java Thu Jun 21 09:16:39 2012
@@ -120,7 +120,7 @@ public abstract class JaxbOpenejb {
return (T) createServicesJar();
} else if (type.equals("TransactionManager")) {
return (T) createTransactionManager();
- } else if (type.equals("ServerObservers")) {
+ } else if (type.equals("Service")) {
return (T) createService();
}
throw new IllegalArgumentException("Unknown type " + type);
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Openejb.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Openejb.java?rev=1352468&r1=1352467&r2=1352468&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Openejb.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/Openejb.java Thu Jun 21 09:16:39 2012
@@ -51,7 +51,7 @@ import java.util.List;
* </pre>
*/
@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "", propOrder = {"container", "jndiProvider", "securityService", "transactionManager", "connectionManager", "proxyFactory", "connector", "resource", "deployments", "serverObservers"})
+@XmlType(name = "", propOrder = {"container", "jndiProvider", "securityService", "transactionManager", "connectionManager", "proxyFactory", "connector", "resource", "deployments", "services"})
@XmlRootElement(name = "openejb")
public class Openejb {
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SaxOpenejb.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SaxOpenejb.java?rev=1352468&r1=1352467&r2=1352468&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SaxOpenejb.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/sys/SaxOpenejb.java Thu Jun 21 09:16:39 2012
@@ -126,7 +126,7 @@ class SaxOpenejb extends DefaultHandler
else if (localName.equals("Connector")) push(new ResourceElement());
else if (localName.equals("Deployments")) push(new DeploymentsElement());
else if (localName.equals("Import")) push(new ImportElement());
- else if (localName.equals("ServerObservers")) push(new DeclaredServiceElement());
+ else if (localName.equals("Service")) push(new DeclaredServiceElement());
else throw new IllegalStateException("Unsupported Element: " + localName);
get().startElement(uri, localName, qName, attributes);
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/resources/default.exclusions
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/resources/default.exclusions?rev=1352468&r1=1352467&r2=1352468&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/resources/default.exclusions (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/resources/default.exclusions Thu Jun 21 09:16:39 2012
@@ -40,11 +40,14 @@ derbynet-
dom4j-
ecj-
eclipselink-
+fusemq-leveldb-
geronimo-
google-
gragent.jar
gson
guice-
+hamcrest-
+hawtdispatch-
hibernate-
howl-
hsqldb-
@@ -54,6 +57,7 @@ httpcore-
icu4j-
idb-
idea_rt.jar
+jackson-mapper-asl-
jasypt-
javaee-
javaee-api
@@ -81,12 +85,14 @@ jsr311-
juli-
junit-
kahadb-
+leveldb
log4j-
logkit-
maven-
mbean-annotation-api-
mimepull-
mina-
+mqtt-client-
myfaces-api
myfaces-impl
neethi-
@@ -125,6 +131,7 @@ serializer-
serp-
servlet-api-
slf4j-
+snappy-java-
spring-
sshd-
stax-api-
Modified: openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java?rev=1352468&r1=1352467&r2=1352468&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java (original)
+++ openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java Thu Jun 21 09:16:39 2012
@@ -259,5 +259,4 @@ public class SystemInstance {
public boolean hasProperty(final String propName) {
return this.internalProperties.get(propName) != null;
}
-
}
Modified: openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java?rev=1352468&r1=1352467&r2=1352468&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java (original)
+++ openejb/trunk/openejb/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java Thu Jun 21 09:16:39 2012
@@ -36,7 +36,14 @@ public class ObserverManager {
public boolean addObserver(Object observer) {
if (observer == null) throw new IllegalArgumentException("observer cannot be null");
- final boolean added = observers.add(new Observer(observer));
+ final Observer obs;
+ try {
+ obs = new Observer(observer);
+ } catch (NotAnObserverException naoe) {
+ return false;
+ }
+
+ final boolean added = observers.add(obs);
// Observers can observe they have been added and are active
fireEvent(new ObserverAdded(observer));
@@ -122,7 +129,7 @@ public class ObserverManager {
defaultMethod = methods.get(Object.class);
if (methods.size() == 0) {
- throw new IllegalArgumentException("Object has no @Observes methods. For example: public void observe(@Observes RetryConditionAdded event){...}");
+ throw new NotAnObserverException("Object has no @Observes methods. For example: public void observe(@Observes RetryConditionAdded event){...}");
}
}
@@ -162,5 +169,12 @@ public class ObserverManager {
public int hashCode() {
return observer.hashCode();
}
+
+ }
+
+ private static class NotAnObserverException extends RuntimeException {
+ public NotAnObserverException(final String s) {
+ super(s);
+ }
}
}