http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/apache/maven/aether/examples/util/ConsoleRepositoryListener.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/apache/maven/aether/examples/util/ConsoleRepositoryListener.java b/aether-demo-snippets/src/main/java/org/apache/maven/aether/examples/util/ConsoleRepositoryListener.java new file mode 100644 index 0000000..f7797dd --- /dev/null +++ b/aether-demo-snippets/src/main/java/org/apache/maven/aether/examples/util/ConsoleRepositoryListener.java @@ -0,0 +1,132 @@ +package org.apache.maven.aether.examples.util; + +/* + * 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. + */ + +import java.io.PrintStream; + +import org.eclipse.aether.AbstractRepositoryListener; +import org.eclipse.aether.RepositoryEvent; + +/** + * A simplistic repository listener that logs events to the console. + */ +public class ConsoleRepositoryListener + extends AbstractRepositoryListener +{ + + private PrintStream out; + + public ConsoleRepositoryListener() + { + this( null ); + } + + public ConsoleRepositoryListener( PrintStream out ) + { + this.out = ( out != null ) ? out : System.out; + } + + public void artifactDeployed( RepositoryEvent event ) + { + out.println( "Deployed " + event.getArtifact() + " to " + event.getRepository() ); + } + + public void artifactDeploying( RepositoryEvent event ) + { + out.println( "Deploying " + event.getArtifact() + " to " + event.getRepository() ); + } + + public void artifactDescriptorInvalid( RepositoryEvent event ) + { + out.println( "Invalid artifact descriptor for " + event.getArtifact() + ": " + + event.getException().getMessage() ); + } + + public void artifactDescriptorMissing( RepositoryEvent event ) + { + out.println( "Missing artifact descriptor for " + event.getArtifact() ); + } + + public void artifactInstalled( RepositoryEvent event ) + { + out.println( "Installed " + event.getArtifact() + " to " + event.getFile() ); + } + + public void artifactInstalling( RepositoryEvent event ) + { + out.println( "Installing " + event.getArtifact() + " to " + event.getFile() ); + } + + public void artifactResolved( RepositoryEvent event ) + { + out.println( "Resolved artifact " + event.getArtifact() + " from " + event.getRepository() ); + } + + public void artifactDownloading( RepositoryEvent event ) + { + out.println( "Downloading artifact " + event.getArtifact() + " from " + event.getRepository() ); + } + + public void artifactDownloaded( RepositoryEvent event ) + { + out.println( "Downloaded artifact " + event.getArtifact() + " from " + event.getRepository() ); + } + + public void artifactResolving( RepositoryEvent event ) + { + out.println( "Resolving artifact " + event.getArtifact() ); + } + + public void metadataDeployed( RepositoryEvent event ) + { + out.println( "Deployed " + event.getMetadata() + " to " + event.getRepository() ); + } + + public void metadataDeploying( RepositoryEvent event ) + { + out.println( "Deploying " + event.getMetadata() + " to " + event.getRepository() ); + } + + public void metadataInstalled( RepositoryEvent event ) + { + out.println( "Installed " + event.getMetadata() + " to " + event.getFile() ); + } + + public void metadataInstalling( RepositoryEvent event ) + { + out.println( "Installing " + event.getMetadata() + " to " + event.getFile() ); + } + + public void metadataInvalid( RepositoryEvent event ) + { + out.println( "Invalid metadata " + event.getMetadata() ); + } + + public void metadataResolved( RepositoryEvent event ) + { + out.println( "Resolved metadata " + event.getMetadata() + " from " + event.getRepository() ); + } + + public void metadataResolving( RepositoryEvent event ) + { + out.println( "Resolving metadata " + event.getMetadata() + " from " + event.getRepository() ); + } + +}
http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/apache/maven/aether/examples/util/ConsoleTransferListener.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/apache/maven/aether/examples/util/ConsoleTransferListener.java b/aether-demo-snippets/src/main/java/org/apache/maven/aether/examples/util/ConsoleTransferListener.java new file mode 100644 index 0000000..96ff6b3 --- /dev/null +++ b/aether-demo-snippets/src/main/java/org/apache/maven/aether/examples/util/ConsoleTransferListener.java @@ -0,0 +1,178 @@ +package org.apache.maven.aether.examples.util; + +/* + * 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. + */ + +import java.io.PrintStream; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.util.Locale; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import org.eclipse.aether.transfer.AbstractTransferListener; +import org.eclipse.aether.transfer.MetadataNotFoundException; +import org.eclipse.aether.transfer.TransferEvent; +import org.eclipse.aether.transfer.TransferResource; + +/** + * A simplistic transfer listener that logs uploads/downloads to the console. + */ +public class ConsoleTransferListener + extends AbstractTransferListener +{ + + private PrintStream out; + + private Map<TransferResource, Long> downloads = new ConcurrentHashMap<TransferResource, Long>(); + + private int lastLength; + + public ConsoleTransferListener() + { + this( null ); + } + + public ConsoleTransferListener( PrintStream out ) + { + this.out = ( out != null ) ? out : System.out; + } + + @Override + public void transferInitiated( TransferEvent event ) + { + String message = event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploading" : "Downloading"; + + out.println( message + ": " + event.getResource().getRepositoryUrl() + event.getResource().getResourceName() ); + } + + @Override + public void transferProgressed( TransferEvent event ) + { + TransferResource resource = event.getResource(); + downloads.put( resource, Long.valueOf( event.getTransferredBytes() ) ); + + StringBuilder buffer = new StringBuilder( 64 ); + + for ( Map.Entry<TransferResource, Long> entry : downloads.entrySet() ) + { + long total = entry.getKey().getContentLength(); + long complete = entry.getValue().longValue(); + + buffer.append( getStatus( complete, total ) ).append( " " ); + } + + int pad = lastLength - buffer.length(); + lastLength = buffer.length(); + pad( buffer, pad ); + buffer.append( '\r' ); + + out.print( buffer ); + } + + private String getStatus( long complete, long total ) + { + if ( total >= 1024 ) + { + return toKB( complete ) + "/" + toKB( total ) + " KB "; + } + else if ( total >= 0 ) + { + return complete + "/" + total + " B "; + } + else if ( complete >= 1024 ) + { + return toKB( complete ) + " KB "; + } + else + { + return complete + " B "; + } + } + + private void pad( StringBuilder buffer, int spaces ) + { + String block = " "; + while ( spaces > 0 ) + { + int n = Math.min( spaces, block.length() ); + buffer.append( block, 0, n ); + spaces -= n; + } + } + + @Override + public void transferSucceeded( TransferEvent event ) + { + transferCompleted( event ); + + TransferResource resource = event.getResource(); + long contentLength = event.getTransferredBytes(); + if ( contentLength >= 0 ) + { + String type = ( event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploaded" : "Downloaded" ); + String len = contentLength >= 1024 ? toKB( contentLength ) + " KB" : contentLength + " B"; + + String throughput = ""; + long duration = System.currentTimeMillis() - resource.getTransferStartTime(); + if ( duration > 0 ) + { + long bytes = contentLength - resource.getResumeOffset(); + DecimalFormat format = new DecimalFormat( "0.0", new DecimalFormatSymbols( Locale.ENGLISH ) ); + double kbPerSec = ( bytes / 1024.0 ) / ( duration / 1000.0 ); + throughput = " at " + format.format( kbPerSec ) + " KB/sec"; + } + + out.println( type + ": " + resource.getRepositoryUrl() + resource.getResourceName() + " (" + len + + throughput + ")" ); + } + } + + @Override + public void transferFailed( TransferEvent event ) + { + transferCompleted( event ); + + if ( !( event.getException() instanceof MetadataNotFoundException ) ) + { + event.getException().printStackTrace( out ); + } + } + + private void transferCompleted( TransferEvent event ) + { + downloads.remove( event.getResource() ); + + StringBuilder buffer = new StringBuilder( 64 ); + pad( buffer, lastLength ); + buffer.append( '\r' ); + out.print( buffer ); + } + + public void transferCorrupted( TransferEvent event ) + { + event.getException().printStackTrace( out ); + } + + protected long toKB( long bytes ) + { + return ( bytes + 1023 ) / 1024; + } + +} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/AllAetherDemos.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/AllAetherDemos.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/AllAetherDemos.java deleted file mode 100644 index b53079b..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/AllAetherDemos.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples; - -/** - * Runs all demos at once. - */ -public class AllAetherDemos -{ - - public static void main( String[] args ) - throws Exception - { - FindAvailableVersions.main( args ); - FindNewestVersion.main( args ); - GetDirectDependencies.main( args ); - GetDependencyTree.main( args ); - GetDependencyHierarchy.main( args ); - ResolveArtifact.main( args ); - ResolveTransitiveDependencies.main( args ); - InstallArtifacts.main( args ); - DeployArtifacts.main( args ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/DeployArtifacts.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/DeployArtifacts.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/DeployArtifacts.java deleted file mode 100644 index 6d8732b..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/DeployArtifacts.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2012 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples; - -import java.io.File; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.deployment.DeployRequest; -import org.eclipse.aether.examples.util.Booter; -import org.eclipse.aether.repository.RemoteRepository; -import org.eclipse.aether.util.artifact.SubArtifact; - -/** - * Deploys a JAR and its POM to a remote repository. - */ -public class DeployArtifacts -{ - - public static void main( String[] args ) - throws Exception - { - System.out.println( "------------------------------------------------------------" ); - System.out.println( DeployArtifacts.class.getSimpleName() ); - - RepositorySystem system = Booter.newRepositorySystem(); - - RepositorySystemSession session = Booter.newRepositorySystemSession( system ); - - Artifact jarArtifact = new DefaultArtifact( "test", "org.eclipse.aether.examples", "", "jar", "0.1-SNAPSHOT" ); - jarArtifact = jarArtifact.setFile( new File( "src/main/data/demo.jar" ) ); - - Artifact pomArtifact = new SubArtifact( jarArtifact, "", "pom" ); - pomArtifact = pomArtifact.setFile( new File( "pom.xml" ) ); - - RemoteRepository distRepo = - new RemoteRepository.Builder( "org.eclipse.aether.examples", "default", - new File( "target/dist-repo" ).toURI().toString() ).build(); - - DeployRequest deployRequest = new DeployRequest(); - deployRequest.addArtifact( jarArtifact ).addArtifact( pomArtifact ); - deployRequest.setRepository( distRepo ); - - system.deploy( session, deployRequest ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/FindAvailableVersions.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/FindAvailableVersions.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/FindAvailableVersions.java deleted file mode 100644 index 8f556c2..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/FindAvailableVersions.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples; - -import java.util.List; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.examples.util.Booter; -import org.eclipse.aether.resolution.VersionRangeRequest; -import org.eclipse.aether.resolution.VersionRangeResult; -import org.eclipse.aether.version.Version; - -/** - * Determines all available versions of an artifact. - */ -public class FindAvailableVersions -{ - - public static void main( String[] args ) - throws Exception - { - System.out.println( "------------------------------------------------------------" ); - System.out.println( FindAvailableVersions.class.getSimpleName() ); - - RepositorySystem system = Booter.newRepositorySystem(); - - RepositorySystemSession session = Booter.newRepositorySystemSession( system ); - - Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-util:[0,)" ); - - VersionRangeRequest rangeRequest = new VersionRangeRequest(); - rangeRequest.setArtifact( artifact ); - rangeRequest.setRepositories( Booter.newRepositories( system, session ) ); - - VersionRangeResult rangeResult = system.resolveVersionRange( session, rangeRequest ); - - List<Version> versions = rangeResult.getVersions(); - - System.out.println( "Available versions " + versions ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/FindNewestVersion.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/FindNewestVersion.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/FindNewestVersion.java deleted file mode 100644 index 48665fd..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/FindNewestVersion.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.examples.util.Booter; -import org.eclipse.aether.resolution.VersionRangeRequest; -import org.eclipse.aether.resolution.VersionRangeResult; -import org.eclipse.aether.version.Version; - -/** - * Determines the newest version of an artifact. - */ -public class FindNewestVersion -{ - - public static void main( String[] args ) - throws Exception - { - System.out.println( "------------------------------------------------------------" ); - System.out.println( FindNewestVersion.class.getSimpleName() ); - - RepositorySystem system = Booter.newRepositorySystem(); - - RepositorySystemSession session = Booter.newRepositorySystemSession( system ); - - Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-util:[0,)" ); - - VersionRangeRequest rangeRequest = new VersionRangeRequest(); - rangeRequest.setArtifact( artifact ); - rangeRequest.setRepositories( Booter.newRepositories( system, session ) ); - - VersionRangeResult rangeResult = system.resolveVersionRange( session, rangeRequest ); - - Version newestVersion = rangeResult.getHighestVersion(); - - System.out.println( "Newest version " + newestVersion + " from repository " - + rangeResult.getRepository( newestVersion ) ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDependencyHierarchy.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDependencyHierarchy.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDependencyHierarchy.java deleted file mode 100644 index 015c922..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDependencyHierarchy.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples; - -import org.eclipse.aether.DefaultRepositorySystemSession; -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.collection.CollectRequest; -import org.eclipse.aether.collection.CollectResult; -import org.eclipse.aether.examples.util.Booter; -import org.eclipse.aether.examples.util.ConsoleDependencyGraphDumper; -import org.eclipse.aether.resolution.ArtifactDescriptorRequest; -import org.eclipse.aether.resolution.ArtifactDescriptorResult; -import org.eclipse.aether.util.graph.manager.DependencyManagerUtils; -import org.eclipse.aether.util.graph.transformer.ConflictResolver; - -/** - * Visualizes the transitive dependencies of an artifact similar to m2e's dependency hierarchy view. - */ -public class GetDependencyHierarchy -{ - - public static void main( String[] args ) - throws Exception - { - System.out.println( "------------------------------------------------------------" ); - System.out.println( GetDependencyHierarchy.class.getSimpleName() ); - - RepositorySystem system = Booter.newRepositorySystem(); - - DefaultRepositorySystemSession session = Booter.newRepositorySystemSession( system ); - - session.setConfigProperty( ConflictResolver.CONFIG_PROP_VERBOSE, true ); - session.setConfigProperty( DependencyManagerUtils.CONFIG_PROP_VERBOSE, true ); - - Artifact artifact = new DefaultArtifact( "org.apache.maven:maven-aether-provider:3.1.0" ); - - ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); - descriptorRequest.setArtifact( artifact ); - descriptorRequest.setRepositories( Booter.newRepositories( system, session ) ); - ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor( session, descriptorRequest ); - - CollectRequest collectRequest = new CollectRequest(); - collectRequest.setRootArtifact( descriptorResult.getArtifact() ); - collectRequest.setDependencies( descriptorResult.getDependencies() ); - collectRequest.setManagedDependencies( descriptorResult.getManagedDependencies() ); - collectRequest.setRepositories( descriptorRequest.getRepositories() ); - - CollectResult collectResult = system.collectDependencies( session, collectRequest ); - - collectResult.getRoot().accept( new ConsoleDependencyGraphDumper() ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDependencyTree.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDependencyTree.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDependencyTree.java deleted file mode 100644 index 7a1bf9e..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDependencyTree.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.collection.CollectRequest; -import org.eclipse.aether.collection.CollectResult; -import org.eclipse.aether.examples.util.Booter; -import org.eclipse.aether.examples.util.ConsoleDependencyGraphDumper; -import org.eclipse.aether.graph.Dependency; - -/** - * Collects the transitive dependencies of an artifact. - */ -public class GetDependencyTree -{ - - public static void main( String[] args ) - throws Exception - { - System.out.println( "------------------------------------------------------------" ); - System.out.println( GetDependencyTree.class.getSimpleName() ); - - RepositorySystem system = Booter.newRepositorySystem(); - - RepositorySystemSession session = Booter.newRepositorySystemSession( system ); - - Artifact artifact = new DefaultArtifact( "org.apache.maven:maven-aether-provider:3.1.0" ); - - CollectRequest collectRequest = new CollectRequest(); - collectRequest.setRoot( new Dependency( artifact, "" ) ); - collectRequest.setRepositories( Booter.newRepositories( system, session ) ); - - CollectResult collectResult = system.collectDependencies( session, collectRequest ); - - collectResult.getRoot().accept( new ConsoleDependencyGraphDumper() ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDirectDependencies.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDirectDependencies.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDirectDependencies.java deleted file mode 100644 index 7cccdea..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/GetDirectDependencies.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2014 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.examples.util.Booter; -import org.eclipse.aether.graph.Dependency; -import org.eclipse.aether.resolution.ArtifactDescriptorRequest; -import org.eclipse.aether.resolution.ArtifactDescriptorResult; - -/** - * Determines the direct dependencies of an artifact as declared in its artifact descriptor (POM). - */ -public class GetDirectDependencies -{ - - public static void main( String[] args ) - throws Exception - { - System.out.println( "------------------------------------------------------------" ); - System.out.println( GetDirectDependencies.class.getSimpleName() ); - - RepositorySystem system = Booter.newRepositorySystem(); - - RepositorySystemSession session = Booter.newRepositorySystemSession( system ); - - Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-impl:1.0.0.v20140518" ); - - ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest(); - descriptorRequest.setArtifact( artifact ); - descriptorRequest.setRepositories( Booter.newRepositories( system, session ) ); - - ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor( session, descriptorRequest ); - - for ( Dependency dependency : descriptorResult.getDependencies() ) - { - System.out.println( dependency ); - } - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/InstallArtifacts.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/InstallArtifacts.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/InstallArtifacts.java deleted file mode 100644 index 0e0ff0f..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/InstallArtifacts.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2012 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples; - -import java.io.File; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.examples.util.Booter; -import org.eclipse.aether.installation.InstallRequest; -import org.eclipse.aether.util.artifact.SubArtifact; - -/** - * Installs a JAR and its POM to the local repository. - */ -public class InstallArtifacts -{ - - public static void main( String[] args ) - throws Exception - { - System.out.println( "------------------------------------------------------------" ); - System.out.println( InstallArtifacts.class.getSimpleName() ); - - RepositorySystem system = Booter.newRepositorySystem(); - - RepositorySystemSession session = Booter.newRepositorySystemSession( system ); - - Artifact jarArtifact = new DefaultArtifact( "test", "org.eclipse.aether.examples", "", "jar", "0.1-SNAPSHOT" ); - jarArtifact = jarArtifact.setFile( new File( "src/main/data/demo.jar" ) ); - - Artifact pomArtifact = new SubArtifact( jarArtifact, "", "pom" ); - pomArtifact = pomArtifact.setFile( new File( "pom.xml" ) ); - - InstallRequest installRequest = new InstallRequest(); - installRequest.addArtifact( jarArtifact ).addArtifact( pomArtifact ); - - system.install( session, installRequest ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/ResolveArtifact.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/ResolveArtifact.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/ResolveArtifact.java deleted file mode 100644 index 67ffc4e..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/ResolveArtifact.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2014 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.examples.util.Booter; -import org.eclipse.aether.resolution.ArtifactRequest; -import org.eclipse.aether.resolution.ArtifactResult; - -/** - * Resolves a single artifact. - */ -public class ResolveArtifact -{ - - public static void main( String[] args ) - throws Exception - { - System.out.println( "------------------------------------------------------------" ); - System.out.println( ResolveArtifact.class.getSimpleName() ); - - RepositorySystem system = Booter.newRepositorySystem(); - - RepositorySystemSession session = Booter.newRepositorySystemSession( system ); - - Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-util:1.0.0.v20140518" ); - - ArtifactRequest artifactRequest = new ArtifactRequest(); - artifactRequest.setArtifact( artifact ); - artifactRequest.setRepositories( Booter.newRepositories( system, session ) ); - - ArtifactResult artifactResult = system.resolveArtifact( session, artifactRequest ); - - artifact = artifactResult.getArtifact(); - - System.out.println( artifact + " resolved to " + artifact.getFile() ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/ResolveTransitiveDependencies.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/ResolveTransitiveDependencies.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/ResolveTransitiveDependencies.java deleted file mode 100644 index 4152b8a..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/ResolveTransitiveDependencies.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2014 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples; - -import java.util.List; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.collection.CollectRequest; -import org.eclipse.aether.examples.util.Booter; -import org.eclipse.aether.graph.Dependency; -import org.eclipse.aether.graph.DependencyFilter; -import org.eclipse.aether.resolution.ArtifactResult; -import org.eclipse.aether.resolution.DependencyRequest; -import org.eclipse.aether.util.artifact.JavaScopes; -import org.eclipse.aether.util.filter.DependencyFilterUtils; - -/** - * Resolves the transitive (compile) dependencies of an artifact. - */ -public class ResolveTransitiveDependencies -{ - - public static void main( String[] args ) - throws Exception - { - System.out.println( "------------------------------------------------------------" ); - System.out.println( ResolveTransitiveDependencies.class.getSimpleName() ); - - RepositorySystem system = Booter.newRepositorySystem(); - - RepositorySystemSession session = Booter.newRepositorySystemSession( system ); - - Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-impl:1.0.0.v20140518" ); - - DependencyFilter classpathFlter = DependencyFilterUtils.classpathFilter( JavaScopes.COMPILE ); - - CollectRequest collectRequest = new CollectRequest(); - collectRequest.setRoot( new Dependency( artifact, JavaScopes.COMPILE ) ); - collectRequest.setRepositories( Booter.newRepositories( system, session ) ); - - DependencyRequest dependencyRequest = new DependencyRequest( collectRequest, classpathFlter ); - - List<ArtifactResult> artifactResults = - system.resolveDependencies( session, dependencyRequest ).getArtifactResults(); - - for ( ArtifactResult artifactResult : artifactResults ) - { - System.out.println( artifactResult.getArtifact() + " resolved to " + artifactResult.getArtifact().getFile() ); - } - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/Aether.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/Aether.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/Aether.java deleted file mode 100644 index 73c8b26..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/Aether.java +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.aether; - -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; - -import org.eclipse.aether.DefaultRepositorySystemSession; -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.collection.CollectRequest; -import org.eclipse.aether.deployment.DeployRequest; -import org.eclipse.aether.deployment.DeploymentException; -import org.eclipse.aether.examples.util.Booter; -import org.eclipse.aether.examples.util.ConsoleDependencyGraphDumper; -import org.eclipse.aether.graph.Dependency; -import org.eclipse.aether.graph.DependencyNode; -import org.eclipse.aether.installation.InstallRequest; -import org.eclipse.aether.installation.InstallationException; -import org.eclipse.aether.repository.Authentication; -import org.eclipse.aether.repository.LocalRepository; -import org.eclipse.aether.repository.RemoteRepository; -import org.eclipse.aether.resolution.DependencyRequest; -import org.eclipse.aether.resolution.DependencyResolutionException; -import org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator; -import org.eclipse.aether.util.repository.AuthenticationBuilder; - -public class Aether -{ - private String remoteRepository; - - private RepositorySystem repositorySystem; - - private LocalRepository localRepository; - - public Aether( String remoteRepository, String localRepository ) - { - this.remoteRepository = remoteRepository; - this.repositorySystem = Booter.newRepositorySystem(); - this.localRepository = new LocalRepository( localRepository ); - } - - private RepositorySystemSession newSession() - { - DefaultRepositorySystemSession session = Booter.newRepositorySystemSession( repositorySystem ); - session.setLocalRepositoryManager( repositorySystem.newLocalRepositoryManager( session, localRepository ) ); - return session; - } - - public AetherResult resolve( String groupId, String artifactId, String version ) - throws DependencyResolutionException - { - RepositorySystemSession session = newSession(); - Dependency dependency = - new Dependency( new DefaultArtifact( groupId, artifactId, "", "jar", version ), "runtime" ); - RemoteRepository central = new RemoteRepository.Builder( "central", "default", remoteRepository ).build(); - - CollectRequest collectRequest = new CollectRequest(); - collectRequest.setRoot( dependency ); - collectRequest.addRepository( central ); - - DependencyRequest dependencyRequest = new DependencyRequest(); - dependencyRequest.setCollectRequest( collectRequest ); - - DependencyNode rootNode = repositorySystem.resolveDependencies( session, dependencyRequest ).getRoot(); - - StringBuilder dump = new StringBuilder(); - displayTree( rootNode, dump ); - - PreorderNodeListGenerator nlg = new PreorderNodeListGenerator(); - rootNode.accept( nlg ); - - return new AetherResult( rootNode, nlg.getFiles(), nlg.getClassPath() ); - } - - public void install( Artifact artifact, Artifact pom ) - throws InstallationException - { - RepositorySystemSession session = newSession(); - - InstallRequest installRequest = new InstallRequest(); - installRequest.addArtifact( artifact ).addArtifact( pom ); - - repositorySystem.install( session, installRequest ); - } - - public void deploy( Artifact artifact, Artifact pom, String remoteRepository ) - throws DeploymentException - { - RepositorySystemSession session = newSession(); - - Authentication auth = new AuthenticationBuilder().addUsername( "admin" ).addPassword( "admin123" ).build(); - RemoteRepository nexus = - new RemoteRepository.Builder( "nexus", "default", remoteRepository ).setAuthentication( auth ).build(); - - DeployRequest deployRequest = new DeployRequest(); - deployRequest.addArtifact( artifact ).addArtifact( pom ); - deployRequest.setRepository( nexus ); - - repositorySystem.deploy( session, deployRequest ); - } - - private void displayTree( DependencyNode node, StringBuilder sb ) - { - ByteArrayOutputStream os = new ByteArrayOutputStream( 1024 ); - node.accept( new ConsoleDependencyGraphDumper( new PrintStream( os ) ) ); - sb.append( os.toString() ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/AetherDemo.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/AetherDemo.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/AetherDemo.java deleted file mode 100644 index 62ba6ce..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/AetherDemo.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2012 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.aether; - -import java.io.File; -import java.util.List; - -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.deployment.DeploymentException; -import org.eclipse.aether.graph.DependencyNode; -import org.eclipse.aether.installation.InstallationException; -import org.eclipse.aether.resolution.DependencyResolutionException; -import org.eclipse.aether.util.artifact.SubArtifact; - -@SuppressWarnings( "unused" ) -public class AetherDemo -{ - - public void resolve() - throws DependencyResolutionException - { - Aether aether = new Aether( "http://localhost:8081/nexus/content/groups/public", "/Users/jvanzyl/aether-repo" ); - - AetherResult result = aether.resolve( "com.mycompany.app", "super-app", "1.0" ); - - // Get the root of the resolved tree of artifacts - // - DependencyNode root = result.getRoot(); - - // Get the list of files for the artifacts resolved - // - List<File> artifacts = result.getResolvedFiles(); - - // Get the classpath of the artifacts resolved - // - String classpath = result.getResolvedClassPath(); - } - - public void installAndDeploy() - throws InstallationException, DeploymentException - { - Aether aether = new Aether( "http://localhost:8081/nexus/content/groups/public", "/Users/jvanzyl/aether-repo" ); - - Artifact artifact = new DefaultArtifact( "com.mycompany.super", "super-core", "jar", "0.1-SNAPSHOT" ); - artifact = artifact.setFile( new File( "jar-from-whatever-process.jar" ) ); - Artifact pom = new SubArtifact( artifact, null, "pom" ); - pom = pom.setFile( new File( "pom-from-whatever-process.xml" ) ); - - // Install into the local repository specified - // - aether.install( artifact, pom ); - - // Deploy to a remote reposistory - // - aether.deploy( artifact, pom, "http://localhost:8081/nexus/content/repositories/snapshots/" ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/AetherResult.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/AetherResult.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/AetherResult.java deleted file mode 100644 index ade17ed..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/aether/AetherResult.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.aether; - -import java.io.File; -import java.util.List; - -import org.eclipse.aether.graph.DependencyNode; - -public class AetherResult -{ - private DependencyNode root; - private List<File> resolvedFiles; - private String resolvedClassPath; - - public AetherResult( DependencyNode root, List<File> resolvedFiles, String resolvedClassPath ) - { - this.root = root; - this.resolvedFiles = resolvedFiles; - this.resolvedClassPath = resolvedClassPath; - } - - public DependencyNode getRoot() - { - return root; - } - - public List<File> getResolvedFiles() - { - return resolvedFiles; - } - - public String getResolvedClassPath() - { - return resolvedClassPath; - } -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/guice/DemoAetherModule.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/guice/DemoAetherModule.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/guice/DemoAetherModule.java deleted file mode 100644 index d05b28d..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/guice/DemoAetherModule.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.guice; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import javax.inject.Named; -import javax.inject.Singleton; - -import org.apache.maven.repository.internal.MavenAetherModule; -import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory; -import org.eclipse.aether.spi.connector.RepositoryConnectorFactory; -import org.eclipse.aether.spi.connector.transport.TransporterFactory; -import org.eclipse.aether.transport.file.FileTransporterFactory; -import org.eclipse.aether.transport.http.HttpTransporterFactory; - -import com.google.inject.AbstractModule; -import com.google.inject.Provides; -import com.google.inject.name.Names; - -class DemoAetherModule - extends AbstractModule -{ - - @Override - protected void configure() - { - install( new MavenAetherModule() ); - // alternatively, use the Guice Multibindings extensions - bind( RepositoryConnectorFactory.class ).annotatedWith( Names.named( "basic" ) ).to( BasicRepositoryConnectorFactory.class ); - bind( TransporterFactory.class ).annotatedWith( Names.named( "file" ) ).to( FileTransporterFactory.class ); - bind( TransporterFactory.class ).annotatedWith( Names.named( "http" ) ).to( HttpTransporterFactory.class ); - } - - @Provides - @Singleton - Set<RepositoryConnectorFactory> provideRepositoryConnectorFactories( @Named( "basic" ) RepositoryConnectorFactory basic ) - { - Set<RepositoryConnectorFactory> factories = new HashSet<RepositoryConnectorFactory>(); - factories.add( basic ); - return Collections.unmodifiableSet( factories ); - } - - @Provides - @Singleton - Set<TransporterFactory> provideTransporterFactories( @Named( "file" ) TransporterFactory file, - @Named( "http" ) TransporterFactory http ) - { - Set<TransporterFactory> factories = new HashSet<TransporterFactory>(); - factories.add( file ); - factories.add( http ); - return Collections.unmodifiableSet( factories ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/guice/GuiceRepositorySystemFactory.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/guice/GuiceRepositorySystemFactory.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/guice/GuiceRepositorySystemFactory.java deleted file mode 100644 index 37c8b95..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/guice/GuiceRepositorySystemFactory.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.guice; - -import org.eclipse.aether.RepositorySystem; - -import com.google.inject.Guice; - -/** - * A factory for repository system instances that employs JSR-330 via Guice to wire up the system's components. - */ -public class GuiceRepositorySystemFactory -{ - - public static RepositorySystem newRepositorySystem() - { - return Guice.createInjector( new DemoAetherModule() ).getInstance( RepositorySystem.class ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/manual/ManualRepositorySystemFactory.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/manual/ManualRepositorySystemFactory.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/manual/ManualRepositorySystemFactory.java deleted file mode 100644 index 643ee3c..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/manual/ManualRepositorySystemFactory.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.manual; - -import org.apache.maven.repository.internal.MavenRepositorySystemUtils; -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory; -import org.eclipse.aether.impl.DefaultServiceLocator; -import org.eclipse.aether.spi.connector.RepositoryConnectorFactory; -import org.eclipse.aether.spi.connector.transport.TransporterFactory; -import org.eclipse.aether.transport.file.FileTransporterFactory; -import org.eclipse.aether.transport.http.HttpTransporterFactory; - -/** - * A factory for repository system instances that employs Aether's built-in service locator infrastructure to wire up - * the system's components. - */ -public class ManualRepositorySystemFactory -{ - - public static RepositorySystem newRepositorySystem() - { - /* - * Aether's components implement org.eclipse.aether.spi.locator.Service to ease manual wiring and using the - * prepopulated DefaultServiceLocator, we only need to register the repository connector and transporter - * factories. - */ - DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator(); - locator.addService( RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class ); - locator.addService( TransporterFactory.class, FileTransporterFactory.class ); - locator.addService( TransporterFactory.class, HttpTransporterFactory.class ); - - locator.setErrorHandler( new DefaultServiceLocator.ErrorHandler() - { - @Override - public void serviceCreationFailed( Class<?> type, Class<?> impl, Throwable exception ) - { - exception.printStackTrace(); - } - } ); - - return locator.getService( RepositorySystem.class ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/plexus/PlexusRepositorySystemFactory.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/plexus/PlexusRepositorySystemFactory.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/plexus/PlexusRepositorySystemFactory.java deleted file mode 100644 index 5090160..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/plexus/PlexusRepositorySystemFactory.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2014 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.plexus; - -import org.codehaus.plexus.ContainerConfiguration; -import org.codehaus.plexus.DefaultContainerConfiguration; -import org.codehaus.plexus.DefaultPlexusContainer; -import org.codehaus.plexus.PlexusConstants; -import org.eclipse.aether.RepositorySystem; - -/** - * A factory for repository system instances that employs Plexus to wire up the system's components. - */ -public class PlexusRepositorySystemFactory -{ - - public static RepositorySystem newRepositorySystem() - { - /* - * Aether's components are equipped with plexus-specific metadata to enable discovery and wiring of components - * by a Plexus container so this is as easy as looking up the implementation. - */ - try - { - ContainerConfiguration config = new DefaultContainerConfiguration(); - config.setAutoWiring( true ); - config.setClassPathScanning( PlexusConstants.SCANNING_INDEX ); - return new DefaultPlexusContainer( config ).lookup( RepositorySystem.class ); - } - catch ( Exception e ) - { - throw new IllegalStateException( "dependency injection failed", e ); - } - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/sisu/SisuRepositorySystemFactory.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/sisu/SisuRepositorySystemFactory.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/sisu/SisuRepositorySystemFactory.java deleted file mode 100644 index cbd3add..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/sisu/SisuRepositorySystemFactory.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2014 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.sisu; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Provider; - -import org.apache.maven.model.building.DefaultModelBuilderFactory; -import org.apache.maven.model.building.ModelBuilder; -import org.eclipse.aether.RepositorySystem; -import org.eclipse.sisu.launch.Main; - -/** - * A factory for repository system instances that employs Eclipse Sisu to wire up the system's components. - */ -@Named -public class SisuRepositorySystemFactory -{ - - @Inject - private RepositorySystem repositorySystem; - - public static RepositorySystem newRepositorySystem() - { - return Main.boot( SisuRepositorySystemFactory.class ).repositorySystem; - } - - @Named - private static class ModelBuilderProvider - implements Provider<ModelBuilder> - { - - public ModelBuilder get() - { - return new DefaultModelBuilderFactory().newInstance(); - } - - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/Booter.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/Booter.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/Booter.java deleted file mode 100644 index e5e50b8..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/Booter.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2014 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.util; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.apache.maven.repository.internal.MavenRepositorySystemUtils; -import org.eclipse.aether.DefaultRepositorySystemSession; -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.repository.LocalRepository; -import org.eclipse.aether.repository.RemoteRepository; - -/** - * A helper to boot the repository system and a repository system session. - */ -public class Booter -{ - - public static RepositorySystem newRepositorySystem() - { - return org.eclipse.aether.examples.manual.ManualRepositorySystemFactory.newRepositorySystem(); - // return org.eclipse.aether.examples.guice.GuiceRepositorySystemFactory.newRepositorySystem(); - // return org.eclipse.aether.examples.sisu.SisuRepositorySystemFactory.newRepositorySystem(); - // return org.eclipse.aether.examples.plexus.PlexusRepositorySystemFactory.newRepositorySystem(); - } - - public static DefaultRepositorySystemSession newRepositorySystemSession( RepositorySystem system ) - { - DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); - - LocalRepository localRepo = new LocalRepository( "target/local-repo" ); - session.setLocalRepositoryManager( system.newLocalRepositoryManager( session, localRepo ) ); - - session.setTransferListener( new ConsoleTransferListener() ); - session.setRepositoryListener( new ConsoleRepositoryListener() ); - - // uncomment to generate dirty trees - // session.setDependencyGraphTransformer( null ); - - return session; - } - - public static List<RemoteRepository> newRepositories( RepositorySystem system, RepositorySystemSession session ) - { - return new ArrayList<RemoteRepository>( Arrays.asList( newCentralRepository() ) ); - } - - private static RemoteRepository newCentralRepository() - { - return new RemoteRepository.Builder( "central", "default", "http://central.maven.org/maven2/" ).build(); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleDependencyGraphDumper.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleDependencyGraphDumper.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleDependencyGraphDumper.java deleted file mode 100644 index b829990..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleDependencyGraphDumper.java +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.util; - -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.graph.Dependency; -import org.eclipse.aether.graph.DependencyNode; -import org.eclipse.aether.graph.DependencyVisitor; -import org.eclipse.aether.util.artifact.ArtifactIdUtils; -import org.eclipse.aether.util.graph.manager.DependencyManagerUtils; -import org.eclipse.aether.util.graph.transformer.ConflictResolver; - -/** - * A dependency visitor that dumps the graph to the console. - */ -public class ConsoleDependencyGraphDumper - implements DependencyVisitor -{ - - private PrintStream out; - - private List<ChildInfo> childInfos = new ArrayList<ChildInfo>(); - - public ConsoleDependencyGraphDumper() - { - this( null ); - } - - public ConsoleDependencyGraphDumper( PrintStream out ) - { - this.out = ( out != null ) ? out : System.out; - } - - public boolean visitEnter( DependencyNode node ) - { - out.println( formatIndentation() + formatNode( node ) ); - childInfos.add( new ChildInfo( node.getChildren().size() ) ); - return true; - } - - private String formatIndentation() - { - StringBuilder buffer = new StringBuilder( 128 ); - for ( Iterator<ChildInfo> it = childInfos.iterator(); it.hasNext(); ) - { - buffer.append( it.next().formatIndentation( !it.hasNext() ) ); - } - return buffer.toString(); - } - - private String formatNode( DependencyNode node ) - { - StringBuilder buffer = new StringBuilder( 128 ); - Artifact a = node.getArtifact(); - Dependency d = node.getDependency(); - buffer.append( a ); - if ( d != null && d.getScope().length() > 0 ) - { - buffer.append( " [" ).append( d.getScope() ); - if ( d.isOptional() ) - { - buffer.append( ", optional" ); - } - buffer.append( "]" ); - } - { - String premanaged = DependencyManagerUtils.getPremanagedVersion( node ); - if ( premanaged != null && !premanaged.equals( a.getBaseVersion() ) ) - { - buffer.append( " (version managed from " ).append( premanaged ).append( ")" ); - } - } - { - String premanaged = DependencyManagerUtils.getPremanagedScope( node ); - if ( premanaged != null && !premanaged.equals( d.getScope() ) ) - { - buffer.append( " (scope managed from " ).append( premanaged ).append( ")" ); - } - } - DependencyNode winner = (DependencyNode) node.getData().get( ConflictResolver.NODE_DATA_WINNER ); - if ( winner != null && !ArtifactIdUtils.equalsId( a, winner.getArtifact() ) ) - { - Artifact w = winner.getArtifact(); - buffer.append( " (conflicts with " ); - if ( ArtifactIdUtils.toVersionlessId( a ).equals( ArtifactIdUtils.toVersionlessId( w ) ) ) - { - buffer.append( w.getVersion() ); - } - else - { - buffer.append( w ); - } - buffer.append( ")" ); - } - return buffer.toString(); - } - - public boolean visitLeave( DependencyNode node ) - { - if ( !childInfos.isEmpty() ) - { - childInfos.remove( childInfos.size() - 1 ); - } - if ( !childInfos.isEmpty() ) - { - childInfos.get( childInfos.size() - 1 ).index++; - } - return true; - } - - private static class ChildInfo - { - - final int count; - - int index; - - public ChildInfo( int count ) - { - this.count = count; - } - - public String formatIndentation( boolean end ) - { - boolean last = index + 1 >= count; - if ( end ) - { - return last ? "\\- " : "+- "; - } - return last ? " " : "| "; - } - - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleRepositoryListener.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleRepositoryListener.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleRepositoryListener.java deleted file mode 100644 index b79091e..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleRepositoryListener.java +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2011 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.util; - -import java.io.PrintStream; - -import org.eclipse.aether.AbstractRepositoryListener; -import org.eclipse.aether.RepositoryEvent; - -/** - * A simplistic repository listener that logs events to the console. - */ -public class ConsoleRepositoryListener - extends AbstractRepositoryListener -{ - - private PrintStream out; - - public ConsoleRepositoryListener() - { - this( null ); - } - - public ConsoleRepositoryListener( PrintStream out ) - { - this.out = ( out != null ) ? out : System.out; - } - - public void artifactDeployed( RepositoryEvent event ) - { - out.println( "Deployed " + event.getArtifact() + " to " + event.getRepository() ); - } - - public void artifactDeploying( RepositoryEvent event ) - { - out.println( "Deploying " + event.getArtifact() + " to " + event.getRepository() ); - } - - public void artifactDescriptorInvalid( RepositoryEvent event ) - { - out.println( "Invalid artifact descriptor for " + event.getArtifact() + ": " - + event.getException().getMessage() ); - } - - public void artifactDescriptorMissing( RepositoryEvent event ) - { - out.println( "Missing artifact descriptor for " + event.getArtifact() ); - } - - public void artifactInstalled( RepositoryEvent event ) - { - out.println( "Installed " + event.getArtifact() + " to " + event.getFile() ); - } - - public void artifactInstalling( RepositoryEvent event ) - { - out.println( "Installing " + event.getArtifact() + " to " + event.getFile() ); - } - - public void artifactResolved( RepositoryEvent event ) - { - out.println( "Resolved artifact " + event.getArtifact() + " from " + event.getRepository() ); - } - - public void artifactDownloading( RepositoryEvent event ) - { - out.println( "Downloading artifact " + event.getArtifact() + " from " + event.getRepository() ); - } - - public void artifactDownloaded( RepositoryEvent event ) - { - out.println( "Downloaded artifact " + event.getArtifact() + " from " + event.getRepository() ); - } - - public void artifactResolving( RepositoryEvent event ) - { - out.println( "Resolving artifact " + event.getArtifact() ); - } - - public void metadataDeployed( RepositoryEvent event ) - { - out.println( "Deployed " + event.getMetadata() + " to " + event.getRepository() ); - } - - public void metadataDeploying( RepositoryEvent event ) - { - out.println( "Deploying " + event.getMetadata() + " to " + event.getRepository() ); - } - - public void metadataInstalled( RepositoryEvent event ) - { - out.println( "Installed " + event.getMetadata() + " to " + event.getFile() ); - } - - public void metadataInstalling( RepositoryEvent event ) - { - out.println( "Installing " + event.getMetadata() + " to " + event.getFile() ); - } - - public void metadataInvalid( RepositoryEvent event ) - { - out.println( "Invalid metadata " + event.getMetadata() ); - } - - public void metadataResolved( RepositoryEvent event ) - { - out.println( "Resolved metadata " + event.getMetadata() + " from " + event.getRepository() ); - } - - public void metadataResolving( RepositoryEvent event ) - { - out.println( "Resolving metadata " + event.getMetadata() + " from " + event.getRepository() ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6283e29e/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleTransferListener.java ---------------------------------------------------------------------- diff --git a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleTransferListener.java b/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleTransferListener.java deleted file mode 100644 index b89329c..0000000 --- a/aether-demo-snippets/src/main/java/org/eclipse/aether/examples/util/ConsoleTransferListener.java +++ /dev/null @@ -1,169 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sonatype, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.aether.examples.util; - -import java.io.PrintStream; -import java.text.DecimalFormat; -import java.text.DecimalFormatSymbols; -import java.util.Locale; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.eclipse.aether.transfer.AbstractTransferListener; -import org.eclipse.aether.transfer.MetadataNotFoundException; -import org.eclipse.aether.transfer.TransferEvent; -import org.eclipse.aether.transfer.TransferResource; - -/** - * A simplistic transfer listener that logs uploads/downloads to the console. - */ -public class ConsoleTransferListener - extends AbstractTransferListener -{ - - private PrintStream out; - - private Map<TransferResource, Long> downloads = new ConcurrentHashMap<TransferResource, Long>(); - - private int lastLength; - - public ConsoleTransferListener() - { - this( null ); - } - - public ConsoleTransferListener( PrintStream out ) - { - this.out = ( out != null ) ? out : System.out; - } - - @Override - public void transferInitiated( TransferEvent event ) - { - String message = event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploading" : "Downloading"; - - out.println( message + ": " + event.getResource().getRepositoryUrl() + event.getResource().getResourceName() ); - } - - @Override - public void transferProgressed( TransferEvent event ) - { - TransferResource resource = event.getResource(); - downloads.put( resource, Long.valueOf( event.getTransferredBytes() ) ); - - StringBuilder buffer = new StringBuilder( 64 ); - - for ( Map.Entry<TransferResource, Long> entry : downloads.entrySet() ) - { - long total = entry.getKey().getContentLength(); - long complete = entry.getValue().longValue(); - - buffer.append( getStatus( complete, total ) ).append( " " ); - } - - int pad = lastLength - buffer.length(); - lastLength = buffer.length(); - pad( buffer, pad ); - buffer.append( '\r' ); - - out.print( buffer ); - } - - private String getStatus( long complete, long total ) - { - if ( total >= 1024 ) - { - return toKB( complete ) + "/" + toKB( total ) + " KB "; - } - else if ( total >= 0 ) - { - return complete + "/" + total + " B "; - } - else if ( complete >= 1024 ) - { - return toKB( complete ) + " KB "; - } - else - { - return complete + " B "; - } - } - - private void pad( StringBuilder buffer, int spaces ) - { - String block = " "; - while ( spaces > 0 ) - { - int n = Math.min( spaces, block.length() ); - buffer.append( block, 0, n ); - spaces -= n; - } - } - - @Override - public void transferSucceeded( TransferEvent event ) - { - transferCompleted( event ); - - TransferResource resource = event.getResource(); - long contentLength = event.getTransferredBytes(); - if ( contentLength >= 0 ) - { - String type = ( event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploaded" : "Downloaded" ); - String len = contentLength >= 1024 ? toKB( contentLength ) + " KB" : contentLength + " B"; - - String throughput = ""; - long duration = System.currentTimeMillis() - resource.getTransferStartTime(); - if ( duration > 0 ) - { - long bytes = contentLength - resource.getResumeOffset(); - DecimalFormat format = new DecimalFormat( "0.0", new DecimalFormatSymbols( Locale.ENGLISH ) ); - double kbPerSec = ( bytes / 1024.0 ) / ( duration / 1000.0 ); - throughput = " at " + format.format( kbPerSec ) + " KB/sec"; - } - - out.println( type + ": " + resource.getRepositoryUrl() + resource.getResourceName() + " (" + len - + throughput + ")" ); - } - } - - @Override - public void transferFailed( TransferEvent event ) - { - transferCompleted( event ); - - if ( !( event.getException() instanceof MetadataNotFoundException ) ) - { - event.getException().printStackTrace( out ); - } - } - - private void transferCompleted( TransferEvent event ) - { - downloads.remove( event.getResource() ); - - StringBuilder buffer = new StringBuilder( 64 ); - pad( buffer, lastLength ); - buffer.append( '\r' ); - out.print( buffer ); - } - - public void transferCorrupted( TransferEvent event ) - { - event.getException().printStackTrace( out ); - } - - protected long toKB( long bytes ) - { - return ( bytes + 1023 ) / 1024; - } - -}