You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2016/09/18 17:18:54 UTC
svn commit: r1761342 - in
/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project:
./ deploy/ deploy/internal/ install/ install/internal/
Author: khmarbaise
Date: Sun Sep 18 17:18:53 2016
New Revision: 1761342
URL: http://svn.apache.org/viewvc?rev=1761342&view=rev
Log:
o Using NoFileAssignedException instead of IllegalArgumentException
ProjectDeployer, DefaultProjectDeployer, ProjectInstaller,
DefaultProjectInstaller.
o made protected methods private.
Added:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/NoFileAssignedException.java
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/deploy/ProjectDeployer.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/deploy/internal/DefaultProjectDeployer.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/internal/DefaultProjectInstaller.java
Added: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/NoFileAssignedException.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/NoFileAssignedException.java?rev=1761342&view=auto
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/NoFileAssignedException.java (added)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/NoFileAssignedException.java Sun Sep 18 17:18:53 2016
@@ -0,0 +1,51 @@
+package org.apache.maven.shared.project;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * This exception will be thrown if no file has been assigned to artifact.
+ *
+ */
+public class NoFileAssignedException
+ extends Exception
+{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3466983009427148332L;
+
+ /**
+ * @param message The message of the error.
+ * @param e {@link Exception}
+ */
+ public NoFileAssignedException( String message, Exception e )
+ {
+ super( message, e );
+ }
+
+ /**
+ * @param message The message.
+ */
+ public NoFileAssignedException( String message )
+ {
+ super( message );
+ }
+}
Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/deploy/ProjectDeployer.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/deploy/ProjectDeployer.java?rev=1761342&r1=1761341&r2=1761342&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/deploy/ProjectDeployer.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/deploy/ProjectDeployer.java Sun Sep 18 17:18:53 2016
@@ -19,8 +19,30 @@ package org.apache.maven.shared.project.
* under the License.
*/
+import java.io.IOException;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.project.NoFileAssignedException;
/**
* This defines the interface to deploy a single Maven Project.
@@ -47,14 +69,16 @@ public interface ProjectDeployer
* .setUpdateReleaseInfo( true );
*
* deployer.deploy (session.getProjectBuildingRequest(), pbr, artifactRepository);
- *
* </pre>
*
* @param buildingRequest {@link ProjectBuildingRequest}
* @param request {@link ProjectDeployerRequest}
* @param artifactRepository {@link ArtifactRepository}
+ * @throws IOException In case of problems related to checksums.
+ * @throws NoFileAssignedException In case of missing file which has not been assigned to project.
*/
void deployProject( ProjectBuildingRequest buildingRequest, ProjectDeployerRequest request,
- ArtifactRepository artifactRepository );
+ ArtifactRepository artifactRepository )
+ throws IOException, NoFileAssignedException;
}
Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/deploy/internal/DefaultProjectDeployer.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/deploy/internal/DefaultProjectDeployer.java?rev=1761342&r1=1761341&r2=1761342&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/deploy/internal/DefaultProjectDeployer.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/deploy/internal/DefaultProjectDeployer.java Sun Sep 18 17:18:53 2016
@@ -20,6 +20,7 @@ package org.apache.maven.shared.project.
*/
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -30,6 +31,7 @@ import org.apache.maven.project.ProjectB
import org.apache.maven.project.artifact.ProjectArtifactMetadata;
import org.apache.maven.shared.artifact.deploy.ArtifactDeployer;
import org.apache.maven.shared.artifact.deploy.ArtifactDeployerException;
+import org.apache.maven.shared.project.NoFileAssignedException;
import org.apache.maven.shared.project.deploy.ProjectDeployer;
import org.apache.maven.shared.project.deploy.ProjectDeployerRequest;
import org.codehaus.plexus.component.annotations.Component;
@@ -40,13 +42,12 @@ import org.slf4j.LoggerFactory;
/**
* This will deploy a whole project into the appropriate remote repository.
*
- * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmarbaise@apache.org</a>
- *
- * Most of the code is taken from maven-dependency-plugin.
- *
+ * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmarbaise@apache.org</a> Most of the code is
+ * taken from maven-dependency-plugin.
*/
@Component( role = ProjectDeployer.class )
-public class DefaultProjectDeployer implements ProjectDeployer
+public class DefaultProjectDeployer
+ implements ProjectDeployer
{
private static final Logger LOGGER = LoggerFactory.getLogger( DefaultProjectDeployer.class );
@@ -54,15 +55,17 @@ public class DefaultProjectDeployer impl
private ArtifactDeployer deployer;
/**
- * This will deploy a single project which may contain several artifacts
- * into the appropriate remote repository.
+ * This will deploy a single project which may contain several artifacts into the appropriate remote repository.
*
* @param buildingRequest {@link ProjectBuildingRequest}
* @param request {@link ProjectDeployerRequest}
* @param artifactRepository {@link ArtifactRepository}
+ * @throws IllegalArgumentException in case of artifact is not correctly assigned.
+ * @throws NoFileAssignedException
*/
public void deployProject( ProjectBuildingRequest buildingRequest, ProjectDeployerRequest request,
ArtifactRepository artifactRepository )
+ throws IOException, NoFileAssignedException
{
List<Artifact> deployableArtifacts = new ArrayList<Artifact>();
@@ -109,14 +112,14 @@ public class DefaultProjectDeployer impl
}
else if ( !attachedArtifacts.isEmpty() )
{
- //TODO: Reconsider this exception? Better Exception type?
- throw new IllegalArgumentException( "The packaging plugin for this project did not assign "
+ // TODO: Reconsider this exception? Better Exception type?
+ throw new NoFileAssignedException( "The packaging plugin for this project did not assign "
+ "a main file to the project but it has attachments. Change packaging to 'pom'." );
}
else
{
- //TODO: Reconsider this exception? Better Exception type?
- throw new IllegalArgumentException( "The packaging for this project did not assign "
+ // TODO: Reconsider this exception? Better Exception type?
+ throw new NoFileAssignedException( "The packaging for this project did not assign "
+ "a file to the build artifact" );
}
}
Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java?rev=1761342&r1=1761341&r2=1761342&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java Sun Sep 18 17:18:53 2016
@@ -24,6 +24,7 @@ import java.io.IOException;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.shared.artifact.install.ArtifactInstallerException;
+import org.apache.maven.shared.project.NoFileAssignedException;
/**
* This defines the interface to install a single Maven Project.
@@ -39,12 +40,12 @@ public interface ProjectInstaller
* @param projectBuildingRequest {@link ProjectBuildingRequest}
* @param projectInstallerRequest {@link ProjectInstallerRequest}
* @param artifactRepository {@link ArtifactRepository}
- * @throws IOException In case of problem to install project.
+ * @throws IOException In case of problems related to checksums.
* @throws ArtifactInstallerException In case of problems to install artifacts.
- * @throws IllegalArgumentException In case of no file has been assigned.
+ * @throws NoFileAssignedException If no file has been assigned to the project.
*/
void installProject( ProjectBuildingRequest projectBuildingRequest, ProjectInstallerRequest projectInstallerRequest,
ArtifactRepository artifactRepository )
- throws IOException, ArtifactInstallerException, IllegalArgumentException;
+ throws IOException, ArtifactInstallerException, NoFileAssignedException;
}
Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/internal/DefaultProjectInstaller.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/internal/DefaultProjectInstaller.java?rev=1761342&r1=1761341&r2=1761342&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/internal/DefaultProjectInstaller.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/project/install/internal/DefaultProjectInstaller.java Sun Sep 18 17:18:53 2016
@@ -35,6 +35,7 @@ import org.apache.maven.project.artifact
import org.apache.maven.project.artifact.ProjectArtifactMetadata;
import org.apache.maven.shared.artifact.install.ArtifactInstaller;
import org.apache.maven.shared.artifact.install.ArtifactInstallerException;
+import org.apache.maven.shared.project.NoFileAssignedException;
import org.apache.maven.shared.project.install.ProjectInstaller;
import org.apache.maven.shared.project.install.ProjectInstallerRequest;
import org.apache.maven.shared.repository.RepositoryManager;
@@ -64,9 +65,12 @@ public class DefaultProjectInstaller
private final DualDigester digester = new DualDigester();
+ /**
+ * {@inheritDoc}
+ */
public void installProject( ProjectBuildingRequest buildingRequest, ProjectInstallerRequest request,
ArtifactRepository artifactRepository )
- throws IOException, ArtifactInstallerException, IllegalArgumentException
+ throws IOException, ArtifactInstallerException, NoFileAssignedException
{
MavenProject project = request.getProject();
@@ -93,7 +97,6 @@ public class DefaultProjectInstaller
if ( isPomArtifact )
{
- // installer.install( pomFile, artifact, localRepository );
installer.install( buildingRequest, Collections.<Artifact>singletonList( new ProjectArtifact( project ) ) );
installChecksums( buildingRequest, artifactRepository, artifact, createChecksum );
addMetaDataFilesForArtifact( artifactRepository, artifact, metadataFiles, createChecksum );
@@ -115,20 +118,19 @@ public class DefaultProjectInstaller
}
else if ( !attachedArtifacts.isEmpty() )
{
- throw new IllegalArgumentException( "The packaging plugin for this project did not assign "
+ throw new NoFileAssignedException( "The packaging plugin for this project did not assign "
+ "a main file to the project but it has attachments. Change packaging to 'pom'." );
}
else
{
// CHECKSTYLE_OFF: LineLength
- throw new IllegalArgumentException( "The packaging for this project did not assign a file to the build artifact" );
+ throw new NoFileAssignedException( "The packaging for this project did not assign a file to the build artifact" );
// CHECKSTYLE_ON: LineLength
}
}
for ( Artifact attached : attachedArtifacts )
{
- // installer.install( attached.getFile(), attached, localRepository );
installer.install( buildingRequest, Collections.singletonList( attached ) );
installChecksums( buildingRequest, artifactRepository, attached, createChecksum );
addMetaDataFilesForArtifact( artifactRepository, attached, metadataFiles, createChecksum );
@@ -162,8 +164,8 @@ public class DefaultProjectInstaller
}
// CHECKSTYLE_OFF: LineLength
- protected void addMetaDataFilesForArtifact( ArtifactRepository artifactRepository, Artifact artifact,
- Collection<File> targetMetadataFiles, boolean createChecksum )
+ private void addMetaDataFilesForArtifact( ArtifactRepository artifactRepository, Artifact artifact,
+ Collection<File> targetMetadataFiles, boolean createChecksum )
// CHECKSTYLE_ON: LineLength
{
if ( !createChecksum )
@@ -188,7 +190,7 @@ public class DefaultProjectInstaller
* @param metadataFiles The collection of metadata files to install checksums for, must not be <code>null</code>.
* @throws IOException If the checksums could not be installed.
*/
- protected void installChecksums( Collection<File> metadataFiles )
+ private void installChecksums( Collection<File> metadataFiles )
throws IOException
{
for ( File metadataFile : metadataFiles )