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>