+1 for the Java-5-Webbeans-Plugin -- Arne Limburg - Enterprise Developer open knowledge GmbH, Oldenburg Bismarckstraße 13, 26122 Oldenburg Mobil: +49 (0) 151 108 22 942 Tel: +49 (0) 441 - 4082-0 Fax: +49 (0) 441 - 4082-111 [email protected] http://www.openknowledge.de
Registergericht: Amtsgericht Oldenburg, HRB 4670 Geschäftsführer: Lars Röwekamp, Jens Schumann ________________________________________ Von: Udo Schnurpfeil [[email protected]] Gesendet: Mittwoch, 8. Juni 2011 13:23 An: [email protected] Betreff: Re: OWB with Java 1.5 and Servlet 2.4 Hi Gerhard, I don't know what the problem is, with the direct dependency. I've marked it as optional in the pom.xml. A Java 1.6 application will run without changes (and not having googlecode in the jar). But I can understand, that there are reasons on principal to have no dependencies to other project. Did I understand you correctly in your first solution approach? Compile the Sources of java.util.ServiceLoader with Java 1.5 and put it into a single JAR File. This might be also not very nice, as a general solution: OWB works with Java 1.5, when you compile some JDK classes. Sadly I don't know the plugin mechanism of OWB, so I can't write an easy patch for that solution. An other solution might be implementing a org.apache.webbeans.util.ServiceLoader and using this instead of the com.googlecode one. This might be the cleanest solution. So we have 4 possibilities: 1) googlecode 2) jdk 1.6 code self compiled in the project 3) plugin 4) writing own service-loader Regards, Udo Am 08.06.11 11:25, schrieb Gerhard Petracek: > hi udo, > > @OWB-582: > using com.googlecode.* directly in owb is imo no good idea. > since the service-loader isn't available in a java 1.5 environment, > you can repackage the service-loader in your project. so we don't have > to change owb itself - you just have an additional jar in your > project. if there is any issue with such an approach, we could create > an owb-plugin for it and you write your own plugin-implementation. > > @OWB-583: > looks fine to me (just had a quick look). > > regards, > gerhard > > 2011/6/8, Udo Schnurpfeil<[email protected]>: >> Hi, >> >> I would like to use OWB on WebSphere 6.1 (similar to Tomcat 5.5) which >> requires Java 1.5 and supports Servlet API 2.4. >> OWB needs Java 1.6 and Servlet API 2.5. >> >> Part 1: Java 1.6 >> >> After a close look into the sources I see, there is one basic dependency >> to Java 1.6: java.util.ServiceLoader >> To solve this problem, I've added a utility class in my local copy and >> delegate calls to ServiceLoader to this utility. >> >> The utility class itself calls ServiceLoader, if the class is available >> (Java 1.6) or uses com.googlecode.bspi.ServiceLoader (Java 1.5). >> So the application needs one new dependency (only in the case of Java 1.5). >> >> I've also changed the maven-compiler-plugin to generate Java 1.5 >> compatible byte code. >> >> Jira: https://issues.apache.org/jira/browse/OWB-582 >> >> Part 2: Servet API 2.5 >> >> Some classes uses the new function ServletContext.getContextPath() for >> logging and giving a thread a useful name. >> >> Here, I also added a utility class, and call >> servletContext.getServletContextName() in the case of Servlet API 2.4 >> >> Jira: https://issues.apache.org/jira/browse/OWB-583 >> >> Conclusion: >> >> There are not many dependencies to the new APIs and there are simple >> workarounds. With this changes (and a similar patch for the >> ServiceLoader in CODI) I'm able to run OWB on WebSpere 6.1 and Tomcat >> 5.5 with Java 1.5. >> >> Any suggestions? >> >> Regards, >> >> Udo >> >> >
