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);
+        }
     }
 }