[ http://jira.codehaus.org/browse/MRM-596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
nicolas de loof updated MRM-596: -------------------------------- Attachment: MRM-596.patch The attached patch must be applied on archiva-repository-layer it also require to rename : \src\test\repositories\legacy-repository\org.apache.maven\javadocs to javadoc.jars (@see maven 1 javadoc plugin) and to move \src\test\repositories\legacy-repository\org.apache.maven\jars\testing-1.0-sources.jar to \src\test\repositories\legacy-repository\org.apache.maven\java-sources (@see maven 1 source plugin). Thos two changes where not handled by my patch tool, as configured to binary types. The idea of the patch is : - remove the assertion that legacy path have no classifier. Simply have no way to support unstandard classifiers. - automatically use "-javadoc" and "-sources" classifiers for path with types "javadoc.jars" and "java-sources". Check for the classifier to be detected in the version string and remove it. The patch contains - modified code base - updated test cases. Thanks to Joakim, this part has good test coverage and new tests are easy to add. > regression : cannot get java-sources anymore from maven1 > -------------------------------------------------------- > > Key: MRM-596 > URL: http://jira.codehaus.org/browse/MRM-596 > Project: Archiva > Issue Type: Bug > Components: WebDAV interface > Affects Versions: 1.0-beta-4 > Reporter: nicolas de loof > Priority: Minor > Fix For: 1.0 > > Attachments: MRM-596.patch > > > requesting "junit/java-sources/junit-3.8.1-sources.jar" fails. > Path is converted internally to > groupId = junit > artifactId = junit > version = 3.8.1-sources > type = jar > I can publish a fix for this, but my workspace contains other modified code > and I can hardly create a dedicated patch. > The idea is to create a ArtifactClassifierMapping similar to existing > ArtifactExtensionMapping, and to use it in LegacyPathParser : > {quote} > // Sanity Check: does extension match pathType on path? > String trimPathType = expectedType.substring( 0, > expectedType.length() - 1 ); > String expectedExtension = ArtifactExtensionMapping.getExtension( > trimPathType ); > {color:red} > artifact.setType( expectedExtension ); > String classifier = ArtifactClassifierMapping.getClassifier( > trimPathType ); > if ( classifier != null ) > { > String version = artifact.getVersion(); > if ( ! version.endsWith( "-" + classifier ) ) > { > throw new LayoutException( INVALID_ARTIFACT_PATH + > expectedType + " artifacts must use the classifier " + classifier ); > } > version = version.substring( 0, version.length() - > classifier.length() - 1 ); > artifact.setVersion( version ); > artifact.setClassifier( classifier ); > } > {color} > {quote} -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira