You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by li...@io7m.com on 2016/12/04 22:01:18 UTC

Trying to include classes from a non-bundle dependency

Hello.

I have the following project that attempts to produce OSGi bundles from
the distributed LWJGL artifacts:

  https://github.com/io7m/org.lwjgl

Unfortunately, the opengl and openal modules are failing to include
classes and I can't work out why.

The pom correctly includes the native libraries and places them in the
output jar in the place that OSGi runtimes expect to see them, but it
doesn't include any classes even though the classes are on the
classpath and I've specified that I want the package they're in to be
exported:

  https://github.com/io7m/org.lwjgl/blob/develop/org.lwjgl.openal/pom.xml

At packaging time, Maven says:

[INFO] --- maven-bundle-plugin:3.2.0:bundle (default-bundle) @ org.lwjgl ---
[WARNING] Bundle com.io7m.bundles:org.lwjgl:bundle:3.1.0 : Unused Export-Package instructions: [org.lwjgl.*] 

... which is demonstrably false:

$ unzip -l ~/.m2/repository/org/lwjgl/lwjgl-openal/3.1.0/lwjgl-openal-3.1.0.jar
Archive:  /home/someone/.m2/repository/org/lwjgl/lwjgl-openal/3.1.0/lwjgl-openal-3.1.0.jar
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2016-10-30 18:55   META-INF/
      347  2016-10-30 18:55   META-INF/MANIFEST.MF
       42  2016-10-30 18:55   OpenAL.dll.sha1
       42  2016-10-30 18:55   OpenAL32.dll.sha1
       42  2016-10-30 18:55   libopenal.dylib.sha1
       42  2016-10-30 18:55   libopenal.so.sha1
        0  2016-10-30 18:08   org/
        0  2016-10-30 18:09   org/lwjgl/
        0  2016-10-30 18:09   org/lwjgl/openal/
     1427  2016-10-30 18:09   org/lwjgl/openal/AL$1.class
      301  2016-10-30 18:09   org/lwjgl/openal/AL$CapabilitiesState.class
      889  2016-10-30 18:09   org/lwjgl/openal/AL$StaticCapabilitiesState$WriteOnce.class
     2454  2016-10-30 18:09   org/lwjgl/openal/AL$StaticCapabilitiesState.class
     1051  2016-10-30 18:09   org/lwjgl/openal/AL$TLCapabilitiesState.class
     6272  2016-10-30 18:09   org/lwjgl/openal/AL.class
...

The plugin execution *is* definitely being executed because the produced
bundle contains the binaries I unpacked:

$ unzip -l org.lwjgl.openal/target/org.lwjgl.openal-3.1.0.jar 
Archive:  org.lwjgl.openal/target/org.lwjgl.openal-3.1.0.jar
  Length      Date    Time    Name
---------  ---------- -----   ----
     1095  2016-12-04 21:57   META-INF/MANIFEST.MF
        0  2016-12-04 21:57   META-INF/
        0  2016-12-04 21:57   META-INF/maven/
        0  2016-12-04 21:57   META-INF/maven/com.io7m.bundles/
        0  2016-12-04 21:57   META-INF/maven/com.io7m.bundles/org.lwjgl.openal/
      141  2016-12-04 21:57   META-INF/maven/com.io7m.bundles/org.lwjgl.openal/pom.properties
     6525  2016-12-04 21:48   META-INF/maven/com.io7m.bundles/org.lwjgl.openal/pom.xml
        0  2016-12-04 21:57   natives/
        0  2016-12-04 21:57   natives/linux/
        0  2016-12-04 21:57   natives/linux/x86_64/
   635048  2016-10-24 17:52   natives/linux/x86_64/libopenal.so
        0  2016-12-04 21:57   natives/osx/
        0  2016-12-04 21:57   natives/osx/x86_64/
   576828  2016-10-24 18:19   natives/osx/x86_64/libopenal.dylib
        0  2016-12-04 21:57   natives/windows/
        0  2016-12-04 21:57   natives/windows/x86/
   683008  2016-10-24 17:53   natives/windows/x86/OpenAL32.dll
        0  2016-12-04 21:57   natives/windows/x86_64/
   785920  2016-10-24 17:52   natives/windows/x86_64/OpenAL.dll

How can I get the plugin to work correctly?

M

Re: Trying to include classes from a non-bundle dependency

Posted by li...@io7m.com.
On 2016-12-05T07:16:46 +0000
Felix Meschberger <fm...@adobe.com> wrote:

> Hi
> 
> You might want to use the Embed-Dependency [1] instruction to make sure the openal library is embeded into your bundle.
> 

Thanks, will try it now.

