Skip to content

Commit b3984aa

Browse files
committed
Add 'uses' information to OSGI metadata in MANIFEST.MF
When multiple versions of JNA are present in a single OSGI environment, it can happen that OSGI computes an incorrect dependency chain, which can lead to exceptions like the following: This can be addressed by enriching the Export-Package metadata with ;uses="..." information [1]. Fixes #1487. [1] https://spring.io/blog/2008/10/20/understanding-the-osgi-uses-directive/
1 parent 780facd commit b3984aa

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

build.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,11 @@
470470
<attribute name="Bundle-RequiredExecutionEnvironment" value="JavaSE-1.6"/>
471471
<attribute name="Bundle-Vendor" value="${vendor}"/>
472472
<attribute name="Bundle-ActivationPolicy" value="lazy"/>
473-
<attribute name="Export-Package" value="com.sun.jna;version=${jna.major}.${jna.minor}.${jna.revision}, com.sun.jna.ptr;version=${jna.major}.${jna.minor}.${jna.revision}, com.sun.jna.win32;version=${jna.major}.${jna.minor}.${jna.revision}"/>
473+
<attribute name="Export-Package" value="
474+
com.sun.jna;version=&quot;${osgi.version}&quot;,
475+
com.sun.jna.ptr;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna&quot;,
476+
com.sun.jna.win32;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna&quot;
477+
"/>
474478
<!-- Note that no terminal "*" is included in this list,
475479
which will force failure on unsupported platforms.
476480
-->

contrib/platform/build.xml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -147,20 +147,20 @@
147147
<attribute name="Require-Bundle" value="com.sun.jna;bundle-version=&quot;${osgi.version}&quot;"/>
148148
<attribute name="Export-Package"
149149
value="
150-
com.sun.jna.platform;version=${osgi.version},
151-
com.sun.jna.platform.dnd;version=${osgi.version},
152-
com.sun.jna.platform.linux;version=${osgi.version},
153-
com.sun.jna.platform.mac;version=${osgi.version},
154-
com.sun.jna.platform.unix;version=${osgi.version},
155-
com.sun.jna.platform.unix.aix;version=${osgi.version},
156-
com.sun.jna.platform.unix.solaris;version=${osgi.version},
157-
com.sun.jna.platform.win32;version=${osgi.version},
158-
com.sun.jna.platform.win32.COM;version=${osgi.version},
159-
com.sun.jna.platform.win32.COM.tlb;version=${osgi.version},
160-
com.sun.jna.platform.win32.COM.tlb.imp;version=${osgi.version},
161-
com.sun.jna.platform.win32.COM.util;version=${osgi.version},
162-
com.sun.jna.platform.win32.COM.util.annotation;version=${osgi.version},
163-
com.sun.jna.platform.wince;version=${osgi.version}
150+
com.sun.jna.platform;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna,com.sun.jna.platform.win32&quot;,
151+
com.sun.jna.platform.dnd;version=&quot;${osgi.version}&quot;,
152+
com.sun.jna.platform.linux;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna,com.sun.jna.platform.unix&quot;,
153+
com.sun.jna.platform.mac;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna,com.sun.jna.platform,com.sun.jna.platform.unix,com.sun.jna.ptr&quot;,
154+
com.sun.jna.platform.unix;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna,com.sun.jna.ptr&quot;,
155+
com.sun.jna.platform.unix.aix;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna&quot;,
156+
com.sun.jna.platform.unix.solaris;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna,com.sun.jna.ptr&quot;,
157+
com.sun.jna.platform.win32;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna,com.sun.jna.platform,com.sun.jna.platform.win32.COM,com.sun.jna.ptr,com.sun.jna.win32&quot;,
158+
com.sun.jna.platform.win32.COM;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna,com.sun.jna.platform.win32,com.sun.jna.platform.win32.COM.util,com.sun.jna.ptr,com.sun.jna.win32&quot;,
159+
com.sun.jna.platform.win32.COM.tlb;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna.platform.win32.COM.tlb.imp&quot;,
160+
com.sun.jna.platform.win32.COM.tlb.imp;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna.platform.win32,com.sun.jna.platform.win32.COM&quot;,
161+
com.sun.jna.platform.win32.COM.util;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna,com.sun.jna.platform.win32,com.sun.jna.platform.win32.COM,com.sun.jna.platform.win32.COM.util.annotation,com.sun.jna.ptr&quot;,
162+
com.sun.jna.platform.win32.COM.util.annotation;version=&quot;${osgi.version}&quot;,
163+
com.sun.jna.platform.wince;version=&quot;${osgi.version}&quot;;uses:=&quot;com.sun.jna,com.sun.jna.platform.win32&quot;
164164
"/>
165165
</manifest>
166166
<manifest file="@{target}" mode="update" if:true="@{module-info}">

0 commit comments

Comments
 (0)