Uploaded image for project: 'Tuscany'
  1. Tuscany
  2. TUSCANY-3261

Java EE Contribution Itests failing under MAC OS

    Details

      Description

      See: http://markmail.org/thread/fziu2t5eluq4c57f

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                lresende Luciano Resende
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: