aboutsummaryrefslogtreecommitdiff
path: root/common.xml
diff options
context:
space:
mode:
authorlimpbizkit <limpbizkit@d779f126-a31b-0410-b53b-1d3aecad763e>2008-06-08 23:21:41 +0000
committerlimpbizkit <limpbizkit@d779f126-a31b-0410-b53b-1d3aecad763e>2008-06-08 23:21:41 +0000
commitfe579cfffbb926708e8ba89501f83d3910f020a1 (patch)
tree69f2f47c670ba4a55f0b67745f8677fe47c6be59 /common.xml
parent384958d09ed3e13b825ad002c284894717162308 (diff)
downloadguice-fe579cfffbb926708e8ba89501f83d3910f020a1.tar.gz
Applied Stuart McColloch's patch for issue 121 - making Guice into an OSGi bundle, using BND.
git-svn-id: https://google-guice.googlecode.com/svn/trunk@510 d779f126-a31b-0410-b53b-1d3aecad763e
Diffstat (limited to 'common.xml')
-rw-r--r--common.xml69
1 files changed, 32 insertions, 37 deletions
diff --git a/common.xml b/common.xml
index 6c62660f..402e54d1 100644
--- a/common.xml
+++ b/common.xml
@@ -7,10 +7,7 @@
<!-- can be overridden at the command line with -Dversion=
or in IDEA, in the ant properties dialog -->
<property name="version" value="snapshot"/>
- <property name="bundle.version" value="0.0.0.snapshot"/>
- <tstamp prefix="datestamp">
- <format property="dateAndTime" pattern="yyyy-MM-dd H:mm"/>
- </tstamp>
+ <property name="api.version" value="1.0"/>
<target name="compile" description="Compile Java source.">
<mkdir dir="${build.dir}/classes"/>
@@ -24,39 +21,37 @@
</copy>
</target>
- <target name="manifest"
- description="Build a jar manifest so Guice can be used as an OSGi bundle">
- <dirname property="guice_home" file="${ant.file.common}" />
- <taskdef name="osgiBundleInfo" classname="org.knopflerfish.ant.taskdefs.bundle.BundleInfoTask"
- classpath="${guice_home}/lib/build/OSGiBundleInfo.jar"/>
-
- <!-- extracts the packagelist for OSGi -->
- <osgiBundleInfo exports="exports" imports="imports" defaultimports="com.google.inject"
- stdimports="java.,net.sf.cglib,org.objectweb.asm,com.google.inject.InjectorImpl,com.google.inject.BindCommandProcessor">
- <fileset dir="${basedir}">
- <include name="src/**/*.java"/>
- <!--<exclude name="src/com/google/inject/internal/**/*.java"/>-->
- </fileset>
- </osgiBundleInfo>
-
- <mkdir dir="${build.dir}/META-INF"/>
- <manifest file="${build.dir}/META-INF/MANIFEST.MF">
- <attribute name="Manifest-Version" value="1.0"/>
- <attribute name="Built-By" value="${user.name}"/>
- <attribute name="Built-At" value="${datestamp.dateAndTime}"/>
-
- <attribute name="Bundle-License" value="http://www.apache.org/licenses/LICENSE-2.0"/>
- <attribute name="Import-Package" value="${imports}"/>
- <attribute name="Export-Package" value="${exports}"/>
- <attribute name="Bundle-Version" value="${bundle.version}"/>
- <attribute name="Bundle-Copyright" value="Google Inc. (C) 2006"/>
- <attribute name="Bundle-Name" value="${ant.project.name}"/>
- <attribute name="Bundle-Description" value="Guice is a lightweight dependency injection framework for Java 5 and above"/>
- <attribute name="Bundle-DocURL" value="http://code.google.com/p/google-guice/"/>
- <attribute name="Bundle-Vendor" value="Google Inc."/>
- <attribute name="Bundle-ManifestVersion" value="2"/>
- <attribute name="Bundle-SymbolicName" value="${ant.project.name}"/>
- </manifest>
+ <target name="manifest" description="Generate OSGi manifest." depends="compile">
+ <dirname property="common.basedir" file="${ant.file.common}"/>
+ <taskdef resource="aQute/bnd/ant/taskdef.properties"
+ classpath="${common.basedir}/lib/build/bnd-0.0.255.jar"/>
+
+ <fail unless="module" message="Missing 'module' property (use the primary package name in this jar)"/>
+
+ <property name="Bundle-Name" value="${ant.project.name}"/>
+ <property name="Bundle-SymbolicName" value="${module}"/>
+ <property name="Bundle-Version" value="${replace;${version};^[^0-9];${api.version}.$0}"/>
+
+ <property name="Bundle-Description" value="Guice is a lightweight dependency injection framework for Java 5 and above"/>
+ <property name="Bundle-DocURL" value="http://code.google.com/p/google-guice/"/>
+ <property name="Bundle-Copyright" value="Copyright (C) 2006 Google Inc."/>
+ <property name="Bundle-License" value="http://www.apache.org/licenses/LICENSE-2.0"/>
+ <property name="Bundle-Vendor" value="Google Inc."/>
+
+ <property name="exclude.imports" value=""/>
+ <property name="guice.imports" value="com.google.inject.*;version=${api.version}"/>
+ <property name="Import-Package" value="${exclude.imports},${guice.imports},*;resolution:=optional"/>
+ <property name="Export-Package" value="${module}.*;version=${api.version}"/>
+ <property name="-nouses" value="true"/>
+ <property name="-removeheaders" value="Bnd-LastModified,Ignore-Package,Include-Resource,Private-Package,Tool"/>
+
+ <bndwrap jars="${build.dir}/classes" output="${build.dir}"/>
+
+ <unjar src="${build.dir}/classes.bar" dest="${build.dir}">
+ <patternset>
+ <include name="META-INF/MANIFEST.MF"/>
+ </patternset>
+ </unjar>
</target>
<target name="test.compile"