Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
maven-bundle-plugin-2.3.5
-
None
Description
I as part of a refactoring a project is moving some classes from a package org.acme.foo from bundle A to a separate bundle B.
Unfortunately its not possible to move all the classes to the separate bundle so this introduces a split package. Both bundle A and bundle B export package org.acme.foo.
Bundle A has a maven dependency on bundle B.
What happens at the moment with the Maven Bundle Plugin 2.3.4 (we can't use 2.3.5 as it has FELIX-3058 ) is that all the classes from org.acme.foo that exist in bundle B are copied into the resulting bundle A.
Below the pom.xml of a test-setup that I created. Both the current project as well as ascii-pics-api-bundle-mbp dependency contain the org.coderthouhts.asciipics.impl package.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.coderthoughts</groupId>
<artifactId>ascii-pics-parent-mbp</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>ascii-pics-provider-bundle-mbp</artifactId>
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>org.coderthoughts</groupId>
<artifactId>ascii-pics-api-bundle-mbp</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>4.2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.name}</Bundle-SymbolicName>
<Bundle-Activator>org.coderthoughts.asciipics.Activator</Bundle-Activator>
<Export-Package>org.coderthoughts.asciipics.impl;-split-package:=first</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>