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