[pkg-java] r8184 - in trunk/maven-repo-helper: . debian src/main/java/org/debian/maven/repo src/main/share src/test/java/org/debian/maven/repo

Ludovic Claude ludovicc-guest at alioth.debian.org
Fri Apr 10 17:28:26 UTC 2009


Author: ludovicc-guest
Date: 2009-04-10 17:28:26 +0000 (Fri, 10 Apr 2009)
New Revision: 8184

Added:
   trunk/maven-repo-helper/debian/maven-repo-helper.postinst
   trunk/maven-repo-helper/debian/maven-repo-helper.postrm
   trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/TestBase.java
Modified:
   trunk/maven-repo-helper/debian/changelog
   trunk/maven-repo-helper/debian/control
   trunk/maven-repo-helper/debian/rules
   trunk/maven-repo-helper/pom.xml
   trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/DebianPOM.java
   trunk/maven-repo-helper/src/main/share/postrm.tmpl
   trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/DebianPOMTest.java
   trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/POMCleanerTest.java
Log:
* Deploy the jar and the pom to the Maven repository

Modified: trunk/maven-repo-helper/debian/changelog
===================================================================
--- trunk/maven-repo-helper/debian/changelog	2009-04-08 09:32:30 UTC (rev 8183)
+++ trunk/maven-repo-helper/debian/changelog	2009-04-10 17:28:26 UTC (rev 8184)
@@ -1,4 +1,4 @@
-maven-repo-helper (0.1) jaunty; urgency=low
+maven-repo-helper (0.1) unstable; urgency=low
 
   * Initial release. (Closes: #521947)
 

Modified: trunk/maven-repo-helper/debian/control
===================================================================
--- trunk/maven-repo-helper/debian/control	2009-04-08 09:32:30 UTC (rev 8183)
+++ trunk/maven-repo-helper/debian/control	2009-04-10 17:28:26 UTC (rev 8184)
@@ -7,10 +7,33 @@
 Standards-Version: 3.8.1
 Vcs-Bzr: lp:~ludovicc/maven-packaging-support/maven-repo-helper
 Vcs-Browser: http://bazaar.launchpad.net/~ludovicc/maven-packaging-support/maven-repo-helper/files
-Homepage: https://code.launchpad.net/maven-packaging-support/
+Homepage: https://launchpad.net/maven-packaging-support
 
 Package: maven-repo-helper
 Architecture: all
 Depends: ${misc:Depends}, default-jre-headless | java2-runtime-headless
-Description: Provides support for managing the Maven repository in a Debian distribution.
+Suggests: maven-debian-helper
+Description: Helper tools for including Maven metatada in Debian packages
+ Maven is a software project management and comprehension tool. Based on the
+ concept of a project object model (POM), Maven can manage a project's build,
+ reporting and documentation from a central piece of information.
  .
+ Maven's primary goal is to allow a developer to comprehend the complete
+ state of a development effort in the shortest period of time. In order to
+ attain this goal there are several areas of concern that Maven attempts
+ to deal with:
+ .
+    * Making the build process easy
+    * Providing a uniform build system
+    * Providing quality project information
+    * Providing guidelines for best practices development
+    * Allowing transparent migration to new features
+ .
+ This package enables Debian packages which are not using Maven in their
+ build process to provide and install Maven POMs and libraries in the
+ repository located in /usr/share/maven-repo.
+ .
+ Packages built with Maven (using maven-debian-helper) will benefit as
+ many of their dependencies are already packaged in Debian but they are
+ missing the necessary metadata (Maven POM) which is required by Maven
+ when its using dependencies.

Added: trunk/maven-repo-helper/debian/maven-repo-helper.postinst
===================================================================
--- trunk/maven-repo-helper/debian/maven-repo-helper.postinst	                        (rev 0)
+++ trunk/maven-repo-helper/debian/maven-repo-helper.postinst	2009-04-10 17:28:26 UTC (rev 8184)
@@ -0,0 +1,45 @@
+#!/bin/sh -e
+
+DEBIAN_POM="/usr/share/maven-repo/org/debian/debian-parent/1.0-SNAPSHOT/debian-parent-1.0-SNAPSHOT.pom"
+
+LIBRARIES="org.debian.maven.maven-repo-helper 0.1"
+PACKAGE="maven-repo-helper"
+
+if [ ! -f $DEBIAN_POM ]; then
+    mkdir -p $(dirname $DEBIAN_POM)
+    echo "<?xml version="1.0" encoding="UTF-8"?>" > $DEBIAN_POM
+    echo "<project>"  >> $DEBIAN_POM
+    echo "  <groupId>org.debian</groupId>"  >> $DEBIAN_POM
+    echo "  <artifactId>debian-parent</artifactId>"  >> $DEBIAN_POM
+    echo "  <version>1.0-SNAPSHOT</version>"  >> $DEBIAN_POM
+    echo "  <properties>"  >> $DEBIAN_POM
+    echo "  </properties>"  >> $DEBIAN_POM
+    echo "</project>"  >> $DEBIAN_POM
+fi
+
+add_repo_property() {
+    VERSION_PROPERTY=$1
+    LIBVER=$2
+    if [ $(grep "<${VERSION_PROPERTY}\.version>" $DEBIAN_POM) ]; then
+        # Update version
+        cat $DEBIAN_POM | sed "s,<${VERSION_PROPERTY}\.version>.*</,<${VERSION_PROPERTY}.version>$LIBVER</," > pom.tmp
+    else
+        cat $DEBIAN_POM | grep -v "</properties>" | grep -v "</project>" > pom.tmp
+        echo "    <${VERSION_PROPERTY}.package>$PACKAGE</${VERSION_PROPERTY}.package>" >> pom.tmp
+        echo "    <${VERSION_PROPERTY}.version>$LIBVER</${VERSION_PROPERTY}.version>" >> pom.tmp
+        echo "  </properties>"  >> pom.tmp
+        echo "</project>"  >> pom.tmp
+    fi
+    rm $DEBIAN_POM
+    mv pom.tmp $DEBIAN_POM
+}
+
+if [ "$1" = "configure" ]; then
+    echo $LIBRARIES | tr ',' '\n' | while read VERSION_PROPERTY LIBVER; do
+        if [ ! -z "$VERSION_PROPERTY" ]; then
+            add_repo_property $VERSION_PROPERTY $LIBVER
+        fi
+    done
+fi
+
+#DEBHELPER#
\ No newline at end of file

Added: trunk/maven-repo-helper/debian/maven-repo-helper.postrm
===================================================================
--- trunk/maven-repo-helper/debian/maven-repo-helper.postrm	                        (rev 0)
+++ trunk/maven-repo-helper/debian/maven-repo-helper.postrm	2009-04-10 17:28:26 UTC (rev 8184)
@@ -0,0 +1,48 @@
+#!/bin/sh -e
+
+DEBIAN_POM="/usr/share/maven-repo/org/debian/debian-parent/1.0-SNAPSHOT/debian-parent-1.0-SNAPSHOT.pom"
+
+LIBRARIES="org.debian.maven.maven-repo-helper 0.1"
+
+remove_repo_property() {
+    VERSION_PROPERTY=$1
+    cat $DEBIAN_POM | grep -v "<$VERSION_PROPERTY" > pom.tmp
+    rm $DEBIAN_POM
+    mv pom.tmp $DEBIAN_POM
+}
+
+properties_start_tag_line() {
+    grep -n "<properties>" $DEBIAN_POM | cut -d':' -f1
+}
+
+properties_end_tag_line() {
+    grep -n "</properties>" $DEBIAN_POM | cut -d':' -f1
+}
+
+case "$1" in
+  remove|purge)
+    echo $LIBRARIES | tr ',' '\n' | while read VERSION_PROPERTY LIBVER; do
+        if [ ! -z "$VERSION_PROPERTY" ]; then
+            remove_repo_property $VERSION_PROPERTY
+        fi
+    done
+    # Detect if DEBIAN_POM is empty
+    TAG_START=$(properties_start_tag_line)
+    TAG_END=$(properties_end_tag_line)
+    if [ $(($TAG_START+1)) -eq $TAG_END ]; then
+        rm $DEBIAN_POM
+        rmdir --ignore-fail-on-non-empty -p $(dirname $DEBIAN_POM)
+    fi
+    ;;
+
+  upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    # Nothing to do here
+    ;;
+
+  *)
+    echo "$0 called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+#DEBHELPER#
\ No newline at end of file

