Author: ogusakov Date: Tue Aug 19 21:49:59 2008 New Revision: 687242 URL: http://svn.apache.org/viewvc?rev=687242&view=rev Log: local repo - reader and writer work, group md is fine, version md - still investigating
Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2Test.java maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.jar (with props) maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.jar.sha1 maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.pom maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.pom.sha1 maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/pgp/ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/pgp/pubring.gpg (with props) maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/pgp/secring.gpg (with props) maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/repo/a/a/3/a-3.jar (with props) maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/apache/ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/apache/maven/ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/apache/maven/mercury/ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/apache/maven/mercury/transport/ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/apache/maven/mercury/transport/file/ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/apache/maven/mercury/transport/file/FileWriterTransport.java Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2Test.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2Test.java?rev=687242&view=auto ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2Test.java (added) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2Test.java Tue Aug 19 21:49:59 2008 @@ -0,0 +1,109 @@ +package org.apache.maven.mercury.repository.local.m2; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import junit.framework.TestCase; + +import org.apache.maven.mercury.artifact.Artifact; +import org.apache.maven.mercury.artifact.ArtifactBasicMetadata; +import org.apache.maven.mercury.artifact.DefaultArtifact; +import org.apache.maven.mercury.builder.api.MetadataProcessor; +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.repository.api.RepositoryReader; +import org.apache.maven.mercury.repository.api.RepositoryWriter; +import org.apache.maven.mercury.transport.api.Server; +import org.apache.maven.mercury.util.FileUtil; + +/** + * + * + * @author Oleg Gusakov + * @version $Id$ + * + */ +public class LocalRepositoryWriterM2Test + extends TestCase +{ + LocalRepositoryM2 repo; + + MetadataProcessor mdProcessor; + + RepositoryReader reader; + RepositoryWriter writer; + + List<ArtifactBasicMetadata> query; + + ArtifactBasicMetadata bmd; + + String pomBlob; + + private static final String keyId = "0EDB5D91141BC4F2"; + + private static final String secretKeyFile = "/pgp/secring.gpg"; + private static final String secretKeyPass = "testKey82"; + + Server server; + HashSet<StreamVerifierFactory> factories; + //------------------------------------------------------------------------------ + @Override + protected void setUp() + throws Exception + { + File repoFile = new File("./target/test-classes/tempRepo"); + FileUtil.copy( new File("./target/test-classes/repo"), repoFile, true ); + + mdProcessor = new MetadataProcessorMock(); + + query = new ArrayList<ArtifactBasicMetadata>(); + + server = new Server( "test", repoFile.toURL() ); + factories = new HashSet<StreamVerifierFactory>(); + factories.add( + new PgpStreamVerifierFactory( + new StreamVerifierAttributes( PgpStreamVerifierFactory.DEFAULT_EXTENSION, false, true ) + , getClass().getResourceAsStream( secretKeyFile ) + , keyId + , secretKeyPass + ) + ); + factories.add( new SHA1VerifierFactory(false,false) ); + server.setStreamVerifierFactories(factories); + + repo = new LocalRepositoryM2( server ); + reader = repo.getReader( mdProcessor ); + writer = repo.getWriter(); + + + } + + public void testWriteArtifact() + throws Exception + { + Set<Artifact> set = new HashSet<Artifact>(3); + DefaultArtifact da = new DefaultArtifact( new ArtifactBasicMetadata("org.apache.maven:maven-core:2.0.9") ); + da.setPomBlob( FileUtil.readRawData( getClass().getResourceAsStream( "/maven-core-2.0.9.pom" ) ) ); + da.setStream( getClass().getResourceAsStream( "/maven-core-2.0.9.jar" ) ); + set.add( da ); + + writer.writeArtifact( set ); + + File af = new File( repo.getDirectory(), "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar"); + assertTrue( af.exists() ); + assertEquals( 159630, af.length() ); + + File ap = new File( repo.getDirectory(), "/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom"); + assertTrue( ap.exists() ); + assertEquals( 7785, ap.length() ); + + + } + + +} Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.jar URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.jar?rev=687242&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.jar.sha1 URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.jar.sha1?rev=687242&view=auto ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.jar.sha1 (added) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.jar.sha1 Tue Aug 19 21:49:59 2008 @@ -0,0 +1 @@ +e1003a0a66dae77515259c5e591ea1cfd73c2859 \ No newline at end of file Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.pom URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.pom?rev=687242&view=auto ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.pom (added) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.pom Tue Aug 19 21:49:59 2008 @@ -0,0 +1,234 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!-- + 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. +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>maven</artifactId> + <groupId>org.apache.maven</groupId> + <version>2.0.9</version> + </parent> + + <artifactId>maven-core</artifactId> + <name>Maven Core</name> + + <pluginRepositories> + <pluginRepository> + <id>apache.snapshots</id> + <url>http://people.apache.org/repo/m2-snapshot-repository</url> + </pluginRepository> + </pluginRepositories> + + <dependencies> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-settings</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-file</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-parameter-documenter</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-webdav</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-http-lightweight</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.reporting</groupId> + <artifactId>maven-reporting-api</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-profile</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-provider-api</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-error-diagnostics</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-project</artifactId> + </dependency> + <dependency> + <groupId>commons-cli</groupId> + <artifactId>commons-cli</artifactId> + <version>1.0</version> + <exclusions> + <exclusion> + <artifactId>commons-lang</artifactId> + <groupId>commons-lang</groupId> + </exclusion> + <exclusion> + <artifactId>commons-logging</artifactId> + <groupId>commons-logging</groupId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-api</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh-external</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-descriptor</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-interactivity-api</artifactId> + <version>1.0-alpha-4</version> + <exclusions> + <exclusion> + <artifactId>plexus-utils</artifactId> + <groupId>plexus</groupId> + </exclusion> + <exclusion> + <artifactId>plexus-container-default</artifactId> + <groupId>org.codehaus.plexus</groupId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-monitor</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>classworlds</groupId> + <artifactId>classworlds</artifactId> + </dependency> + </dependencies> + + <reporting> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>l10n-maven-plugin</artifactId> + <version>1.0-alpha-1</version> + <configuration> + <locales> + <locale>el</locale> + <locale>de</locale> + <locale>es</locale> + <locale>fr</locale> + <locale>ja</locale> + <locale>nl</locale> + <locale>no</locale> + <locale>pl</locale> + <locale>zh_CN</locale> + </locales> + </configuration> + </plugin> + </plugins> + </reporting> + + <profiles> + <profile> + <id>include-site</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-scm-plugin</artifactId> + <configuration> + <connectionUrl>scm:svn:http://svn.apache.org/repos/asf/maven/site/trunk</connectionUrl> + <checkoutDirectory>${project.build.directory}/maven-site</checkoutDirectory> + </configuration> + <executions> + <execution> + <phase>initialize</phase> + <goals> + <goal>checkout</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-invoker-plugin</artifactId> + <configuration> + <projectsDirectory>${project.build.directory}/maven-site</projectsDirectory> + <pom>${project.build.directory}/maven-site/pom.xml</pom> + <goals> + <goal>clean</goal> + <goal>site</goal> + </goals> + </configuration> + <executions> + <execution> + <id>initialize</id> + <phase>initialize</phase> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.pom.sha1 URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.pom.sha1?rev=687242&view=auto ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.pom.sha1 (added) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/maven-core-2.0.9.pom.sha1 Tue Aug 19 21:49:59 2008 @@ -0,0 +1 @@ +25da75e747afa1c361f003aed72de2e48dd190a7 \ No newline at end of file Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/pgp/pubring.gpg URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/pgp/pubring.gpg?rev=687242&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/pgp/pubring.gpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/pgp/secring.gpg URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/pgp/secring.gpg?rev=687242&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/pgp/secring.gpg ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/repo/a/a/3/a-3.jar URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/repo/a/a/3/a-3.jar?rev=687242&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/test/resources/repo/a/a/3/a-3.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/apache/maven/mercury/transport/file/FileWriterTransport.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/apache/maven/mercury/transport/file/FileWriterTransport.java?rev=687242&view=auto ============================================================================== --- maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/apache/maven/mercury/transport/file/FileWriterTransport.java (added) +++ maven/sandbox/trunk/mercury/mercury-transport/mercury-transport-file/src/main/java/org/apache/maven/mercury/transport/file/FileWriterTransport.java Tue Aug 19 21:49:59 2008 @@ -0,0 +1,46 @@ +package org.apache.maven.mercury.transport.file; + +import java.util.List; + +import org.apache.maven.mercury.crypto.api.StreamObserver; +import org.apache.maven.mercury.transport.api.Server; +import org.apache.maven.mercury.transport.api.TransportException; +import org.apache.maven.mercury.transport.api.TransportTransaction; +import org.apache.maven.mercury.transport.api.WriterTransport; + +/** + * + * + * @author Oleg Gusakov + * @version $Id$ + * + */ +public class FileWriterTransport + implements WriterTransport +{ + protected Server server; + + + public FileWriterTransport( Server server ) + { + this.server = server; + } + + public TransportTransaction write( TransportTransaction trx ) + throws TransportException + { + return null; + } + +} +//============================================================== +class FileWriter +implements Runnable +{ + + public void run() + { + } + +} +//==============================================================