You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2016/09/15 21:10:49 UTC
[2/7] maven-resolver git commit: MNG-6007 renamed package to Maven
Artifact Resolver
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/main/java/org/apache/maven/resolver/internal/ant/types/PomPropertyHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/maven/resolver/internal/ant/types/PomPropertyHelper.java b/src/main/java/org/apache/maven/resolver/internal/ant/types/PomPropertyHelper.java
new file mode 100644
index 0000000..5ec23ec
--- /dev/null
+++ b/src/main/java/org/apache/maven/resolver/internal/ant/types/PomPropertyHelper.java
@@ -0,0 +1,65 @@
+package org.apache.maven.resolver.internal.ant.types;
+
+/*
+ * 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.tools.ant.PropertyHelper;
+
+/**
+ */
+@SuppressWarnings( "deprecation" )
+class PomPropertyHelper
+ extends PropertyHelper
+{
+
+ private final ModelValueExtractor extractor;
+
+ public static void register( ModelValueExtractor extractor, PropertyHelper propertyHelper )
+ {
+ PomPropertyHelper helper = new PomPropertyHelper( extractor );
+ helper.setNext( propertyHelper.getNext() );
+ propertyHelper.setNext( helper );
+ }
+
+ public PomPropertyHelper( ModelValueExtractor extractor )
+ {
+ if ( extractor == null )
+ {
+ throw new IllegalArgumentException( "no model value exractor specified" );
+ }
+ this.extractor = extractor;
+ setProject( extractor.getProject() );
+ }
+
+ @Override
+ public Object getPropertyHook( String ns, String name, boolean user )
+ {
+ Object value = extractor.getValue( name );
+ if ( value != null )
+ {
+ return value;
+ }
+ else if ( extractor.isApplicable( name ) )
+ {
+ return null;
+ }
+ return super.getPropertyHook( ns, name, user );
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/main/java/org/apache/maven/resolver/internal/ant/types/Proxy.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/maven/resolver/internal/ant/types/Proxy.java b/src/main/java/org/apache/maven/resolver/internal/ant/types/Proxy.java
new file mode 100644
index 0000000..6116c8e
--- /dev/null
+++ b/src/main/java/org/apache/maven/resolver/internal/ant/types/Proxy.java
@@ -0,0 +1,163 @@
+package org.apache.maven.resolver.internal.ant.types;
+
+/*
+ * 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.resolver.internal.ant.AntRepoSys;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.types.DataType;
+import org.apache.tools.ant.types.Reference;
+
+/**
+ */
+public class Proxy
+ extends DataType
+{
+
+ private String host;
+
+ private int port;
+
+ private String type;
+
+ private String nonProxyHosts;
+
+ private Authentication authentication;
+
+ @Override
+ public void setProject( Project project )
+ {
+ super.setProject( project );
+
+ AntRepoSys.getInstance( project ).addProxy( this );
+ }
+
+ protected Proxy getRef()
+ {
+ return (Proxy) getCheckedRef();
+ }
+
+ public void setRefid( Reference ref )
+ {
+ if ( host != null || port != 0 || type != null || nonProxyHosts != null )
+ {
+ throw tooManyAttributes();
+ }
+ if ( authentication != null )
+ {
+ throw noChildrenAllowed();
+ }
+ super.setRefid( ref );
+ }
+
+ public String getHost()
+ {
+ if ( isReference() )
+ {
+ return getRef().getHost();
+ }
+ return host;
+ }
+
+ public void setHost( String host )
+ {
+ checkAttributesAllowed();
+ this.host = host;
+ }
+
+ public int getPort()
+ {
+ if ( isReference() )
+ {
+ return getRef().getPort();
+ }
+ return port;
+ }
+
+ public void setPort( int port )
+ {
+ checkAttributesAllowed();
+ if ( port <= 0 || port > 0xFFFF )
+ {
+ throw new BuildException( "The port number must be within the range 1 - 65535" );
+ }
+ this.port = port;
+ }
+
+ public String getType()
+ {
+ if ( isReference() )
+ {
+ return getRef().getType();
+ }
+ return type;
+ }
+
+ public void setType( String type )
+ {
+ checkAttributesAllowed();
+ this.type = type;
+ }
+
+ public String getNonProxyHosts()
+ {
+ if ( isReference() )
+ {
+ return getRef().getNonProxyHosts();
+ }
+ return nonProxyHosts;
+ }
+
+ public void setNonProxyHosts( String nonProxyHosts )
+ {
+ checkAttributesAllowed();
+ this.nonProxyHosts = nonProxyHosts;
+ }
+
+ public Authentication getAuthentication()
+ {
+ if ( isReference() )
+ {
+ return getRef().getAuthentication();
+ }
+ return authentication;
+ }
+
+ public void addAuthentication( Authentication authentication )
+ {
+ checkChildrenAllowed();
+ if ( this.authentication != null )
+ {
+ throw new BuildException( "You must not specify multiple <authentication> elements" );
+ }
+ this.authentication = authentication;
+ }
+
+ public void setAuthRef( Reference ref )
+ {
+ if ( authentication == null )
+ {
+ authentication = new Authentication();
+ authentication.setProject( getProject() );
+ }
+ authentication.setRefid( ref );
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepositories.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepositories.java b/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepositories.java
new file mode 100644
index 0000000..0b90877
--- /dev/null
+++ b/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepositories.java
@@ -0,0 +1,97 @@
+package org.apache.maven.resolver.internal.ant.types;
+
+/*
+ * 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.List;
+
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.types.DataType;
+import org.apache.tools.ant.types.Reference;
+
+/**
+ */
+public class RemoteRepositories
+ extends DataType
+ implements RemoteRepositoryContainer
+{
+
+ private List<RemoteRepositoryContainer> containers = new ArrayList<RemoteRepositoryContainer>();
+
+ protected RemoteRepositories getRef()
+ {
+ return (RemoteRepositories) getCheckedRef();
+ }
+
+ public void validate( Task task )
+ {
+ if ( isReference() )
+ {
+ getRef().validate( task );
+ }
+ else
+ {
+ for ( RemoteRepositoryContainer container : containers )
+ {
+ container.validate( task );
+ }
+ }
+ }
+
+ public void setRefid( Reference ref )
+ {
+ if ( !containers.isEmpty() )
+ {
+ throw noChildrenAllowed();
+ }
+ super.setRefid( ref );
+ }
+
+ public void addRemoterepo( RemoteRepository repository )
+ {
+ checkChildrenAllowed();
+ containers.add( repository );
+ }
+
+ public void addRemoterepos( RemoteRepositories repositories )
+ {
+ checkChildrenAllowed();
+ if ( repositories == this )
+ {
+ throw circularReference();
+ }
+ containers.add( repositories );
+ }
+
+ public List<RemoteRepository> getRepositories()
+ {
+ if ( isReference() )
+ {
+ return getRef().getRepositories();
+ }
+ List<RemoteRepository> repos = new ArrayList<RemoteRepository>();
+ for ( RemoteRepositoryContainer container : containers )
+ {
+ repos.addAll( container.getRepositories() );
+ }
+ return repos;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepository.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepository.java b/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepository.java
new file mode 100644
index 0000000..aabefd2
--- /dev/null
+++ b/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepository.java
@@ -0,0 +1,351 @@
+package org.apache.maven.resolver.internal.ant.types;
+
+/*
+ * 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.apache.maven.resolver.internal.ant.AntRepoSys;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.types.DataType;
+import org.apache.tools.ant.types.Reference;
+import org.eclipse.aether.repository.RepositoryPolicy;
+
+/**
+ */
+public class RemoteRepository
+ extends DataType
+ implements RemoteRepositoryContainer
+{
+
+ private String id;
+
+ private String url;
+
+ private String type;
+
+ private Policy releasePolicy;
+
+ private Policy snapshotPolicy;
+
+ private boolean releases = true;
+
+ private boolean snapshots = false;
+
+ private String checksums;
+
+ private String updates;
+
+ private Authentication authentication;
+
+ @Override
+ public void setProject( Project project )
+ {
+ super.setProject( project );
+
+ // NOTE: Just trigger side-effect of default initialization before this type potentially overrides central
+ AntRepoSys.getInstance( project );
+ }
+
+ protected RemoteRepository getRef()
+ {
+ return (RemoteRepository) getCheckedRef();
+ }
+
+ public void validate( Task task )
+ {
+ if ( isReference() )
+ {
+ getRef().validate( task );
+ }
+ else
+ {
+ if ( url == null || url.length() <= 0 )
+ {
+ throw new BuildException( "You must specify the 'url' for a remote repository" );
+ }
+ if ( id == null || id.length() <= 0 )
+ {
+ throw new BuildException( "You must specify the 'id' for a remote repository" );
+ }
+ }
+ }
+
+ public void setRefid( Reference ref )
+ {
+ if ( id != null || url != null || type != null || checksums != null || updates != null )
+ {
+ throw tooManyAttributes();
+ }
+ if ( releasePolicy != null || snapshotPolicy != null || authentication != null )
+ {
+ throw noChildrenAllowed();
+ }
+ super.setRefid( ref );
+ }
+
+ public String getId()
+ {
+ if ( isReference() )
+ {
+ return getRef().getId();
+ }
+ return id;
+ }
+
+ public void setId( String id )
+ {
+ this.id = id;
+ }
+
+ public String getUrl()
+ {
+ if ( isReference() )
+ {
+ return getRef().getUrl();
+ }
+ return url;
+ }
+
+ public void setUrl( String url )
+ {
+ checkAttributesAllowed();
+ this.url = url;
+ }
+
+ public String getType()
+ {
+ if ( isReference() )
+ {
+ return getRef().getType();
+ }
+ return ( type != null ) ? type : "default";
+ }
+
+ public void setType( String type )
+ {
+ checkAttributesAllowed();
+ this.type = type;
+ }
+
+ public Policy getReleasePolicy()
+ {
+ if ( isReference() )
+ {
+ return getRef().getReleasePolicy();
+ }
+ return releasePolicy;
+ }
+
+ public void addReleases( Policy policy )
+ {
+ checkChildrenAllowed();
+ if ( this.releasePolicy != null )
+ {
+ throw new BuildException( "You must not specify multiple <releases> elements" );
+ }
+ this.releasePolicy = policy;
+ }
+
+ public Policy getSnapshotPolicy()
+ {
+ if ( isReference() )
+ {
+ return getRef().getSnapshotPolicy();
+ }
+ return snapshotPolicy;
+ }
+
+ public void addSnapshots( Policy policy )
+ {
+ checkChildrenAllowed();
+ if ( this.snapshotPolicy != null )
+ {
+ throw new BuildException( "You must not specify multiple <snapshots> elements" );
+ }
+ this.snapshotPolicy = policy;
+ }
+
+ public boolean isReleases()
+ {
+ if ( isReference() )
+ {
+ return getRef().isReleases();
+ }
+ return releases;
+ }
+
+ public void setReleases( boolean releases )
+ {
+ checkAttributesAllowed();
+ this.releases = releases;
+ }
+
+ public boolean isSnapshots()
+ {
+ if ( isReference() )
+ {
+ return getRef().isSnapshots();
+ }
+ return snapshots;
+ }
+
+ public void setSnapshots( boolean snapshots )
+ {
+ checkAttributesAllowed();
+ this.snapshots = snapshots;
+ }
+
+ public String getUpdates()
+ {
+ if ( isReference() )
+ {
+ return getRef().getUpdates();
+ }
+ return ( updates != null ) ? updates : RepositoryPolicy.UPDATE_POLICY_DAILY;
+ }
+
+ public void setUpdates( String updates )
+ {
+ checkAttributesAllowed();
+ checkUpdates( updates );
+ this.updates = updates;
+ }
+
+ protected static void checkUpdates( String updates )
+ {
+ if ( !RepositoryPolicy.UPDATE_POLICY_ALWAYS.equals( updates )
+ && !RepositoryPolicy.UPDATE_POLICY_DAILY.equals( updates )
+ && !RepositoryPolicy.UPDATE_POLICY_NEVER.equals( updates )
+ && !updates.startsWith( RepositoryPolicy.UPDATE_POLICY_INTERVAL ) )
+ {
+ throw new BuildException( "'" + updates + "' is not a permitted update policy" );
+ }
+ }
+
+ public String getChecksums()
+ {
+ if ( isReference() )
+ {
+ return getRef().getChecksums();
+ }
+ return ( checksums != null ) ? checksums : RepositoryPolicy.CHECKSUM_POLICY_WARN;
+ }
+
+ public void setChecksums( String checksums )
+ {
+ checkAttributesAllowed();
+ checkChecksums( checksums );
+ this.checksums = checksums;
+ }
+
+ protected static void checkChecksums( String checksums )
+ {
+ if ( !RepositoryPolicy.CHECKSUM_POLICY_FAIL.equals( checksums )
+ && !RepositoryPolicy.CHECKSUM_POLICY_WARN.equals( checksums )
+ && !RepositoryPolicy.CHECKSUM_POLICY_IGNORE.equals( checksums ) )
+ {
+ throw new BuildException( "'" + checksums + "' is not a permitted checksum policy" );
+ }
+ }
+
+ public Authentication getAuthentication()
+ {
+ if ( isReference() )
+ {
+ return getRef().getAuthentication();
+ }
+ return authentication;
+ }
+
+ public void addAuthentication( Authentication authentication )
+ {
+ checkChildrenAllowed();
+ if ( this.authentication != null )
+ {
+ throw new BuildException( "You must not specify multiple <authentication> elements" );
+ }
+ this.authentication = authentication;
+ }
+
+ public void setAuthRef( Reference ref )
+ {
+ checkAttributesAllowed();
+ if ( authentication == null )
+ {
+ authentication = new Authentication();
+ authentication.setProject( getProject() );
+ }
+ authentication.setRefid( ref );
+ }
+
+ public List<RemoteRepository> getRepositories()
+ {
+ return Collections.singletonList( this );
+ }
+
+ /**
+ */
+ public static class Policy
+ {
+
+ private boolean enabled = true;
+
+ private String checksumPolicy;
+
+ private String updatePolicy;
+
+ public boolean isEnabled()
+ {
+ return enabled;
+ }
+
+ public void setEnabled( boolean enabled )
+ {
+ this.enabled = enabled;
+ }
+
+ public String getChecksums()
+ {
+ return checksumPolicy;
+ }
+
+ public void setChecksums( String checksumPolicy )
+ {
+ checkChecksums( checksumPolicy );
+ this.checksumPolicy = checksumPolicy;
+ }
+
+ public String getUpdates()
+ {
+ return updatePolicy;
+ }
+
+ public void setUpdates( String updatePolicy )
+ {
+ checkUpdates( updatePolicy );
+ this.updatePolicy = updatePolicy;
+ }
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepositoryContainer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepositoryContainer.java b/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepositoryContainer.java
new file mode 100644
index 0000000..ab84a98
--- /dev/null
+++ b/src/main/java/org/apache/maven/resolver/internal/ant/types/RemoteRepositoryContainer.java
@@ -0,0 +1,35 @@
+package org.apache.maven.resolver.internal.ant.types;
+
+/*
+ * 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;
+
+import org.apache.tools.ant.Task;
+
+/**
+ */
+public interface RemoteRepositoryContainer
+{
+
+ void validate( Task task );
+
+ List<RemoteRepository> getRepositories();
+
+}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/main/java/org/apache/maven/resolver/internal/ant/types/Settings.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/maven/resolver/internal/ant/types/Settings.java b/src/main/java/org/apache/maven/resolver/internal/ant/types/Settings.java
new file mode 100644
index 0000000..5c77c43
--- /dev/null
+++ b/src/main/java/org/apache/maven/resolver/internal/ant/types/Settings.java
@@ -0,0 +1,86 @@
+package org.apache.maven.resolver.internal.ant.types;
+
+/*
+ * 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 org.apache.maven.resolver.internal.ant.AntRepoSys;
+import org.apache.tools.ant.types.DataType;
+import org.apache.tools.ant.types.Reference;
+
+/**
+ */
+public class Settings
+ extends DataType
+{
+
+ private File file;
+
+ private File globalFile;
+
+ protected Settings getRef()
+ {
+ return (Settings) getCheckedRef();
+ }
+
+ public void setRefid( Reference ref )
+ {
+ if ( file != null || globalFile != null )
+ {
+ throw tooManyAttributes();
+ }
+ super.setRefid( ref );
+ }
+
+ public File getFile()
+ {
+ if ( isReference() )
+ {
+ return getRef().getFile();
+ }
+ return file;
+ }
+
+ public void setFile( File file )
+ {
+ checkAttributesAllowed();
+ this.file = file;
+
+ AntRepoSys.getInstance( getProject() ).setUserSettings( file );
+ }
+
+ public File getGlobalFile()
+ {
+ if ( isReference() )
+ {
+ return getRef().getFile();
+ }
+ return globalFile;
+ }
+
+ public void setGlobalFile( File globalFile )
+ {
+ checkAttributesAllowed();
+ this.globalFile = globalFile;
+
+ AntRepoSys.getInstance( getProject() ).setGlobalSettings( globalFile );
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/main/resources/org/apache/maven/aether/ant/antlib.xml
----------------------------------------------------------------------
diff --git a/src/main/resources/org/apache/maven/aether/ant/antlib.xml b/src/main/resources/org/apache/maven/aether/ant/antlib.xml
deleted file mode 100644
index d08a0c8..0000000
--- a/src/main/resources/org/apache/maven/aether/ant/antlib.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-
-<antlib>
-
- <typedef name="authentication" classname="org.apache.maven.aether.internal.ant.types.Authentication"/>
- <typedef name="proxy" classname="org.apache.maven.aether.internal.ant.types.Proxy"/>
- <typedef name="mirror" classname="org.apache.maven.aether.internal.ant.types.Mirror"/>
- <typedef name="localrepo" classname="org.apache.maven.aether.internal.ant.types.LocalRepository"/>
- <typedef name="remoterepo" classname="org.apache.maven.aether.internal.ant.types.RemoteRepository"/>
- <typedef name="remoterepos" classname="org.apache.maven.aether.internal.ant.types.RemoteRepositories"/>
- <typedef name="dependency" classname="org.apache.maven.aether.internal.ant.types.Dependency"/>
- <typedef name="dependencies" classname="org.apache.maven.aether.internal.ant.types.Dependencies"/>
- <typedef name="artifact" classname="org.apache.maven.aether.internal.ant.types.Artifact"/>
- <typedef name="artifacts" classname="org.apache.maven.aether.internal.ant.types.Artifacts"/>
- <typedef name="settings" classname="org.apache.maven.aether.internal.ant.types.Settings"/>
-
- <taskdef name="resolve" classname="org.apache.maven.aether.internal.ant.tasks.Resolve"/>
- <taskdef name="install" classname="org.apache.maven.aether.internal.ant.tasks.Install"/>
- <taskdef name="deploy" classname="org.apache.maven.aether.internal.ant.tasks.Deploy"/>
- <taskdef name="pom" classname="org.apache.maven.aether.internal.ant.types.Pom"/>
-
-</antlib>
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/main/resources/org/apache/maven/resolver/ant/antlib.xml
----------------------------------------------------------------------
diff --git a/src/main/resources/org/apache/maven/resolver/ant/antlib.xml b/src/main/resources/org/apache/maven/resolver/ant/antlib.xml
new file mode 100644
index 0000000..0e47b30
--- /dev/null
+++ b/src/main/resources/org/apache/maven/resolver/ant/antlib.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<antlib>
+
+ <typedef name="authentication" classname="org.apache.maven.resolver.internal.ant.types.Authentication"/>
+ <typedef name="proxy" classname="org.apache.maven.resolver.internal.ant.types.Proxy"/>
+ <typedef name="mirror" classname="org.apache.maven.resolver.internal.ant.types.Mirror"/>
+ <typedef name="localrepo" classname="org.apache.maven.resolver.internal.ant.types.LocalRepository"/>
+ <typedef name="remoterepo" classname="org.apache.maven.resolver.internal.ant.types.RemoteRepository"/>
+ <typedef name="remoterepos" classname="org.apache.maven.resolver.internal.ant.types.RemoteRepositories"/>
+ <typedef name="dependency" classname="org.apache.maven.resolver.internal.ant.types.Dependency"/>
+ <typedef name="dependencies" classname="org.apache.maven.resolver.internal.ant.types.Dependencies"/>
+ <typedef name="artifact" classname="org.apache.maven.resolver.internal.ant.types.Artifact"/>
+ <typedef name="artifacts" classname="org.apache.maven.resolver.internal.ant.types.Artifacts"/>
+ <typedef name="settings" classname="org.apache.maven.resolver.internal.ant.types.Settings"/>
+
+ <taskdef name="resolve" classname="org.apache.maven.resolver.internal.ant.tasks.Resolve"/>
+ <taskdef name="install" classname="org.apache.maven.resolver.internal.ant.tasks.Install"/>
+ <taskdef name="deploy" classname="org.apache.maven.resolver.internal.ant.tasks.Deploy"/>
+ <taskdef name="pom" classname="org.apache.maven.resolver.internal.ant.types.Pom"/>
+
+</antlib>
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/AntBuildsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/AntBuildsTest.java b/src/test/java/org/apache/maven/aether/internal/ant/AntBuildsTest.java
deleted file mode 100644
index 14a6b04..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/AntBuildsTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package org.apache.maven.aether.internal.ant;
-
-/*
- * 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.io.PrintStream;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.BuildFileTest;
-import org.apache.tools.ant.DefaultLogger;
-import org.apache.tools.ant.Project;
-import org.eclipse.aether.internal.test.util.TestFileUtils;
-
-public abstract class AntBuildsTest
- extends BuildFileTest
-{
-
- private static final File BASE_DIR;
-
- protected static final File BUILD_DIR;
-
- static
- {
- BASE_DIR = new File( "" ).getAbsoluteFile();
- BUILD_DIR = new File( BASE_DIR, "target/ant" );
- }
-
- protected File projectDir;
-
- protected File localRepoDir;
-
- protected File distRepoDir;
-
- protected String getProjectDirName()
- {
- String name = getClass().getSimpleName();
- if ( name.endsWith( "Test" ) )
- {
- name = name.substring( 0, name.length() - 4 );
- }
- return name;
- }
-
- protected void setUpProperties()
- throws Exception
- {
- // hook for subclasses to set further system properties for the project to pick up
- }
-
- @Override
- protected void setUp()
- throws Exception
- {
- super.setUp();
-
- TestFileUtils.deleteFile( BUILD_DIR );
-
- projectDir = new File( new File( BASE_DIR, "src/test/resources/ant" ), getProjectDirName() );
- localRepoDir = new File( BUILD_DIR, "local-repo" );
- distRepoDir = new File( BUILD_DIR, "dist-repo" );
-
- System.setProperty( "project.dir", projectDir.getAbsolutePath() );
- System.setProperty( "build.dir", BUILD_DIR.getAbsolutePath() );
- System.setProperty( "maven.repo.local", localRepoDir.getAbsolutePath() );
- System.setProperty( "project.distrepo.url", distRepoDir.toURI().toString() );
- setUpProperties();
-
- configureProject( new File( projectDir, "ant.xml" ).getAbsolutePath(), Project.MSG_VERBOSE );
- }
-
- @Override
- protected void tearDown()
- throws Exception
- {
- try
- {
- ProjectWorkspaceReader.dropInstance();
- TestFileUtils.deleteFile( BUILD_DIR );
- }
- finally
- {
- super.tearDown();
- }
- }
-
- @Override
- public void configureProject( String filename, int logLevel )
- throws BuildException
- {
- super.configureProject( filename, logLevel );
- DefaultLogger logger = new DefaultLogger()
- {
- @Override
- protected void printMessage( String message, PrintStream stream, int priority )
- {
- message = System.currentTimeMillis() + " " + message;
- super.printMessage( message, stream, priority );
- }
- };
- logger.setMessageOutputLevel( logLevel );
- logger.setOutputPrintStream( System.out );
- logger.setErrorPrintStream( System.err );
- getProject().addBuildListener( logger );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/DeployTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/DeployTest.java b/src/test/java/org/apache/maven/aether/internal/ant/DeployTest.java
deleted file mode 100644
index 7b52562..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/DeployTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.apache.maven.aether.internal.ant;
-
-/*
- * 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 static org.hamcrest.MatcherAssert.*;
-import static org.hamcrest.Matchers.*;
-
-import java.io.File;
-import java.util.Arrays;
-
-/*
- * still missing:
- * - deploy snapshots/releases into correct repos
- */
-public class DeployTest
- extends AntBuildsTest
-{
-
- public void testDeployGlobalPom()
- {
- long min = System.currentTimeMillis();
- executeTarget( "testDeployGlobalPom" );
- long max = System.currentTimeMillis();
-
- assertLogContaining( "Uploading" );
-
- assertUpdatedFile( min, max, distRepoDir, "test/dummy/0.1-SNAPSHOT/maven-metadata.xml" );
- }
-
- public void testDeployOverrideGlobalPom()
- {
- long min = System.currentTimeMillis();
- executeTarget( "testDeployOverrideGlobalPom" );
- long max = System.currentTimeMillis();
-
- assertLogContaining( "Uploading" );
-
- assertUpdatedFile( min, max, distRepoDir, "test/other/0.1-SNAPSHOT/maven-metadata.xml" );
- }
-
- public void testDeployOverrideGlobalPomByRef()
- {
- long min = System.currentTimeMillis();
- executeTarget( "testDeployOverrideGlobalPomByRef" );
- long max = System.currentTimeMillis();
-
- assertLogContaining( "Uploading" );
-
- assertUpdatedFile( min, max, distRepoDir, "test/dummy/0.1-SNAPSHOT/maven-metadata.xml" );
- assertUpdatedFile( min, max, distRepoDir, "test/other/0.1-SNAPSHOT/maven-metadata.xml" );
- }
-
- public void testDeployAttachedArtifact()
- {
- executeTarget( "testDeployAttachedArtifact" );
-
- assertLogContaining( "Uploading" );
-
- File dir = new File(distRepoDir, "test/dummy/0.1-SNAPSHOT/" );
- String[] files = dir.list();
- assertThat( "attached artifact not found: " + Arrays.toString( files ), files,
- hasItemInArray( endsWith( "-ant.xml" ) ) );
- }
-
- private void assertUpdatedFile( long min, long max, File repoPath, String path )
- {
- File file = new File( repoPath, path );
- min = (min / 1000) * 1000;
- max = ((max + 999) / 1000) * 1000;
- assertThat( "File does not exist in default repo: " + file.getAbsolutePath(), file.exists() );
- assertThat( "Files were not updated for 1s before/after timestamp", file.lastModified(),
- allOf( greaterThanOrEqualTo( min ), lessThanOrEqualTo( max ) ) );
- }
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/InstallTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/InstallTest.java b/src/test/java/org/apache/maven/aether/internal/ant/InstallTest.java
deleted file mode 100644
index a445853..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/InstallTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.apache.maven.aether.internal.ant;
-
-/*
- * 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 static org.hamcrest.MatcherAssert.*;
-import static org.hamcrest.Matchers.*;
-
-import java.io.File;
-import java.io.IOException;
-
-public class InstallTest
- extends AntBuildsTest
-{
-
- public void testInstallGlobalPom()
- {
- executeTarget( "testInstallGlobalPom" );
- long tstamp = System.currentTimeMillis();
-
- assertLogContaining( "Installing" );
-
- assertUpdatedFile( tstamp, localRepoDir, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
- }
-
- public void testInstallOverrideGlobalPom()
- {
- executeTarget( "testInstallOverrideGlobalPom" );
- long tstamp = System.currentTimeMillis();
-
- assertLogContaining( "Installing" );
-
- assertUpdatedFile( tstamp, localRepoDir, "test/other/0.1-SNAPSHOT/other-0.1-SNAPSHOT.pom" );
- }
-
- public void testInstallOverrideGlobalPomByRef()
- {
- long tstamp = System.currentTimeMillis();
- executeTarget( "testInstallOverrideGlobalPomByRef" );
-
- assertLogContaining( "Installing" );
-
- assertUpdatedFile( tstamp, localRepoDir, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
- assertUpdatedFile( tstamp, localRepoDir, "test/other/0.1-SNAPSHOT/other-0.1-SNAPSHOT.pom" );
- }
-
- public void testDefaultRepo()
- {
- executeTarget( "testDefaultRepo" );
- long tstamp = System.currentTimeMillis();
-
- assertLogContaining( "Installing" );
-
- assertUpdatedFile( tstamp, localRepoDir, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
- assertUpdatedFile( tstamp, localRepoDir, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT-ant.xml" );
- }
-
- public void testCustomRepo()
- throws IOException
- {
- File repoPath = new File( BUILD_DIR, "local-repo-custom" );
-
- executeTarget( "testCustomRepo" );
- long tstamp = System.currentTimeMillis();
-
- System.out.println( getLog() );
- assertLogContaining( "Installing" );
-
- assertUpdatedFile( tstamp, repoPath, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
- assertUpdatedFile( tstamp, repoPath, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT-ant.xml" );
- }
-
- private void assertUpdatedFile( long tstamp, File repoPath, String path )
- {
- File file = new File( repoPath, path );
- assertThat( "File does not exist in default repo: " + file.getAbsolutePath(), file.exists() );
- assertThat( "Files were not updated for 1s before/after timestamp",
- file.lastModified(),
- allOf( greaterThanOrEqualTo( ( ( tstamp - 500 ) / 1000 ) * 1000 ),
- lessThanOrEqualTo( tstamp + 2000 ) ) );
- }
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/ProjectWorkspaceReaderTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/ProjectWorkspaceReaderTest.java b/src/test/java/org/apache/maven/aether/internal/ant/ProjectWorkspaceReaderTest.java
deleted file mode 100644
index f3972ba..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/ProjectWorkspaceReaderTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package org.apache.maven.aether.internal.ant;
-
-/*
- * 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 static org.hamcrest.Matchers.*;
-import static org.junit.Assert.*;
-
-import java.io.File;
-
-import org.apache.maven.aether.internal.ant.types.Pom;
-import org.apache.tools.ant.Project;
-import org.junit.Before;
-import org.junit.Test;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.DefaultArtifact;
-
-public class ProjectWorkspaceReaderTest
-{
-
- private ProjectWorkspaceReader reader;
-
- private Project project;
-
- @Before
- public void setUp()
- throws Exception
- {
- this.reader = new ProjectWorkspaceReader();
-
- this.project = new Project();
- project.setProperty( "user.home", System.getProperty( "user.home" ) );
- }
-
- private Artifact artifact( String coords )
- {
- return new DefaultArtifact( coords );
- }
-
- private File getFile( String name )
- {
- return new File( "src/test/resources/ProjectWorkspaceReader", name );
- }
-
- @Test
- public void testFindPom()
- {
- Pom pom = new Pom();
- pom.setProject( project );
- pom.setFile( getFile( "dummy-pom.xml" ) );
-
- reader.addPom( pom );
-
- assertEquals( pom.getFile(), reader.findArtifact( artifact( "test:dummy:pom:0.1-SNAPSHOT" ) ) );
- assertNull( reader.findArtifact( artifact( "unavailable:test:pom:0.1-SNAPSHOT" ) ) );
- }
-
- @Test
- public void testFindArtifact()
- {
- Pom pom = new Pom();
- pom.setProject( project );
- pom.setFile( getFile( "dummy-pom.xml" ) );
-
- reader.addPom( pom );
-
- org.apache.maven.aether.internal.ant.types.Artifact artifact = new org.apache.maven.aether.internal.ant.types.Artifact();
- artifact.setProject( project );
- artifact.addPom( pom );
- artifact.setFile( getFile( "dummy-file.txt" ) );
-
- reader.addArtifact( artifact );
-
- assertEquals( artifact.getFile(), reader.findArtifact( artifact( "test:dummy:txt:0.1-SNAPSHOT" ) ) );
- assertNull( reader.findArtifact( artifact( "unavailable:test:jar:0.1-SNAPSHOT" ) ) );
- }
-
- @Test
- public void testFindVersions()
- {
- Pom pom1 = new Pom();
- pom1.setProject( project );
- pom1.setCoords( "test:dummy:1-SNAPSHOT" );
-
- org.apache.maven.aether.internal.ant.types.Artifact artifact1 = new org.apache.maven.aether.internal.ant.types.Artifact();
- artifact1.setProject( project );
- artifact1.addPom( pom1 );
- artifact1.setFile( getFile( "dummy-file.txt" ) );
-
- reader.addArtifact( artifact1 );
-
- Pom pom2 = new Pom();
- pom2.setProject( project );
- pom2.setCoords( "test:dummy:2-SNAPSHOT" );
-
- org.apache.maven.aether.internal.ant.types.Artifact artifact2 = new org.apache.maven.aether.internal.ant.types.Artifact();
- artifact2.setProject( project );
- artifact2.addPom( pom2 );
- artifact2.setFile( getFile( "dummy-file.txt" ) );
-
- reader.addArtifact( artifact2 );
-
- assertThat( reader.findVersions( artifact( "test:dummy:txt:[0,)" ) ),
- containsInAnyOrder( "1-SNAPSHOT", "2-SNAPSHOT" ) );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/ReactorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/ReactorTest.java b/src/test/java/org/apache/maven/aether/internal/ant/ReactorTest.java
deleted file mode 100644
index 86a0ad5..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/ReactorTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.apache.maven.aether.internal.ant;
-
-/*
- * 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.io.IOException;
-
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.DefaultArtifact;
-
-public class ReactorTest
- extends AntBuildsTest
-{
-
- private Artifact artifact( String coords )
- {
- return new DefaultArtifact( coords );
- }
-
- public void testPom()
- throws IOException
- {
- executeTarget( "testPom" );
- ProjectWorkspaceReader reader = ProjectWorkspaceReader.getInstance();
- File found = reader.findArtifact( artifact( "test:test:pom:0.1-SNAPSHOT" ) );
- assertNotNull( found );
- assertEquals( new File( projectDir, "pom1.xml" ), found.getAbsoluteFile() );
- }
-
- public void testArtifact()
- throws IOException
- {
- executeTarget( "testArtifact" );
- ProjectWorkspaceReader reader = ProjectWorkspaceReader.getInstance();
- File found = reader.findArtifact( artifact( "test:test:pom:0.1-SNAPSHOT" ) );
- assertNotNull( found );
- assertEquals( new File( projectDir, "pom1.xml" ), found.getAbsoluteFile() );
-
- found = reader.findArtifact( artifact( "test:test:xml:0.1-SNAPSHOT" ) );
- assertNotNull( found );
- assertEquals( new File( projectDir, "pom1.xml" ), found.getAbsoluteFile() );
- }
-
- public void testArtifactInMemoryPom()
- throws IOException
- {
- executeTarget( "testArtifactInMemoryPom" );
- ProjectWorkspaceReader reader = ProjectWorkspaceReader.getInstance();
- File found = reader.findArtifact( artifact( "test:test:pom:0.1-SNAPSHOT" ) );
- assertNull( found );
-
- found = reader.findArtifact( artifact( "test:test:xml:0.1-SNAPSHOT" ) );
- assertNotNull( found );
- assertEquals( new File( projectDir, "pom1.xml" ), found.getAbsoluteFile() );
- }
-
- public void testResolveArtifact()
- throws IOException
- {
- executeTarget( "testResolveArtifact" );
- String prop = project.getProperty( "resolve.test:test:jar" );
- assertEquals( new File( projectDir, "pom1.xml" ).getAbsolutePath(), prop );
- }
-
- public void testResolveArtifactInMemoryPom()
- throws IOException
- {
- executeTarget( "testResolveArtifactInMemoryPom" );
- String prop = project.getProperty( "resolve.test:test:jar" );
- assertEquals( new File( projectDir, "pom1.xml" ).getAbsolutePath(), prop );
- assertLogContaining( "The POM for test:test:jar:0.1-SNAPSHOT is missing, no dependency information available" );
- }
-
- public void testResolveVersionRange()
- throws IOException
- {
- executeTarget( "testResolveVersionRange" );
- String prop = project.getProperty( "resolve.test:test:jar" );
- assertEquals( new File( projectDir, "pom1.xml" ).getAbsolutePath(), prop );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/ResolveTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/ResolveTest.java b/src/test/java/org/apache/maven/aether/internal/ant/ResolveTest.java
deleted file mode 100644
index 5b41e27..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/ResolveTest.java
+++ /dev/null
@@ -1,150 +0,0 @@
-package org.apache.maven.aether.internal.ant;
-
-/*
- * 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 static org.hamcrest.MatcherAssert.*;
-import static org.hamcrest.Matchers.*;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.types.ResourceCollection;
-import org.apache.tools.ant.types.resources.FileResource;
-
-public class ResolveTest
- extends AntBuildsTest
-{
-
- public void testResolveGlobalPom()
- {
- executeTarget( "testResolveGlobalPom" );
-
- String prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-api:jar" );
- assertThat( "aether-api was not resolved as a property", prop, notNullValue() );
- assertThat( "aether-api was not resolved to default local repository", prop,
- allOf( containsString( "aether-api" ), endsWith( ".jar" ) ) );
- }
-
- public void testResolveOverrideGlobalPom()
- {
- executeTarget( "testResolveOverrideGlobalPom" );
-
- String prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-api:jar" );
- assertThat( "aether-api was not resolved as a property", prop, notNullValue() );
- assertThat( "aether-api was not resolved to default local repository", prop,
- allOf( containsString( "aether-api" ), endsWith( ".jar" ) ) );
- }
-
- public void testResolveGlobalPomIntoOtherLocalRepo()
- {
- executeTarget( "testResolveGlobalPomIntoOtherLocalRepo" );
-
- String prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-api:jar" );
- assertThat( "aether-api was not resolved as a property", prop, notNullValue() );
- assertThat( "aether-api was not resolved to default local repository", prop.replace( '\\', '/' ),
- endsWith( "local-repo-custom/org/eclipse/aether/aether-api/0.9.0.M3/aether-api-0.9.0.M3.jar" ) );
- }
-
- public void testResolveCustomFileLayout()
- throws IOException
- {
- File dir = new File( BUILD_DIR, "resolve-custom-layout" );
- executeTarget( "testResolveCustomFileLayout" );
-
- assertThat( "aether-api was not saved with custom file layout",
- new File( dir, "org.eclipse.aether/aether-api/org/eclipse/aether/jar" ).exists() );
- }
-
- public void testResolveAttachments()
- throws IOException
- {
- File dir = new File( BUILD_DIR, "resolve-attachments" );
- executeTarget( "testResolveAttachments" );
-
- File jdocDir = new File(dir, "javadoc");
-
- assertThat( "aether-api-javadoc was not saved with custom file layout",
- new File( jdocDir, "org.eclipse.aether-aether-api-javadoc.jar" ).exists() );
-
- assertThat( "found non-javadoc files", Arrays.asList( jdocDir.list() ), everyItem( endsWith( "javadoc.jar" ) ) );
-
- File sourcesDir = new File( dir, "sources" );
- assertThat( "aether-api-sources was not saved with custom file layout",
- new File( sourcesDir, "org.eclipse.aether-aether-api-sources.jar" ).exists() );
- assertThat( "found non-sources files", Arrays.asList( sourcesDir.list() ),
- everyItem( endsWith( "sources.jar" ) ) );
- }
-
- public void testResolvePath()
- {
- executeTarget( "testResolvePath" );
- Map<?, ?> refs = getProject().getReferences();
- Object obj = refs.get( "out" );
- assertThat( "ref 'out' is no path", obj, instanceOf( Path.class ) );
- Path path = (Path) obj;
- String[] elements = path.list();
- assertThat( "no aether-api on classpath", elements,
- hasItemInArray( allOf( containsString( "aether-api" ), endsWith( ".jar" ) ) ) );
- }
-
- public void testResolveDepsFromFile()
- {
- executeTarget( "testResolveDepsFromFile" );
-
- String prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-spi:jar" );
- assertThat( "aether-spi was not resolved as a property", prop, notNullValue() );
- assertThat( "aether-spi was not resolved to default local repository", prop,
- allOf( containsString( "aether-spi" ), endsWith( ".jar" ) ) );
- prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-api:jar" );
- assertThat( "aether-api was resolved as a property", prop, nullValue() );
- }
-
- public void testResolveNestedDependencyCollections()
- {
- executeTarget( "testResolveNestedDependencyCollections" );
-
- String prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-spi:jar" );
- assertThat( "aether-spi was not resolved as a property", prop, notNullValue() );
- prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-util:jar" );
- assertThat( "aether-util was not resolved as a property", prop, notNullValue() );
- prop = getProject().getProperty( "test.resolve.path.org.eclipse.aether:aether-api:jar" );
- assertThat( "aether-api was resolved as a property", prop, nullValue() );
- }
-
- public void testResolveResourceCollectionOnly()
- {
- executeTarget( "testResolveResourceCollectionOnly" );
-
- ResourceCollection resources = (ResourceCollection) getProject().getReference( "files" );
- assertThat( resources, is( notNullValue() ) );
- assertThat( resources.size(), is( 2 ) );
- assertThat( resources.isFilesystemOnly(), is( true ) );
- Iterator<?> it = resources.iterator();
- FileResource file = (FileResource) it.next();
- assertThat( file.getFile().getName(), is( "aether-spi-0.9.0.v20140226.jar" ) );
- file = (FileResource) it.next();
- assertThat( file.getFile().getName(), is( "aether-api-0.9.0.v20140226.jar" ) );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/SettingsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/SettingsTest.java b/src/test/java/org/apache/maven/aether/internal/ant/SettingsTest.java
deleted file mode 100644
index 94a90a2..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/SettingsTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.apache.maven.aether.internal.ant;
-
-/*
- * 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 static org.hamcrest.MatcherAssert.*;
-import static org.hamcrest.Matchers.*;
-
-import java.io.File;
-import java.io.IOException;
-
-public class SettingsTest
- extends AntBuildsTest
-{
-
- public void testUserSettings()
- {
- executeTarget( "testUserSettings" );
- assertThat( "user settings not set", AntRepoSys.getInstance( getProject() ).getUserSettings().getName(),
- equalTo( "userSettings.xml" ) );
- }
-
- public void testGlobalSettings()
- {
- executeTarget( "testGlobalSettings" );
- assertThat( "global settings not set", AntRepoSys.getInstance( getProject() ).getGlobalSettings().getName(),
- equalTo( "globalSettings.xml" ) );
- }
-
- public void testBothSettings()
- {
- executeTarget( "testBothSettings" );
- assertThat( "global settings not set", AntRepoSys.getInstance( getProject() ).getGlobalSettings().getName(),
- equalTo( "globalSettings.xml" ) );
- assertThat( "user settings not set", AntRepoSys.getInstance( getProject() ).getUserSettings().getName(),
- equalTo( "userSettings.xml" ) );
- }
-
- public void testFallback()
- throws IOException
- {
- executeTarget("setUp");
- assertThat( "no fallback to local settings",
- AntRepoSys.getInstance( getProject() ).getUserSettings().getAbsolutePath(), endsWith( ".m2"
- + File.separator + "settings.xml" ) );
- }
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/tasks/LayoutTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/tasks/LayoutTest.java b/src/test/java/org/apache/maven/aether/internal/ant/tasks/LayoutTest.java
deleted file mode 100644
index 85ca36f..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/tasks/LayoutTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.apache.maven.aether.internal.ant.tasks;
-
-/*
- * 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 static org.junit.Assert.assertEquals;
-
-import org.apache.tools.ant.BuildException;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.junit.Test;
-
-/**
- */
-public class LayoutTest
-{
-
- @Test( expected = BuildException.class )
- public void testUnknownVariable()
- {
- new Layout( "{unknown}" );
- }
-
- @Test
- public void testGetPath()
- {
- Layout layout;
-
- layout =
- new Layout( "{groupIdDirs}/{artifactId}/{baseVersion}/{artifactId}-{version}-{classifier}.{extension}" );
- assertEquals( "org/apache/maven/maven-model/3.0-SNAPSHOT/maven-model-3.0-20100720.132618-1.jar",
- layout.getPath( new DefaultArtifact( "org.apache.maven:maven-model:3.0-20100720.132618-1" ) ) );
-
- layout = new Layout( "{groupId}/{artifactId}-{version}-{classifier}.{extension}" );
- assertEquals( "org.apache.maven/maven-model-3.0-sources.jar",
- layout.getPath( new DefaultArtifact( "org.apache.maven:maven-model:jar:sources:3.0" ) ) );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/types/DependencyTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/types/DependencyTest.java b/src/test/java/org/apache/maven/aether/internal/ant/types/DependencyTest.java
deleted file mode 100644
index f5f04aa..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/types/DependencyTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.apache.maven.aether.internal.ant.types;
-
-/*
- * 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 static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- */
-public class DependencyTest
-{
-
- @Test
- public void testSetCoordsGidAidVer()
- {
- Dependency dep = new Dependency();
- dep.setCoords( "gid:aid:ver" );
-
- assertEquals( "gid", dep.getGroupId() );
- assertEquals( "aid", dep.getArtifactId() );
- assertEquals( "ver", dep.getVersion() );
- assertEquals( "jar", dep.getType() );
- assertEquals( "", dep.getClassifier() );
- assertEquals( "compile", dep.getScope() );
- }
-
- @Test
- public void testSetCoordsGidAidVerScope()
- {
- Dependency dep = new Dependency();
- dep.setCoords( "gid:aid:ver:scope" );
-
- assertEquals( "gid", dep.getGroupId() );
- assertEquals( "aid", dep.getArtifactId() );
- assertEquals( "ver", dep.getVersion() );
- assertEquals( "jar", dep.getType() );
- assertEquals( "", dep.getClassifier() );
- assertEquals( "scope", dep.getScope() );
- }
-
- @Test
- public void testSetCoordsGidAidVerTypeScope()
- {
- Dependency dep = new Dependency();
- dep.setCoords( "gid:aid:ver:type:scope" );
-
- assertEquals( "gid", dep.getGroupId() );
- assertEquals( "aid", dep.getArtifactId() );
- assertEquals( "ver", dep.getVersion() );
- assertEquals( "type", dep.getType() );
- assertEquals( "", dep.getClassifier() );
- assertEquals( "scope", dep.getScope() );
- }
-
- @Test
- public void testSetCoordsGidAidVerTypeClsScope()
- {
- Dependency dep = new Dependency();
- dep.setCoords( "gid:aid:ver:type:cls:scope" );
-
- assertEquals( "gid", dep.getGroupId() );
- assertEquals( "aid", dep.getArtifactId() );
- assertEquals( "ver", dep.getVersion() );
- assertEquals( "type", dep.getType() );
- assertEquals( "cls", dep.getClassifier() );
- assertEquals( "scope", dep.getScope() );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/types/ExclusionTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/types/ExclusionTest.java b/src/test/java/org/apache/maven/aether/internal/ant/types/ExclusionTest.java
deleted file mode 100644
index a187e7c..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/types/ExclusionTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.apache.maven.aether.internal.ant.types;
-
-/*
- * 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 static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- */
-public class ExclusionTest
-{
-
- @Test
- public void testSetCoordsGid()
- {
- Exclusion ex = new Exclusion();
- ex.setCoords( "gid" );
-
- assertEquals( "gid", ex.getGroupId() );
- assertEquals( "*", ex.getArtifactId() );
- assertEquals( "*", ex.getExtension() );
- assertEquals( "*", ex.getClassifier() );
- }
-
- @Test
- public void testSetCoordsGidAid()
- {
- Exclusion ex = new Exclusion();
- ex.setCoords( "gid:aid" );
-
- assertEquals( "gid", ex.getGroupId() );
- assertEquals( "aid", ex.getArtifactId() );
- assertEquals( "*", ex.getExtension() );
- assertEquals( "*", ex.getClassifier() );
- }
-
- @Test
- public void testSetCoordsGidAidExt()
- {
- Exclusion ex = new Exclusion();
- ex.setCoords( "gid:aid:ext" );
-
- assertEquals( "gid", ex.getGroupId() );
- assertEquals( "aid", ex.getArtifactId() );
- assertEquals( "ext", ex.getExtension() );
- assertEquals( "*", ex.getClassifier() );
- }
-
- @Test
- public void testSetCoordsGidAidExtCls()
- {
- Exclusion ex = new Exclusion();
- ex.setCoords( "gid:aid:ext:cls" );
-
- assertEquals( "gid", ex.getGroupId() );
- assertEquals( "aid", ex.getArtifactId() );
- assertEquals( "ext", ex.getExtension() );
- assertEquals( "cls", ex.getClassifier() );
-
- ex = new Exclusion();
- ex.setCoords( "gid:aid:ext:" );
-
- assertEquals( "gid", ex.getGroupId() );
- assertEquals( "aid", ex.getArtifactId() );
- assertEquals( "ext", ex.getExtension() );
- assertEquals( "", ex.getClassifier() );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/aether/internal/ant/types/PomTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/aether/internal/ant/types/PomTest.java b/src/test/java/org/apache/maven/aether/internal/ant/types/PomTest.java
deleted file mode 100644
index 8ca1fae..0000000
--- a/src/test/java/org/apache/maven/aether/internal/ant/types/PomTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.apache.maven.aether.internal.ant.types;
-
-/*
- * 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 static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- */
-public class PomTest
-{
-
- @Test
- public void testSetCoordsGid()
- {
- Pom pom = new Pom();
- pom.setCoords( "gid:aid:ver" );
-
- assertEquals( "gid", pom.getGroupId() );
- assertEquals( "aid", pom.getArtifactId() );
- assertEquals( "ver", pom.getVersion() );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildsTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildsTest.java
new file mode 100644
index 0000000..aaf73da
--- /dev/null
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/AntBuildsTest.java
@@ -0,0 +1,124 @@
+package org.apache.maven.resolver.internal.ant;
+
+/*
+ * 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.io.PrintStream;
+
+import org.apache.maven.resolver.internal.ant.ProjectWorkspaceReader;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.BuildFileTest;
+import org.apache.tools.ant.DefaultLogger;
+import org.apache.tools.ant.Project;
+import org.eclipse.aether.internal.test.util.TestFileUtils;
+
+public abstract class AntBuildsTest
+ extends BuildFileTest
+{
+
+ private static final File BASE_DIR;
+
+ protected static final File BUILD_DIR;
+
+ static
+ {
+ BASE_DIR = new File( "" ).getAbsoluteFile();
+ BUILD_DIR = new File( BASE_DIR, "target/ant" );
+ }
+
+ protected File projectDir;
+
+ protected File localRepoDir;
+
+ protected File distRepoDir;
+
+ protected String getProjectDirName()
+ {
+ String name = getClass().getSimpleName();
+ if ( name.endsWith( "Test" ) )
+ {
+ name = name.substring( 0, name.length() - 4 );
+ }
+ return name;
+ }
+
+ protected void setUpProperties()
+ throws Exception
+ {
+ // hook for subclasses to set further system properties for the project to pick up
+ }
+
+ @Override
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ TestFileUtils.deleteFile( BUILD_DIR );
+
+ projectDir = new File( new File( BASE_DIR, "src/test/resources/ant" ), getProjectDirName() );
+ localRepoDir = new File( BUILD_DIR, "local-repo" );
+ distRepoDir = new File( BUILD_DIR, "dist-repo" );
+
+ System.setProperty( "project.dir", projectDir.getAbsolutePath() );
+ System.setProperty( "build.dir", BUILD_DIR.getAbsolutePath() );
+ System.setProperty( "maven.repo.local", localRepoDir.getAbsolutePath() );
+ System.setProperty( "project.distrepo.url", distRepoDir.toURI().toString() );
+ setUpProperties();
+
+ configureProject( new File( projectDir, "ant.xml" ).getAbsolutePath(), Project.MSG_VERBOSE );
+ }
+
+ @Override
+ protected void tearDown()
+ throws Exception
+ {
+ try
+ {
+ ProjectWorkspaceReader.dropInstance();
+ TestFileUtils.deleteFile( BUILD_DIR );
+ }
+ finally
+ {
+ super.tearDown();
+ }
+ }
+
+ @Override
+ public void configureProject( String filename, int logLevel )
+ throws BuildException
+ {
+ super.configureProject( filename, logLevel );
+ DefaultLogger logger = new DefaultLogger()
+ {
+ @Override
+ protected void printMessage( String message, PrintStream stream, int priority )
+ {
+ message = System.currentTimeMillis() + " " + message;
+ super.printMessage( message, stream, priority );
+ }
+ };
+ logger.setMessageOutputLevel( logLevel );
+ logger.setOutputPrintStream( System.out );
+ logger.setErrorPrintStream( System.err );
+ getProject().addBuildListener( logger );
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/resolver/internal/ant/DeployTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/DeployTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/DeployTest.java
new file mode 100644
index 0000000..203bdba
--- /dev/null
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/DeployTest.java
@@ -0,0 +1,91 @@
+package org.apache.maven.resolver.internal.ant;
+
+/*
+ * 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 static org.hamcrest.MatcherAssert.*;
+import static org.hamcrest.Matchers.*;
+
+import java.io.File;
+import java.util.Arrays;
+
+/*
+ * still missing:
+ * - deploy snapshots/releases into correct repos
+ */
+public class DeployTest
+ extends AntBuildsTest
+{
+
+ public void testDeployGlobalPom()
+ {
+ long min = System.currentTimeMillis();
+ executeTarget( "testDeployGlobalPom" );
+ long max = System.currentTimeMillis();
+
+ assertLogContaining( "Uploading" );
+
+ assertUpdatedFile( min, max, distRepoDir, "test/dummy/0.1-SNAPSHOT/maven-metadata.xml" );
+ }
+
+ public void testDeployOverrideGlobalPom()
+ {
+ long min = System.currentTimeMillis();
+ executeTarget( "testDeployOverrideGlobalPom" );
+ long max = System.currentTimeMillis();
+
+ assertLogContaining( "Uploading" );
+
+ assertUpdatedFile( min, max, distRepoDir, "test/other/0.1-SNAPSHOT/maven-metadata.xml" );
+ }
+
+ public void testDeployOverrideGlobalPomByRef()
+ {
+ long min = System.currentTimeMillis();
+ executeTarget( "testDeployOverrideGlobalPomByRef" );
+ long max = System.currentTimeMillis();
+
+ assertLogContaining( "Uploading" );
+
+ assertUpdatedFile( min, max, distRepoDir, "test/dummy/0.1-SNAPSHOT/maven-metadata.xml" );
+ assertUpdatedFile( min, max, distRepoDir, "test/other/0.1-SNAPSHOT/maven-metadata.xml" );
+ }
+
+ public void testDeployAttachedArtifact()
+ {
+ executeTarget( "testDeployAttachedArtifact" );
+
+ assertLogContaining( "Uploading" );
+
+ File dir = new File(distRepoDir, "test/dummy/0.1-SNAPSHOT/" );
+ String[] files = dir.list();
+ assertThat( "attached artifact not found: " + Arrays.toString( files ), files,
+ hasItemInArray( endsWith( "-ant.xml" ) ) );
+ }
+
+ private void assertUpdatedFile( long min, long max, File repoPath, String path )
+ {
+ File file = new File( repoPath, path );
+ min = (min / 1000) * 1000;
+ max = ((max + 999) / 1000) * 1000;
+ assertThat( "File does not exist in default repo: " + file.getAbsolutePath(), file.exists() );
+ assertThat( "Files were not updated for 1s before/after timestamp", file.lastModified(),
+ allOf( greaterThanOrEqualTo( min ), lessThanOrEqualTo( max ) ) );
+ }
+}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/b5f1ab9c/src/test/java/org/apache/maven/resolver/internal/ant/InstallTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/maven/resolver/internal/ant/InstallTest.java b/src/test/java/org/apache/maven/resolver/internal/ant/InstallTest.java
new file mode 100644
index 0000000..bd3fcaa
--- /dev/null
+++ b/src/test/java/org/apache/maven/resolver/internal/ant/InstallTest.java
@@ -0,0 +1,98 @@
+package org.apache.maven.resolver.internal.ant;
+
+/*
+ * 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 static org.hamcrest.MatcherAssert.*;
+import static org.hamcrest.Matchers.*;
+
+import java.io.File;
+import java.io.IOException;
+
+public class InstallTest
+ extends AntBuildsTest
+{
+
+ public void testInstallGlobalPom()
+ {
+ executeTarget( "testInstallGlobalPom" );
+ long tstamp = System.currentTimeMillis();
+
+ assertLogContaining( "Installing" );
+
+ assertUpdatedFile( tstamp, localRepoDir, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
+ }
+
+ public void testInstallOverrideGlobalPom()
+ {
+ executeTarget( "testInstallOverrideGlobalPom" );
+ long tstamp = System.currentTimeMillis();
+
+ assertLogContaining( "Installing" );
+
+ assertUpdatedFile( tstamp, localRepoDir, "test/other/0.1-SNAPSHOT/other-0.1-SNAPSHOT.pom" );
+ }
+
+ public void testInstallOverrideGlobalPomByRef()
+ {
+ long tstamp = System.currentTimeMillis();
+ executeTarget( "testInstallOverrideGlobalPomByRef" );
+
+ assertLogContaining( "Installing" );
+
+ assertUpdatedFile( tstamp, localRepoDir, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
+ assertUpdatedFile( tstamp, localRepoDir, "test/other/0.1-SNAPSHOT/other-0.1-SNAPSHOT.pom" );
+ }
+
+ public void testDefaultRepo()
+ {
+ executeTarget( "testDefaultRepo" );
+ long tstamp = System.currentTimeMillis();
+
+ assertLogContaining( "Installing" );
+
+ assertUpdatedFile( tstamp, localRepoDir, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
+ assertUpdatedFile( tstamp, localRepoDir, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT-ant.xml" );
+ }
+
+ public void testCustomRepo()
+ throws IOException
+ {
+ File repoPath = new File( BUILD_DIR, "local-repo-custom" );
+
+ executeTarget( "testCustomRepo" );
+ long tstamp = System.currentTimeMillis();
+
+ System.out.println( getLog() );
+ assertLogContaining( "Installing" );
+
+ assertUpdatedFile( tstamp, repoPath, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT.pom" );
+ assertUpdatedFile( tstamp, repoPath, "test/dummy/0.1-SNAPSHOT/dummy-0.1-SNAPSHOT-ant.xml" );
+ }
+
+ private void assertUpdatedFile( long tstamp, File repoPath, String path )
+ {
+ File file = new File( repoPath, path );
+ assertThat( "File does not exist in default repo: " + file.getAbsolutePath(), file.exists() );
+ assertThat( "Files were not updated for 1s before/after timestamp",
+ file.lastModified(),
+ allOf( greaterThanOrEqualTo( ( ( tstamp - 500 ) / 1000 ) * 1000 ),
+ lessThanOrEqualTo( tstamp + 2000 ) ) );
+ }
+}