« Return to Thread: Adding a Wagon to the Wagon project

Re: Adding a Wagon to the Wagon project

by david delbecq-6 :: Rate this Message:

Reply to Author | View in Thread

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.
>>>
>>> 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).
>> I planned to do something similar to what FtpWagon does: extend
>> parent pom ^^
>>
>> 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/release
>>
>> Up 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: wagon-dev-unsubscribe@...
>> For additional commands, e-mail: wagon-dev-help@...
>>
>
> --
> Brett Porter
> brett@...
> http://blogs.exist.com/bporter/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wagon-dev-unsubscribe@...
> For additional commands, e-mail: wagon-dev-help@...
>
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: wagon-dev-unsubscribe@...
For additional commands, e-mail: wagon-dev-help@...

 « Return to Thread: Adding a Wagon to the Wagon project