Petals Distribution

Move from Java 6 to Java 7

Details

  • Type: Task Task
  • Status: Resolved Resolved
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 4.2.3
  • Fix Version/s: 5.0.0-M1
  • Component/s: None
  • Security Level: Public
  • Environment:
    -

Issue Links

Activity

Hide
Victor NOËL added a comment - Tue, 3 Mar 2015 - 10:06:34 +0100

Everything should be ok now.

Show
Victor NOËL added a comment - Tue, 3 Mar 2015 - 10:06:34 +0100 Everything should be ok now.
Hide
Victor NOËL added a comment - Wed, 11 Feb 2015 - 14:45:48 +0100

So in the end, I kept the dependencies to xerces and xalan as we are not sure if they are used as in Java 7 (through the automatic factories) or if their classes are directly referred to.
Since these dependencies does not conflict in term of classpath with Java 7, it should be ok.

We also put back the activation dependency because Java 7 is missing some mimetypes file in its distribution (see: https://bugs.openjdk.java.net/browse/JDK-7096063) and this jar includes them.
An alternative would have been to ship these files directly, but for clarity of the change, we preferred to bring the whole dependency.

The PetalsLauncherClassLoader (previously PetalsClassLoader) was cleaned, and documented to clarify its usefulness.

Show
Victor NOËL added a comment - Wed, 11 Feb 2015 - 14:45:48 +0100 So in the end, I kept the dependencies to xerces and xalan as we are not sure if they are used as in Java 7 (through the automatic factories) or if their classes are directly referred to. Since these dependencies does not conflict in term of classpath with Java 7, it should be ok. We also put back the activation dependency because Java 7 is missing some mimetypes file in its distribution (see: https://bugs.openjdk.java.net/browse/JDK-7096063) and this jar includes them. An alternative would have been to ship these files directly, but for clarity of the change, we preferred to bring the whole dependency. The PetalsLauncherClassLoader (previously PetalsClassLoader) was cleaned, and documented to clarify its usefulness.
Hide
Victor NOËL added a comment - Mon, 9 Feb 2015 - 17:43:02 +0100 - edited

I'm not talking about org.ow2.petals.microkernel.system.classloader.PetalsClassLoader but about org.ow2.petals.launcher.PetalsClassLoader

Show
Victor NOËL added a comment - Mon, 9 Feb 2015 - 17:43:02 +0100 - edited I'm not talking about org.ow2.petals.microkernel.system.classloader.PetalsClassLoader but about org.ow2.petals.launcher.PetalsClassLoader
Hide
Christophe DENEUX added a comment - Mon, 9 Feb 2015 - 17:10:45 +0100

PetalsClassLoader has been introduced to have the classloaders of JBI components inherited from the system classloader. A JBI component classloader has no dependency on Petals containers library except the JBI API.

Show
Christophe DENEUX added a comment - Mon, 9 Feb 2015 - 17:10:45 +0100 PetalsClassLoader has been introduced to have the classloaders of JBI components inherited from the system classloader. A JBI component classloader has no dependency on Petals containers library except the JBI API.
Hide
Victor NOËL added a comment - Mon, 9 Feb 2015 - 17:01:15 +0100

There is a class org.ow2.petals.launcher.PetalsClassLoader that seems to do things that are not needed anymore such as using a specific classloader to load classes from the microkernel first, than from the jar from the lib and extensions directory.

I'm not sure yet what should remain there or what could simply be part of the normal Java classpath (the one declared on the command-line).
For example I suspect that jars in the lib directory don't need to be loaded in such a special way.
But I also suspect that the way the extensions dependencies are loaded is not very satisfactory: at best it would be better to have one directory per extension and that each extension has its own classloader so that there is no conflict between them.
But all of that are just ideas for now, this should be discussed.

Show
Victor NOËL added a comment - Mon, 9 Feb 2015 - 17:01:15 +0100 There is a class org.ow2.petals.launcher.PetalsClassLoader that seems to do things that are not needed anymore such as using a specific classloader to load classes from the microkernel first, than from the jar from the lib and extensions directory. I'm not sure yet what should remain there or what could simply be part of the normal Java classpath (the one declared on the command-line). For example I suspect that jars in the lib directory don't need to be loaded in such a special way. But I also suspect that the way the extensions dependencies are loaded is not very satisfactory: at best it would be better to have one directory per extension and that each extension has its own classloader so that there is no conflict between them. But all of that are just ideas for now, this should be discussed.
Hide
Christophe DENEUX added a comment - Mon, 9 Feb 2015 - 15:48:03 +0100

What do you want to say with "remove PetalsClassloader needed to load jaxb lib first..." ?

Show
Christophe DENEUX added a comment - Mon, 9 Feb 2015 - 15:48:03 +0100 What do you want to say with "remove PetalsClassloader needed to load jaxb lib first..." ?
Hide
Vincent Zurczak added a comment - Mon, 9 Feb 2015 - 15:40:49 +0100

From an (almost) external point of view, this looks like a good step ahead.
Welcome in the present.

Tests should also be run against OpenJDK 7.

Show
Vincent Zurczak added a comment - Mon, 9 Feb 2015 - 15:40:49 +0100 From an (almost) external point of view, this looks like a good step ahead. Welcome in the present. Tests should also be run against OpenJDK 7.

People

Dates

  • Created:
    Mon, 9 Feb 2015 - 15:25:19 +0100
    Updated:
    Tue, 1 Dec 2015 - 09:35:48 +0100
    Resolved:
    Tue, 3 Mar 2015 - 10:06:34 +0100