You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2019/12/25 03:32:21 UTC

[commons-vfs] annotated tag japicmp-base-0.0.1 created (now 00094a4)

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a change to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git.


      at 00094a4  (tag)
 tagging 94e66eb4266168560922b52271c92beb3a5ef45b (commit)
      by siom79
      on Thu Oct 3 13:35:13 2013 +0200

- Log -----------------------------------------------------------------
[maven-release-plugin]  copy for tag japicmp-base-0.0.1
-----------------------------------------------------------------------

This annotated tag includes the following new commits:

     new aceff7a  Initial commit
     new 0ed6bdc  Initial commit
     new 846a435  Updated pom.xml and README.md
     new 878c163  changed logging level to INFO
     new d702fd6  added findbugs plugin
     new ca83540  Updated download link to newest snapshot version
     new dffbb39  moved distribution management to base pom
     new d135151  added testbase module and three submodules to test the comparison of jar archives
     new 80d2a73  further test cases
     new 645e7aa  extended README.md
     new ef67f5f  Added JarArchiveComparatorOptions, Update of README.md
     new af0ec12  [maven-release-plugin] prepare release japicmp-base-0.0.1
     new 8912361  [maven-release-plugin] rollback the release of japicmp-base-0.0.1
     new 41c5647  [maven-release-plugin] prepare release japicmp-base-0.0.1
     new ff15256  [maven-release-plugin] rollback the release of japicmp-base-0.0.1
     new 7fe97d4  [maven-release-plugin] prepare release japicmp-base-0.0.1
     new 8fbdc6c  [maven-release-plugin] rollback the release of japicmp-base-0.0.1
     new 94e66eb  [maven-release-plugin] prepare release japicmp-base-0.0.1

The 18 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[commons-vfs] 03/18: Updated pom.xml and README.md

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 846a43525864fa8a273fb06f12a06f4be1db0f99
Author: mmois <ma...@googlemail.com>
AuthorDate: Sun Sep 29 22:53:53 2013 +0200

    Updated pom.xml and README.md
---
 README.md       |  39 ++++++++++++++++-
 japicmp/pom.xml | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 168 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index eede782..06631f7 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,41 @@
 japicmp
 =======
 
