Author: evenisse Date: Thu Jan 4 01:57:59 2007 New Revision: 492486 URL: http://svn.apache.org/viewvc?view=rev&rev=492486 Log: [CONTINUUM-1098] Add error message on uploaded pom with modules Submitted by: Franz Allan Valencia See Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java?view=diff&rev=492486&r1=492485&r2=492486 ============================================================================== --- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java (original) +++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java Thu Jan 4 01:57:59 2007 @@ -18,8 +18,15 @@ import org.apache.maven.continuum.ContinuumException; import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult; +import org.apache.maven.model.Model; +import org.apache.maven.model.io.xpp3.MavenXpp3Reader; +import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.List; /** * Add a Maven 2 project to Continuum. @@ -35,11 +42,59 @@ public class AddMavenTwoProjectAction extends AddMavenProjectAction { - + // TODO: remove this part once uploading of an m2 project with modules is supported ( CONTINUUM-1098 ) + public static final String ERROR_UPLOADING_M2_PROJECT_WITH_MODULES = "add.m2.project.upload.modules.error"; + public static final String ERROR_READING_POM_EXCEPTION_MESSAGE = "Error reading POM"; + public static final String FILE_SCHEME = "file:/"; + protected ContinuumProjectBuildingResult doExecute( String pomUrl, int selectedProjectGroup, boolean checkProtocol ) throws ContinuumException { - return getContinuum().addMavenTwoProject( pomUrl, selectedProjectGroup, checkProtocol ); + ContinuumProjectBuildingResult result = null; + + // TODO: remove this part once uploading of an m2 project with modules is supported ( CONTINUUM-1098 ) + if ( checkProtocol == false ) + { + MavenXpp3Reader m2pomReader = new MavenXpp3Reader(); + + try + { + String filePath = pomUrl; + if ( filePath.startsWith( FILE_SCHEME ) ) + { + filePath = filePath.substring( FILE_SCHEME.length() ); + } + + Model model = m2pomReader.read( new FileReader( filePath ) ); + + List modules = model.getModules(); + + if ( modules != null && modules.size() != 0 ) + { + result = new ContinuumProjectBuildingResult(); + result.addError( ERROR_UPLOADING_M2_PROJECT_WITH_MODULES ); + } + } + catch ( FileNotFoundException e ) + { + throw new ContinuumException( ERROR_READING_POM_EXCEPTION_MESSAGE, e ); + } + catch ( IOException e ) + { + throw new ContinuumException( ERROR_READING_POM_EXCEPTION_MESSAGE, e ); + } + catch ( XmlPullParserException e ) + { + throw new ContinuumException( ERROR_READING_POM_EXCEPTION_MESSAGE, e ); + } + } + + if ( result == null ) + { + result = getContinuum().addMavenTwoProject( pomUrl, selectedProjectGroup, checkProtocol ); + } + + return result; } public String doDefault() Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?view=diff&rev=492486&r1=492485&r2=492486 ============================================================================== --- maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties (original) +++ maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Thu Jan 4 01:57:59 2007 @@ -205,6 +205,8 @@ add.m2.project.m2PomFile.message = Enter the local filename of the Maven 2 POM to upload (works only for a single project without modules). add.m2.project.m2PomFile.error = You must enter a valid URL add.m2.project.projectGroup = Project Group +# TODO: remove this part once uploading of an m2 project with modules is supported ( CONTINUUM-1098 ) +add.m2.project.upload.modules.error = Cannot upload a Maven 2 project with modules. # ---------------------------------------------------------------------- # Page: AddProject (ant or shell)