You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/01/20 10:25:55 UTC
svn commit: r1233829 -
/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
Author: rmannibucau
Date: Fri Jan 20 09:25:54 2012
New Revision: 1233829
URL: http://svn.apache.org/viewvc?rev=1233829&view=rev
Log:
xbean doesn't seem to have fixed the classname issue, restoring our workaround
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1233829&r1=1233828&r2=1233829&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Fri Jan 20 09:25:54 2012
@@ -728,7 +728,7 @@ public class
final List<String> allowedTypes = Arrays.asList(new String[] { Boolean.class.getName(), String.class.getName(), Integer.class.getName(), Double.class.getName(), Byte.class.getName(), Short.class.getName(), Long.class.getName(), Float.class.getName(), Character.class.getName()});
try {
- Class<?> clazz = classLoader.loadClass(cls);
+ Class<?> clazz = classLoader.loadClass(realClassName(cls));
Object o = clazz.newInstance();
// add any introspected properties
@@ -1061,7 +1061,8 @@ public class
if (beans != null) {
managedClasses = beans.getManagedClasses();
final List<String> classNames = getBeanClasses(finder);
- for (String className : classNames) {
+ for (String rawClassName : classNames) {
+ final String className = realClassName(rawClassName);
try {
final ClassLoader loader = ejbModule.getClassLoader();
final Class<?> clazz = loader.loadClass(className);
@@ -1501,7 +1502,7 @@ public class
Set<Class> remoteClients = new HashSet<Class>();
if (clientModule.getMainClass() != null){
- String className = clientModule.getMainClass();
+ String className = realClassName(clientModule.getMainClass());
// OPENEJB-1063: a Main-Class should use "." instead of "/"
// it wasn't check before jdk 1.5 so we can get old module with
@@ -1535,7 +1536,8 @@ public class
}
}
- for (String className : clientModule.getRemoteClients()) {
+ for (String rawClassName : clientModule.getRemoteClients()) {
+ final String className = realClassName(rawClassName);
Class clazz;
try {
clazz = classLoader.loadClass(className);
@@ -1549,7 +1551,8 @@ public class
buildAnnotatedRefs(client, annotationFinder, classLoader);
}
- for (String className : clientModule.getLocalClients()) {
+ for (String rawClassName : clientModule.getLocalClients()) {
+ final String className = realClassName(rawClassName);
Class clazz;
try {
clazz = classLoader.loadClass(className);
@@ -1573,7 +1576,7 @@ public class
for (EjbLocalRef ref : client.getEjbLocalRef()) {
for (InjectionTarget target : ref.getInjectionTarget()) {
try {
- Class<?> targetClass = classLoader.loadClass(target.getInjectionTargetClass());
+ Class<?> targetClass = classLoader.loadClass(realClassName(target.getInjectionTargetClass()));
for (Class remoteClient : remoteClients) {
if (targetClass.isAssignableFrom(remoteClient)) {
fail(remoteClient.getName(), "remoteClient.ejbLocalRef", target.getInjectionTargetClass(), target.getInjectionTargetName());
@@ -1587,7 +1590,7 @@ public class
for (PersistenceContextRef ref : client.getPersistenceContextRef()) {
for (InjectionTarget target : ref.getInjectionTarget()) {
try {
- Class<?> targetClass = classLoader.loadClass(target.getInjectionTargetClass());
+ Class<?> targetClass = classLoader.loadClass(realClassName(target.getInjectionTargetClass()));
for (Class remoteClient : remoteClients) {
if (targetClass.isAssignableFrom(remoteClient)) {
fail(remoteClient.getName(), "remoteClient.persistenceContextRef", target.getInjectionTargetClass(), target.getInjectionTargetName());
@@ -1656,7 +1659,8 @@ public class
Collection<String> restApp = webModule.getRestApplications();
if (restApp.isEmpty()) {
- for (String className : webModule.getRestClasses()) {
+ for (String rawClassName : webModule.getRestClasses()) {
+ final String className = realClassName(rawClassName);
if (className != null) {
Class<?> clazz;
try {
@@ -1668,7 +1672,8 @@ public class
}
}
} else {
- for (String application : restApp) {
+ for (String rawClassName : restApp) {
+ final String application = realClassName(rawClassName);
if (application != null) {
Class<?> clazz;
try {
@@ -1694,9 +1699,9 @@ public class
* Servlet classes are scanned
*/
for (Servlet servlet : webApp.getServlet()) {
- String servletClass = servlet.getServletClass();
+ String servletClass = realClassName(servlet.getServletClass());
if (servletClass == null) { // try with servlet name, @see org.apache.openejb.arquillian.tests.jaxrs.basicapp.BasicApplication
- servletClass = servlet.getServletName();
+ servletClass = realClassName(servlet.getServletName());
}
if (servletClass != null) {
@@ -1731,7 +1736,7 @@ public class
* Filter classes are scanned
*/
for (Filter filter : webApp.getFilter()) {
- String filterClass = filter.getFilterClass();
+ String filterClass = realClassName(filter.getFilterClass());
if (filterClass != null) {
try {
Class clazz = classLoader.loadClass(filterClass);
@@ -1746,7 +1751,7 @@ public class
* Listener classes are scanned
*/
for (Listener listener : webApp.getListener()) {
- String listenerClass = listener.getListenerClass();
+ String listenerClass = realClassName(listener.getListenerClass());
if (listenerClass != null) {
try {
Class clazz = classLoader.loadClass(listenerClass);
@@ -1762,7 +1767,7 @@ public class
* TagLib Listener classes are scanned
*/
for (Listener listener : taglib.getListener()) {
- String listenerClass = listener.getListenerClass();
+ String listenerClass = realClassName(listener.getListenerClass());
if (listenerClass != null) {
try {
Class clazz = classLoader.loadClass(listenerClass);
@@ -1777,7 +1782,7 @@ public class
* TagLib Tag classes are scanned
*/
for (Tag tag : taglib.getTag()) {
- String tagClass = tag.getTagClass();
+ String tagClass = realClassName(tag.getTagClass());
if (tagClass != null) {
try {
Class clazz = classLoader.loadClass(tagClass);
@@ -1801,7 +1806,7 @@ public class
if (port.getHandlerChains() == null) continue;
for (org.apache.openejb.jee.HandlerChain handlerChain : port.getHandlerChains().getHandlerChain()) {
for (Handler handler : handlerChain.getHandler()) {
- String handlerClass = handler.getHandlerClass();
+ String handlerClass = realClassName(handler.getHandlerClass());
if (handlerClass != null) {
try {
Class clazz = classLoader.loadClass(handlerClass);
@@ -1821,7 +1826,7 @@ public class
*/
for (FacesConfig facesConfig : webModule.getFacesConfigs()) {
for (FacesManagedBean bean : facesConfig.getManagedBean()) {
- String managedBeanClass = bean.getManagedBeanClass().trim();
+ String managedBeanClass = realClassName(bean.getManagedBeanClass().trim());
if (managedBeanClass != null) {
try {
Class clazz = classLoader.loadClass(managedBeanClass);
@@ -1839,7 +1844,8 @@ public class
// Add all the classes of the previous finder
// TODO this part can be optimized
final List<String> classNames = finder.getAnnotatedClassNames();
- for (String className : classNames) {
+ for (String rawClassName : classNames) {
+ final String className = realClassName(rawClassName);
try {
Class clazz = classLoader.loadClass(className);
classes.add(clazz);
@@ -1873,7 +1879,7 @@ public class
EnterpriseBean[] enterpriseBeans = ejbModule.getEjbJar().getEnterpriseBeans();
for (EnterpriseBean bean : enterpriseBeans) {
final String ejbName = bean.getEjbName();
- final String ejbClassName = bean.getEjbClass();
+ final String ejbClassName = realClassName(bean.getEjbClass());
if (ejbClassName == null) {
List<String> others = new ArrayList<String>();
@@ -2313,7 +2319,7 @@ public class
for (Interceptor interceptor : ejbModule.getEjbJar().getInterceptors()) {
final Class<?> clazz;
try {
- clazz = classLoader.loadClass(interceptor.getInterceptorClass());
+ clazz = classLoader.loadClass(realClassName(interceptor.getInterceptorClass()));
} catch (ClassNotFoundException e) {
throw new OpenEJBException("Unable to load interceptor class: " + interceptor.getInterceptorClass(), e);
}
@@ -2775,7 +2781,7 @@ public class
private void add(ClassLoader loader, Collection<String> names, Set<Class> classes) {
for (String className : names) {
try {
- classes.add(loader.loadClass(className));
+ classes.add(loader.loadClass(realClassName(className)));
} catch (Throwable t) {
// handled in validation
}
@@ -4098,7 +4104,7 @@ public class
}
Class<?> refType = null;
try {
- refType = classLoader.loadClass(serviceRef.getType());
+ refType = classLoader.loadClass(realClassName(serviceRef.getType()));
} catch (ClassNotFoundException e) {
}
@@ -4163,7 +4169,7 @@ public class
if (port.getHandlerChains() == null) continue;
for (org.apache.openejb.jee.HandlerChain handlerChain : port.getHandlerChains().getHandlerChain()) {
for (Handler handler : handlerChain.getHandler()) {
- String handlerClass = handler.getHandlerClass();
+ String handlerClass = realClassName(handler.getHandlerClass());
if (handlerClass != null) {
try {
Class handlerClazz = ejbModule.getClassLoader().loadClass(handlerClass);
@@ -4203,7 +4209,7 @@ public class
for (Handler handler : handlerChain.getHandler()) {
if (handler.getHandlerClass() != null) {
try {
- Class clazz = classLoader.loadClass(handler.getHandlerClass());
+ Class clazz = classLoader.loadClass(realClassName(handler.getHandlerClass()));
handlerClasses.add(clazz);
} catch (ClassNotFoundException e) {
throw new OpenEJBException("Unable to load webservice handler class: " + handler.getHandlerClass(), e);
@@ -4871,4 +4877,11 @@ public class
|| clazz.isAnnotationPresent(Singleton.class)
|| clazz.isAnnotationPresent(Stateful.class); // what a weird idea!
}
+
+ private static String realClassName(String rawClassName) {
+ if (rawClassName.contains("/")) {
+ return rawClassName.replace("/", ".");
+ }
+ return rawClassName;
+ }
}