Author: dblevins
Date: Thu May 28 07:04:38 2009
New Revision: 779459

URL: http://svn.apache.org/viewvc?rev=779459&view=rev
Log:
Merging r779454 - http://svn.apache.org/viewvc?rev=779454&view=rev

svn merge -r 779453:779454 
https://svn.apache.org/repos/asf/openejb/trunk/openejb3 .

------------------------------------------------------------------------
r779454 | dblevins | 2009-05-27 23:54:45 -0700 (Wed, 27 May 2009) | 4 lines

More fixes for OPENEJB-951: There are problems to deploy ejb with custom 
annotation where values are enums
There doesn't seem to be a clear right answer, so the "fix" entails making it 
configurable which strategy you want: skip annotations, skip enums, skip 
nothing.
Also finished the Options work started earlier -- looks like the logging never 
got hooked up (OPENEJB-1038).

------------------------------------------------------------------------

Added:
    
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/object/Color.java
      - copied unchanged from r779454, 
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/object/Color.java
Modified:
    openejb/branches/openejb-3.1.1/   (props changed)
    
openejb/branches/openejb-3.1.1/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml
    
openejb/branches/openejb-3.1.1/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
    
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
    
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
    
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContextFactory.java
    
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
    
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
    
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java
    
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/resources/embedded.logging.properties
    
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/resources/logging.properties
    
openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/core/TempClassLoaderTest.java
    
openejb/branches/openejb-3.1.1/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
    
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/BasicStatelessBean.java
    
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessBean.java
    
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessObject.java
    
openejb/branches/openejb-3.1.1/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/stateless/StatelessRmiIiopTests.java

Propchange: openejb/branches/openejb-3.1.1/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May 28 07:04:38 2009
@@ -1 +1 @@
-/openejb/trunk/openejb3:778585,778808,778810,779453
+/openejb/trunk/openejb3:778585,778808,778810,779453-779454

Modified: 
openejb/branches/openejb-3.1.1/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml
 (original)
+++ 
openejb/branches/openejb-3.1.1/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml
 Thu May 28 07:04:38 2009
@@ -54,7 +54,7 @@
       <unpack>true</unpack>
       <includes>
           <include>org.apache.openejb:javaee-api</include>
-          <include>org.apache.xbean:xbean-finder</include>
+          <include>org.apache.xbean:xbean-finder-shaded</include>
           <include>org.apache.xbean:xbean-asm-shaded</include>
           <include>junit:junit</include>
           <include>org.apache.openejb:openejb-itests-beans</include>

Modified: 
openejb/branches/openejb-3.1.1/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
 Thu May 28 07:04:38 2009
@@ -30,6 +30,7 @@
 import org.apache.openejb.OpenEJB;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.OptionsLog;
 import org.apache.openejb.tomcat.installer.Installer;
 import org.apache.openejb.tomcat.installer.Paths;
 import org.apache.openejb.assembler.classic.WebAppBuilder;
@@ -66,6 +67,7 @@
         // Loader maybe the first thing executed in a new classloader
         // so we must attempt to initialize the system instance.
         SystemInstance.init(properties);
+        OptionsLog.install();
         
         // install conf/openejb.xml and conf/logging.properties files
         installConfigFiles(properties);

Modified: 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
 Thu May 28 07:04:38 2009
@@ -20,7 +20,6 @@
 import java.util.Properties;
 
 import javax.transaction.*;
-import javax.transaction.SystemException;
 
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.spi.ApplicationServer;
@@ -32,6 +31,7 @@
 import org.apache.openejb.util.Messages;
 import org.apache.openejb.util.OpenEjbVersion;
 import org.apache.openejb.util.SafeToolkit;
