delbd
Mon, 24 Mar 2008 14:45:40 -0700
Brett Porter a écrit :
What you've written is correct, though I'm not sure how well that's going to work out for you since the normal deploy mechanism assumes a repository format (so it'll try to use a path, but I guess you'll just ignore that in your wagon, or use the last part to determine the release id?).Cheers, Brett On 20/03/2008, at 6:54 AM, delbd wrote:Brett Porter a écrit :It's been a while since I've used sourceforge, but how is this different from the ssh wagons?my mistake, by sourceforge repository, i meaned sourceforge releases :) The sf process is as follow:upload your file via ftp, login to sf web page, go to release page, pickup a Package name and a Release name, pickup your file, fill-in release form (type of file, release informations, etc). Then you file is available on sourceforge releases. Boring to do by hand :) I could have written a simple plugin to associate with "deploy" phase, but i think using wagon is more appropriate, as it's the standard way maven 2 uses to send releases.I planned to do something similar to what FtpWagon does: extend parent pom ^^it's the role-hint in components.xml. Add this to your class javadoc:@plexus.component role="org.apache.maven.wagon.Wagon" role-hint="sf" instantiation-strategy="per-lookup"and make sure you use the plexus-maven-plugin to generate components.xml (which you can see in the existing providers).Am i correct if i assume this for wagon behaviour btw? If i use such config in maven2:<repository> <uniqueVersion>false</uniqueVersion> <id>myrepo</id> <name>My Repository</name> <url>sf://sfwagon/org.apache.maven.wagon-sf/wagon prereleases</url> <layout>default</layout> </repository>The Repository objet available in AbstractWagon will have those properties?id=myrepo name=My Repository host=sfwagon protocol=sf basedir=org.apache.maven.wagon-sf/wagon prereleases url=sf://sfwagon/org.apache.maven.wagon-sf/wagon prereleases The id is to have all sf urls with this format: sf://projectname/package/releaseUp to the user to fill that correctly, perhaps using ${...} to include build informations Note that the idea is to support upload only (sourceforge release system does not allow for manipulation of directory structure, all you have access to is a package name, a release name and a file name)Regards, David Delbecq --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]-- Brett Porter [EMAIL PROTECTED] http://blogs.exist.com/bporter/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Hello,I'd like your comments on this way of handling mapping. This is how i plan to map repository + filename to sourceforge releases: Once deciding of mapping is done, uploading seems straightforward, i just rip upload and navigation stuffs from maven1 sourceforge project. Might need a bit more work for download code, since Wagon is 2 ways and old maven 1 project am based on is upload only :D
/*** SfWagon is a Wagon to implement the sourceforge.net way of handling releases.
* There are mainly 3 working modes of this Sourceforge Wagon. The first 2 * modes are recommended as they respect the original filename, the last one* puts the full path in filename, which can make it difficult for your end users.
* For descriptions below we always assume file of the form * 'com/company/[...]/module/version/filename-qualifier.ext' * <ol> * <li>If repository url has form sf://sourceforge.net/projectname, * Sourceforge mapping is as follow:<ul> * <li>project="projectname"</li> * <li>package="com.company.[...]:module"</li> * <li>release="version"</li> * <li>filename="filename-qualifier.ext"</li> * </ul></li> * <li>If repository url has form * sf://sourceforge.net/projectname/package, * Sourceforge mapping is as follow:<ul> * <li>project="projectname"</li> * <li>package="package"</li> * <li>release="com.company.[...]:module:version"</li> * <li>filename="filename-qualifier.ext"</li> * </ul></li> * <li>If repository url has form * sf://sourceforge.net/projectname/package/release, * Sourceforge mapping is as follow:<ul> * <li>project="projectname"</li> * <li>package="package""</li> * <li>release="version"</li>* <li>filename="com.company.[...]:module:version:filename-qualifier.ext"</li>
* </ul></li>* * @author tchize
* * * @version $Id: SfWagon.java 615844 2008-01-28 10:31:09Z tchize $ * * @plexus.component role="org.apache.maven.wagon.Wagon" * role-hint="sf" * instantiation-strategy="per-lookup" */ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]