Modified: trunk/maven-repo-helper/debian/rules
===================================================================
--- trunk/maven-repo-helper/debian/rules	2009-04-08 09:32:30 UTC (rev 8183)
+++ trunk/maven-repo-helper/debian/rules	2009-04-10 17:28:26 UTC (rev 8184)
@@ -30,14 +30,21 @@
 build/$(PACKAGE):: man-pages
 
 binary-post-install/$(PACKAGE)::
-	dh_install -p$(PACKAGE) build/$(PACKAGE)-$(VERSION).jar /usr/share/java
+	dh_install -p$(PACKAGE) build/$(PACKAGE)-$(VERSION).jar /usr/share/maven-repo/org/debian/maven/$(PACKAGE)/$(VERSION)
 	dh_install -p$(PACKAGE) src/main/bin /usr
 	dh_install -p$(PACKAGE) src/main/share/* /usr/share/$(PACKAGE)
-	dh_link -p$(PACKAGE) /usr/share/java/$(PACKAGE)-$(VERSION).jar /usr/share/java/$(PACKAGE).jar
+	dh_link -p$(PACKAGE) /usr/share/maven-repo/org/debian/maven/$(PACKAGE)/$(VERSION)/$(PACKAGE)-$(VERSION).jar /usr/share/java/$(PACKAGE).jar
 	dh_link -p$(PACKAGE) /usr/share/$(PACKAGE)/postinst.tmpl /usr/share/debhelper/autoscripts/postinst-maven-repo
 	dh_link -p$(PACKAGE) /usr/share/$(PACKAGE)/postrm.tmpl /usr/share/debhelper/autoscripts/postrm-maven-repo
 	dh_installman $(MAN_PAGES)
+	mkdir -p debian/tmp
+	java -cp build/$(PACKAGE)-$(VERSION).jar org.debian.maven.repo.POMCleaner --debian-parent pom.xml debian/tmp/$(PACKAGE)-$(VERSION).pom debian/tmp/pom.properties debian/tmp/versions.properties
+	dh_install -p$(PACKAGE) --sourcedir=debian/tmp $(PACKAGE)-$(VERSION).pom \
+		usr/share/maven-repo/org/debian/maven/$(PACKAGE)/$(VERSION)
 
+clean::
+	-rm -r debian/tmp
+
 $(SCRIPTS):
 	help2man $(basename )
 	

Modified: trunk/maven-repo-helper/pom.xml
===================================================================
--- trunk/maven-repo-helper/pom.xml	2009-04-08 09:32:30 UTC (rev 8183)
+++ trunk/maven-repo-helper/pom.xml	2009-04-10 17:28:26 UTC (rev 8184)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <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>
-    <groupId>org.debian</groupId>
+    <groupId>org.debian.maven</groupId>
     <artifactId>maven-repo-helper</artifactId>
     <name>Maven Repo helper</name>
     <packaging>jar</packaging>
@@ -10,7 +10,7 @@
         Provides support for managing the Maven repository in a Debian distribution.
     </description>
 
-    <inceptionYear>2001</inceptionYear>
+    <inceptionYear>2009</inceptionYear>
     <url>https://code.launchpad.net/maven-packaging-support/</url>
     <licenses>
         <license>
@@ -49,6 +49,14 @@
                     <target>1.5</target>
                 </configuration>
             </plugin>
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                  <includes>
+                    <include>**/*Test.java</include>
+                  </includes>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 

Modified: trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/DebianPOM.java
===================================================================
--- trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/DebianPOM.java	2009-04-08 09:32:30 UTC (rev 8183)
+++ trunk/maven-repo-helper/src/main/java/org/debian/maven/repo/DebianPOM.java	2009-04-10 17:28:26 UTC (rev 8184)
@@ -118,8 +118,8 @@
                 parser.close();
             }
 
-            for (Iterator i = remainingProperties.entrySet().iterator(); i.hasNext(); ) {
-                Map.Entry entry = (Map.Entry)i.next();
+            for (Iterator i = remainingProperties.entrySet().iterator(); i.hasNext();) {
+                Map.Entry entry = (Map.Entry) i.next();
                 writer.writeCharacters("\n\t\t");
                 writer.writeStartElement((String) entry.getKey());
                 writer.writeCharacters((String) entry.getValue());
@@ -258,31 +258,27 @@
     }
 
     public static void main(String[] args) {
-        try {
-            DebianPOM dp = new DebianPOM();
-            File pom = new File(args[1]);
-            File updatedPom = File.createTempFile("pom", "tmp");
+        DebianPOM dp = new DebianPOM();
+        File pom = new File(args[1]);
+        File updatedPom = new File(args[1] + ".tmp");
 
-            if (args[0].equals("add")) {
-                String property = args[2];
-                String version = args[3];
-                String pkg = args[4];
+        if (args[0].equals("add")) {
+            String property = args[2];
+            String version = args[3];
+            String pkg = args[4];
 
-                Map properties = new HashMap();
-                properties.put(property + ".version", version);
-                properties.put(property + ".package", pkg);
-                dp.addLibrary(pom, updatedPom, properties);
+            Map properties = new HashMap();
+            properties.put(property + ".version", version);
+            properties.put(property + ".package", pkg);
+            dp.addLibrary(pom, updatedPom, properties);
 
-            } else if (args[0].equals("remove")) {
-                String property = args[2];
-                dp.removeLibrary(pom, updatedPom, property + ".version", property + ".package");
-            } else {
-                System.err.println("Invalid arguments. Syntax is");
-                System.err.println("mvn-repo add <property> <version> <package>");
-                System.err.println("mvn-repo remove <property>");
-            }
-        } catch (IOException ex) {
-            log.log(Level.SEVERE, null, ex);
+        } else if (args[0].equals("remove")) {
+            String property = args[2];
+            dp.removeLibrary(pom, updatedPom, property + ".version", property + ".package");
+        } else {
+            System.err.println("Invalid arguments. Syntax is");
+            System.err.println("mvn-repo add <property> <version> <package>");
+            System.err.println("mvn-repo remove <property>");
         }
     }
 }

Modified: trunk/maven-repo-helper/src/main/share/postrm.tmpl
===================================================================
--- trunk/maven-repo-helper/src/main/share/postrm.tmpl	2009-04-08 09:32:30 UTC (rev 8183)
+++ trunk/maven-repo-helper/src/main/share/postrm.tmpl	2009-04-10 17:28:26 UTC (rev 8184)
@@ -17,7 +17,8 @@
     grep -n "</properties>" $DEBIAN_POM | cut -d':' -f1
 }
 