+import org.apache.openejb.util.OptionsLog;
 
 /**
  * @version $Rev$ $Date$
@@ -71,6 +71,7 @@
 
             try {
                 SystemInstance.init(initProps);
+                OptionsLog.install();
             } catch (Exception e) {
                 throw new OpenEJBException(e);
             }

Modified: 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
 Thu May 28 07:04:38 2009
@@ -19,6 +19,7 @@
 import org.apache.xbean.finder.ResourceFinder;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.OpenEjbVersion;
+import org.apache.openejb.util.OptionsLog;
 import org.apache.commons.cli.PosixParser;
 import org.apache.commons.cli.CommandLineParser;
 import org.apache.commons.cli.Options;
@@ -180,6 +181,7 @@
         SystemInstance systemInstance = null;
         try {
             SystemInstance.init(System.getProperties());
+            OptionsLog.install();
             systemInstance = SystemInstance.get();
         } catch (Exception e) {
             e.printStackTrace();

Modified: 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContextFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContextFactory.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContextFactory.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContextFactory.java
 Thu May 28 07:04:38 2009
@@ -19,6 +19,7 @@
 
 import org.apache.openejb.loader.OpenEJBInstance;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.OptionsLog;
 
 import javax.naming.Context;
 import javax.naming.NamingException;
@@ -65,6 +66,7 @@
         if (openejb.isInitialized()) return;
         bootedOpenEJB = true;
         SystemInstance.init(properties);
+        OptionsLog.install();
         SystemInstance.get().setProperty("openejb.embedded", "true");
         openejb.init(properties);
     }

Modified: 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
 Thu May 28 07:04:38 2009
@@ -22,10 +22,14 @@
 import java.io.InputStream;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.Set;
 
 import org.apache.xbean.asm.ClassReader;
 import org.apache.xbean.asm.Opcodes;
 import org.apache.xbean.asm.commons.EmptyVisitor;
+import org.apache.openejb.util.OptionsLog;
+import org.apache.openejb.loader.Options;
+import org.apache.openejb.loader.SystemInstance;
 
 /**
  * ClassLoader implementation that allows classes to be temporarily
@@ -42,8 +46,20 @@
  */
 // Note: this class is a fork from OpenJPA
 public class TempClassLoader extends URLClassLoader {
+    private Set<Skip> skip;
+
     public TempClassLoader(ClassLoader parent) {
         super(new URL[0], parent);
+
+        Options options = SystemInstance.get().getOptions();
+        skip = options.getAll("openejb.tempclassloader.skip", Skip.NONE);
+    }
+
+    /*
+     * Needed for testing
+     */
+    public void skip(Skip s) {
+        this.skip.add(s);
     }
 
     public Class loadClass(String name) throws ClassNotFoundException {
@@ -98,7 +114,11 @@
 
         // Annotation classes must be loaded by the normal classloader
         // So must Enum classes to prevent problems with the sun jdk.
-        if (isAnnotationClass(bytes) || isEnum(bytes)) {
+        if (skip.contains(Skip.ANNOTATIONS) && isAnnotationClass(bytes)) {
+            return Class.forName(name, resolve, getClass().getClassLoader());
+        }
+
+        if (skip.contains(Skip.ENUMS) && isEnum(bytes)) {
             return Class.forName(name, resolve, getClass().getClassLoader());
         }
 
@@ -119,7 +139,11 @@
             return super.loadClass(name, resolve);
         }
     }
-    
+
+    public static enum Skip {
+        NONE, ANNOTATIONS, ENUMS
+    }
+
     /**
      * Fast-parse the given class bytecode to determine if it is an
      * enum class.

Modified: 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
 Thu May 28 07:04:38 2009
@@ -185,11 +185,13 @@
      * @return the formatted message
      */
     private String formatMessage(String message, Object... args) {
+        if (args.length == 0) return message;
+        
         try {
             MessageFormat mf = messageFormatCache.compute(message);
             String msg = mf.format(args);
             return msg;
-        } catch (InterruptedException e) {
+        } catch (Exception e) {
             return "Error in formatting message " + message;
         }
 

Modified: 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java
 Thu May 28 07:04:38 2009
@@ -17,6 +17,7 @@
 package org.apache.openejb.util;
 
 import org.apache.openejb.loader.Options;
+import org.apache.openejb.loader.SystemInstance;
 
 /**
  * @version $Rev$ $Date$
@@ -25,6 +26,10 @@
 
     private final Logger logger = 
Logger.getInstance(LogCategory.OPENEJB.createChild("options"), 
OptionsLog.class);
 
+    public static void install() {
+        SystemInstance.get().getOptions().setLogger(new OptionsLog());
+    }
+    
     public boolean isDebugEnabled() {
         return logger.isDebugEnabled();
     }
@@ -37,27 +42,27 @@
         return logger.isWarningEnabled();
     }
 
-    public void debug(String message, Object... args) {
-        logger.debug(message, args);
+    public void debug(String message) {
+        logger.debug(message);
     }
 
-    public void debug(String message, Throwable t, Object... args) {
-        logger.debug(message, t, args);
+    public void debug(String message, Throwable t) {
+        logger.debug(message, t);
     }
 
-    public void info(String message, Object... args) {
-        logger.info(message, args);
+    public void info(String message) {
+        logger.info(message);
     }
 
-    public void info(String message, Throwable t, Object... args) {
-        logger.info(message, t, args);
+    public void info(String message, Throwable t) {
+        logger.info(message, t);
     }
 
-    public void warning(String message, Object... args) {
-        logger.warning(message, args);
+    public void warning(String message) {
+        logger.warning(message);
     }
 
-    public void warning(String message, Throwable t, Object... args) {
-        logger.warning(message, t, args);
+    public void warning(String message, Throwable t) {
+        logger.warning(message, t);
     }
 }

Modified: 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/resources/embedded.logging.properties
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-core/src/main/resources/embedded.logging.properties?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/resources/embedded.logging.properties
 (original)
+++ 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/resources/embedded.logging.properties
 Thu May 28 07:04:38 2009
@@ -49,6 +49,7 @@
 
 log4j.rootLogger                   = fatal,C
 log4j.category.OpenEJB             = warn
+log4j.category.OpenEJB.options     = info
 log4j.category.OpenEJB.server      = info
 log4j.category.OpenEJB.startup     = info
 log4j.category.OpenEJB.startup.service = warn

Modified: 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/resources/logging.properties
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-core/src/main/resources/logging.properties?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/resources/logging.properties
 (original)
+++ 
openejb/branches/openejb-3.1.1/container/openejb-core/src/main/resources/logging.properties
 Thu May 28 07:04:38 2009
@@ -7,6 +7,7 @@
 # below is a much better fit.
 #
 log4j.category.OpenEJB             = warn,R
+log4j.category.OpenEJB.options     = info
 log4j.category.OpenEJB.server      = info
 log4j.category.OpenEJB.startup     = info
 log4j.category.OpenEJB.startup.service = info
@@ -50,6 +51,7 @@
 #
 #log4j.rootLogger                   = fatal,C
 #log4j.category.OpenEJB             = warn
+#log4j.category.OpenEJB.options     = info
 #log4j.category.OpenEJB.server      = info
 #log4j.category.OpenEJB.startup     = info
 #log4j.category.OpenEJB.startup.service = warn

Modified: 
openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/core/TempClassLoaderTest.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/core/TempClassLoaderTest.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/core/TempClassLoaderTest.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/core/TempClassLoaderTest.java
 Thu May 28 07:04:38 2009
@@ -18,6 +18,7 @@
 package org.apache.openejb.core;
 
 import junit.framework.TestCase;
+import org.apache.openejb.loader.SystemInstance;
 
 public class TempClassLoaderTest extends TestCase {
     public void test() throws Exception {
@@ -38,6 +39,29 @@
 
         // annotations should not be loaded by the temp class loader
         clazz = tempCL.loadClass(SampleAnnotation.class.getName());
+        assertSame(tempCL, clazz.getClassLoader());
+    }
+
+    public void _testHackEnabled() throws Exception {
+        TempClassLoader tempCL = new 
TempClassLoader(getClass().getClassLoader());
+        tempCL.skip(TempClassLoader.Skip.ANNOTATIONS);
+        
+        Class<?> clazz;
+
+        // normal classes should be loaded by the temp class loader
+        clazz = tempCL.loadClass(TempClassLoaderTest.class.getName());
+        assertSame(tempCL, clazz.getClassLoader());
+
+        // classes in java.* should not be loaded by the temp class loader
+        clazz = 
tempCL.loadClass(javax.persistence.EntityManager.class.getName());
+        assertNotSame(tempCL, clazz.getClassLoader());
+
+        // classes in javax.* should not be loaded by the temp class loader
+        clazz = tempCL.loadClass(java.lang.String.class.getName());
+        assertNotSame(tempCL, clazz.getClassLoader());
+
+        // annotations should not be loaded by the temp class loader
+        clazz = tempCL.loadClass(SampleAnnotation.class.getName());
         assertNotSame(tempCL, clazz.getClassLoader());
     }
 }

Modified: 
openejb/branches/openejb-3.1.1/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
 Thu May 28 07:04:38 2009
@@ -24,6 +24,8 @@
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+import java.util.logging.Logger;
+import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * The purpose of this class is to provide a more strongly typed version of a
@@ -48,27 +50,23 @@
 
     private final Options parent;
     private final Properties properties;
-    protected Log logger;
 
     public Options(Properties properties) {
-        this(properties, new NullOptions(), new NullLog());
+        this(properties, new NullOptions());
     }
 
-    public Options(Properties properties, Options options) {
-        this(properties, options, new NullLog());
-    }
-
-    public Options(Properties properties, Options parent, Log log) {
+    public Options(Properties properties, Options parent) {
         this.parent = parent;
         this.properties = properties;
-        this.logger = log;
     }
 
-    public Options setLogger(Log logger) {
-        this.logger = logger;
-        return this;
+    public void setLogger(Log logger) {
+        parent.setLogger(logger);
     }
 
+    public Log getLogger() {
+        return parent.getLogger();
+    }
 
     public boolean has(String property) {
         return properties.containsKey(property) || parent.has(property);
@@ -128,7 +126,7 @@
         try {
             return log(property, classLoader.loadClass(className));
         } catch (Exception e) {
-            logger.warning("Could not load " + property + " : " + className, 
e);
+            getLogger().warning("Could not load " + property + " : " + 
className, e);
             return parent.get(property, defaultValue);
         }
     }
@@ -208,19 +206,19 @@
     }
 
     private void warn(String property, String value) {
-        logger.warning("Cannot parse supplied value \"" + value + "\" for 
option \"" + property + "\"");
+        getLogger().warning("Cannot parse supplied value \"" + value + "\" for 
option \"" + property + "\"");
     }
 
     private void warn(String property, String value, Exception e) {
-        logger.warning("Cannot parse supplied value \"" + value + "\" for 
option \"" + property + "\"", e);
+        getLogger().warning("Cannot parse supplied value \"" + value + "\" for 
option \"" + property + "\"", e);
     }
 
     private <V> V log(String property, V value) {
         if (value instanceof Class) {
             Class clazz = (Class) value;
-            logger.info("Using " + property + " '" + clazz.getName() + "'");
+            getLogger().info("Using \'" + property + "=" + clazz.getName() + 
"\'");
         } else {
-            logger.info("Using " + property + " '" + value + "'");
+            getLogger().info("Using \'" + property + "=" + value + "\'");
         }
         return value;
     }
@@ -264,8 +262,21 @@
 
     private final static class NullOptions extends Options {
 
+        private Log logger;
+
         public NullOptions() {
-            super(null, null, new NullLog());
+            super(null, null);
+            this.logger = new NullLog();
+        }
+
+        @Override
+        public Log getLogger() {
+            return logger;
+        }
+
+        @Override
+        public void setLogger(Log logger) {
+            this.logger = logger;
         }
 
         @Override
@@ -300,7 +311,7 @@
 
         @Override
         public <T extends Enum<T>> Set<T> get(String property, Set<T> 
defaults) {
-            if (logger.isDebugEnabled()) {
+            if (getLogger().isDebugEnabled()) {
                 Iterator<T> iterator = defaults.iterator();
                 String possibleValues = "";
                 if (iterator.hasNext()) {
@@ -310,7 +321,7 @@
 
                 String defaultValues = join(", ", lowercase(defaults));
 
-                logger.debug("Using " + property + " default '" + 
defaultValues + "'" + possibleValues);
+                getLogger().debug("Using default \'" + property + "=" + 
defaultValues + "\'" + possibleValues);
             }
 
             return defaults;
@@ -327,15 +338,15 @@
         }
 
         private <V> V log(String property, V value) {
-            if (logger.isDebugEnabled()) {
+            if (getLogger().isDebugEnabled()) {
                 if (value instanceof Enum) {
                     Enum anEnum = (Enum) value;
-                    logger.debug("Using " + property + " default '" + 
anEnum.name().toLowerCase() + "'.  Possible values are: " + 
possibleValues(anEnum));
+                    getLogger().debug("Using default \'" + property + "=" + 
anEnum.name().toLowerCase() + "\'.  Possible values are: " + 
possibleValues(anEnum));
                 } else if (value instanceof Class) {
                     Class clazz = (Class) value;
-                    logger.debug("Using " + property + " default '" + 
clazz.getName() + "'");
+                    getLogger().debug("Using default \'" + property + "=" + 
clazz.getName() + "\'");
                 } else if (value != null) {
-                    logger.debug("Using " + property + " default '" + value + 
"'");
+                    logger.debug("Using default \'" + property + "=" + value + 
"\'");
                 }
             }
             return value;
@@ -349,17 +360,17 @@
 
         public boolean isWarningEnabled();
 
-        public void warning(String message, Throwable t, Object... args);
+        public void warning(String message, Throwable t);
 
-        public void warning(String message, Object... args);
+        public void warning(String message);
 
-        public void debug(String message, Throwable t, Object... args);
+        public void debug(String message, Throwable t);
 
-        public void debug(String message, Object... args);
+        public void debug(String message);
 
-        public void info(String message, Throwable t, Object... args);
+        public void info(String message, Throwable t);
 
-        public void info(String message, Object... args);
+        public void info(String message);
     }
 
     public static class NullLog implements Log {
@@ -375,22 +386,22 @@
             return false;
         }
 
-        public void warning(String message, Throwable t, Object... args) {
+        public void warning(String message, Throwable t) {
         }
 
-        public void warning(String message, Object... args) {
+        public void warning(String message) {
         }
 
-        public void debug(String message, Throwable t, Object... args) {
+        public void debug(String message, Throwable t) {
         }
 
-        public void debug(String message, Object... args) {
+        public void debug(String message) {
         }
 
-        public void info(String message, Throwable t, Object... args) {
+        public void info(String message, Throwable t) {
         }
 
-        public void info(String message, Object... args) {
+        public void info(String message) {
         }
     }
 }

Modified: 
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/BasicStatelessBean.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/BasicStatelessBean.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/BasicStatelessBean.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/BasicStatelessBean.java
 Thu May 28 07:04:38 2009
@@ -140,7 +140,8 @@
     /**
      * @throws javax.ejb.CreateException
      */
-    @MeasureSensible(MeasureSensivity.RESULT)  
+// TODO: Illustrates    
+    @MeasureSensible(MeasureSensivity.RESULT)
     public void ejbCreateObject() throws javax.ejb.CreateException {
         testAllowedOperations("ejbCreate");
         this.name = "nameless automaton";

Modified: 
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessBean.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessBean.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessBean.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessBean.java
 Thu May 28 07:04:38 2009
@@ -27,6 +27,7 @@
 import javax.naming.InitialContext;
 
 import org.apache.openejb.test.object.ObjectGraph;
+import org.apache.openejb.test.object.Color;
 
 /**
  * 
@@ -408,6 +409,28 @@
         return data;
     }
 
+
+    /*-------------------------------------------------*/
+    /*  Enum                                           */
+    /*-------------------------------------------------*/
+
+    public Color returnColor(Color data) {
+        return data;
+    }
+
+    public Color returnColor() {
+        return Color.GREEN;
+    }
+
+    public ObjectGraph returnNestedColor() {
+        return new ObjectGraph(Color.GREEN);
+    }
+
+    public Color[] returnColorArray(Color[] data) {
+        return data;
+    }
+
+
     /*-------------------------------------------------*/
     /*  ObjectGraph                                         */  
     /*-------------------------------------------------*/
@@ -423,7 +446,7 @@
     public String remove(String arg) {
         return arg;
     }
-    
+
     //    
     // Remote interface methods
     //=============================

Modified: 
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessObject.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessObject.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessObject.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessObject.java
 Thu May 28 07:04:38 2009
@@ -24,6 +24,7 @@
 import javax.ejb.Handle;
 
 import org.apache.openejb.test.object.ObjectGraph;
+import org.apache.openejb.test.object.Color;
 
 /**
  * 
@@ -140,4 +141,12 @@
 
     public Class[] returnClassArray(Class[] data) throws RemoteException;
 
+    public Color returnColor(Color data)  throws RemoteException;
+
+    public Color returnColor()  throws RemoteException;
+
+    public ObjectGraph returnNestedColor()  throws RemoteException;
+
+    public Color[] returnColorArray(Color[] data)  throws RemoteException;
+
 }

Modified: 
openejb/branches/openejb-3.1.1/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/stateless/StatelessRmiIiopTests.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.1/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/stateless/StatelessRmiIiopTests.java?rev=779459&r1=779458&r2=779459&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.1/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/stateless/StatelessRmiIiopTests.java
 (original)
+++ 
openejb/branches/openejb-3.1.1/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/stateless/StatelessRmiIiopTests.java
 Thu May 28 07:04:38 2009
@@ -23,6 +23,7 @@
 import javax.rmi.PortableRemoteObject;
 
 import org.apache.openejb.test.object.ObjectGraph;
+import org.apache.openejb.test.object.Color;
 
 import java.rmi.RemoteException;
 
@@ -951,5 +952,97 @@
         }
     }
 
+/*-------------------------------------------------*/
+/*  Enum                                           */
+/*-------------------------------------------------*/
+
+    public void test60_returnColor() {
+        try {
+            Color expected = Color.GREEN;
+
+            Color actual = (Color) 
PortableRemoteObject.narrow(ejbObject.returnColor(expected), Color.class);
+
+            assertNotNull("The Color returned is null", actual);
+
+            assertEquals(expected, actual);
+
+        } catch (Exception e) {
+            fail("Received Exception " + e.getClass() + " : " + 
e.getMessage());
+        }
+    }
+
+    public void test61_returnColor2() {
+        try {
+            Color expected = Color.GREEN;
+
+            Color actual = (Color) 
PortableRemoteObject.narrow(ejbObject.returnColor(), Color.class);
+
+            assertNotNull("The Color returned is null", actual);
+
+            assertEquals(expected, actual);
+
+        } catch (Exception e) {
+            fail("Received Exception " + e.getClass() + " : " + 
e.getMessage());
+        }
+    }
+
+    public void test62_returnNestedColor() {
+        try{
+            Color expected = Color.GREEN;
+
+            ObjectGraph graph = ejbObject.returnObjectGraph(new 
ObjectGraph(expected));
+
+            assertNotNull("The ObjectGraph is null", graph);
+
+            Color actual = (Color) graph.getObject();
+
+            assertNotNull("The Color returned is null", actual);
+
+            assertEquals(expected, actual);
+
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test63_returnNestedColor2() {
+        try{
+            Color expected = Color.GREEN;
+
+            ObjectGraph graph = ejbObject.returnNestedColor();
+
+            assertNotNull("The ObjectGraph is null", graph);
+
+            Color actual = (Color) graph.getObject();
+
+            assertNotNull("The Color returned is null", actual);
+
+            assertEquals(expected, actual);
+
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test64_returnColorArray() {
+        try{
+
+            Color expected[] = new Color[]{Color.GREEN, Color.RED, Color.BLUE};
+
+            Color[] actual = ejbObject.returnColorArray(expected);
+
+            assertNotNull("The Color array returned is null", actual);
+
+            assertEquals(expected.length, actual.length);
+            
+            for (int i = 0; i < expected.length; i++) {
+                assertEquals(expected[i], actual[i]);
+            }
+
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
 }
 


Reply via email to