-Comparison of two versions of a jar archive
+japicmp is a tool to compare two versions of a jar archive:
+
+    java -jar japicmp-0.0.1-SNAPSHOT.jar -n new-version.jar -o old-version.jar
+
+It can also be used as a library to integration its functionality in some other kind of software:
+
+    List<JApiClass> jApiClasses = jarArchiveComparator.compare(oldArchive, newArchive);
+
+##Motivation##
+
+Every time you make a new release of a library or a product you have to tell your clients or customers what
+has changed in comparison to the last release. Without the appropriate tooling, this task is tedious and error-prone.
+This tool/library helps you to determine the differences between the java class files that are contained in the two
+jar archives.
+In contrast to other libraries/tools, this library does not use the Java Reflection API to compute
+the differences, as the usage of the Reflection API makes it necessary to include all classes the jar archive under
+investigation depends on are available on the classpath. To prevent the inclusion of all dependent libraries, which
+can be a lot of work for bigger applications, this library makes use of the [javassist](http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/)
+library to inspect the class files. This way you only have to provide the two jar archives on the command line, that's it.
+
+##Usage##
+
+The tool has a set of CLI parameters that are described in the following:
+
+    -h                        Prints this help.
+    -o <pathToOldVersionJar>  Provides the path to the old version of the jar.
+    -n <pathToNewVersionJar>  Provides the path to the new version of the jar.
+    -x <pathToXmlOutputFile>  Provides the path to the xml output file. If not given, stdout is used.
+    -m                        Outputs only modified classes/methods. If not given, all classes and methods are printed.
+
+##Downloads##
+
+The latest development version can be downloaded here: [0.0.1-SNAPSHOT](http://repository-siom79.forge.cloudbees.com/snapshot/japicmp/japicmp/0.0.1-SNAPSHOT/japicmp-0.0.1-20130929.203701-1.jar)
+
+##Development##
+
+* [Jenkins build server](https://siom79.ci.cloudbees.com/job/japicmp) [![Build Status](https://siom79.ci.cloudbees.com/job/japicmp/badge/icon)](https://siom79.ci.cloudbees.com/job/japicmp)
+* [Maven snapshot repository](https://repository-siom79.forge.cloudbees.com/snapshot)
\ No newline at end of file
diff --git a/japicmp/pom.xml b/japicmp/pom.xml
index f26ebbf..dba6508 100644
--- a/japicmp/pom.xml
+++ b/japicmp/pom.xml
@@ -11,6 +11,12 @@
 
     <artifactId>japicmp</artifactId>
 
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <github.account>siom79</github.account>
+        <cloudbees.account>siom79</cloudbees.account>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>javassist</groupId>
@@ -50,7 +56,130 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <mainClass>japicmp.JApiCmp</mainClass>
+                        </manifest>
+                    </archive>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                    <finalName>${project.artifactId}-${project.version}</finalName>
+                    <appendAssemblyId>false</appendAssemblyId>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.1</version>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-release-plugin</artifactId>
+                <version>2.4.1</version>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <version>2.9.1</version>
+                <executions>
+                    <execution>
+                        <id>attach-javadocs</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <version>2.2.1</version>
+                <executions>
+                    <execution>
+                        <id>attach-sources</id>
+                        <goals>
+                            <goal>jar-no-fork</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <!-- explicitly define maven-deploy-plugin after other to force exec order -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <version>2.7</version>
+                <executions>
+                    <execution>
+                        <id>deploy</id>
+                        <phase>deploy</phase>
+                        <goals>
+                            <goal>deploy</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
+        <extensions>
+            <extension>
+                <groupId>org.apache.maven.wagon</groupId>
+                <artifactId>wagon-webdav-jackrabbit</artifactId>
+                <version>1.0-beta-7</version>
+            </extension>
+        </extensions>
     </build>
-
+    <scm>
+        <connection>scm:git:git://github.com/${github.account}/${project.groupId}.git</connection>
+        <developerConnection>scm:git:git@github.com:${github.account}/${project.groupId}.git</developerConnection>
+        <url>http://github.com/${github.account}/${project.groupId}/tree/master/</url>
+        <tag>HEAD</tag>
+    </scm>
+    <distributionManagement>
+        <repository>
+            <id>cloudbees-public-release</id>
+            <url>dav:https://repository-${cloudbees.account}.forge.cloudbees.com/release</url>
+        </repository>
+        <snapshotRepository>
+            <id>cloudbees-public-snapshot</id>
+            <url>dav:https://repository-${cloudbees.account}.forge.cloudbees.com/snapshot</url>
+        </snapshotRepository>
+    </distributionManagement>
+    <repositories>
+        <repository>
+            <id>cloudbees-public-snapshot</id>
+            <url>https://repository-${cloudbees.account}.forge.cloudbees.com/public-snapshot</url>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>cloudbees-public-release</id>
+            <url>https://repository-${cloudbees.account}.forge.cloudbees.com/public-release</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
 </project>
\ No newline at end of file


[commons-vfs] 15/18: [maven-release-plugin] rollback the release of japicmp-base-0.0.1

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit ff152569d2f140eb91a1018fc85df1e7eac25472
Author: siom79 <ma...@googlemail.com>
AuthorDate: Thu Oct 3 13:22:21 2013 +0200

    [maven-release-plugin] rollback the release of japicmp-base-0.0.1
---
 japicmp-testbase/japicmp-test-v1/pom.xml | 6 ++++--
 japicmp-testbase/japicmp-test-v2/pom.xml | 6 ++++--
 japicmp-testbase/japicmp-test/pom.xml    | 6 ++++--
 japicmp-testbase/pom.xml                 | 6 ++++--
 japicmp/pom.xml                          | 6 ++++--
 pom.xml                                  | 8 +++++---
 6 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/japicmp-testbase/japicmp-test-v1/pom.xml b/japicmp-testbase/japicmp-test-v1/pom.xml
index ef2c7cd..20911a2 100644
--- a/japicmp-testbase/japicmp-test-v1/pom.xml
+++ b/japicmp-testbase/japicmp-test-v1/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-test-v1</artifactId>
diff --git a/japicmp-testbase/japicmp-test-v2/pom.xml b/japicmp-testbase/japicmp-test-v2/pom.xml
index 50386ce..2174ec5 100644
--- a/japicmp-testbase/japicmp-test-v2/pom.xml
+++ b/japicmp-testbase/japicmp-test-v2/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-test-v2</artifactId>
diff --git a/japicmp-testbase/japicmp-test/pom.xml b/japicmp-testbase/japicmp-test/pom.xml
index d3983ab..11d5a81 100644
--- a/japicmp-testbase/japicmp-test/pom.xml
+++ b/japicmp-testbase/japicmp-test/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-test</artifactId>
diff --git a/japicmp-testbase/pom.xml b/japicmp-testbase/pom.xml
index d3fe934..b540cc7 100644
--- a/japicmp-testbase/pom.xml
+++ b/japicmp-testbase/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-testbase</artifactId>
diff --git a/japicmp/pom.xml b/japicmp/pom.xml
index 98a43d7..ca25768 100644
--- a/japicmp/pom.xml
+++ b/japicmp/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp</artifactId>
diff --git a/pom.xml b/pom.xml
index 8445e98..3778e4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>japicmp</groupId>
     <artifactId>japicmp-base</artifactId>
-    <version>0.0.1</version>
+    <version>0.0.1-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <properties>
@@ -98,7 +100,7 @@
         <connection>scm:git:git://github.com/${github.account}/${project.groupId}.git</connection>
         <developerConnection>scm:git:git@github.com:${github.account}/${project.groupId}.git</developerConnection>
         <url>http://github.com/${github.account}/${project.groupId}/tree/master/</url>
-        <tag>japicmp-base-0.0.1</tag>
+        <tag>HEAD</tag>
     </scm>
 	
     <distributionManagement>


[commons-vfs] 10/18: extended README.md

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 645e7aa5c978e80d9998b0d679cc3d00647b82df
Author: siom79 <ma...@googlemail.com>
AuthorDate: Mon Sep 30 22:47:02 2013 +0200

    extended README.md
---
 README.md                                          | 31 ++++++++++++++++++++++
 .../java/japicmp/util/StringArrayEnumeration.java  |  2 --
 2 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 58f16a9..a6502ab 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,12 @@ investigation depends on are available on the classpath. To prevent the inclusio
 can be a lot of work for bigger applications, this library makes use of the [javassist](http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/)
 library to inspect the class files. This way you only have to provide the two jar archives on the command line, that's it.
 
+##Features##
+
+* Comparison of two jar archives without the need to add all of their dependencies to the classpath
+* Differences are printed on the command line in a simple diff format.
+* Differences can optionally be printed to an xml file. This can be transformed to an HTML file using XSLT.
+
 ##Usage##
 
 The tool has a set of CLI parameters that are described in the following:
@@ -31,6 +37,31 @@ The tool has a set of CLI parameters that are described in the following:
     -n <pathToNewVersionJar>  Provides the path to the new version of the jar.
     -x <pathToXmlOutputFile>  Provides the path to the xml output file. If not given, stdout is used.
     -m                        Outputs only modified classes/methods. If not given, all classes and methods are printed.
+	
+###Example###
+
+In the following you see the beginning of the xml output file after having computed the differences between the versions 4.0.1 and 4.2.3 of httpclient:
+
+	<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+	<japicmp newJar="D:\Programmierung\japicmp\github\japicmp\japicmp\httpclient-4.2.3.jar" oldJar="D:\Programmierung\japicmp\github\japicmp\japicmp\httpclient-4.0.1.jar">
+		<class changeStatus="REMOVED" fullyQualifiedName="org.apache.http.annotation.GuardedBy" type="ANNOTATION">
+			<method changeStatus="REMOVED" name="value" returnType="java.lang.String"/>
+		</class>
+		<class changeStatus="REMOVED" fullyQualifiedName="org.apache.http.annotation.Immutable" type="ANNOTATION"/>
+		<class changeStatus="REMOVED" fullyQualifiedName="org.apache.http.annotation.NotThreadSafe" type="ANNOTATION"/>
+		<class changeStatus="REMOVED" fullyQualifiedName="org.apache.http.annotation.ThreadSafe" type="ANNOTATION"/>
+		<class changeStatus="NEW" fullyQualifiedName="org.apache.http.auth.AuthOption" type="CLASS">
+			<method changeStatus="NEW" name="getAuthScheme" returnType="org.apache.http.auth.AuthScheme"/>
+			<method changeStatus="NEW" name="getCredentials" returnType="org.apache.http.auth.Credentials"/>
+			<method changeStatus="NEW" name="toString" returnType="java.lang.String"/>
+		</class>
+		<class changeStatus="NEW" fullyQualifiedName="org.apache.http.auth.AuthProtocolState" type="ENUM">
+			<method changeStatus="NEW" name="valueOf" returnType="org.apache.http.auth.AuthProtocolState">
+				<parameter type="java.lang.String"/>
+			</method>
+			<method changeStatus="NEW" name="values" returnType="org.apache.http.auth.AuthProtocolState[]"/>
+		</class>
+		...
 
 ##Downloads##
 
diff --git a/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java b/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java
index 050f26c..19d84fd 100644
--- a/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java
+++ b/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java
@@ -13,12 +13,10 @@ public class StringArrayEnumeration implements Enumeration<String> {
         System.arraycopy(array, 0, this.array, 0, array.length);
     }
 
-    @Override
     public boolean hasMoreElements() {
         return pos < array.length;
     }
 
-    @Override
     public String nextElement() {
         if(hasMoreElements()) {
             return array[pos++];


[commons-vfs] 07/18: moved distribution management to base pom

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit dffbb394acbd08f5bbdca8db14559e8502ac6221
Author: siom79 <ma...@googlemail.com>
AuthorDate: Mon Sep 30 19:50:41 2013 +0200

    moved distribution management to base pom
---
 README.md       |   2 +-
 japicmp/pom.xml | 106 --------------------------------------------------------
 pom.xml         |  99 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 3 files changed, 98 insertions(+), 109 deletions(-)

diff --git a/README.md b/README.md
index 6ef0eb6..339b18e 100644
--- a/README.md
+++ b/README.md
@@ -33,7 +33,7 @@ The tool has a set of CLI parameters that are described in the following:
 
 ##Downloads##
 
-The latest development version can be downloaded here: [0.0.1-SNAPSHOT](http://repository-siom79.forge.cloudbees.com/snapshot/japicmp/japicmp/0.0.1-SNAPSHOT/japicmp-0.0.1-20130929.212744-3.jar)
+The latest snapshot version can be downloaded here: [japicmp-SNAPSHOT](http://repository-siom79.forge.cloudbees.com/snapshot/japicmp/japicmp/)
 
 ##Development##
 
diff --git a/japicmp/pom.xml b/japicmp/pom.xml
index 88efc22..ca25768 100644
--- a/japicmp/pom.xml
+++ b/japicmp/pom.xml
@@ -11,12 +11,6 @@
 
     <artifactId>japicmp</artifactId>
 
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <github.account>siom79</github.account>
-        <cloudbees.account>siom79</cloudbees.account>
-    </properties>
-
     <dependencies>
         <dependency>
             <groupId>javassist</groupId>
@@ -81,61 +75,6 @@
                 </executions>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.1</version>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <version>2.4.1</version>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <version>2.9.1</version>
-                <executions>
-                    <execution>
-                        <id>attach-javadocs</id>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <version>2.2.1</version>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <goals>
-                            <goal>jar-no-fork</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <!-- explicitly define maven-deploy-plugin after other to force exec order -->
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-deploy-plugin</artifactId>
-                <version>2.7</version>
-                <executions>
-                    <execution>
-                        <id>deploy</id>
-                        <phase>deploy</phase>
-                        <goals>
-                            <goal>deploy</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>findbugs-maven-plugin</artifactId>
                 <version>2.5.2</version>
@@ -145,50 +84,5 @@
                 </configuration>
             </plugin>
         </plugins>
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-webdav-jackrabbit</artifactId>
-                <version>1.0-beta-7</version>
-            </extension>
-        </extensions>
     </build>
-    <scm>
-        <connection>scm:git:git://github.com/${github.account}/${project.groupId}.git</connection>
-        <developerConnection>scm:git:git@github.com:${github.account}/${project.groupId}.git</developerConnection>
-        <url>http://github.com/${github.account}/${project.groupId}/tree/master/</url>
-        <tag>HEAD</tag>
-    </scm>
-    <distributionManagement>
-        <repository>
-            <id>cloudbees-public-release</id>
-            <url>dav:https://repository-${cloudbees.account}.forge.cloudbees.com/release</url>
-        </repository>
-        <snapshotRepository>
-            <id>cloudbees-public-snapshot</id>
-            <url>dav:https://repository-${cloudbees.account}.forge.cloudbees.com/snapshot</url>
-        </snapshotRepository>
-    </distributionManagement>
-    <repositories>
-        <repository>
-            <id>cloudbees-public-snapshot</id>
-            <url>https://repository-${cloudbees.account}.forge.cloudbees.com/public-snapshot</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-            <snapshots>
-                <enabled>true</enabled>
-            </snapshots>
-        </repository>
-        <repository>
-            <id>cloudbees-public-release</id>
-            <url>https://repository-${cloudbees.account}.forge.cloudbees.com/public-release</url>
-            <releases>
-                <enabled>true</enabled>
-            </releases>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-        </repository>
-    </repositories>
 </project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index a25f751..701eb8e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,6 +11,8 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<github.account>siom79</github.account>
+        <cloudbees.account>siom79</cloudbees.account>
     </properties>
 
     <modules>
@@ -28,7 +30,7 @@
 
     <build>
         <plugins>
-            <plugin>
+			<plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.1</version>
@@ -37,7 +39,100 @@
                     <target>1.5</target>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-release-plugin</artifactId>
+                <version>2.4.1</version>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <version>2.9.1</version>
+                <executions>
+                    <execution>
+                        <id>attach-javadocs</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <version>2.2.1</version>
+                <executions>
+                    <execution>
+                        <id>attach-sources</id>
+                        <goals>
+                            <goal>jar-no-fork</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <!-- explicitly define maven-deploy-plugin after other to force exec order -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <version>2.7</version>
+                <executions>
+                    <execution>
+                        <id>deploy</id>
+                        <phase>deploy</phase>
+                        <goals>
+                            <goal>deploy</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
+		<extensions>
+            <extension>
+                <groupId>org.apache.maven.wagon</groupId>
+                <artifactId>wagon-webdav-jackrabbit</artifactId>
+                <version>1.0-beta-7</version>
+            </extension>
+        </extensions>
     </build>
-
+	
+    <scm>
+        <connection>scm:git:git://github.com/${github.account}/${project.groupId}.git</connection>
+        <developerConnection>scm:git:git@github.com:${github.account}/${project.groupId}.git</developerConnection>
+        <url>http://github.com/${github.account}/${project.groupId}/tree/master/</url>
+        <tag>HEAD</tag>
+    </scm>
+	
+    <distributionManagement>
+        <repository>
+            <id>cloudbees-public-release</id>
+            <url>dav:https://repository-${cloudbees.account}.forge.cloudbees.com/release</url>
+        </repository>
+        <snapshotRepository>
+            <id>cloudbees-public-snapshot</id>
+            <url>dav:https://repository-${cloudbees.account}.forge.cloudbees.com/snapshot</url>
+        </snapshotRepository>
+    </distributionManagement>
+	
+    <repositories>
+        <repository>
+            <id>cloudbees-public-snapshot</id>
+            <url>https://repository-${cloudbees.account}.forge.cloudbees.com/public-snapshot</url>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>cloudbees-public-release</id>
+            <url>https://repository-${cloudbees.account}.forge.cloudbees.com/public-release</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
 </project>
\ No newline at end of file


[commons-vfs] 04/18: changed logging level to INFO

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 878c1634731f6228eed44910a948445476fe2f15
Author: mmois <ma...@googlemail.com>
AuthorDate: Sun Sep 29 23:28:39 2013 +0200

    changed logging level to INFO
---
 japicmp/src/main/resources/log4j.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/japicmp/src/main/resources/log4j.properties b/japicmp/src/main/resources/log4j.properties
index 71255bb..393e087 100644
--- a/japicmp/src/main/resources/log4j.properties
+++ b/japicmp/src/main/resources/log4j.properties
@@ -1,5 +1,5 @@
 # Root logger option
-log4j.rootLogger=DEBUG, stdout
+log4j.rootLogger=INFO, stdout
 
 # Direct log messages to stdout
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender


[commons-vfs] 12/18: [maven-release-plugin] prepare release japicmp-base-0.0.1

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit af0ec1209b11b343024627834e1d6a3179c11af1
Author: siom79 <ma...@googlemail.com>
AuthorDate: Thu Oct 3 12:25:51 2013 +0200

    [maven-release-plugin] prepare release japicmp-base-0.0.1
---
 japicmp-testbase/japicmp-test-v1/pom.xml | 6 ++----
 japicmp-testbase/japicmp-test-v2/pom.xml | 6 ++----
 japicmp-testbase/japicmp-test/pom.xml    | 6 ++----
 japicmp-testbase/pom.xml                 | 6 ++----
 japicmp/pom.xml                          | 6 ++----
 pom.xml                                  | 8 +++-----
 6 files changed, 13 insertions(+), 25 deletions(-)

diff --git a/japicmp-testbase/japicmp-test-v1/pom.xml b/japicmp-testbase/japicmp-test-v1/pom.xml
index 20911a2..ef2c7cd 100644
--- a/japicmp-testbase/japicmp-test-v1/pom.xml
+++ b/japicmp-testbase/japicmp-test-v1/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test-v1</artifactId>
diff --git a/japicmp-testbase/japicmp-test-v2/pom.xml b/japicmp-testbase/japicmp-test-v2/pom.xml
index 2174ec5..50386ce 100644
--- a/japicmp-testbase/japicmp-test-v2/pom.xml
+++ b/japicmp-testbase/japicmp-test-v2/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test-v2</artifactId>
diff --git a/japicmp-testbase/japicmp-test/pom.xml b/japicmp-testbase/japicmp-test/pom.xml
index 11d5a81..d3983ab 100644
--- a/japicmp-testbase/japicmp-test/pom.xml
+++ b/japicmp-testbase/japicmp-test/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test</artifactId>
diff --git a/japicmp-testbase/pom.xml b/japicmp-testbase/pom.xml
index b540cc7..d3fe934 100644
--- a/japicmp-testbase/pom.xml
+++ b/japicmp-testbase/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-testbase</artifactId>
diff --git a/japicmp/pom.xml b/japicmp/pom.xml
index ca25768..98a43d7 100644
--- a/japicmp/pom.xml
+++ b/japicmp/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp</artifactId>
diff --git a/pom.xml b/pom.xml
index 3778e4e..8445e98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>japicmp</groupId>
     <artifactId>japicmp-base</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.1</version>
     <packaging>pom</packaging>
 
     <properties>
@@ -100,7 +98,7 @@
         <connection>scm:git:git://github.com/${github.account}/${project.groupId}.git</connection>
         <developerConnection>scm:git:git@github.com:${github.account}/${project.groupId}.git</developerConnection>
         <url>http://github.com/${github.account}/${project.groupId}/tree/master/</url>
-        <tag>HEAD</tag>
+        <tag>japicmp-base-0.0.1</tag>
     </scm>
 	
     <distributionManagement>


[commons-vfs] 02/18: Initial commit

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 0ed6bdc36c762c04f724510102237a1c5760b59e
Author: mmois <ma...@googlemail.com>
AuthorDate: Sun Sep 29 13:31:27 2013 +0200

    Initial commit
---
 .gitignore                                         |   8 ++
 japicmp/pom.xml                                    |  56 +++++++++++
 japicmp/src/main/java/japicmp/JApiCmp.java         |  62 +++++++++++++
 japicmp/src/main/java/japicmp/cli/CliParser.java   |  63 +++++++++++++
 .../src/main/java/japicmp/cmp/ClassComparator.java |  72 ++++++++++++++
 .../main/java/japicmp/cmp/ClassesComparator.java   |  64 +++++++++++++
 .../java/japicmp/cmp/JarArchiveComparator.java     |  83 +++++++++++++++++
 japicmp/src/main/java/japicmp/config/Options.java  |  42 +++++++++
 .../main/java/japicmp/model/JApiChangeStatus.java  |   5 +
 japicmp/src/main/java/japicmp/model/JApiClass.java |  83 +++++++++++++++++
 .../src/main/java/japicmp/model/JApiMethod.java    |  61 ++++++++++++
 .../src/main/java/japicmp/model/JApiParameter.java |  16 ++++
 .../java/japicmp/output/OutputTransformer.java     |  55 +++++++++++
 .../output/stdout/StdoutOutputGenerator.java       |  71 ++++++++++++++
 .../japicmp/output/xml/XmlOutputGenerator.java     |  24 +++++
 .../japicmp/output/xml/model/JApiCmpXmlRoot.java   |  43 +++++++++
 .../main/java/japicmp/util/SignatureParser.java    | 103 +++++++++++++++++++++
 .../java/japicmp/util/StringArrayEnumeration.java  |  27 ++++++
 japicmp/src/main/resources/log4j.properties        |   8 ++
 .../src/test/java/japicmp/cli/CliParserTest.java   |  40 ++++++++
 .../java/japicmp/util/SignatureParserTest.java     |  99 ++++++++++++++++++++
 .../japicmp/util/StringArrayEnumerationTest.java   |  37 ++++++++
 pom.xml                                            |  43 +++++++++
 23 files changed, 1165 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e2e9750
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+target
+.idea
+httpclient*.jar
+*.iml
+test.xml
+output.xml
+japicmp/guava-10.0.1.jar
+japicmp/guava-14.0.1.jar
diff --git a/japicmp/pom.xml b/japicmp/pom.xml
new file mode 100644
index 0000000..f26ebbf
--- /dev/null
+++ b/japicmp/pom.xml
@@ -0,0 +1,56 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>japicmp</groupId>
+        <artifactId>japicmp-base</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>japicmp</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>javassist</groupId>
+            <artifactId>javassist</artifactId>
+            <version>3.12.1.GA</version>
+        </dependency>
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>14.0.1</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>cobertura-maven-plugin</artifactId>
+                <version>2.5.2</version>
+                <configuration>
+                    <formats>
+                        <format>html</format>
+                    </formats>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>clean</goal>
+                            <goal>cobertura</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file
diff --git a/japicmp/src/main/java/japicmp/JApiCmp.java b/japicmp/src/main/java/japicmp/JApiCmp.java
new file mode 100644
index 0000000..70c861f
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/JApiCmp.java
@@ -0,0 +1,62 @@
+package japicmp;
+
+import japicmp.cli.CliParser;
+import japicmp.cmp.JarArchiveComparator;
+import japicmp.config.Options;
+import japicmp.model.JApiClass;
+import japicmp.output.OutputTransformer;
+import japicmp.output.stdout.StdoutOutputGenerator;
+import japicmp.output.xml.XmlOutputGenerator;
+
+import java.io.File;
+import java.util.List;
+
+public class JApiCmp {
+
+    public static void main(String[] args) {
+        Options options = parseCliOptions(args);
+        File oldArchive = new File(options.getOldArchive());
+        File newArchive = new File(options.getNewArchive());
+        verifyFilesExist(oldArchive, newArchive);
+        JarArchiveComparator jarArchiveComparator = new JarArchiveComparator();
+        List<JApiClass> jApiClasses = jarArchiveComparator.compare(oldArchive, newArchive);
+        generateOutput(options, oldArchive, newArchive, jApiClasses);
+    }
+
+    private static void generateOutput(Options options, File oldArchive, File newArchive, List<JApiClass> jApiClasses) {
+        OutputTransformer.sortClassesAndMethods(jApiClasses);
+        if(options.getXmlOutputFile().isPresent()) {
+            XmlOutputGenerator xmlGenerator = new XmlOutputGenerator();
+            xmlGenerator.generate(oldArchive, newArchive, jApiClasses, options);
+        }
+        StdoutOutputGenerator stdoutOutputGenerator = new StdoutOutputGenerator();
+        String output = stdoutOutputGenerator.generate(oldArchive, newArchive, jApiClasses, options);
+        System.out.println(output);
+    }
+
+    private static Options parseCliOptions(String[] args) {
+        Options options = new Options();
+        try {
+            CliParser cliParser = new CliParser();
+            options = cliParser.parse(args);
+        } catch (IllegalArgumentException e) {
+            System.err.println(e.getMessage());
+            System.exit(-1);
+        } catch (Exception e) {
+            System.err.println("Failed to parse command line options: " + e.getMessage());
+            System.exit(-1);
+        }
+        return options;
+    }
+
+    private static void verifyFilesExist(File oldArchive, File newArchive) {
+        if (!oldArchive.exists()) {
+            System.err.println(String.format("File '%s' does not exist.", oldArchive.getAbsolutePath()));
+            System.exit(-1);
+        }
+        if (!newArchive.exists()) {
+            System.err.println(String.format("File '%s' does not exist.", newArchive.getAbsolutePath()));
+            System.exit(-1);
+        }
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/cli/CliParser.java b/japicmp/src/main/java/japicmp/cli/CliParser.java
new file mode 100644
index 0000000..1e1f788
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/cli/CliParser.java
@@ -0,0 +1,63 @@
+package japicmp.cli;
+
+import com.google.common.base.Optional;
+import japicmp.config.Options;
+import japicmp.util.StringArrayEnumeration;
+
+public class CliParser {
+
+    public Options parse(String[] args) throws IllegalArgumentException {
+        Options options = new Options();
+        StringArrayEnumeration sae = new StringArrayEnumeration(args);
+        while (sae.hasMoreElements()) {
+            String arg = sae.nextElement();
+            if ("-n".equals(arg)) {
+                String newArchive = getOptionWithArgument("-n", sae);
+                options.setNewArchive(newArchive);
+            }
+            if ("-o".equals(arg)) {
+                String oldArchive = getOptionWithArgument("-o", sae);
+                options.setOldArchive(oldArchive);
+            }
+            if ("-x".equals(arg)) {
+                String xmlOutputFile = getOptionWithArgument("-x", sae);
+                options.setXmlOutputFile(Optional.of(xmlOutputFile));
+            }
+            if ("-m".equals(arg)) {
+                options.setOutputOnlyModifications(true);
+            }
+            if ("-h".equals(arg)) {
+                System.out.println("Available parameters:");
+                System.out.println("-h                        Prints this help.");
+                System.out.println("-o <pathToOldVersionJar>  Provides the path to the old version of the jar.");
+                System.out.println("-n <pathToNewVersionJar>  Provides the path to the new version of the jar.");
+                System.out.println("-x <pathToXmlOutputFile>  Provides the path to the xml output file. If not given, stdout is used.");
+                System.out.println("-m                        Outputs only modified classes/methods. If not given, all classes and methods are printed.");
+                System.exit(0);
+            }
+        }
+        checkForMandatoryOptions(options);
+        return options;
+    }
+
+    private void checkForMandatoryOptions(Options options) {
+        if (options.getOldArchive() == null || options.getOldArchive().length() == 0) {
+            throw new IllegalArgumentException("Missing option for old version: -o <pathToOldVersionJar>");
+        }
+        if (options.getNewArchive() == null || options.getNewArchive().length() == 0) {
+            throw new IllegalArgumentException("Missing option for new version: -n <pathToNewVersionJar>");
+        }
+    }
+
+    private String getOptionWithArgument(String option, StringArrayEnumeration sae) {
+        if (sae.hasMoreElements()) {
+            String value = sae.nextElement();
+            if(value.startsWith("-")) {
+                throw new IllegalArgumentException(String.format("Missing argument for option %s.", option));
+            }
+            return value;
+        } else {
+            throw new IllegalArgumentException(String.format("Missing argument for option %s.", option));
+        }
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/cmp/ClassComparator.java b/japicmp/src/main/java/japicmp/cmp/ClassComparator.java
new file mode 100644
index 0000000..92838e7
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/cmp/ClassComparator.java
@@ -0,0 +1,72 @@
+package japicmp.cmp;
+
+import com.google.common.base.Optional;
+import japicmp.model.JApiChangeStatus;
+import japicmp.model.JApiClass;
+import japicmp.model.JApiMethod;
+import japicmp.model.JApiParameter;
+import japicmp.util.SignatureParser;
+import javassist.CtClass;
+import javassist.CtMethod;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ClassComparator {
+
+    public void compare(JApiClass jApiClass) {
+        Map<String, CtMethod> oldMethodsMap = createMethodMap(jApiClass.getOldClass());
+        Map<String, CtMethod> newMethodsMap = createMethodMap(jApiClass.getNewClass());
+        sortMethodsIntoLists(oldMethodsMap, newMethodsMap, jApiClass);
+    }
+
+    private void sortMethodsIntoLists(Map<String, CtMethod> oldMethodsMap, Map<String, CtMethod> newMethodsMap, JApiClass jApiClass) {
+        SignatureParser signatureParser = new SignatureParser();
+        for (CtMethod ctMethod : oldMethodsMap.values()) {
+            String longName = ctMethod.getLongName();
+            signatureParser.parse(ctMethod.getSignature());
+            CtMethod foundMethod = newMethodsMap.get(longName);
+            if (foundMethod == null) {
+                JApiMethod jApiMethod = new JApiMethod(ctMethod.getName(), JApiChangeStatus.REMOVED, Optional.of(ctMethod), Optional.<CtMethod>absent(), signatureParser.getReturnType());
+                addParametersToMethod(signatureParser, jApiMethod);
+                jApiClass.addMethod(jApiMethod);
+                if(jApiClass.getChangeStatus() == JApiChangeStatus.UNCHANGED) {
+                    jApiClass.setChangeStatus(JApiChangeStatus.MODIFIED);
+                }
+            } else {
+                JApiMethod jApiMethod = new JApiMethod(ctMethod.getName(), JApiChangeStatus.UNCHANGED, Optional.of(ctMethod), Optional.of(foundMethod), signatureParser.getReturnType());
+                addParametersToMethod(signatureParser, jApiMethod);
+                jApiClass.addMethod(jApiMethod);
+            }
+        }
+        for (CtMethod ctMethod : newMethodsMap.values()) {
+            String longName = ctMethod.getLongName();
+            signatureParser.parse(ctMethod.getSignature());
+            CtMethod foundMethod = oldMethodsMap.get(longName);
+            if (foundMethod == null) {
+                JApiMethod jApiMethod = new JApiMethod(ctMethod.getName(), JApiChangeStatus.NEW, Optional.<CtMethod>absent(), Optional.of(ctMethod), signatureParser.getReturnType());
+                addParametersToMethod(signatureParser, jApiMethod);
+                jApiClass.addMethod(jApiMethod);
+                if(jApiClass.getChangeStatus() == JApiChangeStatus.UNCHANGED) {
+                    jApiClass.setChangeStatus(JApiChangeStatus.MODIFIED);
+                }
+            }
+        }
+    }
+
+    private void addParametersToMethod(SignatureParser signatureParser, JApiMethod jApiMethod) {
+        for (String param : signatureParser.getParameters()) {
+            jApiMethod.addParameter(new JApiParameter(param));
+        }
+    }
+
+    private Map<String, CtMethod> createMethodMap(Optional<CtClass> ctClass) {
+        Map<String, CtMethod> methods = new HashMap<String, CtMethod>();
+        if (ctClass.isPresent()) {
+            for (CtMethod ctMethod : ctClass.get().getMethods()) {
+                methods.put(ctMethod.getLongName(), ctMethod);
+            }
+        }
+        return methods;
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/cmp/ClassesComparator.java b/japicmp/src/main/java/japicmp/cmp/ClassesComparator.java
new file mode 100644
index 0000000..ee02733
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/cmp/ClassesComparator.java
@@ -0,0 +1,64 @@
+package japicmp.cmp;
+
+import com.google.common.base.Optional;
+import japicmp.model.JApiChangeStatus;
+import japicmp.model.JApiClass;
+import javassist.CtClass;
+import javassist.Modifier;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+public class ClassesComparator {
+    private List<JApiClass> classes = new LinkedList<JApiClass>();
+
+    public void compare(List<CtClass> oldClassesArg, List<CtClass> newClassesArg) {
+        classes = new LinkedList<JApiClass>();
+        Map<String, CtClass> oldClassesMap = createClassMap(oldClassesArg);
+        Map<String, CtClass> newClassesMap = createClassMap(newClassesArg);
+        sortIntoLists(oldClassesMap, newClassesMap);
+    }
+
+    private void sortIntoLists(Map<String, CtClass> oldClassesMap, Map<String, CtClass> newClassesMap) {
+        for(CtClass ctClass : oldClassesMap.values()) {
+            CtClass foundClass = newClassesMap.get(ctClass.getName());
+            if(foundClass == null) {
+                classes.add(new JApiClass(ctClass.getName(), Optional.<CtClass>of(ctClass), Optional.<CtClass>absent(), JApiChangeStatus.REMOVED, getType(ctClass)));
+            } else {
+                classes.add(new JApiClass(ctClass.getName(), Optional.<CtClass>of(ctClass), Optional.<CtClass>of(foundClass), JApiChangeStatus.UNCHANGED, getType(ctClass)));
+            }
+        }
+        for(CtClass ctClass : newClassesMap.values()) {
+            CtClass foundClass = oldClassesMap.get(ctClass.getName());
+            if(foundClass == null) {
+                classes.add(new JApiClass(ctClass.getName(), Optional.<CtClass>absent(), Optional.<CtClass>of(ctClass), JApiChangeStatus.NEW, getType(ctClass)));
+            }
+        }
+    }
+
+    private JApiClass.Type getType(CtClass ctClass) {
+        if(ctClass.isAnnotation()) {
+            return JApiClass.Type.ANNOTATION;
+        } else if(ctClass.isEnum()) {
+            return JApiClass.Type.ENUM;
+        } else if(ctClass.isInterface()) {
+            return JApiClass.Type.INTERFACE;
+        } else {
+            return JApiClass.Type.CLASS;
+        }
+    }
+
+    private Map<String, CtClass> createClassMap(List<CtClass> oldClassesArg) {
+        Map<String, CtClass> oldClassesMap = new HashMap<String, CtClass>();
+        for(CtClass ctClass : oldClassesArg) {
+            oldClassesMap.put(ctClass.getName(), ctClass);
+        }
+        return oldClassesMap;
+    }
+
+    public List<JApiClass> getClasses() {
+        return classes;
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/cmp/JarArchiveComparator.java b/japicmp/src/main/java/japicmp/cmp/JarArchiveComparator.java
new file mode 100644
index 0000000..0f150c2
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/cmp/JarArchiveComparator.java
@@ -0,0 +1,83 @@
+package japicmp.cmp;
+
+import japicmp.model.JApiClass;
+import javassist.ClassPool;
+import javassist.CtClass;
+import org.apache.log4j.Logger;
+
+import java.io.File;
+import java.util.Enumeration;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+public class JarArchiveComparator {
+    private static final Logger logger = Logger.getLogger(JarArchiveComparator.class);
+
+    public List<JApiClass> compare(File oldArchive, File newArchive) {
+        ClassPool classPool = new ClassPool();
+        try {
+            ClassesComparator classesComparator = compareClassLists(oldArchive, newArchive, classPool);
+            List<JApiClass> classList = classesComparator.getClasses();
+            compareClasses(classList);
+            return classList;
+        } catch (Exception e) {
+            System.err.println(String.format("Processing jar files '%s' and '%s' failed: %s.", oldArchive.getAbsolutePath(), newArchive.getAbsolutePath(), e.getMessage()));
+            return new LinkedList<JApiClass>();
+        }
+    }
+
+    private void compareClasses(List<JApiClass> classList) {
+        for (JApiClass jApiClass : classList) {
+            ClassComparator classComparator = new ClassComparator();
+            classComparator.compare(jApiClass);
+        }
+    }
+
+    private ClassesComparator compareClassLists(File oldArchive, File newArchive, ClassPool classPool) throws Exception {
+        List<CtClass> oldClasses = createListOfCtClasses(oldArchive, classPool);
+        List<CtClass> newClasses = createListOfCtClasses(newArchive, classPool);
+        ClassesComparator classesComparator = new ClassesComparator();
+        classesComparator.compare(oldClasses, newClasses);
+        if (logger.isDebugEnabled()) {
+            for (JApiClass jApiClass : classesComparator.getClasses()) {
+                logger.debug(jApiClass);
+            }
+        }
+        return classesComparator;
+    }
+
+    private List<CtClass> createListOfCtClasses(File archive, ClassPool classPool) throws Exception {
+        List<CtClass> classes = new LinkedList<CtClass>();
+        JarFile oldJar = null;
+        try {
+            oldJar = new JarFile(archive);
+            Enumeration<JarEntry> entryEnumeration = oldJar.entries();
+            while (entryEnumeration.hasMoreElements()) {
+                JarEntry jarEntry = entryEnumeration.nextElement();
+                String name = jarEntry.getName();
+                if (name.endsWith(".class")) {
+                    CtClass ctClass = null;
+                    try {
+                        ctClass = classPool.makeClass(oldJar.getInputStream(jarEntry));
+                    } catch (Exception e) {
+                        logger.error(String.format("Failed to load file from jar '%s' as class file: %s.", name, e.getMessage()));
+                        throw e;
+                    }
+                    classes.add(ctClass);
+                    if (logger.isDebugEnabled()) {
+                        logger.debug(String.format("Adding class '%s' with jar name '%s' to list.", ctClass.getName(), name));
+                    }
+                } else {
+                    logger.debug(String.format("Skipping file '%s' because filename does not end with '.class'.", name));
+                }
+            }
+        } finally {
+            if (oldJar != null) {
+                oldJar.close();
+            }
+        }
+        return classes;
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/config/Options.java b/japicmp/src/main/java/japicmp/config/Options.java
new file mode 100644
index 0000000..4576f72
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/config/Options.java
@@ -0,0 +1,42 @@
+package japicmp.config;
+
+import com.google.common.base.Optional;
+
+public class Options {
+    private String oldArchive;
+    private String newArchive;
+    private boolean outputOnlyModifications = false;
+    private Optional<String> xmlOutputFile = Optional.<String>absent();
+
+    public String getNewArchive() {
+        return newArchive;
+    }
+
+    public void setNewArchive(String newArchive) {
+        this.newArchive = newArchive;
+    }
+
+    public String getOldArchive() {
+        return oldArchive;
+    }
+
+    public void setOldArchive(String oldArchive) {
+        this.oldArchive = oldArchive;
+    }
+
+    public boolean isOutputOnlyModifications() {
+        return outputOnlyModifications;
+    }
+
+    public void setOutputOnlyModifications(boolean outputOnlyModifications) {
+        this.outputOnlyModifications = outputOnlyModifications;
+    }
+
+    public Optional<String> getXmlOutputFile() {
+        return xmlOutputFile;
+    }
+
+    public void setXmlOutputFile(Optional<String> xmlOutputFile) {
+        this.xmlOutputFile = xmlOutputFile;
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/model/JApiChangeStatus.java b/japicmp/src/main/java/japicmp/model/JApiChangeStatus.java
new file mode 100644
index 0000000..8222e7c
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/model/JApiChangeStatus.java
@@ -0,0 +1,5 @@
+package japicmp.model;
+
+public enum JApiChangeStatus {
+    NEW, REMOVED, UNCHANGED, MODIFIED;
+}
diff --git a/japicmp/src/main/java/japicmp/model/JApiClass.java b/japicmp/src/main/java/japicmp/model/JApiClass.java
new file mode 100644
index 0000000..e1d429f
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/model/JApiClass.java
@@ -0,0 +1,83 @@
+package japicmp.model;
+
+import com.google.common.base.Optional;
+import javassist.CtClass;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
+import java.util.LinkedList;
+import java.util.List;
+
+public class JApiClass {
+    private final String fullyQualifiedName;
+    private final Optional<CtClass> oldClass;
+    private final Optional<CtClass> newClass;
+    private List<JApiMethod> methods = new LinkedList<JApiMethod>();
+    private JApiChangeStatus changeStatus;
+    private final Type type;
+
+    public enum Type {
+        ANNOTATION, INTERFACE, CLASS, ENUM
+    }
+
+    public JApiClass(String fullyQualifiedName, Optional<CtClass> oldClass, Optional<CtClass> newClass, JApiChangeStatus changeStatus, Type type) {
+        this.changeStatus = changeStatus;
+        this.fullyQualifiedName = fullyQualifiedName;
+        this.newClass = newClass;
+        this.oldClass = oldClass;
+        this.type = type;
+    }
+
+    public void addMethod(JApiMethod jApiMethod) {
+        methods.add(jApiMethod);
+    }
+
+    @XmlAttribute
+    public JApiChangeStatus getChangeStatus() {
+        return changeStatus;
+    }
+
+    @XmlAttribute
+    public String getFullyQualifiedName() {
+        return fullyQualifiedName;
+    }
+
+    @XmlTransient
+    public Optional<CtClass> getNewClass() {
+        return newClass;
+    }
+
+    @XmlTransient
+    public Optional<CtClass> getOldClass() {
+        return oldClass;
+    }
+
+    public void setChangeStatus(JApiChangeStatus changeStatus) {
+        this.changeStatus = changeStatus;
+    }
+
+    @XmlElement(name = "method")
+    public List<JApiMethod> getMethods() {
+        return methods;
+    }
+
+    public void setMethods(List<JApiMethod> methods) {
+        this.methods = methods;
+    }
+
+    @XmlAttribute
+    public Type getType() {
+        return type;
+    }
+
+    @Override
+    public String toString() {
+        return "JApiClass{" +
+                "changeStatus=" + changeStatus +
+                ", fullyQualifiedName='" + fullyQualifiedName + '\'' +
+                ", oldClass=" + oldClass +
+                ", newClass=" + newClass +
+                '}';
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/model/JApiMethod.java b/japicmp/src/main/java/japicmp/model/JApiMethod.java
new file mode 100644
index 0000000..ab04e1f
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/model/JApiMethod.java
@@ -0,0 +1,61 @@
+package japicmp.model;
+
+import com.google.common.base.Optional;
+import javassist.CtMethod;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
+import java.util.LinkedList;
+import java.util.List;
+
+public class JApiMethod {
+    private final String name;
+    private final JApiChangeStatus changeStatus;
+    private final Optional<CtMethod> oldMethod;
+    private final Optional<CtMethod> newMethod;
+    private final String returnType;
+    private final List<JApiParameter> parameters = new LinkedList<JApiParameter>();
+
+    public JApiMethod(String name, JApiChangeStatus changeStatus, Optional<CtMethod> oldClass, Optional<CtMethod> newClass, String returnType) {
+        this.name = name;
+        this.changeStatus = changeStatus;
+        this.oldMethod = oldClass;
+        this.newMethod = newClass;
+        this.returnType = returnType;
+    }
+
+    @XmlAttribute
+    public JApiChangeStatus getChangeStatus() {
+        return changeStatus;
+    }
+
+    @XmlAttribute
+    public String getName() {
+        return name;
+    }
+
+    @XmlTransient
+    public Optional<CtMethod> getNewMethod() {
+        return newMethod;
+    }
+
+    @XmlTransient
+    public Optional<CtMethod> getOldMethod() {
+        return oldMethod;
+    }
+
+    @XmlAttribute
+    public String getReturnType() {
+        return returnType;
+    }
+
+    @XmlElement(name = "parameter")
+    public List<JApiParameter> getParameters() {
+        return parameters;
+    }
+
+    public void addParameter(JApiParameter jApiParameter) {
+        parameters.add(jApiParameter);
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/model/JApiParameter.java b/japicmp/src/main/java/japicmp/model/JApiParameter.java
new file mode 100644
index 0000000..56f2a81
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/model/JApiParameter.java
@@ -0,0 +1,16 @@
+package japicmp.model;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+public class JApiParameter {
+    private final String type;
+
+    public JApiParameter(String type) {
+        this.type = type;
+    }
+
+    @XmlAttribute
+    public String getType() {
+        return type;
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/output/OutputTransformer.java b/japicmp/src/main/java/japicmp/output/OutputTransformer.java
new file mode 100644
index 0000000..5b31b27
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/output/OutputTransformer.java
@@ -0,0 +1,55 @@
+package japicmp.output;
+
+import japicmp.model.JApiChangeStatus;
+import japicmp.model.JApiClass;
+import japicmp.model.JApiMethod;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedList;
+import java.util.List;
+
+public class OutputTransformer {
+
+    private OutputTransformer() {
+
+    }
+
+    public static void removeUnchanged(List<JApiClass> jApiClasses) {
+        List<JApiClass> classesToRemove = new LinkedList<JApiClass>();
+        for (JApiClass jApiClass : jApiClasses) {
+            if (jApiClass.getChangeStatus() == JApiChangeStatus.UNCHANGED) {
+                classesToRemove.add(jApiClass);
+            } else {
+                List<JApiMethod> methodsToRemove = new LinkedList<JApiMethod>();
+                List<JApiMethod> methods = jApiClass.getMethods();
+                for (JApiMethod jApiMethod : methods) {
+                    if (jApiMethod.getChangeStatus() == JApiChangeStatus.UNCHANGED) {
+                        methodsToRemove.add(jApiMethod);
+                    }
+                }
+                for (JApiMethod jApiMethod : methodsToRemove) {
+                    methods.remove(jApiMethod);
+                }
+            }
+        }
+        for (JApiClass jApiClass : classesToRemove) {
+            jApiClasses.remove(jApiClass);
+        }
+    }
+
+    public static void sortClassesAndMethods(List<JApiClass> jApiClasses) {
+        Collections.sort(jApiClasses, new Comparator<JApiClass>() {
+            public int compare(JApiClass o1, JApiClass o2) {
+                return o1.getFullyQualifiedName().compareToIgnoreCase(o2.getFullyQualifiedName());
+            }
+        });
+        for(JApiClass jApiClass : jApiClasses) {
+            Collections.sort(jApiClass.getMethods(), new Comparator<JApiMethod>() {
+                public int compare(JApiMethod o1, JApiMethod o2) {
+                    return o1.getName().compareToIgnoreCase(o2.getName());
+                }
+            });
+        }
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/output/stdout/StdoutOutputGenerator.java b/japicmp/src/main/java/japicmp/output/stdout/StdoutOutputGenerator.java
new file mode 100644
index 0000000..cead423
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/output/stdout/StdoutOutputGenerator.java
@@ -0,0 +1,71 @@
+package japicmp.output.stdout;
+
+import japicmp.config.Options;
+import japicmp.model.JApiChangeStatus;
+import japicmp.model.JApiClass;
+import japicmp.model.JApiMethod;
+import japicmp.model.JApiParameter;
+import japicmp.output.OutputTransformer;
+
+import java.io.File;
+import java.util.List;
+
+public class StdoutOutputGenerator {
+
+    public String generate(File oldArchive, File newArchive, List<JApiClass> jApiClasses, Options options) {
+        if (options.isOutputOnlyModifications()) {
+            OutputTransformer.removeUnchanged(jApiClasses);
+        }
+        StringBuilder sb = new StringBuilder();
+        sb.append(String.format("Comparing %s with %s:\n", oldArchive.getAbsolutePath(), newArchive.getAbsolutePath()));
+        for (JApiClass jApiClass : jApiClasses) {
+            processClass(sb, jApiClass);
+            processMethods(sb, jApiClass);
+        }
+        return sb.toString();
+    }
+
+    private void processMethods(StringBuilder sb, JApiClass jApiClass) {
+        List<JApiMethod> methods = jApiClass.getMethods();
+        for (JApiMethod jApiMethod : methods) {
+            if (jApiMethod.getChangeStatus() == JApiChangeStatus.UNCHANGED) {
+                appendMethod(sb, "===", jApiMethod);
+            } else if (jApiMethod.getChangeStatus() == JApiChangeStatus.NEW) {
+                appendMethod(sb, "+++", jApiMethod);
+            } else if (jApiMethod.getChangeStatus() == JApiChangeStatus.REMOVED) {
+                appendMethod(sb, "---", jApiMethod);
+            } else if (jApiMethod.getChangeStatus() == JApiChangeStatus.MODIFIED) {
+                appendMethod(sb, "***", jApiMethod);
+            }
+        }
+    }
+
+    private void processClass(StringBuilder sb, JApiClass jApiClass) {
+        if (jApiClass.getChangeStatus() == JApiChangeStatus.UNCHANGED) {
+            appendClass(sb, "===", jApiClass);
+        } else if (jApiClass.getChangeStatus() == JApiChangeStatus.NEW) {
+            appendClass(sb, "+++", jApiClass);
+        } else if (jApiClass.getChangeStatus() == JApiChangeStatus.REMOVED) {
+            appendClass(sb, "---", jApiClass);
+        } else if (jApiClass.getChangeStatus() == JApiChangeStatus.MODIFIED) {
+            appendClass(sb, "***", jApiClass);
+        }
+    }
+
+    private void appendMethod(StringBuilder sb, String signs, JApiMethod jApiMethod) {
+        sb.append("\t" + signs + " " + jApiMethod.getChangeStatus() + " METHOD " + jApiMethod.getName() + "(");
+        int paramCount = 0;
+        for (JApiParameter jApiParameter : jApiMethod.getParameters()) {
+            if (paramCount > 0) {
+                sb.append(",");
+            }
+            sb.append(jApiParameter.getType());
+            paramCount++;
+        }
+        sb.append(")\n");
+    }
+
+    private void appendClass(StringBuilder sb, String signs, JApiClass jApiClass) {
+        sb.append(signs + " " + jApiClass.getChangeStatus() + " " + jApiClass.getType() + " " + jApiClass.getFullyQualifiedName() + "\n");
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/output/xml/XmlOutputGenerator.java b/japicmp/src/main/java/japicmp/output/xml/XmlOutputGenerator.java
new file mode 100644
index 0000000..939c6cb
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/output/xml/XmlOutputGenerator.java
@@ -0,0 +1,24 @@
+package japicmp.output.xml;
+
+import japicmp.config.Options;
+import japicmp.model.JApiClass;
+import japicmp.output.OutputTransformer;
+import japicmp.output.xml.model.JApiCmpXmlRoot;
+
+import javax.xml.bind.JAXB;
+import java.io.File;
+import java.util.List;
+
+public class XmlOutputGenerator {
+
+    public void generate(File oldArchive, File newArchive, List<JApiClass> jApiClasses, Options options) {
+        JApiCmpXmlRoot jApiCmpXmlRoot = new JApiCmpXmlRoot();
+        jApiCmpXmlRoot.setOldJar(oldArchive.getAbsolutePath());
+        jApiCmpXmlRoot.setNewJar(newArchive.getAbsolutePath());
+        jApiCmpXmlRoot.setClasses(jApiClasses);
+        if (options.isOutputOnlyModifications()) {
+            OutputTransformer.removeUnchanged(jApiClasses);
+        }
+        JAXB.marshal(jApiCmpXmlRoot, new File(options.getXmlOutputFile().get()));
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/output/xml/model/JApiCmpXmlRoot.java b/japicmp/src/main/java/japicmp/output/xml/model/JApiCmpXmlRoot.java
new file mode 100644
index 0000000..77beafe
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/output/xml/model/JApiCmpXmlRoot.java
@@ -0,0 +1,43 @@
+package japicmp.output.xml.model;
+
+import japicmp.model.JApiClass;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.LinkedList;
+import java.util.List;
+
+@XmlRootElement(name = "japicmp")
+public class JApiCmpXmlRoot {
+    private String oldJar = "";
+    private String newJar = "";
+    private List<JApiClass> classes = new LinkedList<JApiClass>();
+
+    @XmlElement(name = "class")
+    public List<JApiClass> getClasses() {
+        return classes;
+    }
+
+    public void setClasses(List<JApiClass> classes) {
+        this.classes = classes;
+    }
+
+    @XmlAttribute
+    public String getNewJar() {
+        return newJar;
+    }
+
+    public void setNewJar(String newJar) {
+        this.newJar = newJar;
+    }
+
+    @XmlAttribute
+    public String getOldJar() {
+        return oldJar;
+    }
+
+    public void setOldJar(String oldJar) {
+        this.oldJar = oldJar;
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/util/SignatureParser.java b/japicmp/src/main/java/japicmp/util/SignatureParser.java
new file mode 100644
index 0000000..9d4d96d
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/util/SignatureParser.java
@@ -0,0 +1,103 @@
+package japicmp.util;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class SignatureParser {
+    private List<String> parameters = new LinkedList<String>();
+    private String returnType = "void";
+
+    public void parse(String signature) {
+        int parenthesisCloseIndex = signature.indexOf(')');
+        if(parenthesisCloseIndex > -1) {
+            parseParameters(signature, parenthesisCloseIndex);
+            parseReturnValue(signature, parenthesisCloseIndex);
+        }
+    }
+
+    private void parseReturnValue(String signature, int parenthesisCloseIndex) {
+        String retValPart = signature.substring(parenthesisCloseIndex+1);
+        List<String> retValTypes = parseTypes(retValPart);
+        returnType = retValTypes.get(0);
+    }
+
+    private void parseParameters(String signature, int parenthesisCloseIndex) {
+        String paramPart = signature.substring(1, parenthesisCloseIndex);
+        List<String> paramTypes = parseTypes(paramPart);
+        parameters.clear();
+        parameters.addAll(paramTypes);
+    }
+
+    private List<String> parseTypes(String paramPart) {
+        List<String> types = new LinkedList<String>();
+        boolean arrayNotation = false;
+        for(int i=0; i<paramPart.length(); i++) {
+            char c = paramPart.charAt(i);
+            String type = "void";
+            switch(c) {
+                case 'Z':
+                    type = "boolean";
+                    break;
+                case 'B':
+                    type = "byte";
+                    break;
+                case 'C':
+                    type = "char";
+                    break;
+                case 'S':
+                    type = "short";
+                    break;
+                case 'I':
+                    type = "int";
+                    break;
+                case 'J':
+                    type = "long";
+                    break;
+                case 'F':
+                    type = "float";
+                    break;
+                case 'D':
+                    type = "double";
+                    break;
+                case 'V':
+                    type = "void";
+                    break;
+                case '[':
+                    arrayNotation = true;
+                    continue;
+                case 'L':
+                    StringBuilder fqn = new StringBuilder();
+                    i++;
+                    while(i<paramPart.length()) {
+                        c = paramPart.charAt(i);
+                        if(c == ';') {
+                            break;
+                        } else if(c == '/') {
+                            fqn.append('.');
+                        } else {
+                            fqn.append(c);
+                        }
+                        i++;
+                    }
+                    type = fqn.toString();
+                    break;
+                default:
+                    throw new IllegalStateException("Unknown type signature: '"+c+"'");
+            }
+            if(arrayNotation) {
+                type += "[]";
+                arrayNotation = false;
+            }
+            types.add(type);
+        }
+        return types;
+    }
+
+    public List<String> getParameters() {
+        return parameters;
+    }
+
+    public String getReturnType() {
+        return returnType;
+    }
+}
diff --git a/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java b/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java
new file mode 100644
index 0000000..82c7eb6
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java
@@ -0,0 +1,27 @@
+package japicmp.util;
+
+import java.util.Enumeration;
+import java.util.NoSuchElementException;
+
+public class StringArrayEnumeration implements Enumeration<String> {
+    private final String[] array;
+    private int pos = 0;
+
+    public StringArrayEnumeration(String[] array) {
+        this.array = array;
+    }
+
+    @Override
+    public boolean hasMoreElements() {
+        return pos < array.length;
+    }
+
+    @Override
+    public String nextElement() {
+        if(hasMoreElements()) {
+            return array[pos++];
+        } else {
+            throw new NoSuchElementException();
+        }
+    }
+}
diff --git a/japicmp/src/main/resources/log4j.properties b/japicmp/src/main/resources/log4j.properties
new file mode 100644
index 0000000..71255bb
--- /dev/null
+++ b/japicmp/src/main/resources/log4j.properties
@@ -0,0 +1,8 @@
+# Root logger option
+log4j.rootLogger=DEBUG, stdout
+
+# Direct log messages to stdout
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
\ No newline at end of file
diff --git a/japicmp/src/test/java/japicmp/cli/CliParserTest.java b/japicmp/src/test/java/japicmp/cli/CliParserTest.java
new file mode 100644
index 0000000..8dafe7f
--- /dev/null
+++ b/japicmp/src/test/java/japicmp/cli/CliParserTest.java
@@ -0,0 +1,40 @@
+package japicmp.cli;
+
+import japicmp.config.Options;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public class CliParserTest {
+    private CliParser subject;
+
+    @Before
+    public void before() {
+        subject = new CliParser();
+    }
+
+    @Test
+    public void testAllOptions() {
+        Options options = subject.parse(new String[]{"-n", "npath", "-o", "opath", "-m", "-x", "xpath"});
+        assertThat(options.getXmlOutputFile().get(), is("xpath"));
+        assertThat(options.getNewArchive(), is("npath"));
+        assertThat(options.getOldArchive(), is("opath"));
+        assertThat(options.isOutputOnlyModifications(), is(true));
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testMissingArgumentForN() {
+        subject.parse(new String[]{"-n", "-o", "opath"});
+    }
+
+    @Test
+    public void testOnlyNAndO() {
+        Options options = subject.parse(new String[]{"-n", "npath", "-o", "opath",});
+        assertThat(options.getXmlOutputFile().isPresent(), is(false));
+        assertThat(options.getNewArchive(), is("npath"));
+        assertThat(options.getOldArchive(), is("opath"));
+        assertThat(options.isOutputOnlyModifications(), is(false));
+    }
+}
diff --git a/japicmp/src/test/java/japicmp/util/SignatureParserTest.java b/japicmp/src/test/java/japicmp/util/SignatureParserTest.java
new file mode 100644
index 0000000..183fd8a
--- /dev/null
+++ b/japicmp/src/test/java/japicmp/util/SignatureParserTest.java
@@ -0,0 +1,99 @@
+package japicmp.util;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.hasItem;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public class SignatureParserTest {
+    private SignatureParser subject;
+
+    @Before
+    public void before() throws Exception {
+        subject = new SignatureParser();
+    }
+
+    @Test
+    public void testNoParamsReturnsVoid() {
+        subject.parse("()V");
+        assertThat(subject.getReturnType(), is("void"));
+        assertThat(subject.getParameters().size(), is(0));
+    }
+
+    @Test
+    public void testTwoReferenceParamsReturnsReference() {
+        subject.parse("(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/conn/ManagedClientConnection;");
+        assertThat(subject.getReturnType(), is("org.apache.http.conn.ManagedClientConnection"));
+        assertThat(subject.getParameters().size(), is(2));
+        assertThat(subject.getParameters(), hasItem("org.apache.http.conn.routing.HttpRoute"));
+        assertThat(subject.getParameters(), hasItem("java.lang.Object"));
+    }
+
+    @Test
+    public void testOneReferenceOnePrimParamsReturnsVoid() {
+        subject.parse("(JLjava/util/concurrent/TimeUnit;)V");
+        assertThat(subject.getReturnType(), is("void"));
+        assertThat(subject.getParameters().size(), is(2));
+        assertThat(subject.getParameters(), hasItem("long"));
+        assertThat(subject.getParameters(), hasItem("java.util.concurrent.TimeUnit"));
+    }
+
+    @Test
+    public void testArrayTwoPrimParamsReturnsVoid() {
+        subject.parse("([BII)V");
+        assertThat(subject.getReturnType(), is("void"));
+        assertThat(subject.getParameters().size(), is(3));
+        assertThat(subject.getParameters(), hasItem("byte[]"));
+        assertThat(subject.getParameters(), hasItem("int"));
+    }
+
+    @Test
+    public void testArrayPrimParamReturnsVoid() {
+        subject.parse("([B)V");
+        assertThat(subject.getReturnType(), is("void"));
+        assertThat(subject.getParameters().size(), is(1));
+        assertThat(subject.getParameters(), hasItem("byte[]"));
+    }
+
+    @Test
+    public void testArrayRefParamReturnsVoid() {
+        subject.parse("([Lorg/apache/http/cookie/Cookie;)V");
+        assertThat(subject.getReturnType(), is("void"));
+        assertThat(subject.getParameters().size(), is(1));
+        assertThat(subject.getParameters(), hasItem("org.apache.http.cookie.Cookie[]"));
+    }
+
+    @Test
+    public void testOneReferenceParamsReturnsVoid() {
+        subject.parse("(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;)V");
+        assertThat(subject.getReturnType(), is("void"));
+        assertThat(subject.getParameters().size(), is(1));
+        assertThat(subject.getParameters(), hasItem("org.apache.http.impl.conn.tsccm.BasicPoolEntry"));
+    }
+
+    @Test
+    public void testOneReferenceParamsReturnsOneReference() {
+        subject.parse("(Ljava/util/List;)Ljava/util/List;");
+        assertThat(subject.getReturnType(), is("java.util.List"));
+        assertThat(subject.getParameters().size(), is(1));
+        assertThat(subject.getParameters(), hasItem("java.util.List"));
+    }
+
+    @Test
+    public void testNoParamsReturnsReference() {
+        subject.parse("()Lorg/apache/http/conn/scheme/SchemeRegistry;");
+        assertThat(subject.getReturnType(), is("org.apache.http.conn.scheme.SchemeRegistry"));
+        assertThat(subject.getParameters().size(), is(0));
+    }
+
+    @Test
+    public void testNoParamsReturnsI() {
+        subject.parse("()I");
+        assertThat(subject.getReturnType(), is("int"));
+        assertThat(subject.getParameters().size(), is(0));
+    }
+}
diff --git a/japicmp/src/test/java/japicmp/util/StringArrayEnumerationTest.java b/japicmp/src/test/java/japicmp/util/StringArrayEnumerationTest.java
new file mode 100644
index 0000000..853d71e
--- /dev/null
+++ b/japicmp/src/test/java/japicmp/util/StringArrayEnumerationTest.java
@@ -0,0 +1,37 @@
+package japicmp.util;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.NoSuchElementException;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public class StringArrayEnumerationTest {
+
+    @Test(expected = NoSuchElementException.class)
+    public void testEmptyArray() {
+        StringArrayEnumeration sae = new StringArrayEnumeration(new String[]{});
+        assertThat(sae.hasMoreElements(), is(false));
+        sae.nextElement();
+    }
+
+    @Test
+    public void testOneElementArray() {
+        StringArrayEnumeration sae = new StringArrayEnumeration(new String[]{"1"});
+        assertThat(sae.hasMoreElements(), is(true));
+        assertThat(sae.nextElement(), is("1"));
+        assertThat(sae.hasMoreElements(), is(false));
+    }
+
+    @Test
+    public void testTwoElementsArray() {
+        StringArrayEnumeration sae = new StringArrayEnumeration(new String[]{"1","2"});
+        assertThat(sae.hasMoreElements(), is(true));
+        assertThat(sae.nextElement(), is("1"));
+        assertThat(sae.hasMoreElements(), is(true));
+        assertThat(sae.nextElement(), is("2"));
+        assertThat(sae.hasMoreElements(), is(false));
+    }
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..a25f751
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,43 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>japicmp</groupId>
+    <artifactId>japicmp-base</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <packaging>pom</packaging>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <modules>
+        <module>japicmp</module>
+    </modules>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.1</version>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file


[commons-vfs] 13/18: [maven-release-plugin] rollback the release of japicmp-base-0.0.1

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 89123618be687334413681dc810c17db8a8834e4
Author: siom79 <ma...@googlemail.com>
AuthorDate: Thu Oct 3 12:27:00 2013 +0200

    [maven-release-plugin] rollback the release of japicmp-base-0.0.1
---
 japicmp-testbase/japicmp-test-v1/pom.xml | 6 ++++--
 japicmp-testbase/japicmp-test-v2/pom.xml | 6 ++++--
 japicmp-testbase/japicmp-test/pom.xml    | 6 ++++--
 japicmp-testbase/pom.xml                 | 6 ++++--
 japicmp/pom.xml                          | 6 ++++--
 pom.xml                                  | 8 +++++---
 6 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/japicmp-testbase/japicmp-test-v1/pom.xml b/japicmp-testbase/japicmp-test-v1/pom.xml
index ef2c7cd..20911a2 100644
--- a/japicmp-testbase/japicmp-test-v1/pom.xml
+++ b/japicmp-testbase/japicmp-test-v1/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-test-v1</artifactId>
diff --git a/japicmp-testbase/japicmp-test-v2/pom.xml b/japicmp-testbase/japicmp-test-v2/pom.xml
index 50386ce..2174ec5 100644
--- a/japicmp-testbase/japicmp-test-v2/pom.xml
+++ b/japicmp-testbase/japicmp-test-v2/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-test-v2</artifactId>
diff --git a/japicmp-testbase/japicmp-test/pom.xml b/japicmp-testbase/japicmp-test/pom.xml
index d3983ab..11d5a81 100644
--- a/japicmp-testbase/japicmp-test/pom.xml
+++ b/japicmp-testbase/japicmp-test/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-test</artifactId>
diff --git a/japicmp-testbase/pom.xml b/japicmp-testbase/pom.xml
index d3fe934..b540cc7 100644
--- a/japicmp-testbase/pom.xml
+++ b/japicmp-testbase/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-testbase</artifactId>
diff --git a/japicmp/pom.xml b/japicmp/pom.xml
index 98a43d7..ca25768 100644
--- a/japicmp/pom.xml
+++ b/japicmp/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp</artifactId>
diff --git a/pom.xml b/pom.xml
index 8445e98..3778e4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>japicmp</groupId>
     <artifactId>japicmp-base</artifactId>
-    <version>0.0.1</version>
+    <version>0.0.1-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <properties>
@@ -98,7 +100,7 @@
         <connection>scm:git:git://github.com/${github.account}/${project.groupId}.git</connection>
         <developerConnection>scm:git:git@github.com:${github.account}/${project.groupId}.git</developerConnection>
         <url>http://github.com/${github.account}/${project.groupId}/tree/master/</url>
-        <tag>japicmp-base-0.0.1</tag>
+        <tag>HEAD</tag>
     </scm>
 	
     <distributionManagement>


[commons-vfs] 17/18: [maven-release-plugin] rollback the release of japicmp-base-0.0.1

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 8fbdc6c5dcb5c450a1cff582990bbfe2656f5428
Author: siom79 <ma...@googlemail.com>
AuthorDate: Thu Oct 3 13:32:53 2013 +0200

    [maven-release-plugin] rollback the release of japicmp-base-0.0.1
---
 japicmp-testbase/japicmp-test-v1/pom.xml | 6 ++++--
 japicmp-testbase/japicmp-test-v2/pom.xml | 6 ++++--
 japicmp-testbase/japicmp-test/pom.xml    | 6 ++++--
 japicmp-testbase/pom.xml                 | 6 ++++--
 japicmp/pom.xml                          | 6 ++++--
 pom.xml                                  | 8 +++++---
 6 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/japicmp-testbase/japicmp-test-v1/pom.xml b/japicmp-testbase/japicmp-test-v1/pom.xml
index ef2c7cd..20911a2 100644
--- a/japicmp-testbase/japicmp-test-v1/pom.xml
+++ b/japicmp-testbase/japicmp-test-v1/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-test-v1</artifactId>
diff --git a/japicmp-testbase/japicmp-test-v2/pom.xml b/japicmp-testbase/japicmp-test-v2/pom.xml
index 50386ce..2174ec5 100644
--- a/japicmp-testbase/japicmp-test-v2/pom.xml
+++ b/japicmp-testbase/japicmp-test-v2/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-test-v2</artifactId>
diff --git a/japicmp-testbase/japicmp-test/pom.xml b/japicmp-testbase/japicmp-test/pom.xml
index d3983ab..11d5a81 100644
--- a/japicmp-testbase/japicmp-test/pom.xml
+++ b/japicmp-testbase/japicmp-test/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-test</artifactId>
diff --git a/japicmp-testbase/pom.xml b/japicmp-testbase/pom.xml
index d3fe934..b540cc7 100644
--- a/japicmp-testbase/pom.xml
+++ b/japicmp-testbase/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp-testbase</artifactId>
diff --git a/japicmp/pom.xml b/japicmp/pom.xml
index 98a43d7..ca25768 100644
--- a/japicmp/pom.xml
+++ b/japicmp/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1</version>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
 
     <artifactId>japicmp</artifactId>
diff --git a/pom.xml b/pom.xml
index 8445e98..3778e4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,10 +1,12 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>japicmp</groupId>
     <artifactId>japicmp-base</artifactId>
-    <version>0.0.1</version>
+    <version>0.0.1-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <properties>
@@ -98,7 +100,7 @@
         <connection>scm:git:git://github.com/${github.account}/${project.groupId}.git</connection>
         <developerConnection>scm:git:git@github.com:${github.account}/${project.groupId}.git</developerConnection>
         <url>http://github.com/${github.account}/${project.groupId}/tree/master/</url>
-        <tag>japicmp-base-0.0.1</tag>
+        <tag>HEAD</tag>
     </scm>
 	
     <distributionManagement>


[commons-vfs] 11/18: Added JarArchiveComparatorOptions, Update of README.md

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit ef67f5fbe22531c9e161debe143c4292dde567b8
Author: siom79 <ma...@googlemail.com>
AuthorDate: Thu Oct 3 12:07:55 2013 +0200

    Added JarArchiveComparatorOptions, Update of README.md
---
 README.md                                               |  2 +-
 .../src/test/java/japicmp/test/BasicTest.java           |  3 ++-
 japicmp/src/main/java/japicmp/JApiCmp.java              |  3 ++-
 .../src/main/java/japicmp/cmp/JarArchiveComparator.java |  4 ++++
 .../java/japicmp/cmp/JarArchiveComparatorOptions.java   | 17 +++++++++++++++++
 5 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index a6502ab..2b21e44 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ It can also be used as a library to integrate its functionality in some other ki
 
 ##Motivation##
 
-Every time you make a new release of a library or a product you have to tell your clients or customers what
+Every time you make a new release of a library or a product, you have to tell your clients or customers what
 has changed in comparison to the last release. Without the appropriate tooling, this task is tedious and error-prone.
 This tool/library helps you to determine the differences between the java class files that are contained in the two
 jar archives.
diff --git a/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java b/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java
index e650051..7abab9b 100644
--- a/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java
+++ b/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java
@@ -1,6 +1,7 @@
 package japicmp.test;
 
 import japicmp.cmp.JarArchiveComparator;
+import japicmp.cmp.JarArchiveComparatorOptions;
 import japicmp.model.JApiChangeStatus;
 import japicmp.model.JApiClass;
 import japicmp.model.JApiMethod;
@@ -17,7 +18,7 @@ public class BasicTest {
 
     @Test
     public void test() {
-        JarArchiveComparator jarArchiveComparator = new JarArchiveComparator();
+        JarArchiveComparator jarArchiveComparator = new JarArchiveComparator(new JarArchiveComparatorOptions());
         List<JApiClass> jApiClasses = jarArchiveComparator.compare(getArchive("japicmp-test-v1.jar"), getArchive("japicmp-test-v2.jar"));
         assertThat(jApiClasses.size(), is(3));
         JApiClass jApiClassRemoved = getJApiClass(jApiClasses, Removed.class.getName());
diff --git a/japicmp/src/main/java/japicmp/JApiCmp.java b/japicmp/src/main/java/japicmp/JApiCmp.java
index 51496ab..6d55a17 100644
--- a/japicmp/src/main/java/japicmp/JApiCmp.java
+++ b/japicmp/src/main/java/japicmp/JApiCmp.java
@@ -2,6 +2,7 @@ package japicmp;
 
 import japicmp.cli.CliParser;
 import japicmp.cmp.JarArchiveComparator;
+import japicmp.cmp.JarArchiveComparatorOptions;
 import japicmp.config.Options;
 import japicmp.model.JApiClass;
 import japicmp.output.OutputTransformer;
@@ -18,7 +19,7 @@ public class JApiCmp {
         File oldArchive = new File(options.getOldArchive());
         File newArchive = new File(options.getNewArchive());
         verifyFilesExist(oldArchive, newArchive);
-        JarArchiveComparator jarArchiveComparator = new JarArchiveComparator();
+        JarArchiveComparator jarArchiveComparator = new JarArchiveComparator(new JarArchiveComparatorOptions());
         List<JApiClass> jApiClasses = jarArchiveComparator.compare(oldArchive, newArchive);
         generateOutput(options, oldArchive, newArchive, jApiClasses);
     }
diff --git a/japicmp/src/main/java/japicmp/cmp/JarArchiveComparator.java b/japicmp/src/main/java/japicmp/cmp/JarArchiveComparator.java
index 0f150c2..06097d1 100644
--- a/japicmp/src/main/java/japicmp/cmp/JarArchiveComparator.java
+++ b/japicmp/src/main/java/japicmp/cmp/JarArchiveComparator.java
@@ -15,6 +15,10 @@ import java.util.jar.JarFile;
 public class JarArchiveComparator {
     private static final Logger logger = Logger.getLogger(JarArchiveComparator.class);
 
+    public JarArchiveComparator(JarArchiveComparatorOptions options) {
+
+    }
+
     public List<JApiClass> compare(File oldArchive, File newArchive) {
         ClassPool classPool = new ClassPool();
         try {
diff --git a/japicmp/src/main/java/japicmp/cmp/JarArchiveComparatorOptions.java b/japicmp/src/main/java/japicmp/cmp/JarArchiveComparatorOptions.java
new file mode 100644
index 0000000..c474ef6
--- /dev/null
+++ b/japicmp/src/main/java/japicmp/cmp/JarArchiveComparatorOptions.java
@@ -0,0 +1,17 @@
+package japicmp.cmp;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class JarArchiveComparatorOptions {
+    private List<String> packagesInclude = new LinkedList<String>();
+    private List<String> packagesExclude = new LinkedList<String>();
+
+    public List<String> getPackagesExclude() {
+        return packagesExclude;
+    }
+
+    public List<String> getPackagesInclude() {
+        return packagesInclude;
+    }
+}


[commons-vfs] 01/18: Initial commit

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit aceff7a64407ac14382e6d20e66cf93923210d72
Author: siom79 <ma...@yahoo.de>
AuthorDate: Sun Sep 29 04:28:08 2013 -0700

    Initial commit
---
 LICENSE   | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 README.md |   4 ++
 2 files changed, 195 insertions(+)

diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..37ec93a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,191 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and
+distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright
+owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities
+that control, are controlled by, or are under common control with that entity.
+For the purposes of this definition, "control" means (i) the power, direct or
+indirect, to cause the direction or management of such entity, whether by
+contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
+outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising
+permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including
+but not limited to software source code, documentation source, and configuration
+files.
+
+"Object" form shall mean any form resulting from mechanical transformation or
+translation of a Source form, including but not limited to compiled object code,
+generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made
+available under the License, as indicated by a copyright notice that is included
+in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that
+is based on (or derived from) the Work and for which the editorial revisions,
+annotations, elaborations, or other modifications represent, as a whole, an
+original work of authorship. For the purposes of this License, Derivative Works
+shall not include works that remain separable from, or merely link (or bind by
+name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version
+of the Work and any modifications or additions to that Work or Derivative Works
+thereof, that is intentionally submitted to Licensor for inclusion in the Work
+by the copyright owner or by an individual or Legal Entity authorized to submit
+on behalf of the copyright owner. For the purposes of this definition,
+"submitted" means any form of electronic, verbal, or written communication sent
+to the Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control systems, and
+issue tracking systems that are managed by, or on behalf of, the Licensor for
+the purpose of discussing and improving the Work, but excluding communication
+that is conspicuously marked or otherwise designated in writing by the copyright
+owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
+of whom a Contribution has been received by Licensor and subsequently
+incorporated within the Work.
+
+2. Grant of Copyright License.
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the Work and such
+Derivative Works in Source or Object form.
+
+3. Grant of Patent License.
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable (except as stated in this section) patent license to make, have
+made, use, offer to sell, sell, import, and otherwise transfer the Work, where
+such license applies only to those patent claims licensable by such Contributor
+that are necessarily infringed by their Contribution(s) alone or by combination
+of their Contribution(s) with the Work to which such Contribution(s) was
+submitted. If You institute patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Work or a
+Contribution incorporated within the Work constitutes direct or contributory
+patent infringement, then any patent licenses granted to You under this License
+for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.
+
+You may reproduce and distribute copies of the Work or Derivative Works thereof
+in any medium, with or without modifications, and in Source or Object form,
+provided that You meet the following conditions:
+
+You must give any other recipients of the Work or Derivative Works a copy of
+this License; and
+You must cause any modified files to carry prominent notices stating that You
+changed the files; and
+You must retain, in the Source form of any Derivative Works that You distribute,
+all copyright, patent, trademark, and attribution notices from the Source form
+of the Work, excluding those notices that do not pertain to any part of the
+Derivative Works; and
+If the Work includes a "NOTICE" text file as part of its distribution, then any
+Derivative Works that You distribute must include a readable copy of the
+attribution notices contained within such NOTICE file, excluding those notices
+that do not pertain to any part of the Derivative Works, in at least one of the
+following places: within a NOTICE text file distributed as part of the
+Derivative Works; within the Source form or documentation, if provided along
+with the Derivative Works; or, within a display generated by the Derivative
+Works, if and wherever such third-party notices normally appear. The contents of
+the NOTICE file are for informational purposes only and do not modify the
+License. You may add Your own attribution notices within Derivative Works that
+You distribute, alongside or as an addendum to the NOTICE text from the Work,
+provided that such additional attribution notices cannot be construed as
+modifying the License.
+You may add Your own copyright statement to Your modifications and may provide
+additional or different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works as a whole,
+provided Your use, reproduction, and distribution of the Work otherwise complies
+with the conditions stated in this License.
+
+5. Submission of Contributions.
+
+Unless You explicitly state otherwise, any Contribution intentionally submitted
+for inclusion in the Work by You to the Licensor shall be under the terms and
+conditions of this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify the terms of
+any separate license agreement you may have executed with Licensor regarding
+such Contributions.
+
+6. Trademarks.
+
+This License does not grant permission to use the trade names, trademarks,
+service marks, or product names of the Licensor, except as required for
+reasonable and customary use in describing the origin of the Work and
+reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty.
+
+Unless required by applicable law or agreed to in writing, Licensor provides the
+Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
+including, without limitation, any warranties or conditions of TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
+solely responsible for determining the appropriateness of using or
+redistributing the Work and assume any risks associated with Your exercise of
+permissions under this License.
+
+8. Limitation of Liability.
+
+In no event and under no legal theory, whether in tort (including negligence),
+contract, or otherwise, unless required by applicable law (such as deliberate
+and grossly negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special, incidental,
+or consequential damages of any character arising as a result of this License or
+out of the use or inability to use the Work (including but not limited to
+damages for loss of goodwill, work stoppage, computer failure or malfunction, or
+any and all other commercial damages or losses), even if such Contributor has
+been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability.
+
+While redistributing the Work or Derivative Works thereof, You may choose to
+offer, and charge a fee for, acceptance of support, warranty, indemnity, or
+other liability obligations and/or rights consistent with this License. However,
+in accepting such obligations, You may act only on Your own behalf and on Your
+sole responsibility, not on behalf of any other Contributor, and only if You
+agree to indemnify, defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason of your
+accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work
+
+To apply the Apache License to your work, attach the following boilerplate
+notice, with the fields enclosed by brackets "[]" replaced with your own
+identifying information. (Don't include the brackets!) The text should be
+enclosed in the appropriate comment syntax for the file format. We also
+recommend that a file or class name and description of purpose be included on
+the same "printed page" as the copyright notice for easier identification within
+third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..eede782
--- /dev/null
+++ b/README.md
@@ -0,0 +1,4 @@
+japicmp
+=======
+
+Comparison of two versions of a jar archive


[commons-vfs] 06/18: Updated download link to newest snapshot version

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit ca835403eb631dcadbbcb9b831eedfade55724f7
Author: siom79 <ma...@googlemail.com>
AuthorDate: Sun Sep 29 23:46:55 2013 +0200

    Updated download link to newest snapshot version
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 06631f7..6ef0eb6 100644
--- a/README.md
+++ b/README.md
@@ -33,7 +33,7 @@ The tool has a set of CLI parameters that are described in the following:
 
 ##Downloads##
 
-The latest development version can be downloaded here: [0.0.1-SNAPSHOT](http://repository-siom79.forge.cloudbees.com/snapshot/japicmp/japicmp/0.0.1-SNAPSHOT/japicmp-0.0.1-20130929.203701-1.jar)
+The latest development version can be downloaded here: [0.0.1-SNAPSHOT](http://repository-siom79.forge.cloudbees.com/snapshot/japicmp/japicmp/0.0.1-SNAPSHOT/japicmp-0.0.1-20130929.212744-3.jar)
 
 ##Development##
 


[commons-vfs] 05/18: added findbugs plugin

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit d702fd6ab579f51392099b822bb81b3b7a2562ea
Author: siom79 <ma...@googlemail.com>
AuthorDate: Sun Sep 29 23:43:54 2013 +0200

    added findbugs plugin
---
 japicmp/pom.xml | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/japicmp/pom.xml b/japicmp/pom.xml
index dba6508..88efc22 100644
--- a/japicmp/pom.xml
+++ b/japicmp/pom.xml
@@ -135,6 +135,15 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>findbugs-maven-plugin</artifactId>
+                <version>2.5.2</version>
+                <configuration>
+                    <xmlOutput>true</xmlOutput>
+                    <xmlOutputDirectory>target/site</xmlOutputDirectory>
+                </configuration>
+            </plugin>
         </plugins>
         <extensions>
             <extension>


[commons-vfs] 16/18: [maven-release-plugin] prepare release japicmp-base-0.0.1

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 7fe97d431cb8ad2bc0f7fe218350e97045dc38bd
Author: siom79 <ma...@googlemail.com>
AuthorDate: Thu Oct 3 13:32:24 2013 +0200

    [maven-release-plugin] prepare release japicmp-base-0.0.1
---
 japicmp-testbase/japicmp-test-v1/pom.xml | 6 ++----
 japicmp-testbase/japicmp-test-v2/pom.xml | 6 ++----
 japicmp-testbase/japicmp-test/pom.xml    | 6 ++----
 japicmp-testbase/pom.xml                 | 6 ++----
 japicmp/pom.xml                          | 6 ++----
 pom.xml                                  | 8 +++-----
 6 files changed, 13 insertions(+), 25 deletions(-)

diff --git a/japicmp-testbase/japicmp-test-v1/pom.xml b/japicmp-testbase/japicmp-test-v1/pom.xml
index 20911a2..ef2c7cd 100644
--- a/japicmp-testbase/japicmp-test-v1/pom.xml
+++ b/japicmp-testbase/japicmp-test-v1/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test-v1</artifactId>
diff --git a/japicmp-testbase/japicmp-test-v2/pom.xml b/japicmp-testbase/japicmp-test-v2/pom.xml
index 2174ec5..50386ce 100644
--- a/japicmp-testbase/japicmp-test-v2/pom.xml
+++ b/japicmp-testbase/japicmp-test-v2/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test-v2</artifactId>
diff --git a/japicmp-testbase/japicmp-test/pom.xml b/japicmp-testbase/japicmp-test/pom.xml
index 11d5a81..d3983ab 100644
--- a/japicmp-testbase/japicmp-test/pom.xml
+++ b/japicmp-testbase/japicmp-test/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test</artifactId>
diff --git a/japicmp-testbase/pom.xml b/japicmp-testbase/pom.xml
index b540cc7..d3fe934 100644
--- a/japicmp-testbase/pom.xml
+++ b/japicmp-testbase/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-testbase</artifactId>
diff --git a/japicmp/pom.xml b/japicmp/pom.xml
index ca25768..98a43d7 100644
--- a/japicmp/pom.xml
+++ b/japicmp/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp</artifactId>
diff --git a/pom.xml b/pom.xml
index 3778e4e..8445e98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>japicmp</groupId>
     <artifactId>japicmp-base</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.1</version>
     <packaging>pom</packaging>
 
     <properties>
@@ -100,7 +98,7 @@
         <connection>scm:git:git://github.com/${github.account}/${project.groupId}.git</connection>
         <developerConnection>scm:git:git@github.com:${github.account}/${project.groupId}.git</developerConnection>
         <url>http://github.com/${github.account}/${project.groupId}/tree/master/</url>
-        <tag>HEAD</tag>
+        <tag>japicmp-base-0.0.1</tag>
     </scm>
 	
     <distributionManagement>


[commons-vfs] 08/18: added testbase module and three submodules to test the comparison of jar archives

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit d13515164e61c02b6b0a9a63313eaa9536fc4d8d
Author: siom79 <ma...@googlemail.com>
AuthorDate: Mon Sep 30 22:20:16 2013 +0200

    added testbase module and three submodules to test the comparison of jar archives
---
 README.md                                          |  3 +-
 japicmp-testbase/japicmp-test-v1/pom.xml           | 13 ++++
 .../src/main/java/japicmp/test/Removed.java        |  4 ++
 japicmp-testbase/japicmp-test-v2/pom.xml           | 13 ++++
 .../src/main/java/japicmp/test/Added.java          |  4 ++
 japicmp-testbase/japicmp-test/pom.xml              | 71 ++++++++++++++++++++++
 .../src/test/java/japicmp/test/BasicTest.java      | 40 ++++++++++++
 japicmp-testbase/pom.xml                           | 20 ++++++
 japicmp/src/main/java/japicmp/JApiCmp.java         |  5 +-
 .../output/stdout/StdoutOutputGenerator.java       |  2 +-
 .../java/japicmp/util/StringArrayEnumeration.java  |  4 +-
 pom.xml                                            |  1 +
 12 files changed, 174 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md
index 339b18e..58f16a9 100644
--- a/README.md
+++ b/README.md
@@ -5,8 +5,9 @@ japicmp is a tool to compare two versions of a jar archive:
 
     java -jar japicmp-0.0.1-SNAPSHOT.jar -n new-version.jar -o old-version.jar
 
-It can also be used as a library to integration its functionality in some other kind of software:
+It can also be used as a library to integrate its functionality in some other kind of software:
 
+	JarArchiveComparator jarArchiveComparator = new JarArchiveComparator();
     List<JApiClass> jApiClasses = jarArchiveComparator.compare(oldArchive, newArchive);
 
 ##Motivation##
diff --git a/japicmp-testbase/japicmp-test-v1/pom.xml b/japicmp-testbase/japicmp-test-v1/pom.xml
new file mode 100644
index 0000000..20911a2
--- /dev/null
+++ b/japicmp-testbase/japicmp-test-v1/pom.xml
@@ -0,0 +1,13 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>japicmp</groupId>
+        <artifactId>japicmp-testbase</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>japicmp-test-v1</artifactId>
+</project>
\ No newline at end of file
diff --git a/japicmp-testbase/japicmp-test-v1/src/main/java/japicmp/test/Removed.java b/japicmp-testbase/japicmp-test-v1/src/main/java/japicmp/test/Removed.java
new file mode 100644
index 0000000..6ddead3
--- /dev/null
+++ b/japicmp-testbase/japicmp-test-v1/src/main/java/japicmp/test/Removed.java
@@ -0,0 +1,4 @@
+package japicmp.test;
+
+public class Removed {
+}
diff --git a/japicmp-testbase/japicmp-test-v2/pom.xml b/japicmp-testbase/japicmp-test-v2/pom.xml
new file mode 100644
index 0000000..2174ec5
--- /dev/null
+++ b/japicmp-testbase/japicmp-test-v2/pom.xml
@@ -0,0 +1,13 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>japicmp</groupId>
+        <artifactId>japicmp-testbase</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>japicmp-test-v2</artifactId>
+</project>
\ No newline at end of file
diff --git a/japicmp-testbase/japicmp-test-v2/src/main/java/japicmp/test/Added.java b/japicmp-testbase/japicmp-test-v2/src/main/java/japicmp/test/Added.java
new file mode 100644
index 0000000..7c0398c
--- /dev/null
+++ b/japicmp-testbase/japicmp-test-v2/src/main/java/japicmp/test/Added.java
@@ -0,0 +1,4 @@
+package japicmp.test;
+
+public class Added {
+}
diff --git a/japicmp-testbase/japicmp-test/pom.xml b/japicmp-testbase/japicmp-test/pom.xml
new file mode 100644
index 0000000..11d5a81
--- /dev/null
+++ b/japicmp-testbase/japicmp-test/pom.xml
@@ -0,0 +1,71 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>japicmp</groupId>
+        <artifactId>japicmp-testbase</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>japicmp-test</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>japicmp</groupId>
+            <artifactId>japicmp</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>japicmp</groupId>
+            <artifactId>japicmp-test-v1</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>japicmp</groupId>
+            <artifactId>japicmp-test-v2</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.8</version>
+                <executions>
+                    <execution>
+                        <id>copy</id>
+                        <phase>process-test-resources</phase>
+                        <goals>
+                            <goal>copy</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>japicmp</groupId>
+                                    <artifactId>japicmp-test-v1</artifactId>
+                                    <version>${project.version}</version>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>${project.build.directory}</outputDirectory>
+                                    <destFileName>japicmp-test-v1.jar</destFileName>
+                                </artifactItem>
+                                <artifactItem>
+                                    <groupId>japicmp</groupId>
+                                    <artifactId>japicmp-test-v2</artifactId>
+                                    <version>${project.version}</version>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>${project.build.directory}</outputDirectory>
+                                    <destFileName>japicmp-test-v2.jar</destFileName>
+                                </artifactItem>
+                            </artifactItems>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file
diff --git a/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java b/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java
new file mode 100644
index 0000000..005dbe5
--- /dev/null
+++ b/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java
@@ -0,0 +1,40 @@
+package japicmp.test;
+
+import japicmp.cmp.JarArchiveComparator;
+import japicmp.model.JApiChangeStatus;
+import japicmp.model.JApiClass;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.junit.Assert.assertThat;
+
+public class BasicTest {
+
+    @Test
+    public void test() {
+        JarArchiveComparator jarArchiveComparator = new JarArchiveComparator();
+        List<JApiClass> jApiClasses = jarArchiveComparator.compare(getArchive("japicmp-test-v1.jar"), getArchive("japicmp-test-v2.jar"));
+        assertThat(jApiClasses.size(), is(2));
+        assertThat(getJApiClass(jApiClasses, Removed.class.getName()), is(notNullValue()));
+        assertThat(getJApiClass(jApiClasses, Added.class.getName()), is(notNullValue()));
+        assertThat(getJApiClass(jApiClasses, Removed.class.getName()).getChangeStatus(), is(JApiChangeStatus.REMOVED));
+        assertThat(getJApiClass(jApiClasses, Added.class.getName()).getChangeStatus(), is(JApiChangeStatus.NEW));
+    }
+
+    private File getArchive(String filename) {
+        return new File("target" + File.separator + filename);
+    }
+
+    private JApiClass getJApiClass(List<JApiClass> jApiClasses, String fqn) {
+        for (JApiClass jApiClass : jApiClasses) {
+            if (jApiClass.getFullyQualifiedName().equals(fqn)) {
+                return jApiClass;
+            }
+        }
+        throw new IllegalArgumentException("No class found with name " + fqn + ".");
+    }
+}
diff --git a/japicmp-testbase/pom.xml b/japicmp-testbase/pom.xml
new file mode 100644
index 0000000..b540cc7
--- /dev/null
+++ b/japicmp-testbase/pom.xml
@@ -0,0 +1,20 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>japicmp</groupId>
+        <artifactId>japicmp-base</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>japicmp-testbase</artifactId>
+	<packaging>pom</packaging>
+
+    <modules>
+		<module>japicmp-test-v1</module>
+		<module>japicmp-test-v2</module>
+		<module>japicmp-test</module>
+	</modules>
+</project>
\ No newline at end of file
diff --git a/japicmp/src/main/java/japicmp/JApiCmp.java b/japicmp/src/main/java/japicmp/JApiCmp.java
index 70c861f..51496ab 100644
--- a/japicmp/src/main/java/japicmp/JApiCmp.java
+++ b/japicmp/src/main/java/japicmp/JApiCmp.java
@@ -35,10 +35,9 @@ public class JApiCmp {
     }
 
     private static Options parseCliOptions(String[] args) {
-        Options options = new Options();
         try {
             CliParser cliParser = new CliParser();
-            options = cliParser.parse(args);
+            return cliParser.parse(args);
         } catch (IllegalArgumentException e) {
             System.err.println(e.getMessage());
             System.exit(-1);
@@ -46,7 +45,7 @@ public class JApiCmp {
             System.err.println("Failed to parse command line options: " + e.getMessage());
             System.exit(-1);
         }
-        return options;
+        return new Options();
     }
 
     private static void verifyFilesExist(File oldArchive, File newArchive) {
diff --git a/japicmp/src/main/java/japicmp/output/stdout/StdoutOutputGenerator.java b/japicmp/src/main/java/japicmp/output/stdout/StdoutOutputGenerator.java
index cead423..e379095 100644
--- a/japicmp/src/main/java/japicmp/output/stdout/StdoutOutputGenerator.java
+++ b/japicmp/src/main/java/japicmp/output/stdout/StdoutOutputGenerator.java
@@ -17,7 +17,7 @@ public class StdoutOutputGenerator {
             OutputTransformer.removeUnchanged(jApiClasses);
         }
         StringBuilder sb = new StringBuilder();
-        sb.append(String.format("Comparing %s with %s:\n", oldArchive.getAbsolutePath(), newArchive.getAbsolutePath()));
+        sb.append(String.format("Comparing %s with %s:%n", oldArchive.getAbsolutePath(), newArchive.getAbsolutePath()));
         for (JApiClass jApiClass : jApiClasses) {
             processClass(sb, jApiClass);
             processMethods(sb, jApiClass);
diff --git a/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java b/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java
index 82c7eb6..050f26c 100644
--- a/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java
+++ b/japicmp/src/main/java/japicmp/util/StringArrayEnumeration.java
@@ -1,5 +1,6 @@
 package japicmp.util;
 
+import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.NoSuchElementException;
 
@@ -8,7 +9,8 @@ public class StringArrayEnumeration implements Enumeration<String> {
     private int pos = 0;
 
     public StringArrayEnumeration(String[] array) {
-        this.array = array;
+        this.array = new String[array.length];
+        System.arraycopy(array, 0, this.array, 0, array.length);
     }
 
     @Override
diff --git a/pom.xml b/pom.xml
index 701eb8e..3778e4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,7 @@
 
     <modules>
         <module>japicmp</module>
+		<module>japicmp-testbase</module>
     </modules>
 
     <dependencies>


[commons-vfs] 09/18: further test cases

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 80d2a73e5f00b22800ccca649e3215365fb92f01
Author: siom79 <ma...@googlemail.com>
AuthorDate: Mon Sep 30 22:28:27 2013 +0200

    further test cases
---
 .../src/main/java/japicmp/test/Unchanged.java      |  8 +++++++
 .../src/main/java/japicmp/test/Unchanged.java      |  8 +++++++
 .../src/test/java/japicmp/test/BasicTest.java      | 26 +++++++++++++++++-----
 3 files changed, 37 insertions(+), 5 deletions(-)

diff --git a/japicmp-testbase/japicmp-test-v1/src/main/java/japicmp/test/Unchanged.java b/japicmp-testbase/japicmp-test-v1/src/main/java/japicmp/test/Unchanged.java
new file mode 100644
index 0000000..d499de8
--- /dev/null
+++ b/japicmp-testbase/japicmp-test-v1/src/main/java/japicmp/test/Unchanged.java
@@ -0,0 +1,8 @@
+package japicmp.test;
+
+public class Unchanged {
+
+    public void unchangedMethod(String str) {
+        System.out.println(str);
+    }
+}
diff --git a/japicmp-testbase/japicmp-test-v2/src/main/java/japicmp/test/Unchanged.java b/japicmp-testbase/japicmp-test-v2/src/main/java/japicmp/test/Unchanged.java
new file mode 100644
index 0000000..d499de8
--- /dev/null
+++ b/japicmp-testbase/japicmp-test-v2/src/main/java/japicmp/test/Unchanged.java
@@ -0,0 +1,8 @@
+package japicmp.test;
+
+public class Unchanged {
+
+    public void unchangedMethod(String str) {
+        System.out.println(str);
+    }
+}
diff --git a/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java b/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java
index 005dbe5..e650051 100644
--- a/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java
+++ b/japicmp-testbase/japicmp-test/src/test/java/japicmp/test/BasicTest.java
@@ -3,6 +3,7 @@ package japicmp.test;
 import japicmp.cmp.JarArchiveComparator;
 import japicmp.model.JApiChangeStatus;
 import japicmp.model.JApiClass;
+import japicmp.model.JApiMethod;
 import org.junit.Test;
 
 import java.io.File;
@@ -18,11 +19,17 @@ public class BasicTest {
     public void test() {
         JarArchiveComparator jarArchiveComparator = new JarArchiveComparator();
         List<JApiClass> jApiClasses = jarArchiveComparator.compare(getArchive("japicmp-test-v1.jar"), getArchive("japicmp-test-v2.jar"));
-        assertThat(jApiClasses.size(), is(2));
-        assertThat(getJApiClass(jApiClasses, Removed.class.getName()), is(notNullValue()));
-        assertThat(getJApiClass(jApiClasses, Added.class.getName()), is(notNullValue()));
-        assertThat(getJApiClass(jApiClasses, Removed.class.getName()).getChangeStatus(), is(JApiChangeStatus.REMOVED));
-        assertThat(getJApiClass(jApiClasses, Added.class.getName()).getChangeStatus(), is(JApiChangeStatus.NEW));
+        assertThat(jApiClasses.size(), is(3));
+        JApiClass jApiClassRemoved = getJApiClass(jApiClasses, Removed.class.getName());
+        JApiClass jApiClassAdded = getJApiClass(jApiClasses, Added.class.getName());
+        JApiClass jApiClassUnchanged = getJApiClass(jApiClasses, Unchanged.class.getName());
+        assertThat(jApiClassRemoved, is(notNullValue()));
+        assertThat(jApiClassAdded, is(notNullValue()));
+        assertThat(jApiClassUnchanged, is(notNullValue()));
+        assertThat(jApiClassRemoved.getChangeStatus(), is(JApiChangeStatus.REMOVED));
+        assertThat(jApiClassAdded.getChangeStatus(), is(JApiChangeStatus.NEW));
+        assertThat(jApiClassUnchanged.getChangeStatus(), is(JApiChangeStatus.UNCHANGED));
+        assertThat(getJApiMethod(jApiClassUnchanged.getMethods(), "unchangedMethod"), is(notNullValue()));
     }
 
     private File getArchive(String filename) {
@@ -37,4 +44,13 @@ public class BasicTest {
         }
         throw new IllegalArgumentException("No class found with name " + fqn + ".");
     }
+
+    private JApiMethod getJApiMethod(List<JApiMethod> jApiMethods, String name) {
+        for(JApiMethod jApiMethod : jApiMethods) {
+            if(jApiMethod.getName().equals(name)) {
+                return jApiMethod;
+            }
+        }
+        throw new IllegalArgumentException("No method found with name " + name + ".");
+    }
 }


[commons-vfs] 14/18: [maven-release-plugin] prepare release japicmp-base-0.0.1

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 41c5647967011774ac04aca5eabbca0c9ebf12b9
Author: siom79 <ma...@googlemail.com>
AuthorDate: Thu Oct 3 13:08:52 2013 +0200

    [maven-release-plugin] prepare release japicmp-base-0.0.1
---
 japicmp-testbase/japicmp-test-v1/pom.xml | 6 ++----
 japicmp-testbase/japicmp-test-v2/pom.xml | 6 ++----
 japicmp-testbase/japicmp-test/pom.xml    | 6 ++----
 japicmp-testbase/pom.xml                 | 6 ++----
 japicmp/pom.xml                          | 6 ++----
 pom.xml                                  | 8 +++-----
 6 files changed, 13 insertions(+), 25 deletions(-)

diff --git a/japicmp-testbase/japicmp-test-v1/pom.xml b/japicmp-testbase/japicmp-test-v1/pom.xml
index 20911a2..ef2c7cd 100644
--- a/japicmp-testbase/japicmp-test-v1/pom.xml
+++ b/japicmp-testbase/japicmp-test-v1/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test-v1</artifactId>
diff --git a/japicmp-testbase/japicmp-test-v2/pom.xml b/japicmp-testbase/japicmp-test-v2/pom.xml
index 2174ec5..50386ce 100644
--- a/japicmp-testbase/japicmp-test-v2/pom.xml
+++ b/japicmp-testbase/japicmp-test-v2/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test-v2</artifactId>
diff --git a/japicmp-testbase/japicmp-test/pom.xml b/japicmp-testbase/japicmp-test/pom.xml
index 11d5a81..d3983ab 100644
--- a/japicmp-testbase/japicmp-test/pom.xml
+++ b/japicmp-testbase/japicmp-test/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test</artifactId>
diff --git a/japicmp-testbase/pom.xml b/japicmp-testbase/pom.xml
index b540cc7..d3fe934 100644
--- a/japicmp-testbase/pom.xml
+++ b/japicmp-testbase/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-testbase</artifactId>
diff --git a/japicmp/pom.xml b/japicmp/pom.xml
index ca25768..98a43d7 100644
--- a/japicmp/pom.xml
+++ b/japicmp/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp</artifactId>
diff --git a/pom.xml b/pom.xml
index 3778e4e..8445e98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>japicmp</groupId>
     <artifactId>japicmp-base</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.1</version>
     <packaging>pom</packaging>
 
     <properties>
@@ -100,7 +98,7 @@
         <connection>scm:git:git://github.com/${github.account}/${project.groupId}.git</connection>
         <developerConnection>scm:git:git@github.com:${github.account}/${project.groupId}.git</developerConnection>
         <url>http://github.com/${github.account}/${project.groupId}/tree/master/</url>
-        <tag>HEAD</tag>
+        <tag>japicmp-base-0.0.1</tag>
     </scm>
 	
     <distributionManagement>


[commons-vfs] 18/18: [maven-release-plugin] prepare release japicmp-base-0.0.1

Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to annotated tag japicmp-base-0.0.1
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit 94e66eb4266168560922b52271c92beb3a5ef45b
Author: siom79 <ma...@googlemail.com>
AuthorDate: Thu Oct 3 13:35:06 2013 +0200

    [maven-release-plugin] prepare release japicmp-base-0.0.1
---
 japicmp-testbase/japicmp-test-v1/pom.xml | 6 ++----
 japicmp-testbase/japicmp-test-v2/pom.xml | 6 ++----
 japicmp-testbase/japicmp-test/pom.xml    | 6 ++----
 japicmp-testbase/pom.xml                 | 6 ++----
 japicmp/pom.xml                          | 6 ++----
 pom.xml                                  | 8 +++-----
 6 files changed, 13 insertions(+), 25 deletions(-)

diff --git a/japicmp-testbase/japicmp-test-v1/pom.xml b/japicmp-testbase/japicmp-test-v1/pom.xml
index 20911a2..ef2c7cd 100644
--- a/japicmp-testbase/japicmp-test-v1/pom.xml
+++ b/japicmp-testbase/japicmp-test-v1/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test-v1</artifactId>
diff --git a/japicmp-testbase/japicmp-test-v2/pom.xml b/japicmp-testbase/japicmp-test-v2/pom.xml
index 2174ec5..50386ce 100644
--- a/japicmp-testbase/japicmp-test-v2/pom.xml
+++ b/japicmp-testbase/japicmp-test-v2/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test-v2</artifactId>
diff --git a/japicmp-testbase/japicmp-test/pom.xml b/japicmp-testbase/japicmp-test/pom.xml
index 11d5a81..d3983ab 100644
--- a/japicmp-testbase/japicmp-test/pom.xml
+++ b/japicmp-testbase/japicmp-test/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-testbase</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-test</artifactId>
diff --git a/japicmp-testbase/pom.xml b/japicmp-testbase/pom.xml
index b540cc7..d3fe934 100644
--- a/japicmp-testbase/pom.xml
+++ b/japicmp-testbase/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp-testbase</artifactId>
diff --git a/japicmp/pom.xml b/japicmp/pom.xml
index ca25768..98a43d7 100644
--- a/japicmp/pom.xml
+++ b/japicmp/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>japicmp</groupId>
         <artifactId>japicmp-base</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>0.0.1</version>
     </parent>
 
     <artifactId>japicmp</artifactId>
diff --git a/pom.xml b/pom.xml
index 3778e4e..8445e98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,12 +1,10 @@
 <?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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>japicmp</groupId>
     <artifactId>japicmp-base</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.1</version>
     <packaging>pom</packaging>
 
     <properties>
@@ -100,7 +98,7 @@
         <connection>scm:git:git://github.com/${github.account}/${project.groupId}.git</connection>
         <developerConnection>scm:git:git@github.com:${github.account}/${project.groupId}.git</developerConnection>
         <url>http://github.com/${github.account}/${project.groupId}/tree/master/</url>
-        <tag>HEAD</tag>
+        <tag>japicmp-base-0.0.1</tag>
     </scm>
 	
     <distributionManagement>