You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/11/10 16:31:27 UTC

svn commit: r834503 [1/2] - in /maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven: dependency/ repository/

Author: bentmann
Date: Tue Nov 10 15:31:26 2009
New Revision: 834503

URL: http://svn.apache.org/viewvc?rev=834503&view=rev
Log:
o Revised initial sketches

Added:
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Artifact.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactNotFoundException.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRepository.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRequest.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Authentication.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/AuthenticationSelector.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectRequest.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectResult.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DefaultArtifact.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Dependency.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyFilter.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyManager.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyNode.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyRequest.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyResult.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyTraverser.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DeployRequest.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Exclusion.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/InstallRequest.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepository.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepositoryManager.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Metadata.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataNotFoundException.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataRequest.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MirrorSelector.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Proxy.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ProxySelector.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RemoteRepository.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryContext.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryPolicy.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryReader.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositorySystem.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ResolveRequest.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ResolveResult.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/TransferEvent.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/TransferListener.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/TransferResource.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/TransformRequest.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/TransformResult.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/VersionRangeRequest.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/VersionRangeResult.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/VersionRequest.java   (with props)
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/VersionResult.java   (with props)
Removed:
    maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/dependency/

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/
------------------------------------------------------------------------------
    bugtraq:label = Enter issue ID:

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/
------------------------------------------------------------------------------
    bugtraq:message = Issue id: %BUGID%

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/
------------------------------------------------------------------------------
    bugtraq:number = false

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/
------------------------------------------------------------------------------
    bugtraq:url = http://jira.codehaus.org/browse/%BUGID%

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Artifact.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Artifact.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Artifact.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Artifact.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,47 @@
+package org.apache.maven.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;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface Artifact
+{
+
+    String getGroupId();
+
+    String getArtifactId();
+
+    String getVersion();
+
+    String getClassifier();
+
+    String getType();
+
+    File getFile();
+
+    // REVIEW: Do we need setters? Unmodifiability would make caching easier, or will we end up with too
+    // many temp objects?
+
+    // what about attached metadata (POM, plugin prefix index, version index, snapshot, signatures, etc.)?
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Artifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Artifact.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactNotFoundException.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactNotFoundException.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactNotFoundException.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactNotFoundException.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,43 @@
+package org.apache.maven.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.IOException;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public class ArtifactNotFoundException
+    extends IOException
+{
+
+    private Artifact artifact;
+
+    public ArtifactNotFoundException( Artifact artifact )
+    {
+        super( "Could not find artifact " + artifact );
+    }
+
+    public Artifact getArtifact()
+    {
+        return artifact;
+    }
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactNotFoundException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactNotFoundException.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRepository.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRepository.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRepository.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRepository.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,32 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * 
+ * @author Benjamin Bentmann
+ *
+ */
+public interface ArtifactRepository
+{
+
+    String getId();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRepository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRepository.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRequest.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRequest.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRequest.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,32 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface ArtifactRequest
+{
+
+    Artifact getArtifact();
+
+    TransferListener getTransferListener();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRequest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ArtifactRequest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Authentication.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Authentication.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Authentication.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Authentication.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,34 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface Authentication
+{
+
+    static final String USER_NAME = "authentication.userName";
+
+    static final String PASSWORD = "authentication.password";
+
+    String getValue( String key );
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Authentication.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Authentication.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/AuthenticationSelector.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/AuthenticationSelector.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/AuthenticationSelector.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/AuthenticationSelector.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,30 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface AuthenticationSelector
+{
+
+    Authentication getAuthentication( RemoteRepository repository );
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/AuthenticationSelector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/AuthenticationSelector.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectRequest.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectRequest.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectRequest.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,54 @@
+package org.apache.maven.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.List;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface CollectRequest
+{
+
+    // we have three types of collection regarding the request:
+    // 1. root-only, e.g. a plugin declaration, resolve the root and its transitive closure
+    // 2. root-with-children, e.g. a plugin declaration with project-level deps, merge children
+    // 3. children-only, e.g. the (managed) dependencies of a project, don't resolve root but only its transitive
+    // closure
+
+    Artifact getRoot();
+
+    List<? extends Dependency> getDependencies();
+
+    List<? extends Dependency> getManagedDependencies();
+
+    LocalRepository getLocalRepository();
+
+    List<? extends RemoteRepository> getRemoteRepositories();
+
+    RepositoryContext getContext();
+
+    DependencyTraverser getDependencyTraverser();
+
+    DependencyManager getDependencyManager();
+
+    DependencyFilter getDependencyFilter();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectRequest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectRequest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectResult.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectResult.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectResult.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectResult.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,30 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface CollectResult
+{
+
+    DependencyNode getRoot();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectResult.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/CollectResult.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DefaultArtifact.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DefaultArtifact.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DefaultArtifact.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DefaultArtifact.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,82 @@
+package org.apache.maven.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;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public class DefaultArtifact
+    implements Artifact
+{
+
+    private final String groupId;
+
+    private final String artifactId;
+
+    private final String version;
+
+    private final String classifier;
+
+    private final String type;
+
+    private File file;
+
+    public DefaultArtifact( String groupId, String artifactId, String classifier, String type, String version )
+    {
+        this.groupId = groupId;
+        this.artifactId = artifactId;
+        this.classifier = classifier;
+        this.type = type;
+        this.version = version;
+    }
+
+    public String getGroupId()
+    {
+        return groupId;
+    }
+
+    public String getArtifactId()
+    {
+        return artifactId;
+    }
+
+    public String getClassifier()
+    {
+        return classifier;
+    }
+
+    public String getType()
+    {
+        return type;
+    }
+
+    public String getVersion()
+    {
+        return version;
+    }
+
+    public File getFile()
+    {
+        return file;
+    }
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DefaultArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DefaultArtifact.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Dependency.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Dependency.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Dependency.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Dependency.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,38 @@
+package org.apache.maven.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.Collection;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface Dependency
+{
+
+    Artifact getArtifact();
+
+    String getScope();
+
+    boolean isOptional();
+
+    Collection<? extends Exclusion> getExclusions();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Dependency.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Dependency.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyFilter.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyFilter.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyFilter.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyFilter.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,52 @@
+package org.apache.maven.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 org.apache.maven.model.Dependency;
+
+/**
+ * Applies exclusions to the dependencies of a dependency node. The dependency tree builder will maintain one dependency
+ * filter for each node of the dependency tree.
+ * 
+ * @author Benjamin Bentmann
+ */
+public interface DependencyFilter
+{
+
+    /**
+     * Applies exclusions to the specified dependency of a dependency node.
+     * 
+     * @param node The node whose child dependency should be filtered, must not be {@code null}.
+     * @param dependency The dependency to filter, must not be {@code null}.
+     * @return {@code false} if the dependency should be excluded from the children of the specified node, {@code true}
+     *         otherwise.
+     */
+    boolean accept( DependencyNode node, Dependency dependency );
+
+    /**
+     * Derives a dependency filter for the specified child node of the current node, i.e. the parent of the specified
+     * node. Implementors are expected to calculate a new dependency filter for the dependencies of the child node.
+     * 
+     * @param childNode The child node to derive a filter for, must not be {@code null}.
+     * @return The dependency filter for the child node, must not be {@code null}.
+     */
+    DependencyFilter deriveChildFilter( DependencyNode childNode );
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyFilter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyFilter.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyManager.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyManager.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyManager.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyManager.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,53 @@
+package org.apache.maven.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.List;
+
+/**
+ * Applies dependency management to the dependencies of a dependency node. The dependency tree builder will maintain one
+ * dependency manager for each node of the dependency tree.
+ * 
+ * @author Benjamin Bentmann
+ */
+public interface DependencyManager
+{
+
+    /**
+     * Applies dependency management to the specified dependency of a dependency node. The management information (if
+     * any) will be directly injected into the specified dependency.
+     * 
+     * @param node The node whose child dependency should be managed, must not be {@code null}.
+     * @param dependency The dependency to manage, must not be {@code null}.
+     * @return The managed dependency, never {@code null}.
+     */
+    Dependency manageDependency( DependencyNode node, Dependency dependency );
+
+    /**
+     * Derives a dependency manager for the specified child node of the current node, i.e. the parent of the specified
+     * node. Implementors are expected to calculate a new dependency manager for the dependencies of the child node.
+     * 
+     * @param childNode The child node to derive a manager for, must not be {@code null}.
+     * @param managedDependencies The dependency management to consider for the child, must not be {@code null}.
+     * @return The dependency manager for the child node, must not be {@code null}.
+     */
+    DependencyManager deriveChildManager( DependencyNode childNode, List<? extends Dependency> managedDependencies );
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyManager.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyNode.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyNode.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyNode.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyNode.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,38 @@
+package org.apache.maven.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.List;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface DependencyNode
+{
+
+    Dependency getDependency();
+
+    DependencyNode getParent();
+
+    List<DependencyNode> getChildren();
+
+    int getDepth();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyNode.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyNode.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyRequest.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyRequest.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyRequest.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,38 @@
+package org.apache.maven.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.List;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface DependencyRequest
+{
+
+    Artifact getArtifact();
+
+    LocalRepository getLocalRepository();
+
+    List<? extends RemoteRepository> getRemoteRepositories();
+
+    RepositoryContext getContext();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyRequest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyRequest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyResult.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyResult.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyResult.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyResult.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,39 @@
+package org.apache.maven.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.List;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface DependencyResult
+{
+
+    // probably relocated
+    Artifact getArtifact();
+
+    List<? extends Dependency> getDependencies();
+
+    List<? extends Dependency> getManagedDependencies();
+
+    List<? extends RemoteRepository> getRepositories();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyResult.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyResult.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyTraverser.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyTraverser.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyTraverser.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyTraverser.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,50 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * Decides whether the dependencies of a dependency node should be traversed as well. The dependency tree builder will
+ * maintain one dependency traverser for each node of the dependency tree.
+ * 
+ * @author Benjamin Bentmann
+ */
+public interface DependencyTraverser
+{
+
+    /**
+     * Decides whether the dependencies of the specified node should be traversed.
+     * 
+     * @param node The dependency node to check, must not be {@code null}.
+     * @return {@code true} if the dependency tree builder should recurse into the specified node and process its
+     *         dependencies, {@code false} otherwise.
+     */
+    boolean accept( DependencyNode node );
+
+    /**
+     * Derives a dependency traverser for the specified child node of the current node, i.e. the parent of the specified
+     * node. This method is called by the dependency tree builder just before it processes the child node. Implementors
+     * are expected to calculate a new dependency traverser for the child node.
+     * 
+     * @param childNode The child node to derive a traverser for, must not be {@code null}.
+     * @return The dependency traverser for the child node, must not be {@code null}.
+     */
+    DependencyTraverser deriveChildTraverser( DependencyNode childNode );
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyTraverser.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DependencyTraverser.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DeployRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DeployRequest.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DeployRequest.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DeployRequest.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,39 @@
+package org.apache.maven.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.List;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface DeployRequest
+{
+    // what about metadata? do we really need to add that to the artifact or can it be updated by the repo itself
+
+    List<? extends Artifact> getArtifacts();
+
+    LocalRepository getLocalRepository();
+
+    RemoteRepository getRemoteRepository();
+
+    RepositoryContext getContext();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DeployRequest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/DeployRequest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Exclusion.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Exclusion.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Exclusion.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Exclusion.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,36 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface Exclusion
+{
+
+    String getGroupId();
+
+    String getArtifactId();
+
+    String getClassifier();
+
+    String getType();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Exclusion.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Exclusion.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/InstallRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/InstallRequest.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/InstallRequest.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/InstallRequest.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,36 @@
+package org.apache.maven.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.List;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface InstallRequest
+{
+
+    // what about metadata? do we really need to add that to the artifact or can it be updated by the repo itself
+
+    List<? extends Artifact> getArtifacts();
+
+    LocalRepository getLocalRepository();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/InstallRequest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/InstallRequest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepository.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepository.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepository.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepository.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,33 @@
+package org.apache.maven.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;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface LocalRepository
+    extends ArtifactRepository
+{
+
+    File getBasedir();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepository.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepositoryManager.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepositoryManager.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepositoryManager.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepositoryManager.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,38 @@
+package org.apache.maven.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;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface LocalRepositoryManager
+{
+
+    File getPathForLocalArtifact( Artifact artifact );
+
+    File getPathForLocalMetadata( Metadata metadata );
+
+    File getPathForRemoteArtifact( Artifact artifact, RemoteRepository repository );
+
+    File getPathForRemoteMetadata( Metadata metadata, RemoteRepository repository );
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepositoryManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/LocalRepositoryManager.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Metadata.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Metadata.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Metadata.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Metadata.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,38 @@
+package org.apache.maven.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;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface Metadata
+{
+
+    String getGroupId();
+
+    String getArtifactId();
+
+    String getVersion();
+
+    File getFile();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Metadata.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Metadata.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataNotFoundException.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataNotFoundException.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataNotFoundException.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataNotFoundException.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,43 @@
+package org.apache.maven.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.IOException;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public class MetadataNotFoundException
+    extends IOException
+{
+
+    private Metadata metadata;
+
+    public MetadataNotFoundException( Metadata metadata )
+    {
+        super( "Could not find metadata " + metadata );
+    }
+
+    public Metadata getMetadata()
+    {
+        return metadata;
+    }
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataNotFoundException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataNotFoundException.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataRequest.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataRequest.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataRequest.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataRequest.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,32 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface MetadataRequest
+{
+
+    Metadata getMetadata();
+
+    TransferListener getTransferListener();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataRequest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MetadataRequest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MirrorSelector.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MirrorSelector.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MirrorSelector.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MirrorSelector.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,30 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface MirrorSelector
+{
+
+    RemoteRepository getMirror( RemoteRepository repository );
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MirrorSelector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/MirrorSelector.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Proxy.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Proxy.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Proxy.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Proxy.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,34 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface Proxy
+{
+
+    String getHost();
+
+    int getPort();
+
+    Authentication getAuthentication();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Proxy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/Proxy.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ProxySelector.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ProxySelector.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ProxySelector.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ProxySelector.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,30 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface ProxySelector
+{
+
+    Proxy getProxy( RemoteRepository repository );
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ProxySelector.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/ProxySelector.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RemoteRepository.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RemoteRepository.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RemoteRepository.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RemoteRepository.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,35 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface RemoteRepository
+    extends ArtifactRepository
+{
+
+    String getType(); 
+
+    String getUrl();
+
+    RepositoryPolicy getPolicy( boolean snapshot );
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RemoteRepository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RemoteRepository.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryContext.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryContext.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryContext.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryContext.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,48 @@
+package org.apache.maven.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.Properties;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface RepositoryContext
+{
+
+    boolean isOffline();
+
+    String getChecksumPolicy();
+
+    String getUpdatePolicy();
+
+    TransferListener getTransferListener();
+
+    Properties getSystemProperties();
+
+    MirrorSelector getMirrorSelector();
+
+    ProxySelector getProxySelector();
+
+    AuthenticationSelector getAuthenticationSelector();
+
+    // TODO: cache?
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryContext.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryPolicy.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryPolicy.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryPolicy.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryPolicy.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,34 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface RepositoryPolicy
+{
+
+    boolean isEnabled();
+
+    String getUpdatePolicy();
+
+    String getChecksumPolicy();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryPolicy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryPolicy.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryReader.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryReader.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryReader.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryReader.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,40 @@
+package org.apache.maven.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.IOException;
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface RepositoryReader
+{
+
+    void getArtifact( ArtifactRequest request )
+        throws IOException;
+
+    void getMetadata( MetadataRequest request )
+        throws IOException;
+
+    // REVIEW: Do we need/want raw file transfers? Looks strange to me, to assume a repo is a plain file server.
+
+    void close();
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryReader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositoryReader.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositorySystem.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositorySystem.java?rev=834503&view=auto
==============================================================================
--- maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositorySystem.java (added)
+++ maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositorySystem.java Tue Nov 10 15:31:26 2009
@@ -0,0 +1,75 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * @author Benjamin Bentmann
+ */
+public interface RepositorySystem
+{
+
+    /**
+     * Expands a version range to a list of matching versions, in ascending order. For example, resolves "[3.8,4.0)" to
+     * ["3.8", "3.8.1", "3.8.2"].
+     */
+    VersionRangeResult resolveVersionRange( VersionRangeRequest request );
+
+    /**
+     * Resolves a metaversion to a concrete version. For example, resolves "1.0-SNAPSHOT" to "1.0-20090208.132618-23" or
+     * "RELEASE"/"LATEST" to "2.0".
+     */
+    VersionResult resolveVersion( VersionRequest request );
+
+    /**
+     * Gets the direct dependencies of an artifact.
+     */
+    DependencyResult getDependencies( DependencyRequest request );
+
+    /**
+     * Collects the transitive dependencies of an artifact in form of a dirty dependency tree.
+     */
+    CollectResult collectDependencies( CollectRequest request );
+
+    /**
+     * Performs conflict resolution or other transformations on the dependency tree/graph.
+     */
+    TransformResult transformDependencies( TransformRequest request );
+
+    /**
+     * Resolves the paths for a collection of artifacts. Artifacts will be downloaded if necessary.
+     */
+    ResolveResult resolveArtifacts( ResolveRequest request );
+
+    /**
+     * Installs a collection of artifacts to the local repository.
+     */
+    void installArtifacts( InstallRequest request );
+
+    /**
+     * Uploads a collection of artifacts to a remote repository. This process automatically includes the installation of
+     * the artifacts to the local repository.
+     */
+    void deployArtifacts( DeployRequest request );
+
+    RepositoryReader getRepositoryReader( RemoteRepository remoteRepository, RepositoryContext context );
+
+    LocalRepositoryManager getLocalRepositoryManager( LocalRepository localRepository, RepositoryContext context );
+
+}

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositorySystem.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/maven-3/branches/MNG-4388/maven-dependency-tree-builder/src/main/java/org/apache/maven/repository/RepositorySystem.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision