You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by dw...@apache.org on 2010/02/12 21:22:32 UTC
svn commit: r909595 - /openjpa/trunk/openjpa-osgi/pom.xml
Author: dwoods
Date: Fri Feb 12 20:22:29 2010
New Revision: 909595
URL: http://svn.apache.org/viewvc?rev=909595&view=rev
Log:
merge in updates from trunk/openjpa/pom.xml and waiting for testing from Apache Aries before merging into openjpa/pom.xml
Modified:
openjpa/trunk/openjpa-osgi/pom.xml
Modified: openjpa/trunk/openjpa-osgi/pom.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-osgi/pom.xml?rev=909595&r1=909594&r2=909595&view=diff
==============================================================================
--- openjpa/trunk/openjpa-osgi/pom.xml (original)
+++ openjpa/trunk/openjpa-osgi/pom.xml Fri Feb 12 20:22:29 2010
@@ -24,7 +24,7 @@
<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>
<artifactId>openjpa-osgi</artifactId>
- <packaging>jar</packaging>
+ <packaging>bundle</packaging>
<name>OpenJPA Aggregate Jar for OSGi</name>
<parent>
<groupId>org.apache.openjpa</groupId>
@@ -34,219 +34,219 @@
<build>
<plugins>
+ <!--
+ Need to disable source plugin here, as it overwrites the shade
+ plugin created sources jar.
+ -->
<plugin>
- <!--
- Manually build an aggregate jar of all the other
- openjpa-* jars using ant. We cannot use the assembly
- plugin, since it doesn't provide support for appending
- multiple same-named files to each other (which is
- required for correctly aggregating services files).
- -->
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- Create our aggregate JAR -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
- <id>build-single-jar</id>
- <phase>compile</phase>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
<configuration>
- <tasks>
- <unjar overwrite="false" dest="${basedir}/target/classes">
- <fileset dir="${basedir}/..">
- <include name="*/target/openjpa-*.jar" />
- <exclude name="*/target/openjpa-2*.jar" />
- <exclude name="*/target/openjpa-all-*.jar" />
- <exclude name="*/target/openjpa-examples-*.jar" />
- <exclude name="**/*-tests.jar" />
- <exclude name="**/*-sources.jar" />
- <exclude name="**/*-javadoc.jar" />
- <exclude name="openjpa-integration/**/target/openjpa-all-*.jar" />
- </fileset>
- </unjar>
-
- <!--
- need to manually concatinate the services
- resources so they are aggregated
+ <createDependencyReducedPom>true</createDependencyReducedPom>
+ <createSourcesJar>true</createSourcesJar>
+ <keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>
+ <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+ <!--
+ Specify a subset of depends to include,
+ which must match the <dependencies> section.
+ -->
+ <artifactSet>
+ <includes>
+ <include>org.apache.openjpa:openjpa-lib</include>
+ <include>org.apache.openjpa:openjpa-kernel</include>
+ <include>org.apache.openjpa:openjpa-jdbc</include>
+ <include>org.apache.openjpa:openjpa-persistence</include>
+ <include>org.apache.openjpa:openjpa-persistence-jdbc</include>
+ <include>org.apache.openjpa:openjpa-xmlstore</include>
+ <include>org.apache.openjpa:openjpa-slice</include>
+ </includes>
+ </artifactSet>
+ <!-- OpenJPA unique META-INF setup -->
+ <transformers>
+ <!-- Need to concatinate the services resources:
+ org.apache.openjpa.lib.conf.ProductDerivation
+ javax.persistence.spi.PersistenceProvider
+ org.apache.openjpa.kernel.exps.ExpressionParser
-->
- <macrodef name="aggregate-file">
- <attribute name="servicename" />
- <sequential>
- <echo>Building service: @{servicename}</echo>
- <concat destfile="${basedir}/target/classes/META-INF/services/@{servicename}">
- <fileset dir="${basedir}/.." includes="*/src/main/resources/META-INF/services/@{servicename}" />
- </concat>
- </sequential>
- </macrodef>
-
- <aggregate-file servicename="org.apache.openjpa.lib.conf.ProductDerivation" />
- <aggregate-file servicename="javax.persistence.spi.PersistenceProvider" />
- <aggregate-file servicename="org.apache.openjpa.kernel.exps.ExpressionParser" />
- </tasks>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
+ <!-- Need to add some MANIFEST.MF metadata -->
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+ <manifestEntries>
+ <Main-Class>org.apache.openjpa.conf.OpenJPAVersion</Main-Class>
+ <Premain-Class>org.apache.openjpa.enhance.PCEnhancerAgent</Premain-Class>
+ <Agent-Class>org.apache.openjpa.enhance.InstrumentationFactory</Agent-Class>
+ <Can-Redefine-Classes>true</Can-Redefine-Classes>
+ <Can-Retransform-Classes>true</Can-Retransform-Classes>
+ <Implementation-Title>Apache OpenJPA Aggregate JAR</Implementation-Title>
+ <Specification-Title>JSR-317 Java Persistence</Specification-Title>
+ <Specification-Vendor>Sun Microsystems, Inc.</Specification-Vendor>
+ <Specification-Version>2.0</Specification-Version>
+ </manifestEntries>
+ </transformer>
+ </transformers>
</configuration>
- <goals>
- <goal>run</goal>
- </goals>
</execution>
</executions>
</plugin>
- <!--
- create enhancer pre-main and agent-main attributes
- -->
+ <!-- extract the shaded jar so a bundle can be created -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
- <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
- <manifest>
- <mainClass>org.apache.openjpa.conf.OpenJPAVersion</mainClass>
- </manifest>
- <manifestEntries>
- <Premain-Class>
- org.apache.openjpa.enhance.PCEnhancerAgent
- </Premain-Class>
- <Can-Redefine-Classes>true</Can-Redefine-Classes>
- <Agent-Class>
- org.apache.openjpa.enhance.InstrumentationFactory
- </Agent-Class>
- <Can-Redefine-Classes>true</Can-Redefine-Classes>
- <Can-Retransform-Classes>true</Can-Retransform-Classes>
- </manifestEntries>
- </archive>
- </configuration>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <unzip src="${project.build.directory}/${pom.artifactId}-${pom.version}.jar" dest="${project.build.directory}/classes"/>
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
+ <!-- create an OSGi bundle -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
- <Bundle-Activator>org.apache.openjpa.osgi.PersistenceActivator</Bundle-Activator>
- <Bundle-Name>${artifactId}</Bundle-Name>
- <Bundle-SymbolicName>${groupId}.${artifactId};singleton=true</Bundle-SymbolicName>
- <Bundle-DocURL>http://openjpa.apache.org/documentation.html</Bundle-DocURL>
- <Implementation-Title>Apache OpenJPA</Implementation-Title>
- <Implementation-Version>${project.version}</Implementation-Version>
- <Specification-Title>JSR-317 Java Persistence</Specification-Title>
- <Specification-Vendor>Sun Microsystems, Inc.</Specification-Vendor>
- <Specification-Version>2.0</Specification-Version>
<!-- OSGi Bundle Metadata -->
- <Private-Package>org.openjpa.lib.ant*,org.apache.jdbc.ant*,META-INF*</Private-Package>
- <Export-Package>!META-INF*,!org.openjpa.lib.ant*,!org.apache.jdbc.ant*,org.apache.openjpa*</Export-Package>
- <Import-Package>com.ibm.*;resolution:=optional,org.postgresql.*;resolution:=optional,org.apache.tools.ant.*;resolution:=optional,org.apache.log4j.*;resolution:=optional,javax.activation.xa*;resolution:=optional,javax.jms.*;resolution:=optional,javax.transaction.*;resolution:=optional,javax.validation.*;resolution:=optional,javax.xml.bind.*;resolution:=optional,serp.*;resolution:=optional,*</Import-Package>
- <Require-Bundle>org.apache.geronimo.specs.geronimo-jpa_2.0_spec;bundle-version="[1.0.0,2.0.0)"</Require-Bundle>
- <!-- Eclipse metadata
+ <Bundle-DocURL>${project.url}</Bundle-DocURL>
+ <Bundle-Activator>org.apache.openjpa.osgi.PersistenceActivator</Bundle-Activator>
+ <Private-Package />
+ <Export-Package>org.apache.openjpa.*;version=${pom.version}</Export-Package>
+ <Import-Package>com.ibm.*;resolution:=optional,org.postgresql.*;resolution:=optional,org.apache.tools.ant.*;resolution:=optional,org.apache.log4j.*;resolution:=optional,javax.activation.xa*;resolution:=optional,javax.jms.*;version="[1.1.0,1.2)";resolution:=optional,javax.transaction.*;version="[1.1.0,1.2)";resolution:=optional,javax.validation.*;version="[1.0.0,1.1)";resolution:=optional,javax.xml.bind.*;resolution:=optional,serp.*;resolution:=optional,javax.persistence.*;version="[2.0.0,2.1)",*</Import-Package>
+ <!-- Eclipse metadata -->
<Eclipse-Autostart>false</Eclipse-Autostart>
<Bundle-ClassPath>.</Bundle-ClassPath>
- -->
</instructions>
- <unpackBundle>true</unpackBundle>
</configuration>
- <executions>
- <execution>
- <id>bundle-manifest</id>
- <phase>process-classes</phase>
- <goals>
- <goal>manifest</goal>
- </goals>
- </execution>
- </executions>
</plugin>
</plugins>
</build>
+
<dependencies>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.osgi.core</artifactId>
- <version>1.4.0</version>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.osgi.foundation</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
+ <!-- JARs to include in aggregate JAR via maven-shade-plugin -->
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-lib</artifactId>
<version>${pom.version}</version>
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-kernel</artifactId>
<version>${pom.version}</version>
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-jdbc</artifactId>
<version>${pom.version}</version>
- <scope>provided</scope>
+ <!--
+ Need to exclude jaxb, so the following will not get included
+ as compile depends in the aggregate JAR by the shade plugin:
+ javax.xml.bind:jaxb-api:jar:2.0
+ javax.xml.bind:jsr173_api:jar:1.0
+ javax.activation:activation:jar:1.1
+ com.sun.xml.bind:jaxb-impl:jar:2.0.5
+ -->
+ <exclusions>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- Need to manually add back optional openjpa-jdbc depends -->
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <scope>compile</scope>
+ <optional>true</optional>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jsr173_api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ <scope>compile</scope>
+ <optional>true</optional>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jsr173_api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
+ <!-- end optional openjpa-jdbc depends -->
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-persistence</artifactId>
<version>${pom.version}</version>
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-persistence-jdbc</artifactId>
<version>${pom.version}</version>
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-xmlstore</artifactId>
<version>${pom.version}</version>
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-slice</artifactId>
<version>${pom.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>net.sourceforge.serp</groupId>
- <artifactId>serp</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-pool</groupId>
- <artifactId>commons-pool</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jta_1.1_spec</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jpa_2.0_spec</artifactId>
- </dependency>
- <!-- optional dependencies -->
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jms_1.1_spec</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-validation_1.0_spec</artifactId>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>1.4.0</version>
<scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.foundation</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
</dependencies>
</project>