http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java b/aether-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java deleted file mode 100644 index 31259ca..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java +++ /dev/null @@ -1,582 +0,0 @@ -package org.eclipse.aether.repository; - -/* - * 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.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * A repository on a remote server. - */ -public final class RemoteRepository - implements ArtifactRepository -{ - - private static final Pattern URL_PATTERN = - Pattern.compile( "([^:/]+(:[^:/]{2,}+(?=://))?):(//([^@/]*@)?([^/:]+))?.*" ); - - private final String id; - - private final String type; - - private final String url; - - private final String host; - - private final String protocol; - - private final RepositoryPolicy releasePolicy; - - private final RepositoryPolicy snapshotPolicy; - - private final Proxy proxy; - - private final Authentication authentication; - - private final List<RemoteRepository> mirroredRepositories; - - private final boolean repositoryManager; - - RemoteRepository( Builder builder ) - { - if ( builder.prototype != null ) - { - id = ( builder.delta & Builder.ID ) != 0 ? builder.id : builder.prototype.id; - type = ( builder.delta & Builder.TYPE ) != 0 ? builder.type : builder.prototype.type; - url = ( builder.delta & Builder.URL ) != 0 ? builder.url : builder.prototype.url; - releasePolicy = - ( builder.delta & Builder.RELEASES ) != 0 ? builder.releasePolicy : builder.prototype.releasePolicy; - snapshotPolicy = - ( builder.delta & Builder.SNAPSHOTS ) != 0 ? builder.snapshotPolicy : builder.prototype.snapshotPolicy; - proxy = ( builder.delta & Builder.PROXY ) != 0 ? builder.proxy : builder.prototype.proxy; - authentication = - ( builder.delta & Builder.AUTH ) != 0 ? builder.authentication : builder.prototype.authentication; - repositoryManager = - ( builder.delta & Builder.REPOMAN ) != 0 ? builder.repositoryManager - : builder.prototype.repositoryManager; - mirroredRepositories = - ( builder.delta & Builder.MIRRORED ) != 0 ? copy( builder.mirroredRepositories ) - : builder.prototype.mirroredRepositories; - } - else - { - id = builder.id; - type = builder.type; - url = builder.url; - releasePolicy = builder.releasePolicy; - snapshotPolicy = builder.snapshotPolicy; - proxy = builder.proxy; - authentication = builder.authentication; - repositoryManager = builder.repositoryManager; - mirroredRepositories = copy( builder.mirroredRepositories ); - } - - Matcher m = URL_PATTERN.matcher( url ); - if ( m.matches() ) - { - protocol = m.group( 1 ); - String host = m.group( 5 ); - this.host = ( host != null ) ? host : ""; - } - else - { - protocol = host = ""; - } - } - - private static List<RemoteRepository> copy( List<RemoteRepository> repos ) - { - if ( repos == null || repos.isEmpty() ) - { - return Collections.emptyList(); - } - return Collections.unmodifiableList( Arrays.asList( repos.toArray( new RemoteRepository[repos.size()] ) ) ); - } - - public String getId() - { - return id; - } - - public String getContentType() - { - return type; - } - - /** - * Gets the (base) URL of this repository. - * - * @return The (base) URL of this repository, never {@code null}. - */ - public String getUrl() - { - return url; - } - - /** - * Gets the protocol part from the repository's URL, for example {@code file} or {@code http}. As suggested by RFC - * 2396, section 3.1 "Scheme Component", the protocol name should be treated case-insensitively. - * - * @return The protocol or an empty string if none, never {@code null}. - */ - public String getProtocol() - { - return protocol; - } - - /** - * Gets the host part from the repository's URL. - * - * @return The host or an empty string if none, never {@code null}. - */ - public String getHost() - { - return host; - } - - /** - * Gets the policy to apply for snapshot/release artifacts. - * - * @param snapshot {@code true} to retrieve the snapshot policy, {@code false} to retrieve the release policy. - * @return The requested repository policy, never {@code null}. - */ - public RepositoryPolicy getPolicy( boolean snapshot ) - { - return snapshot ? snapshotPolicy : releasePolicy; - } - - /** - * Gets the proxy that has been selected for this repository. - * - * @return The selected proxy or {@code null} if none. - */ - public Proxy getProxy() - { - return proxy; - } - - /** - * Gets the authentication that has been selected for this repository. - * - * @return The selected authentication or {@code null} if none. - */ - public Authentication getAuthentication() - { - return authentication; - } - - /** - * Gets the repositories that this repository serves as a mirror for. - * - * @return The (read-only) repositories being mirrored by this repository, never {@code null}. - */ - public List<RemoteRepository> getMirroredRepositories() - { - return mirroredRepositories; - } - - /** - * Indicates whether this repository refers to a repository manager or not. - * - * @return {@code true} if this repository is a repository manager, {@code false} otherwise. - */ - public boolean isRepositoryManager() - { - return repositoryManager; - } - - @Override - public String toString() - { - StringBuilder buffer = new StringBuilder( 256 ); - buffer.append( getId() ); - buffer.append( " (" ).append( getUrl() ); - buffer.append( ", " ).append( getContentType() ); - boolean r = getPolicy( false ).isEnabled(), s = getPolicy( true ).isEnabled(); - if ( r && s ) - { - buffer.append( ", releases+snapshots" ); - } - else if ( r ) - { - buffer.append( ", releases" ); - } - else if ( s ) - { - buffer.append( ", snapshots" ); - } - else - { - buffer.append( ", disabled" ); - } - if ( isRepositoryManager() ) - { - buffer.append( ", managed" ); - } - buffer.append( ")" ); - return buffer.toString(); - } - - @Override - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - if ( obj == null || !getClass().equals( obj.getClass() ) ) - { - return false; - } - - RemoteRepository that = (RemoteRepository) obj; - - return eq( url, that.url ) && eq( type, that.type ) && eq( id, that.id ) - && eq( releasePolicy, that.releasePolicy ) && eq( snapshotPolicy, that.snapshotPolicy ) - && eq( proxy, that.proxy ) && eq( authentication, that.authentication ) - && eq( mirroredRepositories, that.mirroredRepositories ) && repositoryManager == that.repositoryManager; - } - - private static <T> boolean eq( T s1, T s2 ) - { - return s1 != null ? s1.equals( s2 ) : s2 == null; - } - - @Override - public int hashCode() - { - int hash = 17; - hash = hash * 31 + hash( url ); - hash = hash * 31 + hash( type ); - hash = hash * 31 + hash( id ); - hash = hash * 31 + hash( releasePolicy ); - hash = hash * 31 + hash( snapshotPolicy ); - hash = hash * 31 + hash( proxy ); - hash = hash * 31 + hash( authentication ); - hash = hash * 31 + hash( mirroredRepositories ); - hash = hash * 31 + ( repositoryManager ? 1 : 0 ); - return hash; - } - - private static int hash( Object obj ) - { - return obj != null ? obj.hashCode() : 0; - } - - /** - * A builder to create remote repositories. - */ - public static final class Builder - { - - private static final RepositoryPolicy DEFAULT_POLICY = new RepositoryPolicy(); - - static final int ID = 0x0001, TYPE = 0x0002, URL = 0x0004, RELEASES = 0x0008, SNAPSHOTS = 0x0010, - PROXY = 0x0020, AUTH = 0x0040, MIRRORED = 0x0080, REPOMAN = 0x0100; - - int delta; - - RemoteRepository prototype; - - String id; - - String type; - - String url; - - RepositoryPolicy releasePolicy = DEFAULT_POLICY; - - RepositoryPolicy snapshotPolicy = DEFAULT_POLICY; - - Proxy proxy; - - Authentication authentication; - - List<RemoteRepository> mirroredRepositories; - - boolean repositoryManager; - - /** - * Creates a new repository builder. - * - * @param id The identifier of the repository, may be {@code null}. - * @param type The type of the repository, may be {@code null}. - * @param url The (base) URL of the repository, may be {@code null}. - */ - public Builder( String id, String type, String url ) - { - this.id = ( id != null ) ? id : ""; - this.type = ( type != null ) ? type : ""; - this.url = ( url != null ) ? url : ""; - } - - /** - * Creates a new repository builder which uses the specified remote repository as a prototype for the new one. - * All properties which have not been set on the builder will be copied from the prototype when building the - * repository. - * - * @param prototype The remote repository to use as prototype, must not be {@code null}. - */ - public Builder( RemoteRepository prototype ) - { - if ( prototype == null ) - { - throw new IllegalArgumentException( "repository prototype missing" ); - } - this.prototype = prototype; - } - - /** - * Builds a new remote repository from the current values of this builder. The state of the builder itself - * remains unchanged. - * - * @return The remote repository, never {@code null}. - */ - public RemoteRepository build() - { - if ( prototype != null && delta == 0 ) - { - return prototype; - } - return new RemoteRepository( this ); - } - - private <T> void delta( int flag, T builder, T prototype ) - { - boolean equal = ( builder != null ) ? builder.equals( prototype ) : prototype == null; - if ( equal ) - { - delta &= ~flag; - } - else - { - delta |= flag; - } - } - - /** - * Sets the identifier of the repository. - * - * @param id The identifier of the repository, may be {@code null}. - * @return This builder for chaining, never {@code null}. - */ - public Builder setId( String id ) - { - this.id = ( id != null ) ? id : ""; - if ( prototype != null ) - { - delta( ID, this.id, prototype.getId() ); - } - return this; - } - - /** - * Sets the type of the repository, e.g. "default". - * - * @param type The type of the repository, may be {@code null}. - * @return This builder for chaining, never {@code null}. - */ - public Builder setContentType( String type ) - { - this.type = ( type != null ) ? type : ""; - if ( prototype != null ) - { - delta( TYPE, this.type, prototype.getContentType() ); - } - return this; - } - - /** - * Sets the (base) URL of the repository. - * - * @param url The URL of the repository, may be {@code null}. - * @return This builder for chaining, never {@code null}. - */ - public Builder setUrl( String url ) - { - this.url = ( url != null ) ? url : ""; - if ( prototype != null ) - { - delta( URL, this.url, prototype.getUrl() ); - } - return this; - } - - /** - * Sets the policy to apply for snapshot and release artifacts. - * - * @param policy The repository policy to set, may be {@code null} to use a default policy. - * @return This builder for chaining, never {@code null}. - */ - public Builder setPolicy( RepositoryPolicy policy ) - { - this.releasePolicy = this.snapshotPolicy = ( policy != null ) ? policy : DEFAULT_POLICY; - if ( prototype != null ) - { - delta( RELEASES, this.releasePolicy, prototype.getPolicy( false ) ); - delta( SNAPSHOTS, this.snapshotPolicy, prototype.getPolicy( true ) ); - } - return this; - } - - /** - * Sets the policy to apply for release artifacts. - * - * @param releasePolicy The repository policy to set, may be {@code null} to use a default policy. - * @return This builder for chaining, never {@code null}. - */ - public Builder setReleasePolicy( RepositoryPolicy releasePolicy ) - { - this.releasePolicy = ( releasePolicy != null ) ? releasePolicy : DEFAULT_POLICY; - if ( prototype != null ) - { - delta( RELEASES, this.releasePolicy, prototype.getPolicy( false ) ); - } - return this; - } - - /** - * Sets the policy to apply for snapshot artifacts. - * - * @param snapshotPolicy The repository policy to set, may be {@code null} to use a default policy. - * @return This builder for chaining, never {@code null}. - */ - public Builder setSnapshotPolicy( RepositoryPolicy snapshotPolicy ) - { - this.snapshotPolicy = ( snapshotPolicy != null ) ? snapshotPolicy : DEFAULT_POLICY; - if ( prototype != null ) - { - delta( SNAPSHOTS, this.snapshotPolicy, prototype.getPolicy( true ) ); - } - return this; - } - - /** - * Sets the proxy to use in order to access the repository. - * - * @param proxy The proxy to use, may be {@code null}. - * @return This builder for chaining, never {@code null}. - */ - public Builder setProxy( Proxy proxy ) - { - this.proxy = proxy; - if ( prototype != null ) - { - delta( PROXY, this.proxy, prototype.getProxy() ); - } - return this; - } - - /** - * Sets the authentication to use in order to access the repository. - * - * @param authentication The authentication to use, may be {@code null}. - * @return This builder for chaining, never {@code null}. - */ - public Builder setAuthentication( Authentication authentication ) - { - this.authentication = authentication; - if ( prototype != null ) - { - delta( AUTH, this.authentication, prototype.getAuthentication() ); - } - return this; - } - - /** - * Sets the repositories being mirrored by the repository. - * - * @param mirroredRepositories The repositories being mirrored by the repository, may be {@code null}. - * @return This builder for chaining, never {@code null}. - */ - public Builder setMirroredRepositories( List<RemoteRepository> mirroredRepositories ) - { - if ( this.mirroredRepositories == null ) - { - this.mirroredRepositories = new ArrayList<RemoteRepository>(); - } - else - { - this.mirroredRepositories.clear(); - } - if ( mirroredRepositories != null ) - { - this.mirroredRepositories.addAll( mirroredRepositories ); - } - if ( prototype != null ) - { - delta( MIRRORED, this.mirroredRepositories, prototype.getMirroredRepositories() ); - } - return this; - } - - /** - * Adds the specified repository to the list of repositories being mirrored by the repository. If this builder - * was {@link #RemoteRepository.Builder(RemoteRepository) constructed from a prototype}, the given repository - * will be added to the list of mirrored repositories from the prototype. - * - * @param mirroredRepository The repository being mirrored by the repository, may be {@code null}. - * @return This builder for chaining, never {@code null}. - */ - public Builder addMirroredRepository( RemoteRepository mirroredRepository ) - { - if ( mirroredRepository != null ) - { - if ( this.mirroredRepositories == null ) - { - this.mirroredRepositories = new ArrayList<RemoteRepository>(); - if ( prototype != null ) - { - mirroredRepositories.addAll( prototype.getMirroredRepositories() ); - } - } - mirroredRepositories.add( mirroredRepository ); - if ( prototype != null ) - { - delta |= MIRRORED; - } - } - return this; - } - - /** - * Marks the repository as a repository manager or not. - * - * @param repositoryManager {@code true} if the repository points at a repository manager, {@code false} if the - * repository is just serving static contents. - * @return This builder for chaining, never {@code null}. - */ - public Builder setRepositoryManager( boolean repositoryManager ) - { - this.repositoryManager = repositoryManager; - if ( prototype != null ) - { - delta( REPOMAN, this.repositoryManager, prototype.isRepositoryManager() ); - } - return this; - } - - } - -}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/RepositoryPolicy.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/repository/RepositoryPolicy.java b/aether-api/src/main/java/org/eclipse/aether/repository/RepositoryPolicy.java deleted file mode 100644 index 18fb850..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/repository/RepositoryPolicy.java +++ /dev/null @@ -1,161 +0,0 @@ -package org.eclipse.aether.repository; - -/* - * 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. - */ - -/** - * A policy controlling access to a repository. - */ -public final class RepositoryPolicy -{ - - /** - * Never update locally cached data. - */ - public static final String UPDATE_POLICY_NEVER = "never"; - - /** - * Always update locally cached data. - */ - public static final String UPDATE_POLICY_ALWAYS = "always"; - - /** - * Update locally cached data once a day. - */ - public static final String UPDATE_POLICY_DAILY = "daily"; - - /** - * Update locally cached data every X minutes as given by "interval:X". - */ - public static final String UPDATE_POLICY_INTERVAL = "interval"; - - /** - * Verify checksums and fail the resolution if they do not match. - */ - public static final String CHECKSUM_POLICY_FAIL = "fail"; - - /** - * Verify checksums and warn if they do not match. - */ - public static final String CHECKSUM_POLICY_WARN = "warn"; - - /** - * Do not verify checksums. - */ - public static final String CHECKSUM_POLICY_IGNORE = "ignore"; - - private final boolean enabled; - - private final String updatePolicy; - - private final String checksumPolicy; - - /** - * Creates a new policy with checksum warnings and daily update checks. - */ - public RepositoryPolicy() - { - this( true, UPDATE_POLICY_DAILY, CHECKSUM_POLICY_WARN ); - } - - /** - * Creates a new policy with the specified settings. - * - * @param enabled A flag whether the associated repository should be accessed or not. - * @param updatePolicy The update interval after which locally cached data from the repository is considered stale - * and should be refetched, may be {@code null}. - * @param checksumPolicy The way checksum verification should be handled, may be {@code null}. - */ - public RepositoryPolicy( boolean enabled, String updatePolicy, String checksumPolicy ) - { - this.enabled = enabled; - this.updatePolicy = ( updatePolicy != null ) ? updatePolicy : ""; - this.checksumPolicy = ( checksumPolicy != null ) ? checksumPolicy : ""; - } - - /** - * Indicates whether the associated repository should be contacted or not. - * - * @return {@code true} if the repository should be contacted, {@code false} otherwise. - */ - public boolean isEnabled() - { - return enabled; - } - - /** - * Gets the update policy for locally cached data from the repository. - * - * @return The update policy, never {@code null}. - */ - public String getUpdatePolicy() - { - return updatePolicy; - } - - /** - * Gets the policy for checksum validation. - * - * @return The checksum policy, never {@code null}. - */ - public String getChecksumPolicy() - { - return checksumPolicy; - } - - @Override - public String toString() - { - StringBuilder buffer = new StringBuilder( 256 ); - buffer.append( "enabled=" ).append( isEnabled() ); - buffer.append( ", checksums=" ).append( getChecksumPolicy() ); - buffer.append( ", updates=" ).append( getUpdatePolicy() ); - return buffer.toString(); - } - - @Override - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - - if ( obj == null || !getClass().equals( obj.getClass() ) ) - { - return false; - } - - RepositoryPolicy that = (RepositoryPolicy) obj; - - return enabled == that.enabled && updatePolicy.equals( that.updatePolicy ) - && checksumPolicy.equals( that.checksumPolicy ); - } - - @Override - public int hashCode() - { - int hash = 17; - hash = hash * 31 + ( enabled ? 1 : 0 ); - hash = hash * 31 + updatePolicy.hashCode(); - hash = hash * 31 + checksumPolicy.hashCode(); - return hash; - } - -} http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java b/aether-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java deleted file mode 100644 index d1140f3..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.eclipse.aether.repository; - -/* - * 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.File; -import java.util.List; - -import org.eclipse.aether.artifact.Artifact; - -/** - * Manages a repository backed by the IDE workspace, a build session or a similar ad-hoc collection of artifacts. - * - * @see org.eclipse.aether.RepositorySystemSession#getWorkspaceReader() - */ -public interface WorkspaceReader -{ - - /** - * Gets a description of the workspace repository. - * - * @return The repository description, never {@code null}. - */ - WorkspaceRepository getRepository(); - - /** - * Locates the specified artifact. - * - * @param artifact The artifact to locate, must not be {@code null}. - * @return The path to the artifact or {@code null} if the artifact is not available. - */ - File findArtifact( Artifact artifact ); - - /** - * Determines all available versions of the specified artifact. - * - * @param artifact The artifact whose versions should be listed, must not be {@code null}. - * @return The available versions of the artifact, must not be {@code null}. - */ - List<String> findVersions( Artifact artifact ); - -} http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/WorkspaceRepository.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/repository/WorkspaceRepository.java b/aether-api/src/main/java/org/eclipse/aether/repository/WorkspaceRepository.java deleted file mode 100644 index 38dc5c5..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/repository/WorkspaceRepository.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.eclipse.aether.repository; - -/* - * 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.util.UUID; - -/** - * A repository backed by an IDE workspace, the output of a build session or similar ad-hoc collection of artifacts. As - * far as the repository system is concerned, a workspace repository is read-only, i.e. can only be used for artifact - * resolution but not installation/deployment. Note that this class merely describes such a repository, actual access to - * the contained artifacts is handled by a {@link WorkspaceReader}. - */ -public final class WorkspaceRepository - implements ArtifactRepository -{ - - private final String type; - - private final Object key; - - /** - * Creates a new workspace repository of type {@code "workspace"} and a random key. - */ - public WorkspaceRepository() - { - this( "workspace" ); - } - - /** - * Creates a new workspace repository with the specified type and a random key. - * - * @param type The type of the repository, may be {@code null}. - */ - public WorkspaceRepository( String type ) - { - this( type, null ); - } - - /** - * Creates a new workspace repository with the specified type and key. The key is used to distinguish one workspace - * from another and should be sensitive to the artifacts that are (potentially) available in the workspace. - * - * @param type The type of the repository, may be {@code null}. - * @param key The (comparison) key for the repository, may be {@code null} to generate a unique random key. - */ - public WorkspaceRepository( String type, Object key ) - { - this.type = ( type != null ) ? type : ""; - this.key = ( key != null ) ? key : UUID.randomUUID().toString().replace( "-", "" ); - } - - public String getContentType() - { - return type; - } - - public String getId() - { - return "workspace"; - } - - /** - * Gets the key of this workspace repository. The key is used to distinguish one workspace from another and should - * be sensitive to the artifacts that are (potentially) available in the workspace. - * - * @return The (comparison) key for this workspace repository, never {@code null}. - */ - public Object getKey() - { - return key; - } - - @Override - public String toString() - { - return "(" + getContentType() + ")"; - } - - @Override - public boolean equals( Object obj ) - { - if ( this == obj ) - { - return true; - } - if ( obj == null || !getClass().equals( obj.getClass() ) ) - { - return false; - } - - WorkspaceRepository that = (WorkspaceRepository) obj; - - return getContentType().equals( that.getContentType() ) && getKey().equals( that.getKey() ); - } - - @Override - public int hashCode() - { - int hash = 17; - hash = hash * 31 + getKey().hashCode(); - hash = hash * 31 + getContentType().hashCode(); - return hash; - } - -} http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/repository/package-info.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/repository/package-info.java b/aether-api/src/main/java/org/eclipse/aether/repository/package-info.java deleted file mode 100644 index 538e7f1..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/repository/package-info.java +++ /dev/null @@ -1,24 +0,0 @@ -// CHECKSTYLE_OFF: RegexpHeader -/* - * 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. - */ -/** - * The definition of various kinds of repositories that host artifacts. - */ -package org.eclipse.aether.repository; - http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorException.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorException.java b/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorException.java deleted file mode 100644 index d645a82..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorException.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.eclipse.aether.resolution; - -/* - * 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 org.eclipse.aether.RepositoryException; - -/** - * Thrown in case of an unreadable or unresolvable artifact descriptor. - */ -public class ArtifactDescriptorException - extends RepositoryException -{ - - private final transient ArtifactDescriptorResult result; - - /** - * Creates a new exception with the specified result. - * - * @param result The descriptor result at the point the exception occurred, may be {@code null}. - */ - public ArtifactDescriptorException( ArtifactDescriptorResult result ) - { - super( "Failed to read artifact descriptor" - + ( result != null ? " for " + result.getRequest().getArtifact() : "" ), getCause( result ) ); - this.result = result; - } - - /** - * Creates a new exception with the specified result and detail message. - * - * @param result The descriptor result at the point the exception occurred, may be {@code null}. - * @param message The detail message, may be {@code null}. - */ - public ArtifactDescriptorException( ArtifactDescriptorResult result, String message ) - { - super( message, getCause( result ) ); - this.result = result; - } - - /** - * Creates a new exception with the specified result, detail message and cause. - * - * @param result The descriptor result at the point the exception occurred, may be {@code null}. - * @param message The detail message, may be {@code null}. - * @param cause The exception that caused this one, may be {@code null}. - */ - public ArtifactDescriptorException( ArtifactDescriptorResult result, String message, Throwable cause ) - { - super( message, cause ); - this.result = result; - } - - /** - * Gets the descriptor result at the point the exception occurred. Despite being incomplete, callers might want to - * use this result to fail gracefully and continue their operation with whatever interim data has been gathered. - * - * @return The descriptor result or {@code null} if unknown. - */ - public ArtifactDescriptorResult getResult() - { - return result; - } - - private static Throwable getCause( ArtifactDescriptorResult result ) - { - Throwable cause = null; - if ( result != null && !result.getExceptions().isEmpty() ) - { - cause = result.getExceptions().get( 0 ); - } - return cause; - } - -} http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicy.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicy.java b/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicy.java deleted file mode 100644 index c4de9b2..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicy.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.eclipse.aether.resolution; - -/* - * 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 org.eclipse.aether.RepositorySystemSession; - -/** - * Controls the handling of errors related to reading an artifact descriptor. - * - * @see RepositorySystemSession#getArtifactDescriptorPolicy() - */ -public interface ArtifactDescriptorPolicy -{ - - /** - * Bit mask indicating that errors while reading the artifact descriptor should not be tolerated. - */ - int STRICT = 0x00; - - /** - * Bit flag indicating that missing artifact descriptors should be silently ignored. - */ - int IGNORE_MISSING = 0x01; - - /** - * Bit flag indicating that existent but invalid artifact descriptors should be silently ignored. - */ - int IGNORE_INVALID = 0x02; - - /** - * Bit mask indicating that all errors should be silently ignored. - */ - int IGNORE_ERRORS = IGNORE_MISSING | IGNORE_INVALID; - - /** - * Gets the error policy for an artifact's descriptor. - * - * @param session The repository session during which the policy is determined, must not be {@code null}. - * @param request The policy request holding further details, must not be {@code null}. - * @return The bit mask describing the desired error policy. - */ - int getPolicy( RepositorySystemSession session, ArtifactDescriptorPolicyRequest request ); - -} http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicyRequest.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicyRequest.java b/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicyRequest.java deleted file mode 100644 index ffaac16..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicyRequest.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.eclipse.aether.resolution; - -/* - * 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 org.eclipse.aether.artifact.Artifact; - -/** - * A query for the error policy for a given artifact's descriptor. - * - * @see ArtifactDescriptorPolicy - */ -public final class ArtifactDescriptorPolicyRequest -{ - - private Artifact artifact; - - private String context = ""; - - /** - * Creates an uninitialized request. - */ - public ArtifactDescriptorPolicyRequest() - { - // enables default constructor - } - - /** - * Creates a request for the specified artifact. - * - * @param artifact The artifact for whose descriptor to determine the error policy, may be {@code null}. - * @param context The context in which this request is made, may be {@code null}. - */ - public ArtifactDescriptorPolicyRequest( Artifact artifact, String context ) - { - setArtifact( artifact ); - setRequestContext( context ); - } - - /** - * Gets the artifact for whose descriptor to determine the error policy. - * - * @return The artifact for whose descriptor to determine the error policy or {@code null} if not set. - */ - public Artifact getArtifact() - { - return artifact; - } - - /** - * Sets the artifact for whose descriptor to determine the error policy. - * - * @param artifact The artifact for whose descriptor to determine the error policy, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactDescriptorPolicyRequest setArtifact( Artifact artifact ) - { - this.artifact = artifact; - return this; - } - - /** - * Gets the context in which this request is made. - * - * @return The context, never {@code null}. - */ - public String getRequestContext() - { - return context; - } - - /** - * Sets the context in which this request is made. - * - * @param context The context, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactDescriptorPolicyRequest setRequestContext( String context ) - { - this.context = ( context != null ) ? context : ""; - return this; - } - - @Override - public String toString() - { - return String.valueOf( getArtifact() ); - } - -} http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java b/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java deleted file mode 100644 index 387b1dc..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java +++ /dev/null @@ -1,190 +0,0 @@ -package org.eclipse.aether.resolution; - -/* - * 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.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.RequestTrace; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.repository.RemoteRepository; - -/** - * A request to read an artifact descriptor. - * - * @see RepositorySystem#readArtifactDescriptor(RepositorySystemSession, ArtifactDescriptorRequest) - */ -public final class ArtifactDescriptorRequest -{ - - private Artifact artifact; - - private List<RemoteRepository> repositories = Collections.emptyList(); - - private String context = ""; - - private RequestTrace trace; - - /** - * Creates an uninitialized request. - */ - public ArtifactDescriptorRequest() - { - // enables default constructor - } - - /** - * Creates a request with the specified properties. - * - * @param artifact The artifact whose descriptor should be read, may be {@code null}. - * @param repositories The repositories to resolve the descriptor from, may be {@code null}. - * @param context The context in which this request is made, may be {@code null}. - */ - public ArtifactDescriptorRequest( Artifact artifact, List<RemoteRepository> repositories, String context ) - { - setArtifact( artifact ); - setRepositories( repositories ); - setRequestContext( context ); - } - - /** - * Gets the artifact whose descriptor shall be read. - * - * @return The artifact or {@code null} if not set. - */ - public Artifact getArtifact() - { - return artifact; - } - - /** - * Sets the artifact whose descriptor shall be read. Eventually, a valid request must have an artifact set. - * - * @param artifact The artifact, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactDescriptorRequest setArtifact( Artifact artifact ) - { - this.artifact = artifact; - return this; - } - - /** - * Gets the repositories to resolve the descriptor from. - * - * @return The repositories, never {@code null}. - */ - public List<RemoteRepository> getRepositories() - { - return repositories; - } - - /** - * Sets the repositories to resolve the descriptor from. - * - * @param repositories The repositories, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactDescriptorRequest setRepositories( List<RemoteRepository> repositories ) - { - if ( repositories == null ) - { - this.repositories = Collections.emptyList(); - } - else - { - this.repositories = repositories; - } - return this; - } - - /** - * Adds the specified repository for the resolution of the artifact descriptor. - * - * @param repository The repository to add, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactDescriptorRequest addRepository( RemoteRepository repository ) - { - if ( repository != null ) - { - if ( this.repositories.isEmpty() ) - { - this.repositories = new ArrayList<RemoteRepository>(); - } - this.repositories.add( repository ); - } - return this; - } - - /** - * Gets the context in which this request is made. - * - * @return The context, never {@code null}. - */ - public String getRequestContext() - { - return context; - } - - /** - * Sets the context in which this request is made. - * - * @param context The context, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactDescriptorRequest setRequestContext( String context ) - { - this.context = ( context != null ) ? context : ""; - return this; - } - - /** - * Gets the trace information that describes the higher level request/operation in which this request is issued. - * - * @return The trace information about the higher level operation or {@code null} if none. - */ - public RequestTrace getTrace() - { - return trace; - } - - /** - * Sets the trace information that describes the higher level request/operation in which this request is issued. - * - * @param trace The trace information about the higher level operation, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactDescriptorRequest setTrace( RequestTrace trace ) - { - this.trace = trace; - return this; - } - - @Override - public String toString() - { - return getArtifact() + " < " + getRepositories(); - } - -} http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorResult.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorResult.java b/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorResult.java deleted file mode 100644 index 4c53b6e..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorResult.java +++ /dev/null @@ -1,466 +0,0 @@ -package org.eclipse.aether.resolution; - -/* - * 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.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.graph.Dependency; -import org.eclipse.aether.repository.ArtifactRepository; -import org.eclipse.aether.repository.RemoteRepository; - -/** - * The result from reading an artifact descriptor. - * - * @see RepositorySystem#readArtifactDescriptor(RepositorySystemSession, ArtifactDescriptorRequest) - */ -public final class ArtifactDescriptorResult -{ - - private final ArtifactDescriptorRequest request; - - private List<Exception> exceptions; - - private List<Artifact> relocations; - - private Collection<Artifact> aliases; - - private Artifact artifact; - - private ArtifactRepository repository; - - private List<Dependency> dependencies; - - private List<Dependency> managedDependencies; - - private List<RemoteRepository> repositories; - - private Map<String, Object> properties; - - /** - * Creates a new result for the specified request. - * - * @param request The descriptor request, must not be {@code null}. - */ - public ArtifactDescriptorResult( ArtifactDescriptorRequest request ) - { - if ( request == null ) - { - throw new IllegalArgumentException( "artifact descriptor request has not been specified" ); - } - this.request = request; - artifact = request.getArtifact(); - exceptions = Collections.emptyList(); - relocations = Collections.emptyList(); - aliases = Collections.emptyList(); - dependencies = managedDependencies = Collections.emptyList(); - repositories = Collections.emptyList(); - properties = Collections.emptyMap(); - } - - /** - * Gets the descriptor request that was made. - * - * @return The descriptor request, never {@code null}. - */ - public ArtifactDescriptorRequest getRequest() - { - return request; - } - - /** - * Gets the exceptions that occurred while reading the artifact descriptor. - * - * @return The exceptions that occurred, never {@code null}. - */ - public List<Exception> getExceptions() - { - return exceptions; - } - - /** - * Sets the exceptions that occurred while reading the artifact descriptor. - * - * @param exceptions The exceptions that occurred, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult setExceptions( List<Exception> exceptions ) - { - if ( exceptions == null ) - { - this.exceptions = Collections.emptyList(); - } - else - { - this.exceptions = exceptions; - } - return this; - } - - /** - * Records the specified exception while reading the artifact descriptor. - * - * @param exception The exception to record, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult addException( Exception exception ) - { - if ( exception != null ) - { - if ( exceptions.isEmpty() ) - { - exceptions = new ArrayList<Exception>(); - } - exceptions.add( exception ); - } - return this; - } - - /** - * Gets the relocations that were processed to read the artifact descriptor. The returned list denotes the hops that - * lead to the final artifact coordinates as given by {@link #getArtifact()}. - * - * @return The relocations that were processed, never {@code null}. - */ - public List<Artifact> getRelocations() - { - return relocations; - } - - /** - * Sets the relocations that were processed to read the artifact descriptor. - * - * @param relocations The relocations that were processed, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult setRelocations( List<Artifact> relocations ) - { - if ( relocations == null ) - { - this.relocations = Collections.emptyList(); - } - else - { - this.relocations = relocations; - } - return this; - } - - /** - * Records the specified relocation hop while locating the artifact descriptor. - * - * @param artifact The artifact that got relocated, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult addRelocation( Artifact artifact ) - { - if ( artifact != null ) - { - if ( relocations.isEmpty() ) - { - relocations = new ArrayList<Artifact>(); - } - relocations.add( artifact ); - } - return this; - } - - /** - * Gets the known aliases for this artifact. An alias denotes a different artifact with (almost) the same contents - * and can be used to mark a patched rebuild of some other artifact as such, thereby allowing conflict resolution to - * consider the patched and the original artifact as a conflict. - * - * @return The aliases of the artifact, never {@code null}. - */ - public Collection<Artifact> getAliases() - { - return aliases; - } - - /** - * Sets the aliases of the artifact. - * - * @param aliases The aliases of the artifact, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult setAliases( Collection<Artifact> aliases ) - { - if ( aliases == null ) - { - this.aliases = Collections.emptyList(); - } - else - { - this.aliases = aliases; - } - return this; - } - - /** - * Records the specified alias. - * - * @param alias The alias for the artifact, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult addAlias( Artifact alias ) - { - if ( alias != null ) - { - if ( aliases.isEmpty() ) - { - aliases = new ArrayList<Artifact>(); - } - aliases.add( alias ); - } - return this; - } - - /** - * Gets the artifact whose descriptor was read. This can be a different artifact than originally requested in case - * relocations were encountered. - * - * @return The artifact after following any relocations, never {@code null}. - */ - public Artifact getArtifact() - { - return artifact; - } - - /** - * Sets the artifact whose descriptor was read. - * - * @param artifact The artifact whose descriptor was read, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult setArtifact( Artifact artifact ) - { - this.artifact = artifact; - return this; - } - - /** - * Gets the repository from which the descriptor was eventually resolved. - * - * @return The repository from which the descriptor was resolved or {@code null} if unknown. - */ - public ArtifactRepository getRepository() - { - return repository; - } - - /** - * Sets the repository from which the descriptor was resolved. - * - * @param repository The repository from which the descriptor was resolved, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult setRepository( ArtifactRepository repository ) - { - this.repository = repository; - return this; - } - - /** - * Gets the list of direct dependencies of the artifact. - * - * @return The list of direct dependencies, never {@code null} - */ - public List<Dependency> getDependencies() - { - return dependencies; - } - - /** - * Sets the list of direct dependencies of the artifact. - * - * @param dependencies The list of direct dependencies, may be {@code null} - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult setDependencies( List<Dependency> dependencies ) - { - if ( dependencies == null ) - { - this.dependencies = Collections.emptyList(); - } - else - { - this.dependencies = dependencies; - } - return this; - } - - /** - * Adds the specified direct dependency. - * - * @param dependency The direct dependency to add, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult addDependency( Dependency dependency ) - { - if ( dependency != null ) - { - if ( dependencies.isEmpty() ) - { - dependencies = new ArrayList<Dependency>(); - } - dependencies.add( dependency ); - } - return this; - } - - /** - * Gets the dependency management information. - * - * @return The dependency management information. - */ - public List<Dependency> getManagedDependencies() - { - return managedDependencies; - } - - /** - * Sets the dependency management information. - * - * @param dependencies The dependency management information, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult setManagedDependencies( List<Dependency> dependencies ) - { - if ( dependencies == null ) - { - this.managedDependencies = Collections.emptyList(); - } - else - { - this.managedDependencies = dependencies; - } - return this; - } - - /** - * Adds the specified managed dependency. - * - * @param dependency The managed dependency to add, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult addManagedDependency( Dependency dependency ) - { - if ( dependency != null ) - { - if ( managedDependencies.isEmpty() ) - { - managedDependencies = new ArrayList<Dependency>(); - } - managedDependencies.add( dependency ); - } - return this; - } - - /** - * Gets the remote repositories listed in the artifact descriptor. - * - * @return The remote repositories listed in the artifact descriptor, never {@code null}. - */ - public List<RemoteRepository> getRepositories() - { - return repositories; - } - - /** - * Sets the remote repositories listed in the artifact descriptor. - * - * @param repositories The remote repositories listed in the artifact descriptor, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult setRepositories( List<RemoteRepository> repositories ) - { - if ( repositories == null ) - { - this.repositories = Collections.emptyList(); - } - else - { - this.repositories = repositories; - } - return this; - } - - /** - * Adds the specified remote repository. - * - * @param repository The remote repository to add, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult addRepository( RemoteRepository repository ) - { - if ( repository != null ) - { - if ( repositories.isEmpty() ) - { - repositories = new ArrayList<RemoteRepository>(); - } - repositories.add( repository ); - } - return this; - } - - /** - * Gets any additional information about the artifact in form of key-value pairs. <em>Note:</em> Regardless of their - * actual type, all property values must be treated as being read-only. - * - * @return The additional information about the artifact, never {@code null}. - */ - public Map<String, Object> getProperties() - { - return properties; - } - - /** - * Sets any additional information about the artifact in form of key-value pairs. - * - * @param properties The additional information about the artifact, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactDescriptorResult setProperties( Map<String, Object> properties ) - { - if ( properties == null ) - { - this.properties = Collections.emptyMap(); - } - else - { - this.properties = properties; - } - return this; - } - - @Override - public String toString() - { - return getArtifact() + " -> " + getDependencies(); - } - -} http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java b/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java deleted file mode 100644 index a220207..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java +++ /dev/null @@ -1,232 +0,0 @@ -package org.eclipse.aether.resolution; - -/* - * 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.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.RequestTrace; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.graph.DependencyNode; -import org.eclipse.aether.repository.RemoteRepository; - -/** - * A request to resolve an artifact. - * - * @see RepositorySystem#resolveArtifacts(RepositorySystemSession, java.util.Collection) - * @see Artifact#getFile() - */ -public final class ArtifactRequest -{ - - private Artifact artifact; - - private DependencyNode node; - - private List<RemoteRepository> repositories = Collections.emptyList(); - - private String context = ""; - - private RequestTrace trace; - - /** - * Creates an uninitialized request. - */ - public ArtifactRequest() - { - // enables default constructor - } - - /** - * Creates a request with the specified properties. - * - * @param artifact The artifact to resolve, may be {@code null}. - * @param repositories The repositories to resolve the artifact from, may be {@code null}. - * @param context The context in which this request is made, may be {@code null}. - */ - public ArtifactRequest( Artifact artifact, List<RemoteRepository> repositories, String context ) - { - setArtifact( artifact ); - setRepositories( repositories ); - setRequestContext( context ); - } - - /** - * Creates a request from the specified dependency node. - * - * @param node The dependency node to resolve, may be {@code null}. - */ - public ArtifactRequest( DependencyNode node ) - { - setDependencyNode( node ); - setRepositories( node.getRepositories() ); - setRequestContext( node.getRequestContext() ); - } - - /** - * Gets the artifact to resolve. - * - * @return The artifact to resolve or {@code null}. - */ - public Artifact getArtifact() - { - return artifact; - } - - /** - * Sets the artifact to resolve. - * - * @param artifact The artifact to resolve, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactRequest setArtifact( Artifact artifact ) - { - this.artifact = artifact; - return this; - } - - /** - * Gets the dependency node (if any) for which to resolve the artifact. - * - * @return The dependency node to resolve or {@code null} if unknown. - */ - public DependencyNode getDependencyNode() - { - return node; - } - - /** - * Sets the dependency node to resolve. - * - * @param node The dependency node to resolve, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactRequest setDependencyNode( DependencyNode node ) - { - this.node = node; - if ( node != null ) - { - setArtifact( node.getDependency().getArtifact() ); - } - return this; - } - - /** - * Gets the repositories to resolve the artifact from. - * - * @return The repositories, never {@code null}. - */ - public List<RemoteRepository> getRepositories() - { - return repositories; - } - - /** - * Sets the repositories to resolve the artifact from. - * - * @param repositories The repositories, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactRequest setRepositories( List<RemoteRepository> repositories ) - { - if ( repositories == null ) - { - this.repositories = Collections.emptyList(); - } - else - { - this.repositories = repositories; - } - return this; - } - - /** - * Adds the specified repository for the resolution. - * - * @param repository The repository to add, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactRequest addRepository( RemoteRepository repository ) - { - if ( repository != null ) - { - if ( this.repositories.isEmpty() ) - { - this.repositories = new ArrayList<RemoteRepository>(); - } - this.repositories.add( repository ); - } - return this; - } - - /** - * Gets the context in which this request is made. - * - * @return The context, never {@code null}. - */ - public String getRequestContext() - { - return context; - } - - /** - * Sets the context in which this request is made. - * - * @param context The context, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactRequest setRequestContext( String context ) - { - this.context = ( context != null ) ? context : ""; - return this; - } - - /** - * Gets the trace information that describes the higher level request/operation in which this request is issued. - * - * @return The trace information about the higher level operation or {@code null} if none. - */ - public RequestTrace getTrace() - { - return trace; - } - - /** - * Sets the trace information that describes the higher level request/operation in which this request is issued. - * - * @param trace The trace information about the higher level operation, may be {@code null}. - * @return This request for chaining, never {@code null}. - */ - public ArtifactRequest setTrace( RequestTrace trace ) - { - this.trace = trace; - return this; - } - - @Override - public String toString() - { - return getArtifact() + " < " + getRepositories(); - } - -} http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactResolutionException.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactResolutionException.java b/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactResolutionException.java deleted file mode 100644 index bfae4a0..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactResolutionException.java +++ /dev/null @@ -1,173 +0,0 @@ -package org.eclipse.aether.resolution; - -/* - * 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.util.Collections; -import java.util.List; - -import org.eclipse.aether.RepositoryException; -import org.eclipse.aether.transfer.ArtifactNotFoundException; -import org.eclipse.aether.transfer.RepositoryOfflineException; - -/** - * Thrown in case of a unresolvable artifacts. - */ -public class ArtifactResolutionException - extends RepositoryException -{ - - private final transient List<ArtifactResult> results; - - /** - * Creates a new exception with the specified results. - * - * @param results The resolution results at the point the exception occurred, may be {@code null}. - */ - public ArtifactResolutionException( List<ArtifactResult> results ) - { - super( getMessage( results ), getCause( results ) ); - this.results = ( results != null ) ? results : Collections.<ArtifactResult>emptyList(); - } - - /** - * Creates a new exception with the specified results and detail message. - * - * @param results The resolution results at the point the exception occurred, may be {@code null}. - * @param message The detail message, may be {@code null}. - */ - public ArtifactResolutionException( List<ArtifactResult> results, String message ) - { - super( message, getCause( results ) ); - this.results = ( results != null ) ? results : Collections.<ArtifactResult>emptyList(); - } - - /** - * Creates a new exception with the specified results, detail message and cause. - * - * @param results The resolution results at the point the exception occurred, may be {@code null}. - * @param message The detail message, may be {@code null}. - * @param cause The exception that caused this one, may be {@code null}. - */ - public ArtifactResolutionException( List<ArtifactResult> results, String message, Throwable cause ) - { - super( message, cause ); - this.results = ( results != null ) ? results : Collections.<ArtifactResult>emptyList(); - } - - /** - * Gets the resolution results at the point the exception occurred. Despite being incomplete, callers might want to - * use these results to fail gracefully and continue their operation with whatever interim data has been gathered. - * - * @return The resolution results or {@code null} if unknown. - */ - public List<ArtifactResult> getResults() - { - return results; - } - - /** - * Gets the first result from {@link #getResults()}. This is a convenience method for cases where callers know only - * a single result/request is involved. - * - * @return The (first) resolution result or {@code null} if none. - */ - public ArtifactResult getResult() - { - return ( results != null && !results.isEmpty() ) ? results.get( 0 ) : null; - } - - private static String getMessage( List<? extends ArtifactResult> results ) - { - StringBuilder buffer = new StringBuilder( 256 ); - - buffer.append( "The following artifacts could not be resolved: " ); - - int unresolved = 0; - - String sep = ""; - for ( ArtifactResult result : results ) - { - if ( !result.isResolved() ) - { - unresolved++; - - buffer.append( sep ); - buffer.append( result.getRequest().getArtifact() ); - sep = ", "; - } - } - - Throwable cause = getCause( results ); - if ( cause != null ) - { - if ( unresolved == 1 ) - { - buffer.setLength( 0 ); - buffer.append( cause.getMessage() ); - } - else - { - buffer.append( ": " ).append( cause.getMessage() ); - } - } - - return buffer.toString(); - } - - private static Throwable getCause( List<? extends ArtifactResult> results ) - { - for ( ArtifactResult result : results ) - { - if ( !result.isResolved() ) - { - Throwable notFound = null, offline = null; - for ( Throwable t : result.getExceptions() ) - { - if ( t instanceof ArtifactNotFoundException ) - { - if ( notFound == null ) - { - notFound = t; - } - if ( offline == null && t.getCause() instanceof RepositoryOfflineException ) - { - offline = t; - } - } - else - { - return t; - } - - } - if ( offline != null ) - { - return offline; - } - if ( notFound != null ) - { - return notFound; - } - } - } - return null; - } - -} http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/3a1b8ae0/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactResult.java ---------------------------------------------------------------------- diff --git a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactResult.java b/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactResult.java deleted file mode 100644 index 5ae820b..0000000 --- a/aether-api/src/main/java/org/eclipse/aether/resolution/ArtifactResult.java +++ /dev/null @@ -1,188 +0,0 @@ -package org.eclipse.aether.resolution; - -/* - * 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.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.repository.ArtifactRepository; -import org.eclipse.aether.transfer.ArtifactNotFoundException; - -/** - * The result of an artifact resolution request. - * - * @see RepositorySystem#resolveArtifacts(RepositorySystemSession, java.util.Collection) - * @see Artifact#getFile() - */ -public final class ArtifactResult -{ - - private final ArtifactRequest request; - - private List<Exception> exceptions; - - private Artifact artifact; - - private ArtifactRepository repository; - - /** - * Creates a new result for the specified request. - * - * @param request The resolution request, must not be {@code null}. - */ - public ArtifactResult( ArtifactRequest request ) - { - if ( request == null ) - { - throw new IllegalArgumentException( "resolution request has not been specified" ); - } - this.request = request; - exceptions = Collections.emptyList(); - } - - /** - * Gets the resolution request that was made. - * - * @return The resolution request, never {@code null}. - */ - public ArtifactRequest getRequest() - { - return request; - } - - /** - * Gets the resolved artifact (if any). Use {@link #getExceptions()} to query the errors that occurred while trying - * to resolve the artifact. - * - * @return The resolved artifact or {@code null} if the resolution failed. - */ - public Artifact getArtifact() - { - return artifact; - } - - /** - * Sets the resolved artifact. - * - * @param artifact The resolved artifact, may be {@code null} if the resolution failed. - * @return This result for chaining, never {@code null}. - */ - public ArtifactResult setArtifact( Artifact artifact ) - { - this.artifact = artifact; - return this; - } - - /** - * Gets the exceptions that occurred while resolving the artifact. Note that this list can be non-empty even if the - * artifact was successfully resolved, e.g. when one of the contacted remote repositories didn't contain the - * artifact but a later repository eventually contained it. - * - * @return The exceptions that occurred, never {@code null}. - * @see #isResolved() - */ - public List<Exception> getExceptions() - { - return exceptions; - } - - /** - * Records the specified exception while resolving the artifact. - * - * @param exception The exception to record, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactResult addException( Exception exception ) - { - if ( exception != null ) - { - if ( exceptions.isEmpty() ) - { - exceptions = new ArrayList<Exception>(); - } - exceptions.add( exception ); - } - return this; - } - - /** - * Gets the repository from which the artifact was eventually resolved. Note that successive resolutions of the same - * artifact might yield different results if the employed local repository does not track the origin of an artifact. - * - * @return The repository from which the artifact was resolved or {@code null} if unknown. - */ - public ArtifactRepository getRepository() - { - return repository; - } - - /** - * Sets the repository from which the artifact was resolved. - * - * @param repository The repository from which the artifact was resolved, may be {@code null}. - * @return This result for chaining, never {@code null}. - */ - public ArtifactResult setRepository( ArtifactRepository repository ) - { - this.repository = repository; - return this; - } - - /** - * Indicates whether the requested artifact was resolved. Note that the artifact might have been successfully - * resolved despite {@link #getExceptions()} indicating transfer errors while trying to fetch the artifact from some - * of the specified remote repositories. - * - * @return {@code true} if the artifact was resolved, {@code false} otherwise. - * @see Artifact#getFile() - */ - public boolean isResolved() - { - return getArtifact() != null && getArtifact().getFile() != null; - } - - /** - * Indicates whether the requested artifact is not present in any of the specified repositories. - * - * @return {@code true} if the artifact is not present in any repository, {@code false} otherwise. - */ - public boolean isMissing() - { - for ( Exception e : getExceptions() ) - { - if ( !( e instanceof ArtifactNotFoundException ) ) - { - return false; - } - } - return !isResolved(); - } - - @Override - public String toString() - { - return getArtifact() + " < " + getRepository(); - } - -}