Author: rombert
Date: Thu Sep 26 15:59:29 2013
New Revision: 1526588

URL: http://svn.apache.org/r1526588
Log:
SLING-3120 - Allow installing/updating the install support bundle from
the servers view

Separate the artifacts into a org.apache.sling.ide.artifacts bundle.
This bundle now allows access to the tooling support bundle ( for now ).

Installation works from the servers view, refresh after installation
pending though.

Added:
    sling/branches/tooling-ide-vlt/tooling/ide/artifacts/
    sling/branches/tooling-ide-vlt/tooling/ide/artifacts/META-INF/
    sling/branches/tooling-ide-vlt/tooling/ide/artifacts/META-INF/MANIFEST.MF
    sling/branches/tooling-ide-vlt/tooling/ide/artifacts/OSGI-INF/
    
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/OSGI-INF/ArtifactsLocatorImpl.xml
   (with props)
    sling/branches/tooling-ide-vlt/tooling/ide/artifacts/build.properties   
(with props)
    sling/branches/tooling-ide-vlt/tooling/ide/artifacts/pom.xml   (with props)
    sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/
    sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/
    sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/
    sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/
    
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/
    
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/
    
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifact.java
   (with props)
    
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java
   (contents, props changed)
      - copied, changed from r1526474, 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/EmbeddedArtifacts.java
    
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/impl/
    
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
   (with props)
Removed:
    
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/EmbeddedArtifacts.java
Modified:
    
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/OsgiClientFactory.java
    
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClient.java
    sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/META-INF/MANIFEST.MF
    
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
    
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadServer.java
    
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/META-INF/MANIFEST.MF
    
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java
    
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/SetupServerWizardPage.java
    sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/META-INF/MANIFEST.MF
    
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java
    
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/InstallEditorSection.java
    sling/branches/tooling-ide-vlt/tooling/ide/pom.xml

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/OsgiClientFactory.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/OsgiClientFactory.java?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/OsgiClientFactory.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/OsgiClientFactory.java
 Thu Sep 26 15:59:29 2013
@@ -23,6 +23,8 @@ import org.apache.sling.ide.transport.Re
  * The <tt>OsgiClientFactory</tt> creates <tt>OsgiClient</tt> instances
  * 
  */
