Author: brett Date: Tue Jun 20 22:51:32 2006 New Revision: 415920 URL: http://svn.apache.org/viewvc?rev=415920&view=rev Log: [MJAR-38, MWAR-34] make adding of default extension entries optional and default to false. Correct the values entered into some of them.
Modified: maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/ManifestConfiguration.java maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java Modified: maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/ManifestConfiguration.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/ManifestConfiguration.java?rev=415920&r1=415919&r2=415920&view=diff ============================================================================== --- maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/ManifestConfiguration.java (original) +++ maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/ManifestConfiguration.java Tue Jun 20 22:51:32 2006 @@ -29,20 +29,24 @@ private String packageName; + private boolean addClasspath; + + private boolean addExtensions; + /** - * @todo boolean instead + * This gets prefixed to all classpath entries. */ - private String addClasspath; + private String classpathPrefix = ""; /** - * @todo boolean instead + * Add default implementation entries if this is an extension specification. */ - private String addExtensions; + private boolean addDefaultSpecificationEntries; /** - * This gets prefixed to all classpath entries. + * Add default implementation entries if this is an extension. */ - private String classpathPrefix = ""; + private boolean addDefaultImplementationEntries; public String getMainClass() { @@ -51,12 +55,12 @@ public boolean isAddClasspath() { - return addClasspath != null ? Boolean.valueOf( addClasspath ).booleanValue() : false; + return addClasspath; } public boolean isAddExtensions() { - return addExtensions != null ? Boolean.valueOf( addExtensions ).booleanValue() : false; + return addExtensions; } public String getPackageName() @@ -68,11 +72,21 @@ { String cpp = classpathPrefix.replaceAll( "\\\\", "/" ); - if ( cpp.length() != 0 && !cpp.endsWith("/") ) + if ( cpp.length() != 0 && !cpp.endsWith( "/" ) ) { cpp += "/"; } - + return cpp; + } + + public boolean isAddDefaultImplementationEntries() + { + return addDefaultImplementationEntries; + } + + public boolean isAddDefaultSpecificationEntries() + { + return addDefaultSpecificationEntries; } } Modified: maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java?rev=415920&r1=415919&r2=415920&view=diff ============================================================================== --- maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java (original) +++ maven/shared/trunk/maven-archiver/src/main/java/org/apache/maven/archiver/MavenArchiver.java Tue Jun 20 22:51:32 2006 @@ -107,30 +107,13 @@ protected Manifest getManifest( MavenProject project, ManifestConfiguration config, Map entries ) throws ManifestException, DependencyResolutionRequiredException { - // Should we replace "map" with a copy? Note, that we modify it! + // TODO: Should we replace "map" with a copy? Note, that we modify it! // Added basic entries Manifest m = new Manifest(); - addManifestAttribute( m, entries, "Built-By", System.getProperty( "user.name" ) ); addManifestAttribute( m, entries, "Created-By", "Apache Maven" ); -/* TODO: rethink this, it wasn't working - Artifact projectArtifact = project.getArtifact(); - - if ( projectArtifact.isSnapshot() ) - { - Manifest.Attribute buildNumberAttr = new Manifest.Attribute( "Build-Number", "" + - project.getSnapshotDeploymentBuildNumber() ); - m.addConfiguredAttribute( buildNumberAttr ); - } - -*/ - if ( config.getPackageName() != null ) - { - addManifestAttribute( m, entries, "Package", config.getPackageName() ); - } - - addManifestAttribute( m, entries, "Build-Jdk", System.getProperty( "java.version" ) ); + addCustomEntries( m, entries, config ); if ( config.isAddClasspath() ) { @@ -159,23 +142,27 @@ } } - // Added supplementary entries - addManifestAttribute( m, entries, "Extension-Name", project.getArtifactId() ); - - if ( project.getDescription() != null ) + if ( config.isAddDefaultSpecificationEntries() ) { - // NOTE This should probably be project.getName() but it remains for backwards compatability - addManifestAttribute( m, entries, "Specification-Title", project.getDescription() ); + addManifestAttribute( m, entries, "Specification-Title", project.getName() ); + addManifestAttribute( m, entries, "Specification-Version", project.getVersion() ); + + if ( project.getOrganization() != null ) + { + addManifestAttribute( m, entries, "Specification-Vendor", project.getOrganization().getName() ); + } } - if ( project.getOrganization() != null ) + if ( config.isAddDefaultImplementationEntries() ) { - addManifestAttribute( m, entries, "Specification-Vendor", project.getOrganization().getName() ); - addManifestAttribute( m, entries, "Implementation-Vendor", project.getOrganization().getName() ); - } + addManifestAttribute( m, entries, "Implementation-Title", project.getName() ); + addManifestAttribute( m, entries, "Implementation-Version", project.getVersion() ); - addManifestAttribute( m, entries, "Implementation-Title", project.getArtifactId() ); - addManifestAttribute( m, entries, "Implementation-Version", project.getVersion() ); + if ( project.getOrganization() != null ) + { + addManifestAttribute( m, entries, "Implementation-Vendor", project.getOrganization().getName() ); + } + } String mainClass = config.getMainClass(); if ( mainClass != null && !"".equals( mainClass ) ) @@ -186,24 +173,23 @@ // Added extensions if ( config.isAddExtensions() ) { + // TODO: this is only for applets - should we distinguish them as a packaging? StringBuffer extensionsList = new StringBuffer(); Set artifacts = project.getArtifacts(); for ( Iterator iter = artifacts.iterator(); iter.hasNext(); ) { Artifact artifact = (Artifact) iter.next(); - if ( "test".equals( artifact.getScope() ) ) - { - continue; - } - // TODO: type of ejb should be added too? - if ( "jar".equals( artifact.getType() ) ) + if ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) ) { - if ( extensionsList.length() > 0 ) + if ( "jar".equals( artifact.getType() ) ) { - extensionsList.append( " " ); + if ( extensionsList.length() > 0 ) + { + extensionsList.append( " " ); + } + extensionsList.append( artifact.getArtifactId() ); } - extensionsList.append( artifact.getArtifactId() ); } } @@ -214,6 +200,8 @@ for ( Iterator iter = artifacts.iterator(); iter.hasNext(); ) { + // TODO: the correct solution here would be to have an extension type, and to read + // the real extension values either from the artifact's manifest or some part of the POM Artifact artifact = (Artifact) iter.next(); if ( "jar".equals( artifact.getType() ) ) { @@ -224,7 +212,6 @@ if ( artifact.getRepository() != null ) { - // TODO: is this correct iname = artifact.getArtifactId() + "-Implementation-URL"; String url = artifact.getRepository().getUrl() + "/" + artifact.toString(); addManifestAttribute( m, entries, iname, url ); @@ -234,6 +221,29 @@ } return m; + } + + private void addCustomEntries( Manifest m, Map entries, ManifestConfiguration config ) + throws ManifestException + { + addManifestAttribute( m, entries, "Built-By", System.getProperty( "user.name" ) ); + addManifestAttribute( m, entries, "Build-Jdk", System.getProperty( "java.version" ) ); + +/* TODO: rethink this, it wasn't working + Artifact projectArtifact = project.getArtifact(); + + if ( projectArtifact.isSnapshot() ) + { + Manifest.Attribute buildNumberAttr = new Manifest.Attribute( "Build-Number", "" + + project.getSnapshotDeploymentBuildNumber() ); + m.addConfiguredAttribute( buildNumberAttr ); + } + +*/ + if ( config.getPackageName() != null ) + { + addManifestAttribute( m, entries, "Package", config.getPackageName() ); + } } public JarArchiver getArchiver()