You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by mi...@apache.org on 2003/04/30 10:29:41 UTC
cvs commit: maven-new/core/src/java/org/apache/maven/artifact ArtifactVerifier.java ArtifactListProcessor.java DefaultArtifactListProcessor.java DefaultArtifact.java Artifact.java DefaultArtifactFactory.java RepositoryLayout.java ArtifactHandler.java DefaultRepositoryLayout.java DefaultArtifactVerifier.java ArtifactFactory.java
michal 2003/04/30 01:29:40
Added: core/src/java/org/apache/maven/artifact/handlers
JarHandler.java PluginHandler.java
core/src/java/org/apache/maven/artifact
ArtifactVerifier.java ArtifactListProcessor.java
DefaultArtifactListProcessor.java
DefaultArtifact.java Artifact.java
DefaultArtifactFactory.java RepositoryLayout.java
ArtifactHandler.java DefaultRepositoryLayout.java
DefaultArtifactVerifier.java ArtifactFactory.java
Log:
added to repository
Revision Changes Path
1.1 maven-new/core/src/java/org/apache/maven/artifact/handlers/JarHandler.java
Index: JarHandler.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact.handlers;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactHandler;
import org.apache.maven.project.Project;
/**
* Artifact Handler resposible of processing
* artifacts of type like jars, ejb, etc.
* Artifact path is appended to build class path
*
* @todo implement me!
*
* @author Michal Maczka
* @version $Revision: 1.1 $ $Date: 2003/04/30 08:29:39 $
*/
public class JarHandler implements ArtifactHandler
{
/**
* @see org.apache.maven.artifact.ArtifactHandler#process(org.apache.maven.artifact.Artifact, org.apache.maven.project.Project)
*/
public void process(Artifact artifact, Project project)
{
project.setDependencyPath(artifact.getName(), artifact.getPath());
}
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/handlers/PluginHandler.java
Index: PluginHandler.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact.handlers;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactHandler;
import org.apache.maven.project.Project;
/**
* {@link ArtifactHandler} for Maven Plugins
*
* @todo implement me!
*
* @author Michal Maczka
* @version $Revision: 1.1 $ $Date: 2003/04/30 08:29:39 $
*/
public class PluginHandler implements ArtifactHandler
{
/**
* @see org.apache.maven.artifact.ArtifactHandler#process(org.apache.maven.artifact.Artifact, org.apache.maven.project.Project)
*/
public void process(Artifact artifact, Project project)
{
}
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/ArtifactVerifier.java
Index: ArtifactVerifier.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact;
import org.apache.maven.verifier.ChecksumVerificationException;
/**
* The interface defining an artifact (which probably lives in the
* repository).
*
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id: ArtifactVerifier.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public interface ArtifactVerifier
{
void verify(Artifact artifact) throws ChecksumVerificationException;
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/ArtifactListProcessor.java
Index: ArtifactListProcessor.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact;
import org.apache.maven.project.Project;
/**
* Class resposible to convert information kept in
* the {@link Project} into the list of artifacts.
*
* @author <a href="mailto:michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id: ArtifactListProcessor.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public interface ArtifactListProcessor
{
public static final String ROLE = ArtifactListProcessor.class.getName();
/**
* Return an list of artifacts based on the information kept in the Project.
* There is one to one relation between project's dependiencies and artifacts
* and currently for each dependecy one artifact should created.
*
*
* @param project The project for which the artifact list will be resolved
* @return The list contating resolved artifacts.
*/
public void processArtifacts(Project project) throws Exception;
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/DefaultArtifactListProcessor.java
Index: DefaultArtifactListProcessor.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
F* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact;
import java.io.File;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.maven.MavenConstants;
import org.apache.maven.MavenException;
import org.apache.maven.project.Project;
/**
* Simple factory for creating Artifact implementations based on a dependency
* type.
*
* @author <a href="mailto:michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id: DefaultArtifactListProcessor.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public class DefaultArtifactListProcessor
implements Initializable, ArtifactListProcessor
{
/**
* Maps type to its handler Object
*/
private Map cachedGlobalHandlers = new HashMap();
/**
* Configuraation file.
* We will lazy load handlers. Once we need one
* for given type we will instattiate it
* and put to cachedGlobalHandlers map
*/
private Properties globalHandlers = null;
// ----------------------------------------------------------------------
// Lifecycle Management
// ----------------------------------------------------------------------
/**
* @see org.apache.avalon.framework.activity.Initializable#initialize()
*/
public void initialize() throws Exception
{
InputStream inputStream = null;
File configFile = null;
try
{
Class clazz = DefaultArtifactListProcessor.class;
inputStream =
clazz.getResourceAsStream(
MavenConstants.ARTIFACT_HANDLER_PROPERTIES);
globalHandlers = new Properties();
globalHandlers.load(inputStream);
}
catch (Exception e)
{
String message = "Cannot read global layout.properties file";
throw new MavenException(message, e);
}
finally
{
if (inputStream != null)
{
try
{
inputStream.close();
}
catch (Exception e)
{
}
}
}
}
/**
* @see org.apache.maven.artifact.ArtifactListProcessor#processArtifacts(org.apache.maven.project.Project)
*/
public void processArtifacts(Project project) throws Exception
{
List artifacts = project.getArtifacts();
for (Iterator iter = artifacts.iterator(); iter.hasNext();)
{
Artifact artifact = (Artifact) iter.next();
String type = artifact.getType();
ArtifactHandler artifactHandler = getHandler(type);
if (artifactHandler != null)
{
artifactHandler.process(artifact, project);
}
}
}
/**
* @param type
* @return
*/
private ArtifactHandler getHandler(String type) throws Exception
{
if (cachedGlobalHandlers.containsKey(type))
{
return (ArtifactHandler) cachedGlobalHandlers.get(type);
}
String handlerClassname = globalHandlers.getProperty(type);
if (handlerClassname == null)
{
return null;
}
Class clazz = Class.forName(handlerClassname);
ArtifactHandler artifactHandler = (ArtifactHandler) clazz.newInstance();
cachedGlobalHandlers.put(type, artifactHandler);
return artifactHandler;
}
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/DefaultArtifact.java
Index: DefaultArtifact.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact;
import java.io.File;
import org.apache.maven.MavenConstants;
import org.apache.maven.project.Dependency;
/**
* The default implemenation of {@link Artifact}
* interface
*
* @author <a href="jason@zenplex.com">Jason van Zyl</a>
* @version $Id: DefaultArtifact.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public class DefaultArtifact implements Artifact {
/** Platform specific file separator used for file system operations. */
protected final static String PATH_SEPARATOR = File.separator;
/**
* The id of this artifact
*/
private String id;
/**
*
*The group id for the artifact.
*/
private String groupId;
/**
* Version of this artifact
*/
private String version;
/**
* Type such as "jar" or "war"
*/
private String type;
/**
* The artifact file.
*/
private File file;
/**
*
* Assocaiated dependency
*/
private Dependency dependency = null;
/**
* @see org.apache.maven.artifact.Artifact#setId(java.lang.String)
*/
public void setId(String id) {
this.id = id;
}
/**
* @see org.apache.maven.artifact.Artifact#getId()
*/
public String getId() {
return id;
}
/**
* @see org.apache.maven.artifact.Artifact#setGroupId(java.lang.String)
*/
public void setGroupId(String groupId) {
this.groupId = groupId;
}
/**
* @see org.apache.maven.artifact.Artifact#getGroupId()
*/
public String getGroupId() {
return groupId;
}
/**
* @see org.apache.maven.artifact.Artifact#setVersion(java.lang.String)
*/
public void setVersion(String version) {
this.version = version;
}
/**
* @see org.apache.maven.artifact.Artifact#getVersion()
*/
public String getVersion() {
return version;
}
/**
* @see org.apache.maven.artifact.Artifact#getType()
*/
public String getType() {
return type;
}
/**
* @see org.apache.maven.artifact.Artifact#setType(java.lang.String)
*/
public void setType(String type) {
this.type = type;
}
/**
* @see org.apache.maven.artifact.Artifact#getPath()
*/
public String getPath() {
return PATH_SEPARATOR + getFile();
}
/**
* @see org.apache.maven.artifact.Artifact#getUrlPath()
*/
public String getUrlPath() {
return "/" + getFile();
}
/**
* @see org.apache.maven.artifact.Artifact#getChecksumUrl()
*/
public String getChecksumUrl() {
return getUrlPath() + ".md5";
}
/**
* @see org.apache.maven.artifact.Artifact#isSnapshot()
*/
public boolean isSnapshot() {
return getVersion().endsWith(MavenConstants.SNAPSHOT_SIGNIFIER);
}
/**
* @see org.apache.maven.artifact.Artifact#exists()
*/
public boolean exists() {
if (getFile().exists()) {
return true;
}
else {
return false;
}
}
/**
* @see org.apache.maven.artifact.Artifact#getFile()
*/
public File getFile() {
return file;
}
/**
* @see org.apache.maven.artifact.Artifact#setFile(java.lang.String)
*/
public void setFile(String file) {
setFile(new File(file));
}
/**
* @ see org.apache.maven.artifact.Artifact # setFile(java.lang.String)
*/
public void setFile(File file) {
this.file = file;
}
/**
* @see org.apache.maven.artifact.Artifact#getDependency()
*/
public Dependency getDependency() {
return dependency;
}
/**
* @see org.apache.maven.artifact.Artifact#getName()
*/
public String getName() {
return getGroupId() + ":" + getId();
}
/**
* @see org.apache.maven.artifact.Artifact#setDependency(null)
*/
public void setDependency(Dependency dependency) {
this.dependency = dependency;
}
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/Artifact.java
Index: Artifact.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact;
import java.io.File;
import org.apache.maven.project.Dependency;
/**
* The interface defining an artifact (which probably lives in the
* repository).
*
*
* @author <a href="jason@zenplex.com">Jason van Zyl</a>
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id: Artifact.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public interface Artifact {
/**
* Set the dependency for this JAR artifact.
*
* @param dependency Dependency this artifact is based on.
*/
void setDependency(Dependency dependency);
/**
* Get the dependency.
*
* @return The dependency this artifact is based on.
*/
Dependency getDependency();
/**
* Set id
* @param id Id of the artifact
*/
void setId(String id);
/**
* Get id
* @return id of this artifact
*/
String getId();
/**
* Set the group id.
*
* @param groupId Group id for the artifact.
*/
void setGroupId(String groupId);
/**
* Get the group id.
*
* @return The group id for the artifact.
*/
String getGroupId();
/**
* Set the version for this artifact.
*
* @param version Version for this artifact
*/
void setVersion(String version);
/**
* Get the version of this artifact.
*
* @return Version of this artifact
*/
String getVersion();
/**
* Get the type of the artifact.
*
* @return dependency type such as "compile" or "test"
*/
String getType();
/**
* Sets the dependency type such as "compile" or "test"
*
* @param type The type of artifact.
*/
void setType(String type);
/**
* Set the path to the artifact. The maven jar override facilty can be
* used to change the path to the artifact if the user specifies the
* use of a specific version.
*
* @param path Path to the artifact.
*/
void setFile(String file);
/**
* Return a path that is platform agnostic.
*
* @return URL of the artifact.
*/
String getPath();
/**
* Return an URL path that is platform agnostic.
*
* @return URL of the artifact.
*/
String getUrlPath();
/**
* Return the url to the checksum file for this artifact.
*
* @return URL of the checksum file for this artifact.
*/
String getChecksumUrl();
/**
* Boolean flag indicating whether this artifact is a snapshot.
*
* @return Flag indicating whether this artifact is a snapshot.
*/
boolean isSnapshot();
/**
* Boolean flag indicating whether this artifact exists.
*
* @return Flag indicating the existance of the artifact in the local repository.
*/
boolean exists();
/**
* Get the location of the artifact in the local file system.
*
* @return The location of the artifact in the local file system.
*/
File getFile();
/**
* Returns "groupId:id"
*
* @return "groupId:id"
*/
String getName();
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/DefaultArtifactFactory.java
Index: DefaultArtifactFactory.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
F* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.maven.project.Dependency;
import org.apache.maven.project.Project;
/**
* Simple factory for creating Artifact implementations based on a dependency
* type.
*
* @author <a href="mailto:michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id: DefaultArtifactFactory.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public class DefaultArtifactFactory
implements Serviceable, ArtifactFactory
{
private RepositoryLayout repositoryLayout = null;
/**
* Return an appropriate Artifact implementation based on the dependency
* type.
*
* @param dependency The base dependency.
* @return The appropriate artifact based on the dependency type.
*/
public List createArtifacts(Project project) throws Exception
{
List dependencies = project.getDependencies();
List artifacts = new ArrayList();
boolean mavenJarOverride = project.getMavenJarOverride().booleanValue();
for (Iterator iter = dependencies.iterator(); iter.hasNext();)
{
Dependency dependency = (Dependency) iter.next();
if (dependency.getType() == null
|| dependency.getType().trim().length() == 0)
{
dependency.setType("jar");
}
Artifact artifact = new DefaultArtifact();
artifact.setDependency(dependency);
artifact.setId(dependency.getArtifactId());
artifact.setGroupId(dependency.getArtifactDirectory());
artifact.setType(dependency.getType());
// JAR OVERRIDING
String mavenJarProperty =
project.getMavenJarOverride(
Project.standardToLegacyId(dependency.getId()));
String path = null;
String version = dependency.getVersion();
if (mavenJarOverride
&& mavenJarProperty != null
&& mavenJarProperty.length() > 0)
{
// The jar override option has been set and we have a property
// for the this dependency so override the path with the user
// specified value.
if (Character.isDigit(mavenJarProperty.charAt(0)))
{
// User is requesting a specific version of a dependency
// be used.
version = mavenJarProperty;
}
else
{
// User is requesting a specific path to a dependency
// be used.
path = new File(mavenJarProperty).getAbsolutePath();
}
}
artifact.setVersion(version);
if (path == null)
{
path = generatePath(artifact);
}
artifact.setFile(path);
artifacts.add(artifact);
}
return artifacts;
}
/**
* @param artifact
* @return
*/
private String generatePath(Artifact artifact) throws Exception
{
return repositoryLayout.generatePath(artifact);
}
// ----------------------------------------------------------------------
// Lifecycle Management
// ----------------------------------------------------------------------
/**
* @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
*/
public void service(ServiceManager serviceManager) throws ServiceException
{
repositoryLayout =
(RepositoryLayout) serviceManager.lookup(RepositoryLayout.ROLE);
}
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/RepositoryLayout.java
Index: RepositoryLayout.java
===================================================================
package org.apache.maven.artifact;
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
/**
* <code>RepositoryLayout</code> describes how artifacts are to
* be arranged in a user's local repository.
*
* @author <a href="jason@zenplex.com">Jason van Zyl</a>
* @version $Id: RepositoryLayout.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public interface RepositoryLayout
{
public static final String ROLE = RepositoryLayout.class.getName();
/**
*
* @param artifact
* @return
*/
String generatePath(Artifact artifact) throws Exception;
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/ArtifactHandler.java
Index: ArtifactHandler.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact;
import org.apache.maven.project.Project;
/**
* The interface defining a contract for the class
* resposible to process artifact
*
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id: ArtifactHandler.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public interface ArtifactHandler
{
/**
*
* @param artifact
*/
void process(Artifact artifact, Project project);
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/DefaultRepositoryLayout.java
Index: DefaultRepositoryLayout.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact;
import java.io.File;
import java.io.InputStream;
import java.util.Properties;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.maven.MavenConstants;
import org.apache.maven.MavenException;
import org.apache.plexus.util.StringUtils;
/**
* The standard {@link org.apache.maven.repository.RepositoryLayout}
* implementation.
*
* @author <a href="jason@zenplex.com">Jason van Zyl</a>
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id: DefaultRepositoryLayout.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public class DefaultRepositoryLayout implements Initializable, RepositoryLayout
{
private final static String DEFAULT_LAYOUT =
"${groupId}/${type}s/${id}-${version}.${type}";
/**
* List of cachedGlobalLayouts.
*/
private Properties globalLayouts = new Properties();
public String generatePath(Artifact artifact) throws Exception
{
// see if we have layout for this artifact type alredy in the cache
String type = artifact.getType();
String layout = (String) globalLayouts.get(type);
if (layout == null)
{
layout = DEFAULT_LAYOUT;
globalLayouts.put(type,layout);
}
// interpolation of layout
layout = StringUtils.replace(layout, "${id}", artifact.getId());
layout =
StringUtils.replace(layout, "${groupId}", artifact.getGroupId());
layout = StringUtils.replace(layout, "${type}", artifact.getType());
layout =
StringUtils.replace(layout, "${version}", artifact.getVersion());
return layout;
}
// ----------------------------------------------------------------------
// Lifecycle Management
// ----------------------------------------------------------------------
/**
* @see org.apache.avalon.framework.activity.Initializable#initialize()
*/
public void initialize() throws Exception
{
InputStream inputStream = null;
File configFile = null;
try
{
inputStream =
DefaultRepositoryLayout.class.getResourceAsStream(
MavenConstants.LAYOUT_PROPERTIES);
globalLayouts.load(inputStream);
}
catch (Exception e)
{
String message = "Cannot read global layout.properties file";
throw new MavenException(message, e);
}
finally
{
if (inputStream != null)
{
try
{
inputStream.close();
}
catch (Exception e)
{
}
}
}
}
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/DefaultArtifactVerifier.java
Index: DefaultArtifactVerifier.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.maven.util.I18NUtils;
import org.apache.maven.util.MD5Sum;
import org.apache.maven.verifier.ChecksumVerificationException;
/**
* The interface defining an artifact (which probably lives in the
* repository).
*
* @author <a href="jason@zenplex.com">Jason van Zyl</a>
* @version $Id: DefaultArtifactVerifier.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public class DefaultArtifactVerifier
{
// ----------------------------------------------------------------------
// C H E C K S U M V E R I F I C A T I O N
// ----------------------------------------------------------------------
public void verify(Artifact artifact) throws ChecksumVerificationException
{
File artifactFile = artifact.getFile();
File checksumFile = new File(artifactFile.getName() + ".md5");
// The central repository is not fully populated with md5
// checksum files yet so we'll be a little lax right now but
// hopefully in the future we can differentiate or specify
// repositories whose artifacts must undergo verification.
if (checksumFile.exists() == false)
{
return;
}
String actualChecksum = null;
MD5Sum md5 = null;
try
{
md5 = new MD5Sum();
md5.setFile(artifactFile);
md5.execute();
actualChecksum = fileRead(checksumFile);
actualChecksum =
actualChecksum.substring(0, actualChecksum.length() - 1);
}
catch (Exception e)
{
return;
}
System.out.println("'" + actualChecksum + "'");
System.out.println("'" + md5.getChecksum() + "'");
if (actualChecksum.equals(md5.getChecksum()) == false)
{
throw new ChecksumVerificationException(
I18NUtils.getMessage(
"checksum.verification.error",
artifact.getPath()));
}
}
/**
* Reads the contents of a file.
*
* @param file The name of the file to read.
* @return The file contents or null if read failed.
*/
private String fileRead(File file) throws IOException
{
InputStream in = null;
try
{
StringBuffer buf = new StringBuffer();
in = new BufferedInputStream(new FileInputStream(file));
int count;
byte[] b = new byte[512];
while ((count = in.read(b)) > 0) // blocking read
{
buf.append(new String(b, 0, count));
}
return buf.toString();
}
finally
{
if (in != null)
{
in.close();
}
}
}
}
1.1 maven-new/core/src/java/org/apache/maven/artifact/ArtifactFactory.java
Index: ArtifactFactory.java
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" and
* "Apache MavenSession" must not be used to endorse or promote products
* derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* "Apache MavenSession", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
* ====================================================================
*/
package org.apache.maven.artifact;
import java.util.List;
import org.apache.maven.project.Project;
/**
* Class resposible for converting {@link Project}'s list
* of dependicies into the list of artifacts.
*
* @author <a href="mailto:michal.maczka@dimatics.com">Michal Maczka</a>
* @version $Id: ArtifactFactory.java,v 1.1 2003/04/30 08:29:40 michal Exp $
*/
public interface ArtifactFactory
{
public static final String ROLE = ArtifactFactory.class.getName();
/**
* Return an list of artifacts based on the information kept in the Project.
* There is one to one relation between project's dependiencies and artifacts
* and currently for each dependecy one artifact should created.
*
*
* @param project The project for which the artifact list will be resolved
* @return The list contating resolved artifacts.
*/
public List createArtifacts(Project project) throws Exception;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
RE: cvs commit: maven-new/core/src/java/org/apache/maven/artifact ArtifactVerifier.java ArtifactListProcessor.java DefaultArtifactListProcessor.java DefaultArtifact.java Artifact.java DefaultArtifactFactory.java RepositoryLayout.java ArtifactHandler.java
Posted by Michal Maczka <mm...@interia.pl>.
> -----Original Message-----
> From: dion@multitask.com.au [mailto:dion@multitask.com.au]
> Sent: Thursday, May 01, 2003 5:05 AM
> To: Maven Developers List
> Subject: Re: cvs commit:
> maven-new/core/src/java/org/apache/maven/artifact
> ArtifactVerifier.java ArtifactListProcessor.java
> DefaultArtifactListProcessor.java DefaultArtifact.java
> Artifact.java DefaultArtifactFactory.java RepositoryLayout.java
> ArtifactHandler.java
>
>
> Hey Michal,
>
> as the resident commit message reader and critic, can you please make the
> descriptions a little more descriptive?
> --
> dIon Gillard, Multitask Consulting
> Blog: http://www.freeroller.net/page/dion/Weblog
> Work: http://www.multitask.com.au
>
>
Hey Dion,
Well I will do my best next time...
Simply I believed that when you commit to CVS all you have to do is to
describe the change you did to a file.
Since I just added file to repository...I just supplied information "added
to repository".
regards
Michal
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: cvs commit: maven-new/core/src/java/org/apache/maven/artifact
ArtifactVerifier.java ArtifactListProcessor.java
DefaultArtifactListProcessor.java DefaultArtifact.java Artifact.java
DefaultArtifactFactory.java RepositoryLayout.java ArtifactHandler.java
DefaultRepositoryLayout.java DefaultArtifactVerifier.java
ArtifactFactory.java
Posted by di...@multitask.com.au.
Hey Michal,
as the resident commit message reader and critic, can you please make the
descriptions a little more descriptive?
--
dIon Gillard, Multitask Consulting
Blog: http://www.freeroller.net/page/dion/Weblog
Work: http://www.multitask.com.au
michal@apache.org wrote on 30/04/2003 06:29:41 PM:
> michal 2003/04/30 01:29:40
>
> Added: core/src/java/org/apache/maven/artifact/handlers
> JarHandler.java PluginHandler.java
> core/src/java/org/apache/maven/artifact
> ArtifactVerifier.java ArtifactListProcessor.java
> DefaultArtifactListProcessor.java
> DefaultArtifact.java Artifact.java
> DefaultArtifactFactory.java
RepositoryLayout.java
> ArtifactHandler.java
DefaultRepositoryLayout.java
> DefaultArtifactVerifier.java
ArtifactFactory.java
> Log:
> added to repository
>
> Revision Changes Path
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/handlers/JarHandler.java
>
> Index: JarHandler.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact.handlers;
>
> import org.apache.maven.artifact.Artifact;
> import org.apache.maven.artifact.ArtifactHandler;
> import org.apache.maven.project.Project;
>
> /**
> * Artifact Handler resposible of processing
> * artifacts of type like jars, ejb, etc.
> * Artifact path is appended to build class path
> *
> * @todo implement me!
> *
> * @author Michal Maczka
> * @version $Revision: 1.1 $ $Date: 2003/04/30 08:29:39 $
> */
> public class JarHandler implements ArtifactHandler
> {
>
> /**
> * @see org.apache.maven.artifact.ArtifactHandler#process(org.
> apache.maven.artifact.Artifact, org.apache.maven.project.Project)
> */
> public void process(Artifact artifact, Project project)
> {
> project.setDependencyPath(artifact.getName(),
artifact.getPath());
> }
>
> }
>
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/handlers/PluginHandler.java
>
> Index: PluginHandler.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact.handlers;
>
> import org.apache.maven.artifact.Artifact;
> import org.apache.maven.artifact.ArtifactHandler;
> import org.apache.maven.project.Project;
>
> /**
> * {@link ArtifactHandler} for Maven Plugins
> *
> * @todo implement me!
> *
> * @author Michal Maczka
> * @version $Revision: 1.1 $ $Date: 2003/04/30 08:29:39 $
> */
> public class PluginHandler implements ArtifactHandler
> {
> /**
> * @see org.apache.maven.artifact.ArtifactHandler#process(org.
> apache.maven.artifact.Artifact, org.apache.maven.project.Project)
> */
> public void process(Artifact artifact, Project project)
> {
> }
> }
>
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/ArtifactVerifier.java
>
> Index: ArtifactVerifier.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact;
>
> import org.apache.maven.verifier.ChecksumVerificationException;
>
> /**
> * The interface defining an artifact (which probably lives in the
> * repository).
> *
> * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
> * @version $Id: ArtifactVerifier.java,v 1.1 2003/04/30 08:29:40
michal Exp $
> */
> public interface ArtifactVerifier
> {
> void verify(Artifact artifact) throws
ChecksumVerificationException;
> }
>
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/ArtifactListProcessor.java
>
> Index: ArtifactListProcessor.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact;
>
> import org.apache.maven.project.Project;
>
> /**
> * Class resposible to convert information kept in
> * the {@link Project} into the list of artifacts.
> *
> * @author <a href="mailto:michal.maczka@dimatics.com">Michal
Maczka</a>
> * @version $Id: ArtifactListProcessor.java,v 1.1 2003/04/30 08:29:
> 40 michal Exp $
> */
> public interface ArtifactListProcessor
> {
> public static final String ROLE =
ArtifactListProcessor.class.getName();
>
> /**
> * Return an list of artifacts based on the information kept in
> the Project.
> * There is one to one relation between project's dependiencies
> and artifacts
> * and currently for each dependecy one artifact should created.
> *
> *
> * @param project The project for which the artifact list will
> be resolved
> * @return The list contating resolved artifacts.
> */
> public void processArtifacts(Project project) throws Exception;
>
> }
>
>
>
> 1.1 maven-
>
new/core/src/java/org/apache/maven/artifact/DefaultArtifactListProcessor.java
>
> Index: DefaultArtifactListProcessor.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> F* SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact;
>
> import java.io.File;
> import java.io.InputStream;
> import java.util.HashMap;
> import java.util.Iterator;
> import java.util.List;
> import java.util.Map;
> import java.util.Properties;
>
> import org.apache.avalon.framework.activity.Initializable;
> import org.apache.maven.MavenConstants;
> import org.apache.maven.MavenException;
> import org.apache.maven.project.Project;
>
> /**
> * Simple factory for creating Artifact implementations based on a
dependency
> * type.
> *
> * @author <a href="mailto:michal.maczka@dimatics.com">Michal
Maczka</a>
> * @version $Id: DefaultArtifactListProcessor.java,v 1.1 2003/04/30
> 08:29:40 michal Exp $
> */
> public class DefaultArtifactListProcessor
> implements Initializable, ArtifactListProcessor
> {
>
> /**
> * Maps type to its handler Object
> */
> private Map cachedGlobalHandlers = new HashMap();
>
> /**
> * Configuraation file.
> * We will lazy load handlers. Once we need one
> * for given type we will instattiate it
> * and put to cachedGlobalHandlers map
> */
> private Properties globalHandlers = null;
>
> //
----------------------------------------------------------------------
> // Lifecycle Management
> //
----------------------------------------------------------------------
>
> /**
> * @see
org.apache.avalon.framework.activity.Initializable#initialize()
> */
> public void initialize() throws Exception
> {
> InputStream inputStream = null;
> File configFile = null;
> try
> {
> Class clazz = DefaultArtifactListProcessor.class;
> inputStream =
> clazz.getResourceAsStream(
> MavenConstants.ARTIFACT_HANDLER_PROPERTIES);
> globalHandlers = new Properties();
> globalHandlers.load(inputStream);
> }
> catch (Exception e)
> {
> String message = "Cannot read global layout.properties
file";
> throw new MavenException(message, e);
> }
> finally
> {
> if (inputStream != null)
> {
> try
> {
> inputStream.close();
> }
> catch (Exception e)
> {
> }
> }
> }
> }
>
> /**
> * @see org.apache.maven.artifact.
> ArtifactListProcessor#processArtifacts(org.apache.maven.project.Project)
> */
> public void processArtifacts(Project project) throws Exception
> {
> List artifacts = project.getArtifacts();
> for (Iterator iter = artifacts.iterator(); iter.hasNext();)
> {
> Artifact artifact = (Artifact) iter.next();
> String type = artifact.getType();
> ArtifactHandler artifactHandler = getHandler(type);
> if (artifactHandler != null)
> {
> artifactHandler.process(artifact, project);
> }
> }
> }
>
> /**
> * @param type
> * @return
> */
> private ArtifactHandler getHandler(String type) throws Exception
> {
> if (cachedGlobalHandlers.containsKey(type))
> {
> return (ArtifactHandler) cachedGlobalHandlers.get(type);
> }
> String handlerClassname = globalHandlers.getProperty(type);
> if (handlerClassname == null)
> {
> return null;
> }
> Class clazz = Class.forName(handlerClassname);
> ArtifactHandler artifactHandler = (ArtifactHandler) clazz.
> newInstance();
> cachedGlobalHandlers.put(type, artifactHandler);
> return artifactHandler;
> }
>
> }
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/DefaultArtifact.java
>
> Index: DefaultArtifact.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact;
>
> import java.io.File;
>
> import org.apache.maven.MavenConstants;
> import org.apache.maven.project.Dependency;
>
> /**
> * The default implemenation of {@link Artifact}
> * interface
> *
> * @author <a href="jason@zenplex.com">Jason van Zyl</a>
> * @version $Id: DefaultArtifact.java,v 1.1 2003/04/30 08:29:40 michal
Exp $
> */
>
> public class DefaultArtifact implements Artifact {
>
> /** Platform specific file separator used for file system
operations. */
> protected final static String PATH_SEPARATOR = File.separator;
>
> /**
> * The id of this artifact
> */
> private String id;
>
> /**
> *
> *The group id for the artifact.
> */
> private String groupId;
>
> /**
> * Version of this artifact
> */
> private String version;
>
> /**
> * Type such as "jar" or "war"
> */
> private String type;
>
> /**
> * The artifact file.
> */
> private File file;
>
> /**
> *
> * Assocaiated dependency
> */
> private Dependency dependency = null;
>
> /**
> * @see org.apache.maven.artifact.Artifact#setId(java.lang.String)
> */
> public void setId(String id) {
> this.id = id;
>
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#getId()
> */
> public String getId() {
> return id;
> }
>
> /**
> * @see
org.apache.maven.artifact.Artifact#setGroupId(java.lang.String)
> */
> public void setGroupId(String groupId) {
> this.groupId = groupId;
>
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#getGroupId()
> */
> public String getGroupId() {
> return groupId;
> }
>
> /**
> * @see
org.apache.maven.artifact.Artifact#setVersion(java.lang.String)
> */
> public void setVersion(String version) {
> this.version = version;
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#getVersion()
> */
> public String getVersion() {
> return version;
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#getType()
> */
> public String getType() {
>
> return type;
> }
>
> /**
> * @see
org.apache.maven.artifact.Artifact#setType(java.lang.String)
> */
> public void setType(String type) {
> this.type = type;
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#getPath()
> */
> public String getPath() {
> return PATH_SEPARATOR + getFile();
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#getUrlPath()
> */
> public String getUrlPath() {
>
> return "/" + getFile();
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#getChecksumUrl()
> */
> public String getChecksumUrl() {
> return getUrlPath() + ".md5";
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#isSnapshot()
> */
> public boolean isSnapshot() {
> return getVersion().endsWith(MavenConstants.SNAPSHOT_SIGNIFIER);
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#exists()
> */
> public boolean exists() {
> if (getFile().exists()) {
> return true;
> }
> else {
> return false;
> }
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#getFile()
> */
> public File getFile() {
> return file;
> }
>
> /**
> * @see
org.apache.maven.artifact.Artifact#setFile(java.lang.String)
> */
> public void setFile(String file) {
> setFile(new File(file));
>
> }
>
> /**
> * @ see org.apache.maven.artifact.Artifact #
setFile(java.lang.String)
> */
> public void setFile(File file) {
> this.file = file;
>
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#getDependency()
> */
> public Dependency getDependency() {
>
> return dependency;
> }
>
> /**
> * @see org.apache.maven.artifact.Artifact#getName()
> */
> public String getName() {
> return getGroupId() + ":" + getId();
> }
> /**
> * @see org.apache.maven.artifact.Artifact#setDependency(null)
> */
> public void setDependency(Dependency dependency) {
> this.dependency = dependency;
> }
>
> }
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/Artifact.java
>
> Index: Artifact.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact;
>
> import java.io.File;
>
> import org.apache.maven.project.Dependency;
>
> /**
> * The interface defining an artifact (which probably lives in the
> * repository).
> *
> *
> * @author <a href="jason@zenplex.com">Jason van Zyl</a>
> * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
> * @version $Id: Artifact.java,v 1.1 2003/04/30 08:29:40 michal Exp $
> */
> public interface Artifact {
>
> /**
> * Set the dependency for this JAR artifact.
> *
> * @param dependency Dependency this artifact is based on.
> */
> void setDependency(Dependency dependency);
>
> /**
> * Get the dependency.
> *
> * @return The dependency this artifact is based on.
> */
> Dependency getDependency();
>
> /**
> * Set id
> * @param id Id of the artifact
> */
> void setId(String id);
>
> /**
> * Get id
> * @return id of this artifact
> */
> String getId();
>
> /**
> * Set the group id.
> *
> * @param groupId Group id for the artifact.
> */
> void setGroupId(String groupId);
>
> /**
> * Get the group id.
> *
> * @return The group id for the artifact.
> */
> String getGroupId();
>
> /**
> * Set the version for this artifact.
> *
> * @param version Version for this artifact
> */
> void setVersion(String version);
>
> /**
> * Get the version of this artifact.
> *
> * @return Version of this artifact
> */
> String getVersion();
>
> /**
> * Get the type of the artifact.
> *
> * @return dependency type such as "compile" or "test"
> */
> String getType();
>
> /**
> * Sets the dependency type such as "compile" or "test"
> *
> * @param type The type of artifact.
> */
> void setType(String type);
>
> /**
> * Set the path to the artifact. The maven jar override facilty can
be
> * used to change the path to the artifact if the user specifies
the
> * use of a specific version.
> *
> * @param path Path to the artifact.
> */
> void setFile(String file);
>
> /**
> * Return a path that is platform agnostic.
> *
> * @return URL of the artifact.
> */
> String getPath();
>
> /**
> * Return an URL path that is platform agnostic.
> *
> * @return URL of the artifact.
> */
> String getUrlPath();
>
> /**
> * Return the url to the checksum file for this artifact.
> *
> * @return URL of the checksum file for this artifact.
> */
> String getChecksumUrl();
>
> /**
> * Boolean flag indicating whether this artifact is a snapshot.
> *
> * @return Flag indicating whether this artifact is a snapshot.
> */
> boolean isSnapshot();
>
> /**
> * Boolean flag indicating whether this artifact exists.
> *
> * @return Flag indicating the existance of the artifact in the
> local repository.
> */
> boolean exists();
>
> /**
> * Get the location of the artifact in the local file system.
> *
> * @return The location of the artifact in the local file system.
> */
> File getFile();
>
> /**
> * Returns "groupId:id"
> *
> * @return "groupId:id"
> */
> String getName();
> }
>
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/DefaultArtifactFactory.java
>
> Index: DefaultArtifactFactory.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> F* SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact;
>
> import java.io.File;
> import java.util.ArrayList;
> import java.util.Iterator;
> import java.util.List;
>
> import org.apache.avalon.framework.service.ServiceException;
> import org.apache.avalon.framework.service.ServiceManager;
> import org.apache.avalon.framework.service.Serviceable;
> import org.apache.maven.project.Dependency;
> import org.apache.maven.project.Project;
>
> /**
> * Simple factory for creating Artifact implementations based on a
dependency
> * type.
> *
> * @author <a href="mailto:michal.maczka@dimatics.com">Michal
Maczka</a>
> * @version $Id: DefaultArtifactFactory.java,v 1.1 2003/04/30 08:29:
> 40 michal Exp $
> */
> public class DefaultArtifactFactory
> implements Serviceable, ArtifactFactory
> {
>
> private RepositoryLayout repositoryLayout = null;
>
> /**
> * Return an appropriate Artifact implementation based on the
dependency
> * type.
> *
> * @param dependency The base dependency.
> * @return The appropriate artifact based on the dependency type.
> */
> public List createArtifacts(Project project) throws Exception
> {
> List dependencies = project.getDependencies();
> List artifacts = new ArrayList();
> boolean mavenJarOverride = project.getMavenJarOverride().
> booleanValue();
> for (Iterator iter = dependencies.iterator(); iter.hasNext();)
> {
> Dependency dependency = (Dependency) iter.next();
> if (dependency.getType() == null
> || dependency.getType().trim().length() == 0)
> {
> dependency.setType("jar");
> }
> Artifact artifact = new DefaultArtifact();
> artifact.setDependency(dependency);
> artifact.setId(dependency.getArtifactId());
> artifact.setGroupId(dependency.getArtifactDirectory());
> artifact.setType(dependency.getType());
>
> // JAR OVERRIDING
> String mavenJarProperty =
> project.getMavenJarOverride(
> Project.standardToLegacyId(dependency.getId()));
>
> String path = null;
> String version = dependency.getVersion();
>
> if (mavenJarOverride
> && mavenJarProperty != null
> && mavenJarProperty.length() > 0)
> {
> // The jar override option has been set and we have a
property
> // for the this dependency so override the path with
the user
> // specified value.
> if (Character.isDigit(mavenJarProperty.charAt(0)))
> {
> // User is requesting a specific version of a
dependency
> // be used.
> version = mavenJarProperty;
> }
> else
> {
> // User is requesting a specific path to a
dependency
> // be used.
> path = new
File(mavenJarProperty).getAbsolutePath();
> }
> }
> artifact.setVersion(version);
> if (path == null)
> {
> path = generatePath(artifact);
> }
> artifact.setFile(path);
> artifacts.add(artifact);
> }
> return artifacts;
> }
>
> /**
> * @param artifact
> * @return
> */
> private String generatePath(Artifact artifact) throws Exception
> {
> return repositoryLayout.generatePath(artifact);
> }
>
> //
----------------------------------------------------------------------
> // Lifecycle Management
> //
----------------------------------------------------------------------
>
> /**
> * @see org.apache.avalon.framework.service.
> Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
> */
> public void service(ServiceManager serviceManager) throws
ServiceException
> {
> repositoryLayout =
> (RepositoryLayout)
serviceManager.lookup(RepositoryLayout.ROLE);
> }
>
> }
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/RepositoryLayout.java
>
> Index: RepositoryLayout.java
> ===================================================================
> package org.apache.maven.artifact;
>
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
>
> /**
> * <code>RepositoryLayout</code> describes how artifacts are to
> * be arranged in a user's local repository.
> *
> * @author <a href="jason@zenplex.com">Jason van Zyl</a>
> * @version $Id: RepositoryLayout.java,v 1.1 2003/04/30 08:29:40
michal Exp $
> */
> public interface RepositoryLayout
> {
>
> public static final String ROLE = RepositoryLayout.class.getName();
>
> /**
> *
> * @param artifact
> * @return
> */
> String generatePath(Artifact artifact) throws Exception;
>
> }
>
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/ArtifactHandler.java
>
> Index: ArtifactHandler.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact;
>
> import org.apache.maven.project.Project;
>
> /**
> * The interface defining a contract for the class
> * resposible to process artifact
> *
> * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
> * @version $Id: ArtifactHandler.java,v 1.1 2003/04/30 08:29:40 michal
Exp $
> */
> public interface ArtifactHandler
> {
> /**
> *
> * @param artifact
> */
> void process(Artifact artifact, Project project);
>
> }
>
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/DefaultRepositoryLayout.java
>
> Index: DefaultRepositoryLayout.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact;
>
> import java.io.File;
> import java.io.InputStream;
> import java.util.Properties;
>
> import org.apache.avalon.framework.activity.Initializable;
> import org.apache.maven.MavenConstants;
> import org.apache.maven.MavenException;
> import org.apache.plexus.util.StringUtils;
>
> /**
> * The standard {@link org.apache.maven.repository.RepositoryLayout}
> * implementation.
> *
> * @author <a href="jason@zenplex.com">Jason van Zyl</a>
> * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
> * @version $Id: DefaultRepositoryLayout.java,v 1.1 2003/04/30 08:
> 29:40 michal Exp $
> */
> public class DefaultRepositoryLayout implements Initializable,
> RepositoryLayout
> {
>
> private final static String DEFAULT_LAYOUT =
> "${groupId}/${type}s/${id}-${version}.${type}";
>
> /**
> * List of cachedGlobalLayouts.
> */
> private Properties globalLayouts = new Properties();
>
> public String generatePath(Artifact artifact) throws Exception
> {
> // see if we have layout for this artifact type alredy in the
cache
> String type = artifact.getType();
> String layout = (String) globalLayouts.get(type);
> if (layout == null)
> {
> layout = DEFAULT_LAYOUT;
> globalLayouts.put(type,layout);
> }
> // interpolation of layout
> layout = StringUtils.replace(layout, "${id}", artifact.
> getId());
> layout =
> StringUtils.replace(layout, "${groupId}",
artifact.getGroupId());
>
> layout = StringUtils.replace(layout, "${type}",
artifact.getType());
> layout =
> StringUtils.replace(layout, "${version}",
artifact.getVersion());
> return layout;
> }
>
> //
----------------------------------------------------------------------
> // Lifecycle Management
> //
----------------------------------------------------------------------
>
> /**
> * @see
org.apache.avalon.framework.activity.Initializable#initialize()
> */
> public void initialize() throws Exception
> {
> InputStream inputStream = null;
> File configFile = null;
> try
> {
> inputStream =
> DefaultRepositoryLayout.class.getResourceAsStream(
> MavenConstants.LAYOUT_PROPERTIES);
> globalLayouts.load(inputStream);
> }
> catch (Exception e)
> {
> String message = "Cannot read global layout.properties
file";
> throw new MavenException(message, e);
> }
> finally
> {
> if (inputStream != null)
> {
> try
> {
> inputStream.close();
> }
> catch (Exception e)
> {
> }
> }
> }
> }
> }
>
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/DefaultArtifactVerifier.java
>
> Index: DefaultArtifactVerifier.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact;
>
> import java.io.BufferedInputStream;
> import java.io.File;
> import java.io.FileInputStream;
> import java.io.IOException;
> import java.io.InputStream;
>
> import org.apache.maven.util.I18NUtils;
> import org.apache.maven.util.MD5Sum;
> import org.apache.maven.verifier.ChecksumVerificationException;
>
> /**
> * The interface defining an artifact (which probably lives in the
> * repository).
> *
> * @author <a href="jason@zenplex.com">Jason van Zyl</a>
> * @version $Id: DefaultArtifactVerifier.java,v 1.1 2003/04/30 08:
> 29:40 michal Exp $
> */
> public class DefaultArtifactVerifier
> {
>
> //
----------------------------------------------------------------------
> // C H E C K S U M V E R I F I C A T I O N
> //
----------------------------------------------------------------------
>
> public void verify(Artifact artifact) throws
ChecksumVerificationException
> {
>
> File artifactFile = artifact.getFile();
> File checksumFile = new File(artifactFile.getName() + ".md5");
>
> // The central repository is not fully populated with md5
> // checksum files yet so we'll be a little lax right now but
> // hopefully in the future we can differentiate or specify
> // repositories whose artifacts must undergo verification.
> if (checksumFile.exists() == false)
> {
> return;
> }
>
> String actualChecksum = null;
> MD5Sum md5 = null;
> try
> {
> md5 = new MD5Sum();
> md5.setFile(artifactFile);
> md5.execute();
>
> actualChecksum = fileRead(checksumFile);
> actualChecksum =
> actualChecksum.substring(0, actualChecksum.length() -
1);
> }
> catch (Exception e)
> {
> return;
> }
> System.out.println("'" + actualChecksum + "'");
> System.out.println("'" + md5.getChecksum() + "'");
> if (actualChecksum.equals(md5.getChecksum()) == false)
> {
> throw new ChecksumVerificationException(
> I18NUtils.getMessage(
> "checksum.verification.error",
> artifact.getPath()));
> }
> }
>
> /**
> * Reads the contents of a file.
> *
> * @param file The name of the file to read.
> * @return The file contents or null if read failed.
> */
> private String fileRead(File file) throws IOException
> {
> InputStream in = null;
> try
> {
> StringBuffer buf = new StringBuffer();
> in = new BufferedInputStream(new FileInputStream(file));
> int count;
> byte[] b = new byte[512];
> while ((count = in.read(b)) > 0) // blocking read
> {
> buf.append(new String(b, 0, count));
> }
> return buf.toString();
> }
> finally
> {
> if (in != null)
> {
> in.close();
> }
> }
> }
>
> }
>
>
>
> 1.1 maven-
> new/core/src/java/org/apache/maven/artifact/ArtifactFactory.java
>
> Index: ArtifactFactory.java
> ===================================================================
> /*
====================================================================
> * The Apache Software License, Version 1.1
> *
> * Copyright (c) 2002 The Apache Software Foundation. All rights
> * reserved.
> *
> * Redistribution and use in source and binary forms, with or without
> * modification, are permitted provided that the following conditions
> * are met:
> *
> * 1. Redistributions of source code must retain the above copyright
> * notice, this list of conditions and the following disclaimer.
> *
> * 2. Redistributions in binary form must reproduce the above
copyright
> * notice, this list of conditions and the following disclaimer in
> * the documentation and/or other materials provided with the
> * distribution.
> *
> * 3. The end-user documentation included with the redistribution,
> * if any, must include the following acknowledgment:
> * "This product includes software developed by the
> * Apache Software Foundation (http://www.apache.org/)."
> * Alternately, this acknowledgment may appear in the software
itself,
> * if and wherever such third-party acknowledgments normally
appear.
> *
> * 4. The names "Apache" and "Apache Software Foundation" and
> * "Apache MavenSession" must not be used to endorse or promote
products
> * derived from this software without prior written permission. For
> * written permission, please contact apache@apache.org.
> *
> * 5. Products derived from this software may not be called "Apache",
> * "Apache MavenSession", nor may "Apache" appear in their name,
without
> * prior written permission of the Apache Software Foundation.
> *
> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> * SUCH DAMAGE.
> *
====================================================================
> *
> * This software consists of voluntary contributions made by many
> * individuals on behalf of the Apache Software Foundation. For more
> * information on the Apache Software Foundation, please see
> * <http://www.apache.org/>.
> *
> *
====================================================================
> */
> package org.apache.maven.artifact;
>
> import java.util.List;
>
> import org.apache.maven.project.Project;
>
> /**
> * Class resposible for converting {@link Project}'s list
> * of dependicies into the list of artifacts.
> *
> * @author <a href="mailto:michal.maczka@dimatics.com">Michal
Maczka</a>
> * @version $Id: ArtifactFactory.java,v 1.1 2003/04/30 08:29:40 michal
Exp $
> */
> public interface ArtifactFactory
> {
>
> public static final String ROLE = ArtifactFactory.class.getName();
>
> /**
> * Return an list of artifacts based on the information kept in
> the Project.
> * There is one to one relation between project's dependiencies
> and artifacts
> * and currently for each dependecy one artifact should created.
> *
> *
> * @param project The project for which the artifact list will
> be resolved
> * @return The list contating resolved artifacts.
> */
> public List createArtifacts(Project project) throws Exception;
>
> }
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org