From b42818e29a9355777d489a08e7531ba04049981a Mon Sep 17 00:00:00 2001
From: Luc Maisonobe <luc@orekit.org>
Date: Fri, 30 Jan 2015 10:55:10 +0100
Subject: [PATCH] Ensure jar plugin creates the MANIFEST file instead of bundle
 plugin.

Ensure LICENSE and NOTICE files are available in the binary jar.

Added a build number to the MANIFEST.
---
 pom.xml | 92 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 70 insertions(+), 22 deletions(-)

diff --git a/pom.xml b/pom.xml
index 81f80802..690f3b55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
   <groupId>org.orekit</groupId>
   <artifactId>rugged</artifactId>
   <version>1.0-SNAPSHOT</version>
-  <packaging>bundle</packaging>
+  <packaging>jar</packaging>
   <name>Rugged</name>
 
   <inceptionYear>2014</inceptionYear>
@@ -17,28 +17,30 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-    <maven.compiler.source>1.6</maven.compiler.source>
-    <maven.compiler.target>1.6</maven.compiler.target>
-    <rugged.maven-compiler-plugin.version>3.2</rugged.maven-compiler-plugin.version>
-    <rugged.maven-jar-plugin.version>2.5</rugged.maven-jar-plugin.version>
-    <rugged.maven-assembly-plugin.version>2.5.2</rugged.maven-assembly-plugin.version>
+    <rugged.findbugs-maven-plugin.version>3.0.0</rugged.findbugs-maven-plugin.version>
+    <rugged.jacoco-maven-plugin.version>0.7.2.201409121644</rugged.jacoco-maven-plugin.version>
+    <rugged.maven-assembly-plugin.version>2.5.3</rugged.maven-assembly-plugin.version>
     <rugged.maven-bundle-plugin.version>2.5.3</rugged.maven-bundle-plugin.version>
-    <rugged.maven-resources-plugin.version>2.7</rugged.maven-resources-plugin.version>
+    <rugged.maven-changes-plugin.version>2.11</rugged.maven-changes-plugin.version>
+    <rugged.maven-checkstyle-plugin.version>2.13</rugged.maven-checkstyle-plugin.version>
     <rugged.maven-clean-plugin.version>2.6.1</rugged.maven-clean-plugin.version>
-    <rugged.jacoco-maven-plugin.version>0.7.2.201409121644</rugged.jacoco-maven-plugin.version>
+    <rugged.maven-compiler-plugin.version>3.2</rugged.maven-compiler-plugin.version>
+    <rugged.maven-javadoc-plugin.version>2.10.1</rugged.maven-javadoc-plugin.version>
+    <rugged.maven-jar-plugin.version>2.5</rugged.maven-jar-plugin.version>
+    <rugged.maven-jxr-plugin.version>2.5</rugged.maven-jxr-plugin.version>
     <rugged.maven-plantuml-plugin.version>7940</rugged.maven-plantuml-plugin.version>
-    <rugged.plantuml.version>7999</rugged.plantuml.version>
+    <rugged.maven-project-info-reports-plugin.version>2.7</rugged.maven-project-info-reports-plugin.version>
     <rugged.maven-site-plugin.version>3.4</rugged.maven-site-plugin.version>
-    <rugged.findbugs-maven-plugin.version>3.0.0</rugged.findbugs-maven-plugin.version>
-    <rugged.maven-surefire-plugin.version>2.18</rugged.maven-surefire-plugin.version>
-    <rugged.maven-surefire-report-plugin.version>2.18</rugged.maven-surefire-report-plugin.version>
-    <rugged.maven-checkstyle-plugin.version>2.13</rugged.maven-checkstyle-plugin.version>
-    <rugged.maven-changes-plugin.version>2.11</rugged.maven-changes-plugin.version>
-    <rugged.maven-jxr-plugin.version>2.5</rugged.maven-jxr-plugin.version>
-    <rugged.maven-javadoc-plugin.version>2.10.1</rugged.maven-javadoc-plugin.version>
     <rugged.maven-source-plugin.version>2.4</rugged.maven-source-plugin.version>
+    <rugged.maven-surefire-plugin.version>2.18.1</rugged.maven-surefire-plugin.version>
+    <rugged.maven-surefire-report-plugin.version>2.18.1</rugged.maven-surefire-report-plugin.version>
+    <rugged.jgit.buildnumber.version>1.2.8</rugged.jgit.buildnumber.version>
+    <rugged.plantuml.version>7999</rugged.plantuml.version>
+    <rugged.compiler.source>1.6</rugged.compiler.source>
+    <rugged.compiler.target>1.6</rugged.compiler.target>
+    <rugged.maven-resources-plugin.version>2.7</rugged.maven-resources-plugin.version>
+    <rugged.implementation.build>${git.revision}; ${maven.build.timestamp}</rugged.implementation.build>
 
-    <rugged.maven-project-info-reports-plugin.version>2.7</rugged.maven-project-info-reports-plugin.version>
   </properties>
 
   <developers>
@@ -161,6 +163,26 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>${rugged.maven-compiler-plugin.version}</version>
+        <configuration>
+          <source>${rugged.compiler.source}</source>
+          <target>${rugged.compiler.target}</target>
+          <compilerArgument>-Xlint:deprecation</compilerArgument>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>ru.concerteza.buildnumber</groupId>
+        <artifactId>maven-jgit-buildnumber-plugin</artifactId>
+        <version>${rugged.jgit.buildnumber.version}</version>
+        <executions>
+          <execution>
+            <phase>prepare-package</phase>
+            <goals>
+              <goal>extract-buildnumber</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+        </configuration>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -168,10 +190,12 @@
         <version>${rugged.maven-jar-plugin.version}</version>
         <configuration>
           <archive>
-            <manifest>
-              <addClasspath>true</addClasspath>
-              <classpathPrefix>lib/</classpathPrefix>
-            </manifest>
+            <manifestFile>${project.build.directory}/osgi/MANIFEST.MF</manifestFile>
+            <manifestEntries>
+              <Implementation-Build>${rugged.implementation.build}</Implementation-Build>
+              <X-Compile-Source-JDK>${rugged.compiler.source}</X-Compile-Source-JDK>
+              <X-Compile-Target-JDK>${rugged.compiler.target}</X-Compile-Target-JDK>
+            </manifestEntries>
           </archive>
         </configuration>
       </plugin>
@@ -199,6 +223,26 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-resources-plugin</artifactId>
         <version>${rugged.maven-resources-plugin.version}</version>
+        <executions>
+          <execution>
+            <phase>process-resources</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.outputDirectory}/META-INF</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>.</directory>
+                  <includes>
+                    <include>LICENSE.txt</include>
+                    <include>NOTICE.txt</include>
+                  </includes>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -244,7 +288,7 @@
               </include>
             </includes>
           </sourceFiles>
-          <outputDirectory>${basedir}/target/site/images/design</outputDirectory>
+          <outputDirectory>${project.build.directory}/site/images/design</outputDirectory>
         </configuration>
         <executions>
           <execution>
@@ -268,6 +312,10 @@
         <version>${rugged.maven-bundle-plugin.version}</version>
         <extensions>true</extensions>
         <configuration>
+          <archive>
+            <forced>true</forced>
+          </archive>
+          <manifestLocation>${project.build.directory}/osgi</manifestLocation>
           <instructions>
             <Export-Package>org.orekit.rugged.api.*;version=${project.version};-noimport:=true</Export-Package>
             <Bundle-DocURL>${project.url}</Bundle-DocURL>
-- 
GitLab