Author: dblevins
Date: Thu May 28 06:54:45 2009
New Revision: 779454
URL: http://svn.apache.org/viewvc?rev=779454&view=rev
Log:
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/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/object/Color.java
Modified:
openejb/trunk/openejb3/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContextFactory.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java
openejb/trunk/openejb3/container/openejb-core/src/main/resources/embedded.logging.properties
openejb/trunk/openejb3/container/openejb-core/src/main/resources/logging.properties
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/TempClassLoaderTest.java
openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/BasicStatelessBean.java
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessBean.java
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessObject.java
openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/stateless/StatelessRmiIiopTests.java
Modified:
openejb/trunk/openejb3/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml
(original)
+++
openejb/trunk/openejb3/assembly/openejb-itests-standalone-client/src/main/assembly/client.xml
Thu May 28 06:54:45 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/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
(original)
+++
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
Thu May 28 06:54:45 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/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/OpenEJB.java
Thu May 28 06:54:45 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/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java
Thu May 28 06:54:45 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/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContextFactory.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContextFactory.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContextFactory.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/client/LocalInitialContextFactory.java
Thu May 28 06:54:45 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/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/TempClassLoader.java
Thu May 28 06:54:45 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/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
Thu May 28 06:54:45 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/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/OptionsLog.java
Thu May 28 06:54:45 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/trunk/openejb3/container/openejb-core/src/main/resources/embedded.logging.properties
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/embedded.logging.properties?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/resources/embedded.logging.properties
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/resources/embedded.logging.properties
Thu May 28 06:54:45 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/trunk/openejb3/container/openejb-core/src/main/resources/logging.properties
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/logging.properties?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/resources/logging.properties
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/resources/logging.properties
Thu May 28 06:54:45 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/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/TempClassLoaderTest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/TempClassLoaderTest.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/TempClassLoaderTest.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/TempClassLoaderTest.java
Thu May 28 06:54:45 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/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
(original)
+++
openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/Options.java
Thu May 28 06:54:45 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) {
}
}
}
Added:
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/object/Color.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/object/Color.java?rev=779454&view=auto
==============================================================================
---
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/object/Color.java
(added)
+++
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/object/Color.java
Thu May 28 06:54:45 2009
@@ -0,0 +1,8 @@
+package org.apache.openejb.test.object;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public enum Color {
+ RED, GREEN, BLUE
+}
Modified:
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/BasicStatelessBean.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/BasicStatelessBean.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/BasicStatelessBean.java
(original)
+++
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/BasicStatelessBean.java
Thu May 28 06:54:45 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/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessBean.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessBean.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessBean.java
(original)
+++
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessBean.java
Thu May 28 06:54:45 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/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessObject.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessObject.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessObject.java
(original)
+++
openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/stateless/RmiIiopStatelessObject.java
Thu May 28 06:54:45 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/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/stateless/StatelessRmiIiopTests.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/stateless/StatelessRmiIiopTests.java?rev=779454&r1=779453&r2=779454&view=diff
==============================================================================
---
openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/stateless/StatelessRmiIiopTests.java
(original)
+++
openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/stateless/StatelessRmiIiopTests.java
Thu May 28 06:54:45 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());
+ }
+ }
+
}