Sling
  1. Sling
  2. SLING-861

Add HTTP PUT support for maven-sling-plugin

    Details

      Description

      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>

        Activity

        Alexander Klimetschek created issue -
        Hide
        Alexander Klimetschek added a comment -

        Here is the patch against rev 745474 to be applied in maven/maven-sling-plugin.

        Let me know what you think!

        Show
        Alexander Klimetschek added a comment - Here is the patch against rev 745474 to be applied in maven/maven-sling-plugin. Let me know what you think!
        Alexander Klimetschek made changes -
        Field Original Value New Value
        Attachment sling-install-PUT-support.patch [ 12400413 ]
        Carsten Ziegeler made changes -
        Assignee Carsten Ziegeler [ cziegeler ]
        Hide
        Carsten Ziegeler added a comment -

        Thanks for your patch - I've applied it in revision:745510.
        Please cross check and then close this bugs.

        Thanks!

        Show
        Carsten Ziegeler added a comment - Thanks for your patch - I've applied it in revision:745510. Please cross check and then close this bugs. Thanks!
        Carsten Ziegeler made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Carsten Ziegeler made changes -
        Affects Version/s Maven Sling Plugin 2.0.2 [ 12313226 ]
        Hide
        Felix Meschberger added a comment -

        Thanks for the patch, I think this is a valuable addition. I have just a single remarK. How about naming the MIME Type parameter simply as

        sling.mimeType

        It is already documented to be only used for usePut=true, so this is looks cleaner and more straight-forward without sacrificing any thing.

        WDYT ?

        Show
        Felix Meschberger added a comment - Thanks for the patch, I think this is a valuable addition. I have just a single remarK. How about naming the MIME Type parameter simply as sling.mimeType It is already documented to be only used for usePut=true, so this is looks cleaner and more straight-forward without sacrificing any thing. WDYT ?
        Hide
        Carsten Ziegeler added a comment -

        I agree and renamed it in revision: 745515

        Show
        Carsten Ziegeler added a comment - I agree and renamed it in revision: 745515
        Carsten Ziegeler made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Felix Meschberger made changes -
        Workflow jira [ 12452870 ] no-reopen-closed,doc-test-required [ 12475182 ]
        Gavin made changes -
        Workflow no-reopen-closed,doc-test-required [ 12475182 ] Copy of no-reopen-closed,doc-test-required [ 12762963 ]
        Gavin made changes -
        Workflow Copy of no-reopen-closed,doc-test-required [ 12762963 ] no-reopen-closed,doc-test-required [ 12766696 ]
        Gavin made changes -
        Workflow no-reopen-closed,doc-test-required [ 12766696 ] re-open possible,doc-test-required [ 12788581 ]
        Gavin made changes -
        Workflow re-open possible,doc-test-required [ 12788581 ] no-reopen-closed,doc-test-required [ 12790643 ]
        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        53m 33s 1 Carsten Ziegeler 18/Feb/09 13:32
        Resolved Resolved Closed Closed
        20d 5h 9m 1 Carsten Ziegeler 10/Mar/09 18:42

          People

          • Assignee:
            Carsten Ziegeler
            Reporter:
            Alexander Klimetschek
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development