jvanzyl 2003/09/29 16:52:00
Modified: release/src/main/org/apache/maven/release
SnapshotResolver.java
Log:
o MAVEN-542
http://jira.codehaus.org/secure/ViewIssue.jspa?id=11157
Revision Changes Path
1.13 +185 -175
maven-plugins/release/src/main/org/apache/maven/release/SnapshotResolver.java
Index: SnapshotResolver.java
===================================================================
RCS file:
/home/cvs/maven-plugins/release/src/main/org/apache/maven/release/SnapshotResolver.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- SnapshotResolver.java 13 Apr 2003 00:56:02 -0000 1.12
+++ SnapshotResolver.java 29 Sep 2003 23:52:00 -0000 1.13
@@ -1,175 +1,185 @@
-package org.apache.maven.release;
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 Maven" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact [EMAIL PROTECTED]
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Apache Maven", 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/>.
- *
- * ====================================================================
- */
-
-import org.apache.commons.io.FileUtils;
-import org.apache.maven.MavenConstants;
-import org.apache.maven.util.HttpUtils;
-import org.dom4j.Node;
-
-import java.io.File;
-
-/**
- *
- *
- * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- *
- * @version $Id$
- */
-public class SnapshotResolver
- extends AbstractPomTransformer
-{
- // -------------------------------------------------------------------------
- // Accessors
- // -------------------------------------------------------------------------
-
- public String selectNodesXPathExpression()
- {
- return "/project/dependencies/dependency[version='SNAPSHOT']";
- }
-
- public String selectNodeXPath()
- {
- return "version";
- }
-
- public String getNodeContent( Node node )
- throws Exception
- {
- String timestampVersion = null;
-
- Node idNode = node.selectSingleNode( "id" );
-
- String groupId;
- String artifactId;
-
- if ( idNode != null )
- {
- groupId = idNode.getText();
- artifactId = groupId;
- }
- else
- {
- Node artifactIdNode = node.selectSingleNode( "artifactId" );
- Node groupIdNode = node.selectSingleNode( "groupId" );
-
- groupId = groupIdNode.getText();
- artifactId = artifactIdNode.getText();
- }
-
- // Now we need to attempt to find the the actual timestamp
- // version for this dependency.
-
- // Variables are being stored as ConstantExpressions ...
-
- /*
- String url = getVariables().get( MavenConstants.REPO_REMOTE ) + "/" +
- groupId + "/jars/" + artifactId + "-snapshot-version";
- */
-
- String url = "http://www.ibiblio.org/maven/" + groupId + "/jars/" +
artifactId + "-snapshot-version";
-
- File snapshotVersionFile = new File( getProject().getParentFile(),
artifactId + "-snapshot-version" );
-
- try
- {
- HttpUtils.getFile( url,
- snapshotVersionFile,
- true, // ignore errors
- false, // use timestamps
- (String) getVariables().get(
MavenConstants.PROXY_HOST ), // proxy host
- (String) getVariables().get(
MavenConstants.PROXY_PORT ), // proxy port
- (String) getVariables().get(
MavenConstants.PROXY_USERNAME ), // proxy user name
- (String) getVariables().get(
MavenConstants.PROXY_PASSWORD ) // proxy password
- );
- }
- catch ( Exception e )
- {
- // Either doesn't exist, or we have a network problem. In
- // either event we can't update the version field.
- System.out.println( "Can't retrieve snapshot version file: " +
e.getLocalizedMessage() );
- }
-
- if ( snapshotVersionFile.exists() )
- {
- timestampVersion = FileUtils.fileRead( snapshotVersionFile.getPath() );
- }
- else
- {
- timestampVersion = "SNAPSHOT";
- }
-
- return timestampVersion;
- }
-
- public void transformNode( Node node )
- throws Exception
- {
- Node version = node.selectSingleNode( selectNodeXPath() );
- version.setText( getNodeContent( node ) );
- }
-
- public Node getTransformedNode( Node node )
- throws Exception
- {
- Node transformedNode = (Node) node.clone();
- Node version = transformedNode.selectSingleNode( selectNodeXPath() );
- version.setText( getNodeContent( transformedNode ) );
-
- return transformedNode;
- }
-}
+package org.apache.maven.release;
+
+/* ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2001 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 Maven" must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
+ * written permission, please contact [EMAIL PROTECTED]
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * "Apache Maven", 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/>.
+ *
+ * ====================================================================
+ */
+
+import org.apache.commons.io.FileUtils;
+import org.apache.maven.MavenConstants;
+import org.apache.maven.project.Project;
+import org.apache.maven.util.HttpUtils;
+import org.dom4j.Node;
+
+import java.io.File;
+import java.util.Iterator;
+
+/**
+ *
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
+ *
+ * @version $Id$
+ */
+public class SnapshotResolver
+ extends AbstractPomTransformer
+{
+ // -------------------------------------------------------------------------
+ // Accessors
+ // -------------------------------------------------------------------------
+
+ public String selectNodesXPathExpression()
+ {
+ return "/project/dependencies/dependency[version='SNAPSHOT']";
+ }
+
+ public String selectNodeXPath()
+ {
+ return "version";
+ }
+
+ public String getNodeContent( Node node )
+ throws Exception
+ {
+ String timestampVersion = null;
+
+ Node idNode = node.selectSingleNode( "id" );
+
+ String groupId;
+ String artifactId;
+ String artifactType = "jar";
+
+ if ( idNode != null )
+ {
+ groupId = idNode.getText();
+ artifactId = groupId;
+ }
+ else
+ {
+ Node artifactIdNode = node.selectSingleNode( "artifactId" );
+ Node groupIdNode = node.selectSingleNode( "groupId" );
+
+ groupId = groupIdNode.getText();
+ artifactId = artifactIdNode.getText();
+ }
+
+ Node typeIdNode = node.selectSingleNode( "groupId" );
+
+ if ( typeIdNode != null )
+ {
+ artifactType = typeIdNode.getText();
+ }
+
+ // Now we need to attempt to find the the actual timestamp
+ // version for this dependency.
+
+ // Variables are being stored as ConstantExpressions ...
+
+ Project project = (Project) getVariables().get( MavenConstants.MAVEN_POM );
+ File snapshotVersionFile = new File( getProject().getParentFile(),
artifactId + "-snapshot-version" );
+
+ for ( Iterator i = project.getContext().getMavenRepoRemote().iterator();
i.hasNext(); )
+ {
+ String remoteRepo = (String) i.next();
+ String url = remoteRepo + "/" + groupId + "/" + artifactType + "s/" +
artifactId + "-snapshot-version";
+
+ try
+ {
+ HttpUtils.getFile( url,
+ snapshotVersionFile,
+ true, // ignore errors
+ false, // use timestamps
+ (String) getVariables().get(
MavenConstants.PROXY_HOST ), // proxy host
+ (String) getVariables().get(
MavenConstants.PROXY_PORT ), // proxy port
+ (String) getVariables().get(
MavenConstants.PROXY_USERNAME ), // proxy user name
+ (String) getVariables().get(
MavenConstants.PROXY_PASSWORD ) // proxy password
+ );
+ }
+ catch ( Exception e )
+ {
+ // Either doesn't exist, or we have a network problem. In
+ // either event we can't update the version field.
+ System.out.println( "Can't retrieve snapshot version file: " +
e.getLocalizedMessage() );
+ }
+
+ if ( snapshotVersionFile.exists() )
+ {
+ timestampVersion = FileUtils.fileRead(
snapshotVersionFile.getPath() );
+ }
+ else
+ {
+ timestampVersion = "SNAPSHOT";
+ }
+ }
+
+ return timestampVersion;
+ }
+
+ public void transformNode( Node node )
+ throws Exception
+ {
+ Node version = node.selectSingleNode( selectNodeXPath() );
+ version.setText( getNodeContent( node ) );
+ }
+
+ public Node getTransformedNode( Node node )
+ throws Exception
+ {
+ Node transformedNode = (Node) node.clone();
+ Node version = transformedNode.selectSingleNode( selectNodeXPath() );
+ version.setText( getNodeContent( transformedNode ) );
+
+ return transformedNode;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]