Add HTTP PUT support for maven-sling-plugin
-------------------------------------------

                 Key: SLING-861
                 URL: https://issues.apache.org/jira/browse/SLING-861
             Project: Sling
          Issue Type: New Feature
          Components: Maven Plugins
            Reporter: Alexander Klimetschek
            Priority: Minor
             Fix For: Maven Sling Plugin 2.0.4


In addition to the standard POST that is tailored for the felix webconsole in 
the maven-sling-plugin install goal, it can also be useful to support simple 
PUT uploads of the bundle jar. This is useful in combination with the 
jcrinstall extension, where you could PUT the jar file via Jackrabbit's or 
Sling's WebDAV into a folder that is watched by jcrinstall.

Therefore I implemented this feature, using PUT for the install goal and DELETE 
for the uninstall goal. There is a new config option "sling.usePut" that must 
be set to "true" for using PUT or DELETE - by default it is false, so that the 
POST behaviour stays default.

To make the configuration of the plugin in a multi-module POM structure 
simpler, I also added a new config "sling.urlSuffix" that (if present) will be 
appended to the "sling.url" (in all cases, POST, PUT and DELETE). That allows 
you to specify a base path in your parent POM (sling.url=http://localhost:8080) 
and define a different path for each project 
(sling.urlSuffix=/libs/myproject/install), because with jcrinstall you can 
place them at different locations in the repository, if you wish.

There is also a "sling.mimeTypeForPut" option to set the content-type for the 
PUT request (by default it is "application/java-archive").

Just for reference, since the config names are different if you specify them in 
the pom (using the java field name in the Mojo rather than the defined 
expression....), here is a sample configuration:

           <plugin>
                <groupId>org.apache.sling</groupId>
                <artifactId>maven-sling-plugin</artifactId>
                <version>2.0.3-incubator-SNAPSHOT</version>
                <configuration>
                    <slingUrl>http://localhost:8080</slingUrl>
                    <slingUrlSuffix>/libs/myproject/install/</slingUrlSuffix>
                    <usePut>true</usePut>
                </configuration>
            </plugin>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to