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/09/12 23:01:27 UTC

svn commit: r1384123 - in /openejb/trunk/openejb: pom.xml tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java

Author: rmannibucau
Date: Wed Sep 12 21:01:26 2012
New Revision: 1384123

URL: http://svn.apache.org/viewvc?rev=1384123&view=rev
Log:
tomcat 7.0.30 doesn't scan exactly the same way servlet 3 annotations and sometimes give subfolder instead of webinf/classes. just adapting the classname to manage it

Modified:
    openejb/trunk/openejb/pom.xml
    openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java

Modified: openejb/trunk/openejb/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/pom.xml?rev=1384123&r1=1384122&r2=1384123&view=diff
==============================================================================
--- openejb/trunk/openejb/pom.xml (original)
+++ openejb/trunk/openejb/pom.xml Wed Sep 12 21:01:26 2012
@@ -143,7 +143,7 @@
     <junit.version>4.9</junit.version>
     <org.apache.axis2.version>1.4.1</org.apache.axis2.version>
     <scannotation.version>1.0.2</scannotation.version>
-    <org.apache.openwebbeans.version>1.1.5</org.apache.openwebbeans.version>
+    <org.apache.openwebbeans.version>1.1.6-SNAPSHOT</org.apache.openwebbeans.version>
     <geronimo.connector.version>3.1.1</geronimo.connector.version>
     <geronimo-osgi.version>1.1</geronimo-osgi.version>
     <geronimo-javamail_1.4_spec.version>1.7.1</geronimo-javamail_1.4_spec.version>

Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1384123&r1=1384122&r2=1384123&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Wed Sep 12 21:01:26 2012
@@ -25,6 +25,7 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
+import org.apache.xbean.finder.util.Classes;
 import org.xml.sax.InputSource;
 
 import javax.servlet.ServletContainerInitializer;
@@ -44,6 +45,9 @@ public class OpenEJBContextConfig extend
     private static final String MYFACES_TOMEEM_CONTAINER_INITIALIZER = "org.apache.tomee.myfaces.TomEEMyFacesContainerInitializer";
     private static final String TOMEE_MYFACES_CONTEXT_LISTENER = "org.apache.tomee.myfaces.TomEEMyFacesContextListener";
 