M

Re: Trying to include classes from a non-bundle dependency

Posted by Felix Meschberger <fm...@adobe.com>.
Hi

You might want to use the Embed-Dependency [1] instruction to make sure the openal library is embeded into your bundle.

Regards
Felix

[1] http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html#embedding-dependencies

Am 04.12.2016 um 23:01 schrieb list+org.apache.felix@io7m.com<ma...@io7m.com>:

Hello.

I have the following project that attempts to produce OSGi bundles from
the distributed LWJGL artifacts:

 https://github.com/io7m/org.lwjgl

Unfortunately, the opengl and openal modules are failing to include
classes and I can't work out why.

The pom correctly includes the native libraries and places them in the
output jar in the place that OSGi runtimes expect to see them, but it
doesn't include any classes even though the classes are on the
classpath and I've specified that I want the package they're in to be
exported:

 https://github.com/io7m/org.lwjgl/blob/develop/org.lwjgl.openal/pom.xml

At packaging time, Maven says:

[INFO] --- maven-bundle-plugin:3.2.0:bundle (default-bundle) @ org.lwjgl ---
[WARNING] Bundle com.io7m.bundles:org.lwjgl:bundle:3.1.0 : Unused Export-Package instructions: [org.lwjgl.*]

... which is demonstrably false:

$ unzip -l ~/.m2/repository/org/lwjgl/lwjgl-openal/3.1.0/lwjgl-openal-3.1.0.jar
Archive:  /home/someone/.m2/repository/org/lwjgl/lwjgl-openal/3.1.0/lwjgl-openal-3.1.0.jar
 Length      Date    Time    Name
---------  ---------- -----   ----
       0  2016-10-30 18:55   META-INF/
     347  2016-10-30 18:55   META-INF/MANIFEST.MF
      42  2016-10-30 18:55   OpenAL.dll.sha1
      42  2016-10-30 18:55   OpenAL32.dll.sha1
      42  2016-10-30 18:55   libopenal.dylib.sha1
      42  2016-10-30 18:55   libopenal.so.sha1
       0  2016-10-30 18:08   org/
       0  2016-10-30 18:09   org/lwjgl/
       0  2016-10-30 18:09   org/lwjgl/openal/
    1427  2016-10-30 18:09   org/lwjgl/openal/AL$1.class
     301  2016-10-30 18:09   org/lwjgl/openal/AL$CapabilitiesState.class
     889  2016-10-30 18:09   org/lwjgl/openal/AL$StaticCapabilitiesState$WriteOnce.class
    2454  2016-10-30 18:09   org/lwjgl/openal/AL$StaticCapabilitiesState.class
    1051  2016-10-30 18:09   org/lwjgl/openal/AL$TLCapabilitiesState.class
    6272  2016-10-30 18:09   org/lwjgl/openal/AL.class
...

The plugin execution *is* definitely being executed because the produced
bundle contains the binaries I unpacked:

$ unzip -l org.lwjgl.openal/target/org.lwjgl.openal-3.1.0.jar
Archive:  org.lwjgl.openal/target/org.lwjgl.openal-3.1.0.jar
 Length      Date    Time    Name
---------  ---------- -----   ----
    1095  2016-12-04 21:57   META-INF/MANIFEST.MF
       0  2016-12-04 21:57   META-INF/
       0  2016-12-04 21:57   META-INF/maven/
       0  2016-12-04 21:57   META-INF/maven/com.io7m.bundles/
       0  2016-12-04 21:57   META-INF/maven/com.io7m.bundles/org.lwjgl.openal/
     141  2016-12-04 21:57   META-INF/maven/com.io7m.bundles/org.lwjgl.openal/pom.properties
    6525  2016-12-04 21:48   META-INF/maven/com.io7m.bundles/org.lwjgl.openal/pom.xml
       0  2016-12-04 21:57   natives/
       0  2016-12-04 21:57   natives/linux/
       0  2016-12-04 21:57   natives/linux/x86_64/
  635048  2016-10-24 17:52   natives/linux/x86_64/libopenal.so
       0  2016-12-04 21:57   natives/osx/
       0  2016-12-04 21:57   natives/osx/x86_64/
  576828  2016-10-24 18:19   natives/osx/x86_64/libopenal.dylib
       0  2016-12-04 21:57   natives/windows/
       0  2016-12-04 21:57   natives/windows/x86/
  683008  2016-10-24 17:53   natives/windows/x86/OpenAL32.dll
       0  2016-12-04 21:57   natives/windows/x86_64/
  785920  2016-10-24 17:52   natives/windows/x86_64/OpenAL.dll

How can I get the plugin to work correctly?

M