I'm still having various issues trying to get a successful top down
1.5.1 build to complete. I'm right now investigating issues with the
contribution-jee and here is what I have found :

OpenEJBExceptions trying to introspect WebArchive :
Caused by: 
org.apache.tuscany.sca.contribution.service.ContributionReadException:
org.apache.openejb.OpenEJBException: Unable to extract jar. error in
opening zip file: error in opening zip file
        at 
org.apache.tuscany.sca.contribution.jee.JavaEEModuleHelper.getMetadataCompleteModules(JavaEEModuleHelper.java:42)
        at 
org.apache.tuscany.sca.contribution.jee.impl.JavaEEIntrospectorImpl.introspectWebArchive(JavaEEIntrospectorImpl.java:80)

This seems like a openEJB bug, Mac OS X are generating temp files with
(+) in the names (e.g
/var/folders/PI/PIxzw8eOGJmebuUgCle+ek+++TI/-Tmp-/temp4648477624506672403.war)
and the code in their DeploymentLoader file tries to decode the file
name causing the plus sign to be substituted by spaces thus causing a
the file path to be invalid and generating a internal exception. The
patch below seems to resolve this problem, but I'm not very familiar
with the OpenEJB code  to calim this is a  proper fix

Index: 
openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
===================================================================
--- openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java  
(revision
810677)
+++ openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java  
(working
copy)
@@ -148,7 +148,8 @@
                 return appModule;
             } else if (WebModule.class.equals(moduleClass)) {
                 String moduleId = toFile(baseUrl).getName();
-                String warPath = URLs.toFilePath(baseUrl);
+                //String warPath = URLs.toFilePath(baseUrl);
+                String warPath = baseUrl.getPath();

                 AppModule appModule = new
AppModule(OpenEJB.class.getClassLoader(), warPath);
                 addWebModule(appModule, warPath,
OpenEJB.class.getClassLoader(), null, moduleId);

The remaining issue (after the fix above) is related to a Unknown
module type when introspecting the jUnit jar.
   org.apache.openejb.config.UnknownModuleTypeException: Unknown
module type: 
url=file:/private/var/folders/PI/PIxzw8eOGJmebuUgCle+ek+++TI/-Tmp-/temp7677330478607518277/junit-4.5.jar

Well, my question here is more why we are packing jUnit-4.5 jar if
this is a test dependency.

-- 
Luciano Resende
http://people.apache.org/~lresende
http://lresende.blogspot.com/

Reply via email to