+    private static final String CLASSES = "classes";
+    private static final String WEB_INF = "WEB-INF";
+
     private TomcatWebAppBuilder.StandardContextInfo info;
 
     public OpenEJBContextConfig(TomcatWebAppBuilder.StandardContextInfo standardContextInfo) {
@@ -144,7 +148,7 @@ public class OpenEJBContextConfig extend
             final URLClassLoader loader = new URLClassLoader(new URL[]{file.toURI().toURL()});
             for (String webAnnotatedClassName : webAppInfo.webAnnotatedClasses) {
 
-                final String classFile = webAnnotatedClassName.replace('.', '/') + ".class";
+                final String classFile = webAnnotatedClassName.substring(getSubPackage(file).length()).replace('.', '/') + ".class";
                 final URL classUrl = loader.getResource(classFile);
 
                 if (classUrl == null) {
@@ -170,6 +174,34 @@ public class OpenEJBContextConfig extend
         }
     }
 
+    // because we don't always get WEB-INF/classes folder, simply get the already appended subpackage
+    private static String getSubPackage(final File file) {
+        File current = file.getParentFile();
+        if (current == null) {
+            return "";
+        }
+
+        File previous = file;
+        while (current.getParentFile() != null) {
+            if (CLASSES.equals(previous.getName()) && WEB_INF.equals(current.getName())) {
+                String path = file.getAbsolutePath().replaceFirst(previous.getAbsolutePath(), "");
+                if (path.startsWith(File.separator)) {
+                    path = path.substring(File.separator.length());
+                }
+                if (path.endsWith(File.separator)) {
+                    path = path.substring(0, path.length() - 1);
+                }
+
+                return path + File.separator;
+            }
+
+            previous = current;
+            current = current.getParentFile();
+        }
+
+        return ""; // no subpackage found
+    }
+
     @Override
     protected void processAnnotationsUrl(URL url, WebXml fragment, boolean handlesTypeOnly) {
         logger.debug("processAnnotationsUrl " + url);



Re: svn commit: r1384123 - in /openejb/trunk/openejb: pom.xml tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java

Posted by Jean-Louis MONTEIRO <je...@gmail.com>.
No ... Just don't forget to fill a JIRA for OWB update ;-)

2012/9/12 Romain Manni-Bucau <rm...@gmail.com>

> sorry i updated OWB in the same commit (// taks + some network latency :s)
>
> is it an issue for anyone?
>
> *Romain Manni-Bucau*
> *Twitter: @rmannibucau*
> *Blog: http://rmannibucau.wordpress.com*
>
>
>
>
> ---------- Forwarded message ----------
> From: <rm...@apache.org>
> Date: 2012/9/12
> Subject: svn commit: r1384123 - in /openejb/trunk/openejb: pom.xml
>
> tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
> To: commits@openejb.apache.org
>
>
> Author: rmannibucau
> Date: Wed Sep 12 21:01:26 2012
> New Revision: 1384123
>
> URL: http://svn.apache.org/viewvc?rev=1384123&view=rev
> Log:
> tomcat 7.0.30 doesn't scan exactly the same way servlet 3 annotations and
> sometimes give subfolder instead of webinf/classes. just adapting the
> classname to manage it
>
> Modified:
>     openejb/trunk/openejb/pom.xml
>
>
> openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
>
> Modified: openejb/trunk/openejb/pom.xml
> URL:
>
> http://svn.apache.org/viewvc/openejb/trunk/openejb/pom.xml?rev=1384123&r1=1384122&r2=1384123&view=diff
>
> ==============================================================================
> --- openejb/trunk/openejb/pom.xml (original)
> +++ openejb/trunk/openejb/pom.xml Wed Sep 12 21:01:26 2012
> @@ -143,7 +143,7 @@
>      <junit.version>4.9</junit.version>
>      <org.apache.axis2.version>1.4.1</org.apache.axis2.version>
>      <scannotation.version>1.0.2</scannotation.version>
> -
>  <org.apache.openwebbeans.version>1.1.5</org.apache.openwebbeans.version>
> +
>
>  <org.apache.openwebbeans.version>1.1.6-SNAPSHOT</org.apache.openwebbeans.version>
>      <geronimo.connector.version>3.1.1</geronimo.connector.version>
>      <geronimo-osgi.version>1.1</geronimo-osgi.version>
>
>
>  <geronimo-javamail_1.4_spec.version>1.7.1</geronimo-javamail_1.4_spec.version>
>
> Modified:
>
> openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
> URL:
>
> http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1384123&r1=1384122&r2=1384123&view=diff
>
> ==============================================================================
> ---
>
> openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
> (original)
> +++
>
> openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
> Wed Sep 12 21:01:26 2012
> @@ -25,6 +25,7 @@ import org.apache.openejb.assembler.clas
>  import org.apache.openejb.loader.SystemInstance;
>  import org.apache.openejb.util.LogCategory;
>  import org.apache.openejb.util.Logger;
> +import org.apache.xbean.finder.util.Classes;
>  import org.xml.sax.InputSource;
>
>  import javax.servlet.ServletContainerInitializer;
> @@ -44,6 +45,9 @@ public class OpenEJBContextConfig extend
>      private static final String MYFACES_TOMEEM_CONTAINER_INITIALIZER =
> "org.apache.tomee.myfaces.TomEEMyFacesContainerInitializer";
>      private static final String TOMEE_MYFACES_CONTEXT_LISTENER =
> "org.apache.tomee.myfaces.TomEEMyFacesContextListener";
>
> +    private static final String CLASSES = "classes";
> +    private static final String WEB_INF = "WEB-INF";
> +
>      private TomcatWebAppBuilder.StandardContextInfo info;
>
>      public OpenEJBContextConfig(TomcatWebAppBuilder.StandardContextInfo
> standardContextInfo) {
> @@ -144,7 +148,7 @@ public class OpenEJBContextConfig extend
>              final URLClassLoader loader = new URLClassLoader(new
> URL[]{file.toURI().toURL()});
>              for (String webAnnotatedClassName :
> webAppInfo.webAnnotatedClasses) {
>
> -                final String classFile =
> webAnnotatedClassName.replace('.', '/') + ".class";
> +                final String classFile =
> webAnnotatedClassName.substring(getSubPackage(file).length()).replace('.',
> '/') + ".class";
>                  final URL classUrl = loader.getResource(classFile);
>
>                  if (classUrl == null) {
> @@ -170,6 +174,34 @@ public class OpenEJBContextConfig extend
>          }
>      }
>
> +    // because we don't always get WEB-INF/classes folder, simply get the
> already appended subpackage
> +    private static String getSubPackage(final File file) {
> +        File current = file.getParentFile();
> +        if (current == null) {
> +            return "";
> +        }
> +
> +        File previous = file;
> +        while (current.getParentFile() != null) {
> +            if (CLASSES.equals(previous.getName()) &&
> WEB_INF.equals(current.getName())) {
> +                String path =
> file.getAbsolutePath().replaceFirst(previous.getAbsolutePath(), "");
> +                if (path.startsWith(File.separator)) {
> +                    path = path.substring(File.separator.length());
> +                }
> +                if (path.endsWith(File.separator)) {
> +                    path = path.substring(0, path.length() - 1);
> +                }
> +
> +                return path + File.separator;
> +            }
> +
> +            previous = current;
> +            current = current.getParentFile();
> +        }
> +
> +        return ""; // no subpackage found
> +    }
> +
>      @Override
>      protected void processAnnotationsUrl(URL url, WebXml fragment, boolean
> handlesTypeOnly) {
>          logger.debug("processAnnotationsUrl " + url);
>

Fwd: svn commit: r1384123 - in /openejb/trunk/openejb: pom.xml tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java

Posted by Romain Manni-Bucau <rm...@gmail.com>.
sorry i updated OWB in the same commit (// taks + some network latency :s)

is it an issue for anyone?

*Romain Manni-Bucau*
*Twitter: @rmannibucau*
*Blog: http://rmannibucau.wordpress.com*




---------- Forwarded message ----------
From: <rm...@apache.org>
Date: 2012/9/12
Subject: svn commit: r1384123 - in /openejb/trunk/openejb: pom.xml
tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
To: commits@openejb.apache.org


Author: rmannibucau
Date: Wed Sep 12 21:01:26 2012
New Revision: 1384123

URL: http://svn.apache.org/viewvc?rev=1384123&view=rev
Log:
tomcat 7.0.30 doesn't scan exactly the same way servlet 3 annotations and
sometimes give subfolder instead of webinf/classes. just adapting the
classname to manage it

Modified:
    openejb/trunk/openejb/pom.xml

openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java

Modified: openejb/trunk/openejb/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/pom.xml?rev=1384123&r1=1384122&r2=1384123&view=diff
==============================================================================
--- openejb/trunk/openejb/pom.xml (original)
+++ openejb/trunk/openejb/pom.xml Wed Sep 12 21:01:26 2012
@@ -143,7 +143,7 @@
     <junit.version>4.9</junit.version>
     <org.apache.axis2.version>1.4.1</org.apache.axis2.version>
     <scannotation.version>1.0.2</scannotation.version>
-
 <org.apache.openwebbeans.version>1.1.5</org.apache.openwebbeans.version>
+
 <org.apache.openwebbeans.version>1.1.6-SNAPSHOT</org.apache.openwebbeans.version>
     <geronimo.connector.version>3.1.1</geronimo.connector.version>
     <geronimo-osgi.version>1.1</geronimo-osgi.version>

 <geronimo-javamail_1.4_spec.version>1.7.1</geronimo-javamail_1.4_spec.version>

Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1384123&r1=1384122&r2=1384123&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Wed Sep 12 21:01:26 2012
@@ -25,6 +25,7 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
+import org.apache.xbean.finder.util.Classes;
 import org.xml.sax.InputSource;

 import javax.servlet.ServletContainerInitializer;
@@ -44,6 +45,9 @@ public class OpenEJBContextConfig extend
     private static final String MYFACES_TOMEEM_CONTAINER_INITIALIZER =
"org.apache.tomee.myfaces.TomEEMyFacesContainerInitializer";
     private static final String TOMEE_MYFACES_CONTEXT_LISTENER =
"org.apache.tomee.myfaces.TomEEMyFacesContextListener";

+    private static final String CLASSES = "classes";
+    private static final String WEB_INF = "WEB-INF";
+
     private TomcatWebAppBuilder.StandardContextInfo info;

     public OpenEJBContextConfig(TomcatWebAppBuilder.StandardContextInfo
standardContextInfo) {
@@ -144,7 +148,7 @@ public class OpenEJBContextConfig extend
             final URLClassLoader loader = new URLClassLoader(new
URL[]{file.toURI().toURL()});
             for (String webAnnotatedClassName :
webAppInfo.webAnnotatedClasses) {

-                final String classFile =
webAnnotatedClassName.replace('.', '/') + ".class";
+                final String classFile =
webAnnotatedClassName.substring(getSubPackage(file).length()).replace('.',
'/') + ".class";
                 final URL classUrl = loader.getResource(classFile);

                 if (classUrl == null) {
@@ -170,6 +174,34 @@ public class OpenEJBContextConfig extend
         }
     }

+    // because we don't always get WEB-INF/classes folder, simply get the
already appended subpackage
+    private static String getSubPackage(final File file) {
+        File current = file.getParentFile();
+        if (current == null) {
+            return "";
+        }
+
+        File previous = file;
+        while (current.getParentFile() != null) {
+            if (CLASSES.equals(previous.getName()) &&
WEB_INF.equals(current.getName())) {
+                String path =
file.getAbsolutePath().replaceFirst(previous.getAbsolutePath(), "");
+                if (path.startsWith(File.separator)) {
+                    path = path.substring(File.separator.length());
+                }
+                if (path.endsWith(File.separator)) {
+                    path = path.substring(0, path.length() - 1);
+                }
+
+                return path + File.separator;
+            }
+
+            previous = current;
+            current = current.getParentFile();
+        }
+
+        return ""; // no subpackage found
+    }
+
     @Override
     protected void processAnnotationsUrl(URL url, WebXml fragment, boolean
handlesTypeOnly) {
         logger.debug("processAnnotationsUrl " + url);