+// TODO - this should be a declarative service, but this can't be done with a 
Require-Bundle on the
+// org.eclipse.equinox.ds bundle
 public class OsgiClientFactory {
 
     public OsgiClient createOsgiClient(RepositoryInfo repositoryInfo) {

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClient.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClient.java?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClient.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClient.java
 Thu Sep 26 15:59:29 2013
@@ -107,6 +107,15 @@ public class HttpOsgiClient implements O
 
     @Override
     public void installBundle(InputStream in, String fileName) throws 
OsgiClientException {
+
+        if (in == null) {
+            throw new IllegalArgumentException("in may not be null");
+        }
+
+        if (fileName == null) {
+            throw new IllegalArgumentException("fileName may not be null");
+        }
+
         // append pseudo path after root URL to not get redirected for nothing
         final PostMethod filePost = new 
PostMethod(repositoryInfo.getUrl()+"system/console/install");
 

Added: sling/branches/tooling-ide-vlt/tooling/ide/artifacts/META-INF/MANIFEST.MF
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/artifacts/META-INF/MANIFEST.MF?rev=1526588&view=auto
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/artifacts/META-INF/MANIFEST.MF 
(added)
+++ sling/branches/tooling-ide-vlt/tooling/ide/artifacts/META-INF/MANIFEST.MF 
Thu Sep 26 15:59:29 2013
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.apache.sling.ide.artifacts
+Bundle-Version: 0.0.1.qualifier
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.osgi.service.component,
+  org.osgi.framework
+Require-Bundle: org.eclipse.equinox.ds;bundle-version="1.3.1",
+ org.eclipse.osgi.services;bundle-version="3.2.100"
+Service-Component: OSGI-INF/*.xml
+Export-Package: org.apache.sling.ide.artifacts

Added: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/OSGI-INF/ArtifactsLocatorImpl.xml
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/artifacts/OSGI-INF/ArtifactsLocatorImpl.xml?rev=1526588&view=auto
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/OSGI-INF/ArtifactsLocatorImpl.xml
 (added)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/OSGI-INF/ArtifactsLocatorImpl.xml
 Thu Sep 26 15:59:29 2013
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0";>
+    <implementation 
class="org.apache.sling.ide.artifacts.impl.ArtifactsLocatorImpl" />
+    <service>
+       <provide 
interface="org.apache.sling.ide.artifacts.EmbeddedArtifactLocator"/>
+    </service>
+</scr:component>

Propchange: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/OSGI-INF/ArtifactsLocatorImpl.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/OSGI-INF/ArtifactsLocatorImpl.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: sling/branches/tooling-ide-vlt/tooling/ide/artifacts/build.properties
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/artifacts/build.properties?rev=1526588&view=auto
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/artifacts/build.properties 
(added)
+++ sling/branches/tooling-ide-vlt/tooling/ide/artifacts/build.properties Thu 
Sep 26 15:59:29 2013
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               target/sling-tooling-support-install/,\
+               OSGI-INF/

Propchange: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/build.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Added: sling/branches/tooling-ide-vlt/tooling/ide/artifacts/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/artifacts/pom.xml?rev=1526588&view=auto
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/artifacts/pom.xml (added)
+++ sling/branches/tooling-ide-vlt/tooling/ide/artifacts/pom.xml Thu Sep 26 
15:59:29 2013
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";
+    xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.sling.ide</groupId>
+        <artifactId>reactor</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </parent>
+    <artifactId>org.apache.sling.ide.artifacts</artifactId>
+    <packaging>eclipse-plugin</packaging>
+    <name>Sling IDE Tools: Embedded Artifacts</name>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.8</version>
+                <executions>
+                    <execution>
+                        <id>copy</id>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>copy</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>org.apache.sling</groupId>
+                                    
<artifactId>org.apache.sling.tooling.support.install</artifactId>
+                                    <version>0.0.1-SNAPSHOT</version>
+                                    <overWrite>false</overWrite>
+                                    
<outputDirectory>${project.build.directory}/sling-tooling-support-install</outputDirectory>
+                                </artifactItem>
+                            </artifactItems>
+                            <overWriteReleases>false</overWriteReleases>
+                            <overWriteSnapshots>true</overWriteSnapshots>
+                            <stripVersion>true</stripVersion>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

Propchange: sling/branches/tooling-ide-vlt/tooling/ide/artifacts/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/branches/tooling-ide-vlt/tooling/ide/artifacts/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifact.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifact.java?rev=1526588&view=auto
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifact.java
 (added)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifact.java
 Thu Sep 26 15:59:29 2013
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.ide.artifacts;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+public class EmbeddedArtifact {
+
+    private final String name;
+    private final String version;
+    private final URL source;
+
+    public EmbeddedArtifact(String name, String version, URL source) {
+
+        if (name == null) {
+            throw new IllegalArgumentException("The name may not be null");
+        }
+
+        if (version == null) {
+            throw new IllegalArgumentException("The version may not be null");
+        }
+
+        if (source == null) {
+            throw new IllegalArgumentException("The source may not be null");
+        }
+
+        this.version = version;
+        this.source = source;
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    /**
+     * 
+     * Returns a new input stream to this embedded artifact
+     * 
+     * <p>
+     * It is the responsibility of the caller to close this input stream when 
no longer needed.
+     * </p>
+     * 
+     * @return an input stream to this source
+     * @throws IOException
+     */
+    public InputStream openInputStream() throws IOException {
+
+        return source.openStream();
+    }
+
+}

Propchange: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifact.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev URL

Copied: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java
 (from r1526474, 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/EmbeddedArtifacts.java)
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java?p2=sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java&p1=sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/EmbeddedArtifacts.java&r1=1526474&r2=1526588&rev=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/EmbeddedArtifacts.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java
 Thu Sep 26 15:59:29 2013
@@ -14,11 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.ide.eclipse.core;
+package org.apache.sling.ide.artifacts;
 
-public class EmbeddedArtifacts {
+public interface EmbeddedArtifactLocator {
 
     public static final String SUPPORT_BUNDLE_SYMBOLIC_NAME = 
"org.apache.sling.tooling.support.install";
-    public static final String SUPPORT_BUNDLE_VERSION = "0.0.1.SNAPSHOT"; // 
TODO - remove version hardcoding
+
+    EmbeddedArtifact loadToolingSupportBundle();
 
 }

Propchange: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/EmbeddedArtifactLocator.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev URL

Added: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java?rev=1526588&view=auto
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
 (added)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
 Thu Sep 26 15:59:29 2013
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.ide.artifacts.impl;
+
+import java.net.URL;
+
+import org.apache.sling.ide.artifacts.EmbeddedArtifactLocator;
+import org.apache.sling.ide.artifacts.EmbeddedArtifact;
+import org.osgi.framework.BundleContext;
+import org.osgi.service.component.ComponentContext;
+
+public class ArtifactsLocatorImpl implements EmbeddedArtifactLocator {
+
+    private ComponentContext context;
+
+    protected void activate(ComponentContext context) {
+
+        this.context = context;
+
+    }
+
+    @Override
+    public EmbeddedArtifact loadToolingSupportBundle() {
+
+        BundleContext bundleContext = context.getBundleContext();
+
+        String artifactId = "org.apache.sling.tooling.support.install";
+        String extension = "jar";
+        String resourceLocation = "target/sling-tooling-support-install/" + 
artifactId + "." + extension;
+        URL jarUrl = bundleContext.getBundle().getResource(resourceLocation);
+        String version = "0.0.1.SNAPSHOT"; // TODO - remove version hardcoding
+        if (jarUrl == null) {
+            throw new RuntimeException("Unable to locate bundle resource " + 
resourceLocation);
+        }
+
+        return new EmbeddedArtifact(artifactId + "-" + version + "." + 
extension, version, jarUrl);
+    }
+
+}

Propchange: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
sling/branches/tooling-ide-vlt/tooling/ide/artifacts/src/org/apache/sling/ide/artifacts/impl/ArtifactsLocatorImpl.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev URL

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/META-INF/MANIFEST.MF
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/META-INF/MANIFEST.MF?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/META-INF/MANIFEST.MF 
(original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/META-INF/MANIFEST.MF 
Thu Sep 26 15:59:29 2013
@@ -14,6 +14,7 @@ Bundle-ClassPath: .
 Import-Package: org.apache.commons.httpclient;version="3.1.0",
  org.apache.commons.httpclient.auth;version="3.1.0",
  org.apache.commons.httpclient.methods;version="3.1.0",
+ org.apache.sling.ide.artifacts,
  org.apache.sling.ide.filter,
  org.apache.sling.ide.osgi,
  org.apache.sling.ide.serialization,

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadBehaviour.java
 Thu Sep 26 15:59:29 2013
@@ -36,7 +36,7 @@ import org.apache.commons.httpclient.URI
 import org.apache.commons.httpclient.UsernamePasswordCredentials;
 import org.apache.commons.httpclient.auth.AuthScope;
 import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.sling.ide.eclipse.core.EmbeddedArtifacts;
+import org.apache.sling.ide.artifacts.EmbeddedArtifactLocator;
 import org.apache.sling.ide.eclipse.core.ISlingLaunchpadServer;
 import org.apache.sling.ide.eclipse.core.MavenLaunchHelper;
 import org.apache.sling.ide.eclipse.core.ProjectUtil;
@@ -120,11 +120,12 @@ public class SlingLaunchpadBehaviour ext
             try {
                 repositoryInfo = ServerUtil.getRepositoryInfo(getServer(), 
monitor);
                 OsgiClient client = new 
OsgiClientFactory().createOsgiClient(repositoryInfo);
-                Version bundleVersion = 
client.getBundleVersion(EmbeddedArtifacts.SUPPORT_BUNDLE_SYMBOLIC_NAME);
+                Version bundleVersion = 
client.getBundleVersion(EmbeddedArtifactLocator.SUPPORT_BUNDLE_SYMBOLIC_NAME);
                 
                 ISlingLaunchpadServer launchpadServer = 
(ISlingLaunchpadServer) getServer().loadAdapter(SlingLaunchpadServer.class,
                         monitor);
-                
launchpadServer.setBundleVersion(EmbeddedArtifacts.SUPPORT_BUNDLE_SYMBOLIC_NAME,
 bundleVersion, monitor);
+                
launchpadServer.setBundleVersion(EmbeddedArtifactLocator.SUPPORT_BUNDLE_SYMBOLIC_NAME,
 bundleVersion,
+                        monitor);
                 
             } catch (URISyntaxException e) {
                 Activator.getDefault().getLog().log(new 
Status(IStatus.WARNING, Activator.PLUGIN_ID, 

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadServer.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadServer.java?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadServer.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/SlingLaunchpadServer.java
 Thu Sep 26 15:59:29 2013
@@ -157,7 +157,9 @@ public class SlingLaunchpadServer extend
     @Override
     public Version getBundleVersion(String bundleSymbolicName) {
 
-        return new 
Version(getAttribute(String.format(PROP_BUNDLE_VERSION_FORMAT, 
bundleSymbolicName), (String) null));
+        String rawValue = 
getAttribute(String.format(PROP_BUNDLE_VERSION_FORMAT, bundleSymbolicName), 
(String) null);
+
+        return rawValue != null ? new Version(rawValue) : null;
     }
 
     @Override

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/META-INF/MANIFEST.MF
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/META-INF/MANIFEST.MF?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/META-INF/MANIFEST.MF 
(original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/META-INF/MANIFEST.MF 
Thu Sep 26 15:59:29 2013
@@ -23,6 +23,7 @@ Import-Package: org.apache.commons.httpc
  org.apache.maven.execution,
  org.apache.maven.model,
  org.apache.maven.plugin,
+ org.apache.sling.ide.artifacts,
  org.apache.sling.ide.eclipse.core,
  org.apache.sling.ide.osgi,
  org.apache.sling.ide.transport,
@@ -54,6 +55,7 @@ Import-Package: org.apache.commons.httpc
  org.eclipse.wst.common.project.facet.core,
  org.eclipse.wst.server.core,
  org.osgi.framework;version="1.6.0",
+ org.osgi.util.tracker;version="1.5.0",
  org.sonatype.aether
 Bundle-ActivationPolicy: lazy
 Export-Package: org.apache.sling.ide.eclipse.m2e,

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/Activator.java
 Thu Sep 26 15:59:29 2013
@@ -1,13 +1,18 @@
 package org.apache.sling.ide.eclipse.m2e.internal;
 
+import org.apache.sling.ide.artifacts.EmbeddedArtifactLocator;
+import org.apache.sling.ide.eclipse.core.ServiceUtil;
 import org.eclipse.core.runtime.Plugin;
 import org.osgi.framework.BundleContext;
+import org.osgi.util.tracker.ServiceTracker;
 
 public class Activator extends Plugin {
 
     public static final String PLUGIN_ID = 
"org.apache.sling.ide.eclipse-m2e-ui";
     public static Activator INSTANCE;
 
+    private ServiceTracker<EmbeddedArtifactLocator, EmbeddedArtifactLocator> 
artifactLocator;
+
     public static Activator getDefault() {
         return INSTANCE;
     }
@@ -17,12 +22,22 @@ public class Activator extends Plugin {
         super.start(context);
 
         INSTANCE = this;
+
+        artifactLocator = new ServiceTracker<EmbeddedArtifactLocator, 
EmbeddedArtifactLocator>(context, EmbeddedArtifactLocator.class, null);
+        artifactLocator.open();
     }
 
     @Override
     public void stop(BundleContext context) throws Exception {
         INSTANCE = null;
 
+        artifactLocator.close();
+
         super.stop(context);
     }
+
+    public EmbeddedArtifactLocator getArtifactsLocator() {
+
+        return ServiceUtil.getNotNull(artifactLocator);
+    }
 }

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/SetupServerWizardPage.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/SetupServerWizardPage.java?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/SetupServerWizardPage.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/SetupServerWizardPage.java
 Thu Sep 26 15:59:29 2013
@@ -23,7 +23,8 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.sling.ide.eclipse.core.EmbeddedArtifacts;
+import org.apache.sling.ide.artifacts.EmbeddedArtifactLocator;
+import org.apache.sling.ide.artifacts.EmbeddedArtifact;
 import org.apache.sling.ide.eclipse.core.ISlingLaunchpadServer;
 import org.apache.sling.ide.eclipse.m2e.internal.Activator;
 import org.apache.sling.ide.osgi.OsgiClient;
@@ -281,19 +282,18 @@ public class SetupServerWizardPage exten
 
     private Version getToolingSupportBundleVersion() throws 
OsgiClientException {
 
-        return 
newOsgiClient().getBundleVersion(EmbeddedArtifacts.SUPPORT_BUNDLE_SYMBOLIC_NAME);
+        return 
newOsgiClient().getBundleVersion(EmbeddedArtifactLocator.SUPPORT_BUNDLE_SYMBOLIC_NAME);
     }
     
     private void installToolingSupportBundle() throws OsgiClientException, 
IOException {
-        // TODO centralize version and resource lookup
-       String fileName = 
"org.apache.sling.tooling.support.install-0.0.1-SNAPSHOT.jar";
-               URL jarUrl = Activator.getDefault().getBundle().getResource(
-                       "target/sling-tooling-support-install/"+fileName);
+
+        EmbeddedArtifactLocator artifactsLocator = 
Activator.getDefault().getArtifactsLocator();
+        EmbeddedArtifact toolingSupportBundle = 
artifactsLocator.loadToolingSupportBundle();
 
         InputStream contents = null;
         try {
-            contents = jarUrl.openStream();
-            newOsgiClient().installBundle(contents, fileName);
+            contents = toolingSupportBundle.openInputStream();
+            newOsgiClient().installBundle(contents, 
toolingSupportBundle.getName());
         } finally {
             IOUtils.closeQuietly(contents);
         }

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/META-INF/MANIFEST.MF
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/META-INF/MANIFEST.MF?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/META-INF/MANIFEST.MF 
(original)
+++ sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/META-INF/MANIFEST.MF 
Thu Sep 26 15:59:29 2013
@@ -14,6 +14,7 @@ Import-Package: org.apache.commons.httpc
  org.apache.commons.httpclient.params;version="3.1.0",
  org.apache.commons.io;version="2.0.1",
  org.apache.jackrabbit.util,
+ org.apache.sling.ide.artifacts,
  org.apache.sling.ide.eclipse.core,
  org.apache.sling.ide.filter,
  org.apache.sling.ide.osgi,

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/Activator.java
 Thu Sep 26 15:59:29 2013
@@ -16,6 +16,7 @@
  */
 package org.apache.sling.ide.eclipse.ui.internal;
 
+import org.apache.sling.ide.artifacts.EmbeddedArtifactLocator;
 import org.apache.sling.ide.eclipse.core.ServiceUtil;
 import org.apache.sling.ide.filter.FilterLocator;
 import org.apache.sling.ide.serialization.SerializationManager;
@@ -32,6 +33,7 @@ public class Activator extends AbstractU
     private ServiceTracker<SerializationManager, SerializationManager> 
serializationManager;
     private ServiceTracker<FilterLocator, FilterLocator> filterLocator;
     private ServiceTracker<EventAdmin, EventAdmin> eventAdmin;
+    private ServiceTracker<EmbeddedArtifactLocator, EmbeddedArtifactLocator> 
artifactLocator;
 
     public static Activator getDefault() {
 
@@ -52,6 +54,9 @@ public class Activator extends AbstractU
         eventAdmin = new ServiceTracker<EventAdmin, EventAdmin>(context, 
EventAdmin.class, null);
         eventAdmin.open();
 
+        artifactLocator = new ServiceTracker<>(context, 
EmbeddedArtifactLocator.class, null);
+        artifactLocator.open();
+
         INSTANCE = this;
     }
 
@@ -61,6 +66,7 @@ public class Activator extends AbstractU
         serializationManager.close();
         filterLocator.close();
         eventAdmin.close();
+        artifactLocator.close();
 
         super.stop(context);
     }
@@ -76,4 +82,9 @@ public class Activator extends AbstractU
     public EventAdmin getEventAdmin() {
         return ServiceUtil.getNotNull(eventAdmin);
     }
+
+    public EmbeddedArtifactLocator getArtifactLocator() {
+
+        return ServiceUtil.getNotNull(artifactLocator);
+    }
 }

Modified: 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/InstallEditorSection.java
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/InstallEditorSection.java?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/InstallEditorSection.java
 (original)
+++ 
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/internal/InstallEditorSection.java
 Thu Sep 26 15:59:29 2013
@@ -18,10 +18,14 @@ package org.apache.sling.ide.eclipse.ui.
 
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
+import java.io.IOException;
+import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
 import java.net.URISyntaxException;
 
-import org.apache.sling.ide.eclipse.core.EmbeddedArtifacts;
+import org.apache.commons.io.IOUtils;
+import org.apache.sling.ide.artifacts.EmbeddedArtifact;
+import org.apache.sling.ide.artifacts.EmbeddedArtifactLocator;
 import org.apache.sling.ide.eclipse.core.ISlingLaunchpadConfiguration;
 import org.apache.sling.ide.eclipse.core.ISlingLaunchpadServer;
 import org.apache.sling.ide.eclipse.core.ServerUtil;
@@ -156,19 +160,28 @@ public class InstallEditorSection extend
 
         quickLocalInstallButton.addSelectionListener(listener);
         mvnSlingInstallButton.addSelectionListener(listener);
-        
 
-        Version version = 
launchpadServer.getBundleVersion(EmbeddedArtifacts.SUPPORT_BUNDLE_SYMBOLIC_NAME);
-        final Version embeddedVersion = new 
Version(EmbeddedArtifacts.SUPPORT_BUNDLE_VERSION);
+        Version version;
+        final EmbeddedArtifact supportBundle;
+        try {
+            version = 
launchpadServer.getBundleVersion(EmbeddedArtifactLocator.SUPPORT_BUNDLE_SYMBOLIC_NAME);
+            EmbeddedArtifactLocator artifactLocator = 
Activator.getDefault().getArtifactLocator();
+            supportBundle = artifactLocator.loadToolingSupportBundle();
+        } catch (RuntimeException e2) {
+            // TODO Auto-generated catch block
+            e2.printStackTrace();
+            throw e2;
+        }
+
+        final Version embeddedVersion = new 
Version(supportBundle.getVersion());
+
         if (version == null || embeddedVersion.compareTo(version) > 0) {
             supportBundleVersionLabel
                     .setText("Installation support bundle is not present our 
outdated, local deployment will not work");
             installOrUpdateSupportBundleLink.setEnabled(true);
-            // actionArea.setVisible(true);
         } else {
             supportBundleVersionLabel.setText("Installation support bundle is 
present and up to date.");
             installOrUpdateSupportBundleLink.setEnabled(false);
-            // actionArea.setVisible(false);
         }
 
         installOrUpdateSupportBundleLink.addHyperlinkListener(new 
HyperlinkAdapter() {
@@ -194,7 +207,8 @@ public class InstallEditorSection extend
                                 RepositoryInfo repositoryInfo = 
ServerUtil.getRepositoryInfo(server.getOriginal(),
                                         monitor);
                                 OsgiClient client = new 
OsgiClientFactory().createOsgiClient(repositoryInfo);
-                                remoteVersion = 
client.getBundleVersion(EmbeddedArtifacts.SUPPORT_BUNDLE_SYMBOLIC_NAME);
+                                remoteVersion = client
+                                        
.getBundleVersion(EmbeddedArtifactLocator.SUPPORT_BUNDLE_SYMBOLIC_NAME);
 
                                 monitor.worked(1);
 
@@ -204,7 +218,15 @@ public class InstallEditorSection extend
                                     message = "Bundle is already installed and 
up to date";
                                 } else {
                                     monitor.setTaskName("Installing bundle");
-                                    message = "!!! Installation not yet 
supported";
+                                    InputStream contents = null;
+                                    try {
+                                        contents = 
supportBundle.openInputStream();
+                                        client.installBundle(contents, 
supportBundle.getName());
+                                    } finally {
+                                        IOUtils.closeQuietly(contents);
+                                    }
+                                    message = "Bundle version " + 
embeddedVersion + " installed";
+
                                 }
                                 monitor.worked(1);
 
@@ -212,6 +234,8 @@ public class InstallEditorSection extend
                                 throw new InvocationTargetException(e);
                             } catch (URISyntaxException e) {
                                 throw new InvocationTargetException(e);
+                            } catch (IOException e) {
+                                throw new InvocationTargetException(e);
                             } finally {
                                 monitor.done();
                             }

Modified: sling/branches/tooling-ide-vlt/tooling/ide/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/pom.xml?rev=1526588&r1=1526587&r2=1526588&view=diff
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/pom.xml (original)
+++ sling/branches/tooling-ide-vlt/tooling/ide/pom.xml Thu Sep 26 15:59:29 2013
@@ -11,7 +11,8 @@
        <modules>
                <module>target-definition</module>
                <module>api</module>
-               <module>api-test</module>
+        <module>api-test</module>
+        <module>artifacts</module>
                <module>impl-resource</module>
         <module>impl-resource-test</module>
                <module>vlt-wrapper</module>                


Reply via email to