You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:16:28 UTC

[sling-maven-sling-plugin] 15/28: SLING-798 - Adapt to latest web console and remove obsolete configurations.

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag maven-sling-plugin-2.0.4-incubator
in repository https://gitbox.apache.org/repos/asf/sling-maven-sling-plugin.git

commit de1cdac9787f6df2f93e892fb3b46cfb00f0b509
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Jan 19 16:32:41 2009 +0000

    SLING-798 - Adapt to latest web console and remove obsolete configurations.
    
    git-svn-id: https://svn.apache.org/repos/asf/incubator/sling/trunk/maven/maven-sling-plugin@735742 13f79535-47bb-0310-9956-ffa450edef68
---
 .../bundlesupport/AbstractBundleInstallMojo.java   | 102 ++++++++++++++-------
 1 file changed, 71 insertions(+), 31 deletions(-)

diff --git a/src/main/java/org/apache/sling/maven/bundlesupport/AbstractBundleInstallMojo.java b/src/main/java/org/apache/sling/maven/bundlesupport/AbstractBundleInstallMojo.java
index 5be7508..38e1e7e 100644
--- a/src/main/java/org/apache/sling/maven/bundlesupport/AbstractBundleInstallMojo.java
+++ b/src/main/java/org/apache/sling/maven/bundlesupport/AbstractBundleInstallMojo.java
@@ -304,45 +304,22 @@ abstract class AbstractBundleInstallMojo extends AbstractBundlePostMojo {
             while ( !found && entryIterator.hasNext() ) {
                 final Map.Entry current = (Map.Entry) entryIterator.next();
                 final String[] value = (String[])current.getValue();
+                getLog().debug("Comparing " + dir.getAbsolutePath() + " with " + value[0] + " (" + value[1] + ")");
                 if ( dir.getAbsolutePath().equals(value[0]) ) {
                     if ( installPath.equals(value[1]) ) {
                         getLog().debug("Using existing configuration for " + dir + " and " + installPath);
                         found = true;
                     } else {
-                        getLog().debug("Removing old configuration for " + value[0] + " and " + value[1]);
                         // remove old config
-                        // TODO
+                        getLog().debug("Removing old configuration for " + value[0] + " and " + value[1]);
+                        removeConfiguration(client, targetURL, current.getKey().toString());
                     }
                     entryIterator.remove();
                 }
             }
             if ( !found ) {
                 getLog().debug("Adding new configuration for " + dir + " and " + installPath);
-                final String postUrl = targetURL  + "/configMgr/" + FS_FACTORY;
-                final PostMethod post = new PostMethod(postUrl);
-                post.addParameter("apply", "true");
-                post.addParameter("factoryPid", FS_FACTORY);
-                post.addParameter("pid", "new");
-                post.addParameter("provider.file", dir.getAbsolutePath());
-                post.addParameter("provider.roots", installPath);
-                post.addParameter("propertylist", "provider.roots,provider.file");
-                try {
-                    final int status = client.executeMethod(post);
-                    // we get a moved temporarily back from the configMgr plugin
-                    if (status == HttpStatus.SC_MOVED_TEMPORARILY || status == HttpStatus.SC_OK) {
-                        getLog().info("Configuration created.");
-                    } else {
-                        getLog().error(
-                            "Configuration failed, cause: "
-                                + HttpStatus.getStatusText(status));
-                    }
-                } catch (HttpException ex) {
-                    throw new MojoExecutionException("Configuration on " + postUrl
-                            + " failed, cause: " + ex.getMessage(), ex);
-                } catch (IOException ex) {
-                    throw new MojoExecutionException("Configuration on " + postUrl
-                            + " failed, cause: " + ex.getMessage(), ex);
-                }
+                addConfiguration(client, targetURL, dir.getAbsolutePath(), installPath);
             }
         }
         // finally remove old configs
@@ -352,7 +329,65 @@ abstract class AbstractBundleInstallMojo extends AbstractBundlePostMojo {
             final String[] value = (String[])current.getValue();
             getLog().debug("Removing old configuration for " + value[0] + " and " + value[1]);
             // remove old config
-            // TODO
+            removeConfiguration(client, targetURL, current.getKey().toString());
+        }
+    }
+
+    protected void removeConfiguration(final HttpClient client, final String targetURL, String pid)
+    throws MojoExecutionException {
+        final String postUrl = targetURL  + "/configMgr/" + pid;
+        final PostMethod post = new PostMethod(postUrl);
+        post.addParameter("apply", "true");
+        post.addParameter("delete", "true");
+        try {
+            final int status = client.executeMethod(post);
+            // we get a moved temporarily back from the configMgr plugin
+            if (status == HttpStatus.SC_MOVED_TEMPORARILY || status == HttpStatus.SC_OK) {
+                getLog().info("Configuration removed.");
+            } else {
+                getLog().error(
+                    "Removing configuration failed, cause: "
+                        + HttpStatus.getStatusText(status));
+            }
+        } catch (HttpException ex) {
+            throw new MojoExecutionException("Removing configuration at " + postUrl
+                    + " failed, cause: " + ex.getMessage(), ex);
+        } catch (IOException ex) {
+            throw new MojoExecutionException("Removing configuration at " + postUrl
+                    + " failed, cause: " + ex.getMessage(), ex);
+        }
+    }
+
+    /**
+     * Add a new configuration for the file system provider
+     * @throws MojoExecutionException
+     */
+    protected void addConfiguration(final HttpClient client, final String targetURL, String dir, String path)
+    throws MojoExecutionException {
+        final String postUrl = targetURL  + "/configMgr/" + FS_FACTORY;
+        final PostMethod post = new PostMethod(postUrl);
+        post.addParameter("apply", "true");
+        post.addParameter("factoryPid", FS_FACTORY);
+        post.addParameter("pid", "[Temporary PID replaced by real PID upon save]");
+        post.addParameter("provider.file", dir);
+        post.addParameter("provider.roots", path);
+        post.addParameter("propertylist", "provider.roots,provider.file");
+        try {
+            final int status = client.executeMethod(post);
+            // we get a moved temporarily back from the configMgr plugin
+            if (status == HttpStatus.SC_MOVED_TEMPORARILY || status == HttpStatus.SC_OK) {
+                getLog().info("Configuration created.");
+            } else {
+                getLog().error(
+                    "Configuration failed, cause: "
+                        + HttpStatus.getStatusText(status));
+            }
+        } catch (HttpException ex) {
+            throw new MojoExecutionException("Configuration on " + postUrl
+                    + " failed, cause: " + ex.getMessage(), ex);
+        } catch (IOException ex) {
+            throw new MojoExecutionException("Configuration on " + postUrl
+                    + " failed, cause: " + ex.getMessage(), ex);
         }
     }
 
@@ -373,9 +408,14 @@ abstract class AbstractBundleInstallMojo extends AbstractBundlePostMojo {
 
         try {
             final int status = client.executeMethod(get);
-            if ( status == 200 )
-            {
-                if ( !JSON_MIME_TYPE.equals(get.getResponseHeader(HEADER_CONTENT_TYPE).getValue()) ) {
+            if ( status == 200 ) {
+                String contentType = get.getResponseHeader(HEADER_CONTENT_TYPE).getValue();
+                int pos = contentType.indexOf(';');
+                if ( pos != -1 ) {
+                    contentType = contentType.substring(0, pos);
+                }
+                if ( !JSON_MIME_TYPE.equals(contentType) ) {
+                    getLog().debug("Response type from web console is not JSON, but " + contentType);
                     throwWebConsoleTooOldException();
                 }
                 final String jsonText = get.getResponseBodyAsString();

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.