You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2007/04/25 22:28:05 UTC

svn commit: r532470 - /incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java

Author: dain
Date: Wed Apr 25 13:28:04 2007
New Revision: 532470

URL: http://svn.apache.org/viewvc?view=rev&rev=532470
Log:
make destination and destinationType optional activation spec attributes

Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java?view=diff&rev=532470&r1=532469&r2=532470
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java Wed Apr 25 13:28:04 2007
@@ -49,6 +49,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Arrays;
+import java.util.TreeSet;
+import java.util.Set;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -131,6 +133,7 @@
         try {
             // initialize the object recipe
             ObjectRecipe objectRecipe = new ObjectRecipe(activationSpecClass);
+            objectRecipe.allow(Option.IGNORE_MISSING_PROPERTIES);
             objectRecipe.disallow(Option.FIELD_INJECTION);
 
             Map<String, String> activationProperties = deploymentInfo.getActivationProperties();
@@ -140,6 +143,15 @@
 
             // create the activationSpec
             ActivationSpec activationSpec = (ActivationSpec) objectRecipe.create(deploymentInfo.getClassLoader());
+
+            // verify all properties except "destination" and "destinationType" were consumed
+            Set<String> unusedProperties = new TreeSet<String>(objectRecipe.getUnsetProperties().keySet());
+            unusedProperties.remove("destination");
+            unusedProperties.remove("destinationType");
+            if (!unusedProperties.isEmpty()) {
+                throw new IllegalArgumentException("No setter found for the activation spec properties: " + unusedProperties);
+            }
+
 
             // validate the activation spec
             try {