You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sn...@apache.org on 2006/08/20 12:19:30 UTC
svn commit: r432959 - in /maven/maven-1/plugins/trunk/eclipse: ./
src/main/org/apache/maven/plugin/eclipse/ xdocs/
Author: snicoll
Date: Sun Aug 20 03:19:27 2006
New Revision: 432959
URL: http://svn.apache.org/viewvc?rev=432959&view=rev
Log:
[MPECLIPSE-123] Javadocs archives are now downloaded from the configured remote repositories, when no source archive is available.
Submitted by: Nicolas de Loof
Added:
maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/AbstractSourcesDownloader.java
maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/JavadocsDownloader.java
Modified:
maven/maven-1/plugins/trunk/eclipse/plugin.jelly
maven/maven-1/plugins/trunk/eclipse/plugin.properties
maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/JavaSourcesDownloader.java
maven/maven-1/plugins/trunk/eclipse/xdocs/changes.xml
maven/maven-1/plugins/trunk/eclipse/xdocs/properties.xml
Modified: maven/maven-1/plugins/trunk/eclipse/plugin.jelly
URL: http://svn.apache.org/viewvc/maven/maven-1/plugins/trunk/eclipse/plugin.jelly?rev=432959&r1=432958&r2=432959&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/eclipse/plugin.jelly (original)
+++ maven/maven-1/plugins/trunk/eclipse/plugin.jelly Sun Aug 20 03:19:27 2006
@@ -23,7 +23,11 @@
<define:jellybean
name="download-sources"
className="org.apache.maven.plugin.eclipse.JavaSourcesDownloader"
- method="downloadJavaSources"/>
+ method="downloadSources"/>
+ <define:jellybean
+ name="download-javadocs"
+ className="org.apache.maven.plugin.eclipse.JavadocsDownloader"
+ method="downloadSources"/>
<define:tag name="write-classpath-entry">
<maven:param-check value="${groupId}" fail="true" message="'groupId' must be specified" />
@@ -66,37 +70,42 @@
<j:otherwise>
<j:set var="mappedsrc" value="${groupId}/java-sources/${artifactId}-${version}-sources.jar" />
<util:file var="srcFile" name="${maven.repo.local}/${mappedsrc}" />
- <j:if test="${!srcFile.exists()}">
- <j:set var="msg" trim="true">
- Place java sources for ${artifactId} at ${srcFile} for javadoc and debugging support in Eclipse
- </j:set>
- <ant:echo>${msg}</ant:echo>
- </j:if>
</j:otherwise>
</j:choose>
- <j:set var="jdocs" value="${groupId}/javadoc.jars/${artifactId}-${version}.javadoc.jar" />
- <util:file var="testFile" name="${maven.repo.local}/${mappedsrc}" />
+ <!-- If the source file exists, add it to the project, otherwise attempt to
+ download the Javadocs if maven.eclipse.javadoc.download is true -->
<j:choose>
- <j:when test="${testFile.exists()}">
- <classpathentry kind="var" path="MAVEN_REPO/${relativePath}" sourcepath="MAVEN_REPO/${mappedsrc}"/>
- </j:when>
-
- <!-- Dont define sourcepath unless it actually exists -->
- <!-- otherwise will cause errors in Eclipse (3.2 in my case) when clicking on Class/line numbers in stack traces in console -->
-
- <j:otherwise>
- <classpathentry kind="var" path="MAVEN_REPO/${relativePath}"/>
- </j:otherwise>
+ <j:when test="${srcFile.exists()}">
+ <classpathentry kind="var" path="MAVEN_REPO/${relativePath}" sourcepath="MAVEN_REPO/${mappedsrc}"/>
+ <j:set var="msg" trim="true">
+ Java sources for ${artifactId} at ${srcFile} configured for javadoc and debugging support in Eclipse
+ </j:set>
+ <ant:echo>${msg}</ant:echo>
+ </j:when>
+ <j:otherwise>
+ <classpathentry kind="var" path="MAVEN_REPO/${relativePath}">
+ <j:set var="jdocs" value="${groupId}/javadoc.jars/${artifactId}-${version}-javadoc.jar" />
+ <j:if test="${maven.eclipse.javadoc.download}">
+ <eclipse:download-javadocs
+ project="${pom}"
+ groupId="${groupId}"
+ artifactId="${artifactId}"
+ version="${version}"/>
+ </j:if>
+ <util:file var="jdocsFile" name="${maven.repo.local}/${jdocs}" />
+ <j:if test="${jdocsFile.exists()}">
+ <j:set var="msg" trim="true">
+ Javadoc for ${artifactId} at ${jdocsFile} configured in Eclipse
+ </j:set>
+ <ant:echo>${msg}</ant:echo>
+ <attributes>
+ <attribute value="jar:file:/${maven.repo.local}/${jdocs}!/" name="javadoc_location"/>
+ </attributes>
+ </j:if>
+ </classpathentry>
+ </j:otherwise>
</j:choose>
-
- <!-- javadoc need to be an absolute path in eclipse 3.1, the MAVEN_REPO var will not work
- <attributes>
- <attribute value="jar:file:/${maven.repo.local}/${jdocs}!/" name="javadoc_location"/>
- </attributes>
- -->
-
-
</define:tag>
</define:taglib>
Modified: maven/maven-1/plugins/trunk/eclipse/plugin.properties
URL: http://svn.apache.org/viewvc/maven/maven-1/plugins/trunk/eclipse/plugin.properties?rev=432959&r1=432958&r2=432959&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/eclipse/plugin.properties (original)
+++ maven/maven-1/plugins/trunk/eclipse/plugin.properties Sun Aug 20 03:19:27 2006
@@ -28,5 +28,6 @@
maven.gen.src=${maven.build.dir}/generated-sources
maven.eclipse.src.extension = zip
maven.eclipse.src.download = true
+maven.eclipse.javadoc.download = true
maven.eclipse.resources.addtoclasspath=false
maven.eclipse.servletapilist=javax.servlet:servlet-api,servletapi:servletapi,geronimo-spec:geronimo-spec-servlet
Added: maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/AbstractSourcesDownloader.java
URL: http://svn.apache.org/viewvc/maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/AbstractSourcesDownloader.java?rev=432959&view=auto
==============================================================================
--- maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/AbstractSourcesDownloader.java (added)
+++ maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/AbstractSourcesDownloader.java Sun Aug 20 03:19:27 2006
@@ -0,0 +1,274 @@
+package org.apache.maven.plugin.eclipse;
+
+/* ====================================================================
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ====================================================================
+ */
+
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.maven.AbstractMavenComponent;
+import org.apache.maven.project.Dependency;
+import org.apache.maven.project.Project;
+import org.apache.maven.util.HttpUtils;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.Iterator;
+
+/**
+ * A base class to download sources achives.
+ *
+ * @author <a href="snicoll@apache.org">Stephane Nicoll</a>
+ */
+public abstract class AbstractSourcesDownloader
+ extends AbstractMavenComponent
+{
+
+ protected static final String PROXY_LOGINHOST = "maven.proxy.ntlm.host";
+
+ protected static final String PROXY_LOGINDOMAIN = "maven.proxy.ntlm.domain";
+
+ private static final Log log = LogFactory.getLog( AbstractSourcesDownloader.class );
+
+ private Project project;
+
+ private String groupId;
+
+ private String artifactId;
+
+ private String version;
+
+ public void downloadSources()
+ throws Exception
+ {
+ if ( project == null )
+ {
+ throw new NullPointerException( "project should be set." );
+ }
+
+ if ( groupId == null )
+ {
+ throw new NullPointerException( "groupId should be set." );
+ }
+
+ if ( artifactId == null )
+ {
+ throw new NullPointerException( "artifactId should be set." );
+ }
+
+ if ( version == null )
+ {
+ throw new NullPointerException( "version should be set." );
+ }
+
+ final String dependencyId = groupId + ":" + artifactId;
+ Dependency dependency = project.getDependency( dependencyId );
+ if ( dependency == null )
+ {
+ log.warn( "Could not retrieve dependency object for[" + dependencyId + "] - skipping" );
+ return;
+ }
+
+ String relativePath = buildRelativePath();
+ File localFile = new File( project.getContext().getMavenRepoLocal(), relativePath );
+ if ( isSnapshot() )
+ {
+ getRemoteArtifact( localFile, relativePath, dependency );
+ }
+ else
+ {
+ if ( localFile.exists() )
+ {
+ log.debug( getSourceName() + " for[" + groupId + ":" + artifactId + ":" + version +
+ "] is available in the local repository." );
+ }
+ else
+ {
+ // download it
+ getRemoteArtifact( localFile, relativePath, dependency );
+ }
+ }
+ }
+
+ protected abstract String buildRelativePath();
+
+ protected abstract String getSourceName();
+
+ // Getters & Setters
+
+
+ public Project getProject()
+ {
+ return project;
+ }
+
+ public void setProject( final Project project )
+ {
+ this.project = project;
+ }
+
+ public String getGroupId()
+ {
+ return groupId;
+ }
+
+ public void setGroupId( final String groupId )
+ {
+ this.groupId = groupId;
+ }
+
+ public String getArtifactId()
+ {
+ return artifactId;
+ }
+
+ public void setArtifactId( final String artifactId )
+ {
+ this.artifactId = artifactId;
+ }
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public void setVersion( final String version )
+ {
+ this.version = version;
+ }
+
+ protected boolean isSnapshot()
+ {
+ return version.endsWith( "SNAPSHOT" );
+ }
+
+ /**
+ * Retrieve a <code>remoteFile</code> from the maven remote repositories
+ * and store it at <code>destinationFile</code>
+ *
+ * @param destinationFile the destination file in the local repository
+ * @param relativePath the relative path to the dependency
+ * @return true if the retrieval succeeds, false otherwise.
+ */
+ protected boolean getRemoteArtifact( File destinationFile, String relativePath, Dependency relatedDependency )
+ {
+
+ // The directory structure for the project this dependency belongs to
+ // may not exists so attempt to create the project directory structure
+ // before attempting to download the dependency.
+ File directory = destinationFile.getParentFile();
+
+ if ( !directory.exists() )
+ {
+ directory.mkdirs();
+ }
+
+ log.info( "Attempting to download " + getSourceName() + " for " + relatedDependency.getArtifact() );
+
+ boolean artifactFound = false;
+
+ for ( Iterator i = getProject().getContext().getMavenRepoRemote().iterator(); i.hasNext(); )
+ {
+ String remoteRepo = (String) i.next();
+
+ if ( remoteRepo.endsWith( "/" ) )
+ {
+ remoteRepo = remoteRepo.substring( 0, remoteRepo.length() - 1 );
+ }
+
+ // The username and password parameters are not being
+ // used here. Those are the "" parameters you see below.
+ String url = remoteRepo + "/" + relativePath;
+ url = StringUtils.replace( url, "//", "/" );
+
+ if ( !url.startsWith( "file" ) )
+ {
+ if ( url.startsWith( "https" ) )
+ {
+ url = StringUtils.replace( url, "https:/", "https://" );
+ }
+ else
+ {
+ url = StringUtils.replace( url, "http:/", "http://" );
+ }
+ }
+ log.debug( "Trying to download " + getSourceName() + " at " + url );
+
+ // Attempt to retrieve the artifact and set the checksum if retrieval
+ // of the checksum file was successful.
+ try
+ {
+ String loginHost = (String) getProject().getContext().getVariable( PROXY_LOGINHOST );
+ String loginDomain = (String) getProject().getContext().getVariable( PROXY_LOGINDOMAIN );
+ HttpUtils.getFile( url, destinationFile, false, true, getProject().getContext().getProxyHost(),
+ getProject().getContext().getProxyPort(),
+ getProject().getContext().getProxyUserName(),
+ getProject().getContext().getProxyPassword(), loginHost, loginDomain, true );
+
+ // Artifact was found, continue checking additional remote repos (if any)
+ // in case there is a newer version (i.e. snapshots) in another repo
+ artifactFound = true;
+
+ if ( !isSnapshot() )
+ {
+ break;
+ }
+ }
+ catch ( FileNotFoundException e )
+ {
+ // Multiple repositories may exist, and if the file is not found
+ // in just one of them, it's no problem, and we don't want to
+ // even print out an error.
+ // if it's not found at all, artifactFound will be false, and the
+ // build _will_ break, and the user will get an error message
+ log.debug( "File not found on one of the repos", e );
+ }
+ catch ( Exception e )
+ {
+ // If there are additional remote repos, then ignore exception
+ // as artifact may be found in another remote repo. If there
+ // are no more remote repos to check and the artifact wasn't found in
+ // a previous remote repo, then artifactFound is false indicating
+ // that the artifact could not be found in any of the remote repos
+ //
+ // arguably, we need to give the user better control (another command-
+ // line switch perhaps) of what to do in this case? Maven already has
+ // a command-line switch to work in offline mode, but what about when
+ // one of two or more remote repos is unavailable? There may be multiple
+ // remote repos for redundancy, in which case you probably want the build
+ // to continue. There may however be multiple remote repos because some
+ // artifacts are on one, and some are on another. In this case, you may
+ // want the build to break.
+ //
+ // print a warning, in any case, so user catches on to mistyped
+ // hostnames, or other snafus
+ // FIXME: localize this message
+ String[] parsedUrl = HttpUtils.parseUrl( url );
+ log.warn( "Error retrieving artifact from [" + parsedUrl[2] + "]: " + e );
+ if ( parsedUrl[0] != null )
+ {
+ log.debug( "Username was '" + parsedUrl[0] + "', password hidden" );
+ }
+ log.debug( "Error details", e );
+ }
+ }
+
+ return artifactFound;
+ }
+
+}
Modified: maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/JavaSourcesDownloader.java
URL: http://svn.apache.org/viewvc/maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/JavaSourcesDownloader.java?rev=432959&r1=432958&r2=432959&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/JavaSourcesDownloader.java (original)
+++ maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/JavaSourcesDownloader.java Sun Aug 20 03:19:27 2006
@@ -1,18 +1,5 @@
package org.apache.maven.plugin.eclipse;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.maven.AbstractMavenComponent;
-import org.apache.maven.MavenConstants;
-import org.apache.maven.project.Dependency;
-import org.apache.maven.project.Project;
-import org.apache.maven.util.HttpUtils;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.Iterator;
-
/* ====================================================================
* Copyright 2001-2004 The Apache Software Foundation.
*
@@ -37,241 +24,20 @@
* @version $Id$
*/
public class JavaSourcesDownloader
- extends AbstractMavenComponent
+ extends AbstractSourcesDownloader
{
- private static final String PROXY_LOGINHOST = "maven.proxy.ntlm.host";
- private static final String PROXY_LOGINDOMAIN = "maven.proxy.ntlm.domain";
-
- private static final Log log = LogFactory.getLog( JavaSourcesDownloader.class );
-
- private Project project;
-
- private String groupId;
-
- private String artifactId;
-
- private String version;
-
- public void downloadJavaSources()
- throws Exception
- {
- if (project == null) {
- throw new NullPointerException("project should be set.");
- }
-
- if (groupId == null) {
- throw new NullPointerException("groupId should be set.");
- }
-
- if (artifactId == null) {
- throw new NullPointerException("artifactId should be set.");
- }
-
- if (version == null) {
- throw new NullPointerException("version should be set.");
- }
-
- final String dependencyId = groupId + ":" + artifactId;
- Dependency dependency = project.getDependency( dependencyId );
- if ( dependency == null )
- {
- log.warn("Could not retrieve dependency object for[" + dependencyId + "] - skipping" );
- return;
- }
-
- String relativePath = buildRelativePath();
- File localFile = new File( project.getContext().getMavenRepoLocal(), relativePath );
- if ( isSnapshot() )
- {
- getRemoteArtifact( localFile, relativePath, dependency );
- }
- else
- {
- if ( localFile.exists() )
- {
- log.debug( "source for[" + groupId + ":" + artifactId + ":" + version +
- "] is available in the local repository." );
- return;
- }
- else
- {
- // download it
- getRemoteArtifact( localFile, relativePath, dependency );
- }
- }
- }
- private String buildRelativePath()
+ protected String buildRelativePath()
{
StringBuffer sb = new StringBuffer();
- sb.append( groupId ).append( "/java-sources/" ).append( artifactId ).append( "-" ).append( version ).append(
- "-sources.jar" );
+ sb.append( getGroupId() ).append( "/java-sources/" ).append( getArtifactId() ).append( "-" ).append(
+ getVersion() ).append( "-sources.jar" );
return sb.toString();
}
- private boolean isSnapshot()
- {
- return version.endsWith( "SNAPSHOT" );
- }
-
- // Getters & Setters
-
-
- public Project getProject()
- {
- return project;
- }
-
- public void setProject( final Project project )
- {
- this.project = project;
- }
-
- public String getGroupId()
- {
- return groupId;
- }
-
- public void setGroupId( final String groupId )
+ protected String getSourceName()
{
- this.groupId = groupId;
+ return "sources";
}
-
- public String getArtifactId()
- {
- return artifactId;
- }
-
- public void setArtifactId( final String artifactId )
- {
- this.artifactId = artifactId;
- }
-
- public String getVersion()
- {
- return version;
- }
-
- public void setVersion( final String version )
- {
- this.version = version;
- }
-
- // Taken from maven core code in order to mimic the current behavior
-
- /**
- * Retrieve a <code>remoteFile</code> from the maven remote repositories
- * and store it at <code>destinationFile</code>
- *
- * @param destinationFile the destination file in the local repository
- * @param relativePath the relative path to the dependency
- * @return true if the retrieval succeeds, false otherwise.
- */
- private boolean getRemoteArtifact( File destinationFile, String relativePath, Dependency relatedDependency )
- {
-
- // The directory structure for the project this dependency belongs to
- // may not exists so attempt to create the project directory structure
- // before attempting to download the dependency.
- File directory = destinationFile.getParentFile();
-
- if ( !directory.exists() )
- {
- directory.mkdirs();
- }
-
- log.info( "Attempting to download sources for " + relatedDependency.getArtifact());
-
- boolean artifactFound = false;
-
- for ( Iterator i = getProject().getContext().getMavenRepoRemote().iterator(); i.hasNext(); )
- {
- String remoteRepo = (String) i.next();
-
- if ( remoteRepo.endsWith( "/" ) )
- {
- remoteRepo = remoteRepo.substring( 0, remoteRepo.length() - 1 );
- }
-
- // The username and password parameters are not being
- // used here. Those are the "" parameters you see below.
- String url = remoteRepo + "/" + relativePath;
- url = StringUtils.replace( url, "//", "/" );
-
- if ( !url.startsWith( "file" ) )
- {
- if ( url.startsWith( "https" ) )
- {
- url = StringUtils.replace( url, "https:/", "https://" );
- }
- else
- {
- url = StringUtils.replace( url, "http:/", "http://" );
- }
- }
- log.debug("Trying to download source at " + url);
-
- // Attempt to retrieve the artifact and set the checksum if retrieval
- // of the checksum file was successful.
- try
- {
- String loginHost = (String) getProject().getContext().getVariable( PROXY_LOGINHOST );
- String loginDomain = (String) getProject().getContext().getVariable( PROXY_LOGINDOMAIN );
- HttpUtils.getFile( url, destinationFile, false, true, getProject().getContext().getProxyHost(),
- getProject().getContext().getProxyPort(),
- getProject().getContext().getProxyUserName(),
- getProject().getContext().getProxyPassword(), loginHost, loginDomain, true );
-
- // Artifact was found, continue checking additional remote repos (if any)
- // in case there is a newer version (i.e. snapshots) in another repo
- artifactFound = true;
-
- if ( !isSnapshot() )
- {
- break;
- }
- }
- catch ( FileNotFoundException e )
- {
- // Multiple repositories may exist, and if the file is not found
- // in just one of them, it's no problem, and we don't want to
- // even print out an error.
- // if it's not found at all, artifactFound will be false, and the
- // build _will_ break, and the user will get an error message
- log.debug( "File not found on one of the repos", e );
- }
- catch ( Exception e )
- {
- // If there are additional remote repos, then ignore exception
- // as artifact may be found in another remote repo. If there
- // are no more remote repos to check and the artifact wasn't found in
- // a previous remote repo, then artifactFound is false indicating
- // that the artifact could not be found in any of the remote repos
- //
- // arguably, we need to give the user better control (another command-
- // line switch perhaps) of what to do in this case? Maven already has
- // a command-line switch to work in offline mode, but what about when
- // one of two or more remote repos is unavailable? There may be multiple
- // remote repos for redundancy, in which case you probably want the build
- // to continue. There may however be multiple remote repos because some
- // artifacts are on one, and some are on another. In this case, you may
- // want the build to break.
- //
- // print a warning, in any case, so user catches on to mistyped
- // hostnames, or other snafus
- // FIXME: localize this message
- String[] parsedUrl = HttpUtils.parseUrl( url );
- log.warn( "Error retrieving artifact from [" + parsedUrl[2] + "]: " + e );
- if ( parsedUrl[0] != null )
- {
- log.debug( "Username was '" + parsedUrl[0] + "', password hidden" );
- }
- log.debug( "Error details", e );
- }
- }
-
- return artifactFound;
- }
-
}
Added: maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/JavadocsDownloader.java
URL: http://svn.apache.org/viewvc/maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/JavadocsDownloader.java?rev=432959&view=auto
==============================================================================
--- maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/JavadocsDownloader.java (added)
+++ maven/maven-1/plugins/trunk/eclipse/src/main/org/apache/maven/plugin/eclipse/JavadocsDownloader.java Sun Aug 20 03:19:27 2006
@@ -0,0 +1,42 @@
+package org.apache.maven.plugin.eclipse;
+
+/* ====================================================================
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ====================================================================
+ */
+
+/**
+ * An helper class used to download javadocs archives.
+ *
+ * @author <a href="ndeloof@free.fr">Nicolas De Loof</a>
+ * @author <a href="snicoll@apache.org">Stephane Nicoll</a>
+ */
+public class JavadocsDownloader
+ extends AbstractSourcesDownloader
+{
+
+ protected String buildRelativePath()
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.append( getGroupId() ).append( "/javadoc.jars/" ).append( getArtifactId() ).append( "-" ).append(
+ getVersion() ).append( "-javadoc.jar" );
+ return sb.toString();
+ }
+
+ protected String getSourceName()
+ {
+ return "javadocs";
+ }
+}
Modified: maven/maven-1/plugins/trunk/eclipse/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/maven/maven-1/plugins/trunk/eclipse/xdocs/changes.xml?rev=432959&r1=432958&r2=432959&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/eclipse/xdocs/changes.xml (original)
+++ maven/maven-1/plugins/trunk/eclipse/xdocs/changes.xml Sun Aug 20 03:19:27 2006
@@ -26,6 +26,7 @@
<release version="1.11.1-SNAPSHOT" date="In SVN">
<action dev="ltheussl" type="update">Update jelly dependency to match the ones in maven 1.1 core.</action>
<action dev="aheritier" type="fix" issue="MPECLIPSE-118" due-to="Jon Christiansen">Don't attach sourcepath in .classpath when file doesn't exist.</action>
+ <action dev="snicoll" type="fix" issue="MPECLIPSE-123" due-to="Nicolas De Loof">Download and attach javadoc archives to .classpath when no source archive is available.</action>
</release>
<release version="1.11" date="2006-06-18">
<action dev="snicoll" type="fix" issue="MPECLIPSE-111">Made output and testOutput directory configuration consistent.</action>
Modified: maven/maven-1/plugins/trunk/eclipse/xdocs/properties.xml
URL: http://svn.apache.org/viewvc/maven/maven-1/plugins/trunk/eclipse/xdocs/properties.xml?rev=432959&r1=432958&r2=432959&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/eclipse/xdocs/properties.xml (original)
+++ maven/maven-1/plugins/trunk/eclipse/xdocs/properties.xml Sun Aug 20 03:19:27 2006
@@ -151,6 +151,14 @@
remote repositories. Defaults to true.
</td>
</tr>
+ <tr>
+ <td>maven.eclipse.javadoc.download</td>
+ <td>Yes (default=<code>true</code>)</td>
+ <td>
+ Specify if javadocs archives need to be downloaded from the configured
+ remote repositories, when no source archive is available. Defaults to true.
+ </td>
+ </tr>
</table>
<p>
Note that you will need to defined a <code>MAVEN_REPO</code> Java