You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/09/16 18:28:52 UTC
svn commit: r695968 [1/3] - in /maven/sandbox/trunk/wagon/wagon-mercury: ./
src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/maven/ src/main/java/org/apache/maven/wagon/
src/main/java/org/apache/maven/...
Author: ogusakov
Date: Tue Sep 16 09:28:47 2008
New Revision: 695968
URL: http://svn.apache.org/viewvc?rev=695968&view=rev
Log:
added Mercury wagon provider
Added:
maven/sandbox/trunk/wagon/wagon-mercury/pom.xml
maven/sandbox/trunk/wagon/wagon-mercury/src/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/MercuryWagon.java
maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/StupidWagonObserverAdapter.java
maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/StupidWagonObserverFactory.java
maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/TransferEventDebugger.java
maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/META-INF/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/META-INF/plexus/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/META-INF/plexus/components.xml
maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/org/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/org/apache/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/org/apache/maven/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/org/apache/maven/wagon/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/org/apache/maven/wagon/mercury/
maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/org/apache/maven/wagon/mercury/Messages.properties
maven/sandbox/trunk/wagon/wagon-mercury/src/test/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/org/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/org/apache/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/org/apache/maven/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/org/apache/maven/wagon/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/org/apache/maven/wagon/mercury/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/org/apache/maven/wagon/mercury/MercuryWagonTest.java
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/conf/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/conf/plexus.properties
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/conf/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/conf/nexus.xml
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/conf/security.xml
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-local/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-local/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-local/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-local/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-local/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-local/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-local/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-local/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-remote/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-remote/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-remote/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-remote/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-remote/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-remote/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-remote/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/apache-snapshots-remote/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-local/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-local/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-local/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-local/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-local/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-local/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-local/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-local/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-m1-local/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-m1-local/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-m1-local/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-m1-local/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-m1-local/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-m1-local/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-m1-local/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-m1-local/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-remote/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-remote/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-remote/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-remote/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-remote/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-remote/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-remote/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/central-remote/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-local/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-local/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-local/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-local/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-local/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-local/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-local/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-local/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-remote/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-remote/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-remote/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-remote/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-remote/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-remote/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-remote/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/codehaus-snapshots-remote/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-merged/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-merged/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-merged/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-merged/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-merged/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-merged/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-merged/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-merged/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-snapshots-merged/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-snapshots-merged/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-snapshots-merged/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-snapshots-merged/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-snapshots-merged/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-snapshots-merged/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-snapshots-merged/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/public-snapshots-merged/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/releases-local/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/releases-local/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/releases-local/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/releases-local/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/releases-local/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/releases-local/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/releases-local/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/releases-local/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/snapshots-local/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/snapshots-local/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/snapshots-local/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/snapshots-local/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/snapshots-local/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/snapshots-local/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/snapshots-local/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/snapshots-local/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/test-local/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/test-local/_0.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/test-local/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/test-local/segments_3 (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/test-local/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/thirdparty-local/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/thirdparty-local/_a.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/thirdparty-local/_a_1.del (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/thirdparty-local/_b.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/thirdparty-local/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/thirdparty-local/segments_p (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/thirdparty-local/timestamp (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/indexer/thirdparty-local/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/storage/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/storage/apache-snapshots/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/storage/central/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/storage/central-m1/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/storage/codehaus-snapshots/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/storage/releases/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/storage/snapshots/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/storage/test/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/storage/thirdparty/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/template-store/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/template-store/repository-default_hosted_release.xml
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/template-store/repository-default_hosted_snapshot.xml
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/template-store/repository-default_proxy_release.xml
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/template-store/repository-default_proxy_snapshot.xml
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/template-store/repositoryShadow-default_virtual.xml
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/timeline/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/timeline/_h.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/timeline/_i.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/timeline/_j.cfs (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/timeline/segments.gen (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/timeline/segments_15 (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/timeline/write.lock
maven/sandbox/trunk/wagon/wagon-mercury/src/test/resources/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/resources/META-INF/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/resources/META-INF/plexus/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/resources/META-INF/plexus/components.xml
maven/sandbox/trunk/wagon/wagon-mercury/src/test/resources/pgp/
maven/sandbox/trunk/wagon/wagon-mercury/src/test/resources/pgp/pubring.gpg (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/resources/pgp/secring.gpg (with props)
maven/sandbox/trunk/wagon/wagon-mercury/src/test/resources/test.properties
Modified:
maven/sandbox/trunk/wagon/wagon-mercury/ (props changed)
Propchange: maven/sandbox/trunk/wagon/wagon-mercury/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Sep 16 09:28:47 2008
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project
Added: maven/sandbox/trunk/wagon/wagon-mercury/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-mercury/pom.xml?rev=695968&view=auto
==============================================================================
--- maven/sandbox/trunk/wagon/wagon-mercury/pom.xml (added)
+++ maven/sandbox/trunk/wagon/wagon-mercury/pom.xml Tue Sep 16 09:28:47 2008
@@ -0,0 +1,276 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>wagon</artifactId>
+ <groupId>org.apache.maven.wagon</groupId>
+ <version>1.0-beta-4</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>wagon-mercury</artifactId>
+ <name>Maven Wagon Mercury implementation</name>
+ <version>1.0.0-alpha-1-SNAPSHOT</version>
+
+ <properties>
+ <mercury.version>1.0.0-alpha-1-SNAPSHOT</mercury.version>
+ <plexus.appbooter.version>1.4</plexus.appbooter.version>
+ <plexus.container.version>1.0-alpha-47</plexus.container.version>
+ <plexus.utils.version>1.5.1</plexus.utils.version>
+ <nexus.version>1.0.0</nexus.version>
+
+ <nexus-security-enabled>false</nexus-security-enabled>
+
+ <bundle-expanded-dir>target</bundle-expanded-dir>
+ <config-expanded-dir>target/test-nexus-config</config-expanded-dir>
+
+ <nexus-relative-basedir>${bundle-expanded-dir}/nexus-webapp-${nexus.version}</nexus-relative-basedir>
+ <nexus-abs-basedir>${project.build.directory}/nexus-webapp-${nexus.version}</nexus-abs-basedir>
+
+ <config-target-dir>${nexus-abs-basedir}/runtime/apps/nexus/conf</config-target-dir>
+ <work-target-dir>${nexus-abs-basedir}/runtime/work</work-target-dir>
+ <nexus-plexus-config-file>${nexus-abs-basedir}/conf/plexus.xml</nexus-plexus-config-file>
+
+ <nexus-application-protocol>http</nexus-application-protocol>
+ <nexus-application-host>localhost</nexus-application-host>
+ <nexus-application-name>nexus</nexus-application-name>
+ <nexus-application-port>8091</nexus-application-port>
+ <jetty-application-host>0.0.0.0</jetty-application-host>
+
+ <nexus-base-url>${nexus-application-protocol}://${nexus-application-host}:${nexus-application-port}/${nexus-application-name}/</nexus-base-url>
+
+ <nexus-control-port>33002</nexus-control-port>
+ </properties>
+
+ <build>
+
+ <resources>
+ <resource>
+ <directory>src/main/java</directory>
+ <filtering>false</filtering>
+ <includes>
+ <include>**/*.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+
+ <testResources>
+
+ <testResource>
+ <directory>src/test/resources</directory>
+ <filtering>true</filtering>
+ </testResource>
+
+ <testResource>
+ <directory>src/test/nexus</directory>
+ <filtering>false</filtering>
+ <excludes>
+ <exclude>work/conf/**</exclude>
+ </excludes>
+ <targetPath>../nexus-webapp-${nexus.version}/runtime</targetPath>
+ </testResource>
+
+ <testResource>
+ <directory>src/test/nexus</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>work/conf/**</include>
+ </includes>
+ <targetPath>../nexus-webapp-${nexus.version}/runtime</targetPath>
+ </testResource>
+
+ <testResource>
+ <directory>src/test/nexus/conf</directory>
+ <filtering>true</filtering>
+ <targetPath>../nexus-webapp-${nexus.version}/conf</targetPath>
+ </testResource>
+
+ </testResources>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ <includes>
+ <include>**/*.java</include>
+ <include>**/*.properties</include>
+ </includes>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <version>1.3.5</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.0</version>
+ <executions>
+ <execution>
+ <id>unpack-bundle</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <configuration>
+ <includeArtifactIds>nexus-webapp</includeArtifactIds>
+ <outputDirectory>${bundle-expanded-dir}</outputDirectory>
+ <excludes>**/conf/plexus.properties</excludes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ <executions>
+
+ <execution>
+ <id>test</id>
+ <phase>test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+
+ <plugin>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>1.1</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <finalName>${project.artifactId}-${project.version}-uber</finalName>
+ <keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>
+ <createDependencyReducedPom>true</createDependencyReducedPom>
+ <artifactSet>
+ <includes>
+
+ <include>org.apache.maven.mercury:mercury-crypto-api</include>
+ <include>org.apache.maven.mercury:mercury-crypto-basic</include>
+ <include>org.apache.maven.mercury:mercury-transport-api</include>
+ <include>org.apache.maven.mercury:mercury-transport-http</include>
+ <include>org.apache.maven.mercury:mercury-util</include>
+
+ <include>org.mortbay.jetty:jetty</include>
+ <include>org.mortbay.jetty:jetty-client</include>
+ <include>org.mortbay.jetty:jetty-ssl</include>
+ <include>org.mortbay.jetty:jetty-util</include>
+ <include>org.mortbay.jetty:servlet-api</include>
+
+ <include>org.codehaus.plexus:plexus-i18n</include>
+
+ <include>org.slf4j:slf4j-api</include>
+ <include>org.slf4j:slf4j-jdk14</include>
+
+ </includes>
+
+ <excludes>
+ <exclude>org.codehaus.plexus:plexus-component-api</exclude>
+ <exclude>org.bouncycastle:bcprov-jdk15</exclude>
+ <exclude>org.bouncycastle:bcpg-jdk15</exclude>
+ <exclude>bouncycastle:bcprov-jdk15</exclude>
+ <exclude>bouncycastle:bcpg-jdk15</exclude>
+ </excludes>
+
+ </artifactSet>
+
+ <filters>
+ <filter>
+ <excludes>
+ <exclude>/META-INF/BCKEY.DSA</exclude>
+ <exclude>/META-INF/BCKEY.SF</exclude>
+ </excludes>
+ </filter>
+ </filters>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven.mercury</groupId>
+ <artifactId>mercury-transport-http</artifactId>
+ <version>${mercury.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.maven.mercury</groupId>
+ <artifactId>mercury-util</artifactId>
+ <version>${mercury.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <version>${plexus.container.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>${plexus.utils.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.sonatype.nexus</groupId>
+ <artifactId>nexus-webapp</artifactId>
+ <version>${nexus.version}</version>
+ <classifier>bundle</classifier>
+ <type>zip</type>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.sonatype.appbooter</groupId>
+ <artifactId>plexus-forked-app-booter</artifactId>
+ <version>${plexus.appbooter.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+</project>
Added: maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/MercuryWagon.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/MercuryWagon.java?rev=695968&view=auto
==============================================================================
--- maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/MercuryWagon.java (added)
+++ maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/MercuryWagon.java Tue Sep 16 09:28:47 2008
@@ -0,0 +1,376 @@
+package org.apache.maven.wagon.mercury;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+import org.apache.maven.mercury.crypto.api.StreamObserverFactory;
+import org.apache.maven.mercury.crypto.api.StreamVerifierAttributes;
+import org.apache.maven.mercury.crypto.api.StreamVerifierException;
+import org.apache.maven.mercury.crypto.api.StreamVerifierFactory;
+import org.apache.maven.mercury.crypto.pgp.PgpStreamVerifierFactory;
+import org.apache.maven.mercury.spi.http.client.HttpClientException;
+import org.apache.maven.mercury.spi.http.client.deploy.DefaultDeployRequest;
+import org.apache.maven.mercury.spi.http.client.deploy.DefaultDeployer;
+import org.apache.maven.mercury.spi.http.client.deploy.DeployResponse;
+import org.apache.maven.mercury.spi.http.client.retrieve.DefaultRetrievalRequest;
+import org.apache.maven.mercury.spi.http.client.retrieve.DefaultRetriever;
+import org.apache.maven.mercury.spi.http.client.retrieve.RetrievalResponse;
+import org.apache.maven.mercury.transport.api.Binding;
+import org.apache.maven.mercury.transport.api.Credentials;
+import org.apache.maven.mercury.transport.api.Server;
+import org.apache.maven.wagon.AbstractWagon;
+import org.apache.maven.wagon.ConnectionException;
+import org.apache.maven.wagon.ResourceDoesNotExistException;
+import org.apache.maven.wagon.TransferFailedException;
+import org.apache.maven.wagon.Wagon;
+import org.apache.maven.wagon.authentication.AuthenticationException;
+import org.apache.maven.wagon.authentication.AuthenticationInfo;
+import org.apache.maven.wagon.authorization.AuthorizationException;
+import org.apache.maven.wagon.events.TransferEvent;
+import org.apache.maven.wagon.events.TransferEventSupport;
+import org.apache.maven.wagon.events.TransferListener;
+import org.apache.maven.wagon.observers.ChecksumObserver;
+import org.apache.maven.wagon.proxy.ProxyInfoProvider;
+import org.apache.maven.wagon.repository.Repository;
+import org.apache.maven.wagon.resource.Resource;
+import org.codehaus.plexus.i18n.DefaultLanguage;
+import org.codehaus.plexus.i18n.Language;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * plexus.component
+ * role-hint="http"
+ * instantiation-strategy="per-lookup"
+ * description="Mercury based wagon implementation"
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class MercuryWagon
+extends AbstractWagon
+implements Wagon
+{
+ public static final String SYSTEM_PARAMETER_DEBUG_TRANSFER = "maven.mercury.wagon.debug.transfer";
+ private boolean debugTransfer = Boolean.parseBoolean( System.getProperty( SYSTEM_PARAMETER_DEBUG_TRANSFER, "false" ) );
+
+ public static final String SYSTEM_PARAMETER_PGP_CONGIG = "maven.mercury.wagon.pgp.config";
+ private String pgpConfig = System.getProperty( SYSTEM_PARAMETER_PGP_CONGIG, null );
+
+ private static final Logger _log = LoggerFactory.getLogger(MercuryWagon.class);
+ private static final Language _lang = new DefaultLanguage( MercuryWagon.class );
+
+ private Server server;
+ private DefaultRetriever retriever;
+ private DefaultDeployer deployer;
+
+ private List<TransferEvent> events = new ArrayList<TransferEvent>(8);
+
+ /**
+ *
+ */
+ public MercuryWagon()
+ {
+ _log.debug( "\n===============> MercuryWagon instantiated, repository "+repository);
+ }
+
+ public MercuryWagon( Server server )
+ throws IllegalArgumentException
+ {
+ init( server );
+ }
+
+ private void init( Server server )
+ throws IllegalArgumentException
+ {
+ if( server == null )
+ throw new IllegalArgumentException( _lang.getMessage( "null.read.server" ) );
+
+ if( server.getURL() == null )
+ throw new IllegalArgumentException( _lang.getMessage( "null.read.server.url", server.getId() ) );
+
+ this.server = server;
+
+ Set<StreamVerifierFactory>[] pgpFac = null;
+
+ try
+ {
+ pgpFac = readPgpConfig();
+ this.server.setReaderStreamVerifierFactories( pgpFac[0] );
+ this.server.setWriterStreamVerifierFactories( pgpFac[1] );
+//_log.info( "ReaderFacs="+this.server.getReaderStreamVerifierFactories()+"\nWriterFacs="+this.server.getWriterStreamVerifierFactories() );
+ }
+ catch( Exception ex )
+ {
+ throw new IllegalArgumentException(ex);
+ }
+
+ Set<StreamObserverFactory> rf = server.getReaderStreamObserverFactories();
+ if( rf == null )
+ {
+ rf = new HashSet<StreamObserverFactory>(1);
+ this.server.setReaderStreamObserverFactories( rf );
+ }
+ rf.add( new StupidWagonObserverFactory( this ) );
+
+ HashSet<Server> servers = new HashSet<Server>(1);
+ servers.add( this.server );
+
+ Set<StreamObserverFactory> wf = this.server.getWriterStreamObserverFactories();
+ if( wf == null )
+ {
+ wf = new HashSet<StreamObserverFactory>(1);
+ this.server.setReaderStreamObserverFactories( wf );
+ }
+ wf.add( new StupidWagonObserverFactory( this ) );
+
+ try
+ {
+ retriever = new DefaultRetriever();
+ }
+ catch( HttpClientException e )
+ {
+ throw new IllegalArgumentException(e);
+ }
+ retriever.setServers( servers );
+
+ try
+ {
+ deployer = new DefaultDeployer();
+ }
+ catch( HttpClientException e )
+ {
+ throw new IllegalArgumentException(e);
+ }
+ deployer.setServers( servers );
+ }
+
+ public void get( String resourceName, File destination )
+ throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
+ {
+ if( _log.isDebugEnabled())
+ _log.debug("\n------------\nMercuryWagon getting "+resourceName+" into "+destination);
+
+ Binding binding = null;
+
+ try
+ {
+ binding = new Binding( new URL(server.getURL().toString()+'/'+resourceName), destination );
+ }
+ catch( MalformedURLException e )
+ {
+ throw new TransferFailedException( e.getMessage() );
+ }
+
+ DefaultRetrievalRequest request = new DefaultRetrievalRequest();
+ request.addBinding( binding );
+
+ Resource resource = new Resource( resourceName );
+
+ fireGetInitiated( resource, destination );
+
+ resource.setLastModified( 0l );
+
+ fireGetStarted( resource, destination );
+
+ pushEvent( new TransferEvent(this, resource, TransferEvent.TRANSFER_PROGRESS, TransferEvent.REQUEST_GET) );
+
+ RetrievalResponse response = retriever.retrieve( request );
+
+ fireGetCompleted( resource, destination );
+
+ if( response.hasExceptions() )
+ {
+ _log.error( response.getExceptions().toString() );
+ throw new ResourceDoesNotExistException( response.getExceptions().toString() );
+ }
+
+ if( _log.isDebugEnabled())
+ _log.debug("\n------------\nMercuryWagon got "+resourceName+" into "+destination);
+
+ }
+
+ public boolean getIfNewer( String resourceName, File destination, long timestamp )
+ throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
+ {
+ get( resourceName, destination );
+ return true;
+ }
+
+ public void put( File source, String destination )
+ throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
+ {
+
+ Resource resource = new Resource( destination );
+
+ firePutInitiated( resource, source );
+
+ resource.setContentLength( source.length() );
+
+ resource.setLastModified( source.lastModified() );
+
+ Binding binding = null;
+ try
+ {
+ binding = new Binding( new URL(repository.getUrl()+'/'+destination), source );
+ }
+ catch( MalformedURLException e )
+ {
+ throw new TransferFailedException( e.getMessage() );
+ }
+
+ HashSet<Binding> bindings = new HashSet<Binding>(1);
+ bindings.add( binding );
+
+ DefaultDeployRequest request = new DefaultDeployRequest();
+ request.setBindings( bindings );
+
+ firePutStarted( resource, source );
+
+ pushEvent( new TransferEvent(this, resource, TransferEvent.TRANSFER_PROGRESS, TransferEvent.REQUEST_PUT) );
+
+ DeployResponse response = deployer.deploy( request );
+
+ firePutCompleted( resource, source );
+
+ if( response.hasExceptions() )
+ throw new TransferFailedException( response.getExceptions().toString() );
+ }
+
+ protected void closeConnection()
+ throws ConnectionException
+ {
+ fireSessionLoggedOff();
+ fireSessionDisconnecting();
+ fireSessionDisconnected();
+ }
+
+ @Override
+ public void openConnection()
+ throws ConnectionException, AuthenticationException
+ {
+ openConnectionInternal();
+ }
+
+ protected void openConnectionInternal()
+ throws ConnectionException, AuthenticationException
+ {
+ if(_log.isDebugEnabled())
+ _log.debug( "Opening connection to repository "+repository );
+
+ try
+ {
+ String url = 'h'+repository.getUrl().substring( 1 );
+ boolean requireEncryption = url.startsWith( "https" ) ? true : false;
+ Credentials user = null;
+
+ if( repository.getUsername() != null )
+ user = new Credentials( repository.getUsername(), repository.getPassword() );
+
+ Server server = new Server( repository.getId(), new URL( url ), requireEncryption, false, user );
+
+ init( server );
+
+ if( debugTransfer )
+ transferEventSupport.addTransferListener( new TransferEventDebugger() );
+ }
+ catch( MalformedURLException e )
+ {
+ throw new ConnectionException( e.getMessage() );
+ }
+ }
+
+ @Override
+ public void addTransferListener( TransferListener listener )
+ {
+ super.addTransferListener( listener );
+ }
+
+ void bytesReady( TransferEvent transferEvent, byte [] buf, int len )
+ {
+ fireTransferProgress( transferEvent, buf, len );
+ }
+
+ /**
+ * @return
+ */
+ public TransferEvent popEvent()
+ {
+ if( events.isEmpty() )
+ return null;
+
+ TransferEvent event = events.get( 0 );
+ events.remove( 0 );
+
+ return event;
+ }
+
+ public void pushEvent( TransferEvent event)
+ {
+ events.add( 0, event );
+ }
+
+ private final Set<StreamVerifierFactory>[] readPgpConfig()
+ throws FileNotFoundException, IOException, StreamVerifierException
+ {
+ Set<StreamVerifierFactory> [] res = new Set [] { null, null };
+
+ if( pgpConfig == null )
+ return res;
+
+ _log.info( "PGP signature configuration will be read from "+pgpConfig );
+
+ Properties pgpProps = new Properties();
+ pgpProps.load( new FileInputStream(pgpConfig) );
+
+ StreamVerifierAttributes readerAttr = new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION
+ , Boolean.parseBoolean( pgpProps.getProperty( "reader.lenient", "true" ) )
+ , false
+ );
+ String readerKeyring = pgpProps.getProperty( "reader.keyring" );
+
+ if( readerKeyring != null )
+ {
+ StreamVerifierFactory rf = new PgpStreamVerifierFactory( readerAttr, new FileInputStream(readerKeyring) );
+if( _log.isDebugEnabled() )
+ _log.debug( "public key file: "+new File(readerKeyring).getAbsolutePath() );
+
+ Set<StreamVerifierFactory> rs = new HashSet<StreamVerifierFactory>(1);
+ rs.add( rf );
+ res[0] = rs;
+ }
+
+ StreamVerifierAttributes writerAttr = new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION
+ , Boolean.parseBoolean( pgpProps.getProperty( "writer.lenient", "true" ) )
+ , false
+ );
+ String writerKeyring = pgpProps.getProperty( "writer.keyring" );
+ String writerKeyId = pgpProps.getProperty( "writer.key.id" );
+ String writerKeyringPass = pgpProps.getProperty( "writer.key.pass" );
+
+ if( writerKeyring != null && writerKeyId != null && writerKeyringPass != null )
+ {
+if( _log.isDebugEnabled() )
+ _log.debug( "secret key file: "+new File(writerKeyring).getAbsolutePath() );
+ StreamVerifierFactory wf = new PgpStreamVerifierFactory( writerAttr, new FileInputStream(writerKeyring)
+ , writerKeyId, writerKeyringPass );
+
+ Set<StreamVerifierFactory> ws = new HashSet<StreamVerifierFactory>(1);
+ ws.add( wf );
+ res[1] = ws;
+ }
+
+ return res;
+ }
+
+}
Added: maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/StupidWagonObserverAdapter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/StupidWagonObserverAdapter.java?rev=695968&view=auto
==============================================================================
--- maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/StupidWagonObserverAdapter.java (added)
+++ maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/StupidWagonObserverAdapter.java Tue Sep 16 09:28:47 2008
@@ -0,0 +1,65 @@
+package org.apache.maven.wagon.mercury;
+
+import org.apache.maven.mercury.crypto.api.StreamObserver;
+import org.apache.maven.mercury.crypto.api.StreamObserverException;
+import org.apache.maven.mercury.crypto.api.StreamVerifierAttributes;
+import org.apache.maven.mercury.crypto.api.StreamVerifierException;
+import org.apache.maven.mercury.crypto.sha.SHA1Verifier;
+import org.apache.maven.wagon.events.TransferEvent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class StupidWagonObserverAdapter
+implements StreamObserver
+{
+ private static final Logger _log = LoggerFactory.getLogger(StupidWagonObserverAdapter.class);
+ byte [] buf = new byte[2048];
+
+ MercuryWagon wagon;
+ TransferEvent event;
+
+ long length = -1L;
+
+ public StupidWagonObserverAdapter( MercuryWagon wagon, TransferEvent event )
+ {
+ this.wagon = wagon;
+ this.event = event;
+ if( _log.isDebugEnabled() )
+ _log.debug( "|=========-> adapter for "+event.getResource().getName()+" is created" );
+ }
+
+ public void byteReady( int b )
+ throws StreamObserverException
+ {
+ bytesReady( new byte [] { (byte)b }, 0, 1 );
+ }
+
+ public void bytesReady( byte[] b, int off, int len )
+ throws StreamObserverException
+ {
+ if( len > buf.length )
+ buf = new byte[len];
+
+ System.arraycopy( b, off, buf, 0, len );
+ wagon.bytesReady( event, buf, len );
+ }
+
+ public long getLength()
+ {
+ return length;
+ }
+
+ public void setLength( long length )
+ {
+ this.length = length;
+_log.info( "|=-> length is "+length );
+ }
+
+}
Added: maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/StupidWagonObserverFactory.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/StupidWagonObserverFactory.java?rev=695968&view=auto
==============================================================================
--- maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/StupidWagonObserverFactory.java (added)
+++ maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/StupidWagonObserverFactory.java Tue Sep 16 09:28:47 2008
@@ -0,0 +1,30 @@
+package org.apache.maven.wagon.mercury;
+
+import org.apache.maven.mercury.crypto.api.StreamObserver;
+import org.apache.maven.mercury.crypto.api.StreamObserverException;
+import org.apache.maven.mercury.crypto.api.StreamObserverFactory;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class StupidWagonObserverFactory
+implements StreamObserverFactory
+{
+ private MercuryWagon wagon;
+
+ public StupidWagonObserverFactory( MercuryWagon wagon )
+ {
+ this.wagon = wagon;
+ }
+
+ public StreamObserver newInstance()
+ throws StreamObserverException
+ {
+ return new StupidWagonObserverAdapter( wagon, wagon.popEvent() );
+ }
+
+}
Added: maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/TransferEventDebugger.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/TransferEventDebugger.java?rev=695968&view=auto
==============================================================================
--- maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/TransferEventDebugger.java (added)
+++ maven/sandbox/trunk/wagon/wagon-mercury/src/main/java/org/apache/maven/wagon/mercury/TransferEventDebugger.java Tue Sep 16 09:28:47 2008
@@ -0,0 +1,81 @@
+package org.apache.maven.wagon.mercury;
+
+import org.apache.maven.wagon.events.TransferEvent;
+import org.apache.maven.wagon.events.TransferListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class TransferEventDebugger
+implements TransferListener
+{
+ public static final String SYSTEM_PARAMETER_DEBUG_TRANSFER_BYTES = "maven.mercury.wagon.debug.transfer.bytes";
+ private boolean debugTransferBytes = Boolean.parseBoolean( System.getProperty( SYSTEM_PARAMETER_DEBUG_TRANSFER_BYTES, "false" ) );
+
+ private static final Logger _log = LoggerFactory.getLogger(TransferEventDebugger.class);
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.wagon.events.TransferListener#debug(java.lang.String)
+ */
+ public void debug(
+ String message )
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.wagon.events.TransferListener#transferCompleted(org.apache.maven.wagon.events.TransferEvent)
+ */
+ public void transferCompleted(
+ TransferEvent transferEvent )
+ {
+ _log.info("|=============> completed: "+transferEvent.getResource().getName() );
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.wagon.events.TransferListener#transferError(org.apache.maven.wagon.events.TransferEvent)
+ */
+ public void transferError(
+ TransferEvent transferEvent )
+ {
+ _log.info("|=============> error: "+transferEvent.getResource().getName() );
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.wagon.events.TransferListener#transferInitiated(org.apache.maven.wagon.events.TransferEvent)
+ */
+ public void transferInitiated(
+ TransferEvent transferEvent )
+ {
+ _log.info("|=============> initialized: "+transferEvent.getResource().getName() );
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.wagon.events.TransferListener#transferProgress(org.apache.maven.wagon.events.TransferEvent, byte[], int)
+ */
+ public void transferProgress(
+ TransferEvent transferEvent,
+ byte[] buffer,
+ int length )
+ {
+ if( debugTransferBytes )
+ _log.info("|=============> ready "+length+" bytes : "+transferEvent.getResource().getName() );
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.wagon.events.TransferListener#transferStarted(org.apache.maven.wagon.events.TransferEvent)
+ */
+ public void transferStarted(
+ TransferEvent transferEvent )
+ {
+ _log.info("|=============> started: "+transferEvent.getResource().getName() );
+ }
+
+}
Added: maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/META-INF/plexus/components.xml?rev=695968&view=auto
==============================================================================
--- maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/META-INF/plexus/components.xml (added)
+++ maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/META-INF/plexus/components.xml Tue Sep 16 09:28:47 2008
@@ -0,0 +1,35 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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.
+ -->
+
+<component-set>
+ <components>
+ <component>
+ <role>org.apache.maven.wagon.Wagon</role>
+ <role-hint>mttp</role-hint>
+ <implementation>org.apache.maven.wagon.mercury.MercuryWagon</implementation>
+ <instantiation-strategy>per-lookup</instantiation-strategy>
+ </component>
+ <component>
+ <role>org.apache.maven.wagon.Wagon</role>
+ <role-hint>mttps</role-hint>
+ <implementation>org.apache.maven.wagon.mercury.MercuryWagon</implementation>
+ <instantiation-strategy>per-lookup</instantiation-strategy>
+ </component>
+ </components>
+</component-set>
Added: maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/org/apache/maven/wagon/mercury/Messages.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/org/apache/maven/wagon/mercury/Messages.properties?rev=695968&view=auto
==============================================================================
--- maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/org/apache/maven/wagon/mercury/Messages.properties (added)
+++ maven/sandbox/trunk/wagon/wagon-mercury/src/main/resources/org/apache/maven/wagon/mercury/Messages.properties Tue Sep 16 09:28:47 2008
@@ -0,0 +1,4 @@
+null.read.server=read server cannot be null
+null.read.server.url=read server {0} : URL cannot be null
+null.write.server=write server cannot be null
+null.write.server.url=write server {0} : URL cannot be null
Added: maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/org/apache/maven/wagon/mercury/MercuryWagonTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/org/apache/maven/wagon/mercury/MercuryWagonTest.java?rev=695968&view=auto
==============================================================================
--- maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/org/apache/maven/wagon/mercury/MercuryWagonTest.java (added)
+++ maven/sandbox/trunk/wagon/wagon-mercury/src/test/java/org/apache/maven/wagon/mercury/MercuryWagonTest.java Tue Sep 16 09:28:47 2008
@@ -0,0 +1,146 @@
+package org.apache.maven.wagon.mercury;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.HashSet;
+
+import org.apache.maven.mercury.crypto.api.StreamVerifierAttributes;
+import org.apache.maven.mercury.crypto.api.StreamVerifierFactory;
+import org.apache.maven.mercury.crypto.pgp.PgpStreamVerifierFactory;
+import org.apache.maven.mercury.crypto.sha.SHA1VerifierFactory;
+import org.apache.maven.mercury.transport.api.Credentials;
+import org.apache.maven.mercury.transport.api.Server;
+import org.apache.maven.mercury.util.FileUtil;
+import org.apache.maven.wagon.Wagon;
+import org.apache.maven.wagon.WagonTestCase;
+import org.codehaus.plexus.PlexusContainer;
+import org.sonatype.appbooter.ForkedAppBooter;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class MercuryWagonTest
+extends WagonTestCase
+{
+
+ public static final String TEST_NEXUS_ROLE = ForkedAppBooter.ROLE;
+ public static final String TEST_NEXUS_HINT = "NexusForkedAppBooter";
+
+ PlexusContainer plexus;
+ ForkedAppBooter nexusForkedAppBooter;
+
+ String nexusReleasesTestDir = "./target/nexus-webapp-1.0.0/runtime/work/storage/releases";
+ String nexusReleasesTestUrl = "http://127.0.0.1:8091/nexus/content/repositories/releases";
+
+ String nexusSnapshotsTestDir = "./target/nexus-webapp-1.0.0/runtime/work/storage/snapshots";
+ String nexusSnapshotsTestUrl = "http://127.0.0.1:8091/nexus/content/repositories/snapshots";
+
+ String nexusTestUser = "admin";
+ String nexusTestPass = "admin123";
+
+ protected static final String keyId = "0EDB5D91141BC4F2";
+
+ protected static final String secretKeyFile = "/pgp/secring.gpg";
+ protected static final String publicKeyFile = "/pgp/pubring.gpg";
+ protected static final String secretKeyPass = "testKey82";
+
+ PgpStreamVerifierFactory pgpF;
+ SHA1VerifierFactory sha1F;
+ HashSet<StreamVerifierFactory> vFacPgp;
+ HashSet<StreamVerifierFactory> vFacSha1;
+
+ Server server;
+
+ HashSet<StreamVerifierFactory> readFactories;
+ HashSet<StreamVerifierFactory> writeFactories;
+
+ private File targetDirectory;
+
+ MercuryWagon wagon;
+
+ //------------------------------------------------------------------------------
+ @Override
+ protected void setUp()
+ throws Exception
+ {
+ Credentials user = new Credentials( nexusTestUser, nexusTestPass );
+
+ server = new Server( "mercuryWagonTestRead", new URL(nexusReleasesTestUrl), false, false, user );
+
+ // verifiers
+ readFactories = new HashSet<StreamVerifierFactory>();
+ readFactories.add(
+ new PgpStreamVerifierFactory(
+ new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION, false, false )
+ , getClass().getResourceAsStream( publicKeyFile )
+ )
+ );
+ readFactories.add( new SHA1VerifierFactory(false,false) );
+ server.setWriterStreamVerifierFactories(readFactories);
+
+ // verifiers
+ writeFactories = new HashSet<StreamVerifierFactory>();
+ writeFactories.add(
+ new PgpStreamVerifierFactory(
+ new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION, false, false )
+ , getClass().getResourceAsStream( secretKeyFile )
+ , keyId
+ , secretKeyPass
+ )
+ );
+ writeFactories.add( new SHA1VerifierFactory(false,false) );
+ server.setWriterStreamVerifierFactories(writeFactories);
+
+ targetDirectory = new File(nexusReleasesTestDir);
+ FileUtil.delete( new File( targetDirectory, "org" ) );
+
+ wagon = new MercuryWagon( server );
+
+ super.setUp();
+
+ plexus = getContainer();
+
+ assertNotNull( plexus );
+
+ nexusForkedAppBooter = (ForkedAppBooter)plexus.lookup( TEST_NEXUS_ROLE, TEST_NEXUS_HINT );
+
+ nexusForkedAppBooter.start();
+
+ }
+
+ @Override
+ protected void tearDown()
+ throws Exception
+ {
+ super.tearDown();
+ nexusForkedAppBooter.stop();
+ }
+
+ @Override
+ protected Wagon getWagon()
+ throws Exception
+ {
+ return wagon;
+ }
+
+
+
+ @Override
+ protected String getProtocol()
+ {
+ return "http";
+ }
+
+ @Override
+ protected String getTestRepositoryUrl()
+ throws IOException
+ {
+ return nexusReleasesTestUrl;
+ }
+
+}
Added: maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/conf/plexus.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/conf/plexus.properties?rev=695968&view=auto
==============================================================================
--- maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/conf/plexus.properties (added)
+++ maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/conf/plexus.properties Tue Sep 16 09:28:47 2008
@@ -0,0 +1,5 @@
+applicationPort=${nexus-application-port}
+runtime=${basedir}/runtime
+apps=${runtime}/apps
+nexus-work=${basedir}/../sonatype-work/nexus
+webapp=${runtime}/apps/nexus/webapp
Added: maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/conf/nexus.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/conf/nexus.xml?rev=695968&view=auto
==============================================================================
--- maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/conf/nexus.xml (added)
+++ maven/sandbox/trunk/wagon/wagon-mercury/src/test/nexus/work/conf/nexus.xml Tue Sep 16 09:28:47 2008
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nexusConfiguration>
+ <version>1.0.5</version>
+
+ <security>
+ <enabled>${nexus-security-enabled}</enabled>
+ <anonymousAccessEnabled>false</anonymousAccessEnabled>
+ <realms>
+ <realm>default</realm>
+ </realms>
+ </security>
+
+ <globalConnectionSettings />
+ <restApi />
+ <httpProxy>
+ <enabled>true</enabled>
+ </httpProxy>
+ <routing>
+ <groups />
+ </routing>
+ <repositories>
+ <repository>
+ <id>central</id>
+ <name>Maven Central</name>
+ <artifactMaxAge>-1</artifactMaxAge>
+ <remoteStorage>
+ <url>http://repo1.maven.org/maven2/</url>
+ </remoteStorage>
+ </repository>
+ <repository>
+ <id>apache-snapshots</id>
+ <name>Apache Snapshots</name>
+ <repositoryPolicy>snapshot</repositoryPolicy>
+ <remoteStorage>
+ <url>http://people.apache.org/repo/m2-snapshot-repository</url>
+ </remoteStorage>
+ </repository>
+ <repository>
+ <id>codehaus-snapshots</id>
+ <name>Codehaus Snapshots</name>
+ <repositoryPolicy>snapshot</repositoryPolicy>
+ <remoteStorage>
+ <url>http://snapshots.repository.codehaus.org/</url>
+ </remoteStorage>
+ </repository>
+ <repository>
+ <id>releases</id>
+ <name>Releases</name>
+ <allowWrite>true</allowWrite>
+ <artifactMaxAge>-1</artifactMaxAge>
+ </repository>
+ <repository>
+ <id>snapshots</id>
+ <name>Snapshots</name>
+ <allowWrite>true</allowWrite>
+ <repositoryPolicy>snapshot</repositoryPolicy>
+ </repository>
+ <repository>
+ <id>thirdparty</id>
+ <name>3rd party</name>
+ <allowWrite>true</allowWrite>
+ <artifactMaxAge>-1</artifactMaxAge>
+ </repository>
+ <repository>
+ <id>test</id>
+ <name>test</name>
+ <allowWrite>true</allowWrite>
+ <checksumPolicy>ignore</checksumPolicy>
+ </repository>
+ </repositories>
+ <repositoryShadows>
+ <repositoryShadow>
+ <id>central-m1</id>
+ <name>Central M1 shadow</name>
+ <shadowOf>central</shadowOf>
+ </repositoryShadow>
+ </repositoryShadows>
+ <repositoryGrouping>
+ <pathMappings>
+ <pathMapping>
+ <id>inhouse-stuff</id>
+ <groupId>*</groupId>
+ <routePattern>.*/(com|org)/somecompany/.*</routePattern>
+ <routeType>inclusive</routeType>
+ <repositories>
+ <repository>snapshots</repository>
+ <repository>releases</repository>
+ </repositories>
+ </pathMapping>
+ <pathMapping>
+ <id>apache-stuff</id>
+ <groupId>*</groupId>
+ <routePattern>.*/org/some-oss/.*</routePattern>
+ <routeType>exclusive</routeType>
+ <repositories>
+ <repository>releases</repository>
+ <repository>snapshots</repository>
+ </repositories>
+ </pathMapping>
+ </pathMappings>
+ <repositoryGroups>
+ <repositoryGroup>
+ <groupId>public</groupId>
+ <name>Public Repositories</name>
+ <repositories>
+ <repository>releases</repository>
+ <repository>snapshots</repository>
+ <repository>thirdparty</repository>
+ <repository>central</repository>
+ </repositories>
+ </repositoryGroup>
+ <repositoryGroup>
+ <groupId>public-snapshots</groupId>
+ <name>Public Snapshot Repositories</name>
+ <repositories>
+ <repository>apache-snapshots</repository>
+ <repository>codehaus-snapshots</repository>
+ </repositories>
+ </repositoryGroup>
+ </repositoryGroups>
+ </repositoryGrouping>
+ <repositoryTargets>
+ <repositoryTarget>
+ <id>1</id>
+ <name>All (Maven2)</name>
+ <contentClass>maven2</contentClass>
+ <patterns>
+ <pattern>.*</pattern>
+ </patterns>
+ </repositoryTarget>
+ <repositoryTarget>
+ <id>2</id>
+ <name>All (Maven1)</name>
+ <contentClass>maven1</contentClass>
+ <patterns>
+ <pattern>.*</pattern>
+ </patterns>
+ </repositoryTarget>
+ <repositoryTarget>
+ <id>3</id>
+ <name>All but sources (Maven2)</name>
+ <contentClass>maven2</contentClass>
+ <patterns>
+ <pattern>(?!.*-sources.*).*</pattern>
+ </patterns>
+ </repositoryTarget>
+ <repositoryTarget>
+ <id>4</id>
+ <name>All Metadata (Maven2)</name>
+ <contentClass>maven2</contentClass>
+ <patterns>
+ <pattern>.*maven-metadata\.xml.*</pattern>
+ </patterns>
+ </repositoryTarget>
+ </repositoryTargets>
+ <smtpConfiguration>
+ <host>smtp-host</host>
+ <port>25</port>
+ <username>smtp-username</username>
+ <password>smtp-password</password>
+ <systemEmailAddress>system@nexus.org</systemEmailAddress>
+ </smtpConfiguration>
+</nexusConfiguration>