-if [ "$1" = "remove" ]; then
+case "$1" in 
+  remove|purge)
     echo $LIBRARIES | tr ',' '\n' | while read VERSION_PROPERTY LIBVER; do
         if [ ! -z "$VERSION_PROPERTY" ]; then
             remove_repo_property $VERSION_PROPERTY
@@ -30,5 +31,15 @@
         rm $DEBIAN_POM
         rmdir --ignore-fail-on-non-empty -p $(dirname $DEBIAN_POM)
     fi
-fi
+    ;;
 
+  upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    # Nothing to do here
+    ;;
+
+  *)
+    echo "$0 called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+

Modified: trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/DebianPOMTest.java
===================================================================
--- trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/DebianPOMTest.java	2009-04-08 09:32:30 UTC (rev 8183)
+++ trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/DebianPOMTest.java	2009-04-10 17:28:26 UTC (rev 8184)
@@ -14,7 +14,7 @@
  *
  * @author ludo
  */
-public class DebianPOMTest extends BaseTest {
+public class DebianPOMTest extends TestBase {
 
     Map<String, String> libraryProperties;
 

Modified: trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/POMCleanerTest.java
===================================================================
--- trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/POMCleanerTest.java	2009-04-08 09:32:30 UTC (rev 8183)
+++ trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/POMCleanerTest.java	2009-04-10 17:28:26 UTC (rev 8184)
@@ -15,7 +15,7 @@
  *
  * @author ludo
  */
-public class POMCleanerTest extends BaseTest {
+public class POMCleanerTest extends TestBase {
 
     private File pomProperties;
     private File versionProperties;

Added: trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/TestBase.java
===================================================================
--- trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/TestBase.java	                        (rev 0)
+++ trunk/maven-repo-helper/src/test/java/org/debian/maven/repo/TestBase.java	2009-04-10 17:28:26 UTC (rev 8184)
@@ -0,0 +1,95 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.debian.maven.repo;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.apache.commons.io.IOUtils;
+import org.custommonkey.xmlunit.XMLUnit;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+
+/**
+ *
+ * @author ludo
+ */
+public class TestBase {
+
+    protected static File testDir = new File("tmp");
+    private List<Reader> openedReaders = new ArrayList();
+    protected File pom;
+    protected File updatedPom;
+
+    @BeforeClass
+    public static void setUpClass() throws Exception {
+        testDir.mkdir();
+        XMLUnit.setIgnoreWhitespace(true);
+    }
+
+    @AfterClass
+    public static void tearDownClass() throws Exception {
+        testDir.delete();
+    }
+
+    @Before
+    public void setUp() {
+        pom = new File(testDir, "original.pom");
+        updatedPom = new File(testDir, "updated.pom");
+    }
+
+    @After
+    public void tearDown() {
+        if (pom.exists()) {
+            pom.delete();
+        }
+        if (updatedPom.exists()) {
+            updatedPom.delete();
+        }
+        for (Reader reader : openedReaders) {
+            try {
+                reader.close();
+            } catch (IOException ex) {
+                Logger.getLogger(TestBase.class.getName()).log(Level.SEVERE, null, ex);
+            }
+        }
+        openedReaders.clear();
+    }
+
+    protected void useFile(String resource, File file) throws IOException {
+        final FileWriter out = new FileWriter(file);
+        final Reader in = read(resource);
+        IOUtils.copy( in,out);
+        in.close();
+        out.close();
+    }
+
+    protected void usePom(String resource) throws IOException {
+        useFile(resource, pom);
+    }
+
+    protected Reader read(String resource) {
+        Reader r = new InputStreamReader(this.getClass().getResourceAsStream("/" + resource));
+        openedReaders.add(r);
+        return r;
+    }
+
+    protected Reader read(File f) throws FileNotFoundException {
+        Reader r = new FileReader(f);
+        openedReaders.add(r);
+        return r;
+    }
+
+}
\ No newline at end of file




More information about the pkg-java-commits mailing list