Author: rombert
Date: Thu Sep 26 20:39:55 2013
New Revision: 1526676
URL: http://svn.apache.org/r1526676
Log:
SLING-3120 - Allow installing/updating the install support bundle from
the servers view
Make the OsgiClientFactory a SCR component/service.
Added:
sling/branches/tooling-ide-vlt/tooling/ide/api/OSGI-INF/
sling/branches/tooling-ide-vlt/tooling/ide/api/OSGI-INF/HttpOsgiClientFactory.xml
(with props)
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClientFactory.java
- copied, changed from r1526675,
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/OsgiClientFactory.java
Modified:
sling/branches/tooling-ide-vlt/tooling/ide/api/META-INF/MANIFEST.MF
sling/branches/tooling-ide-vlt/tooling/ide/api/build.properties
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/OsgiClientFactory.java
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
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-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/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
Modified: sling/branches/tooling-ide-vlt/tooling/ide/api/META-INF/MANIFEST.MF
URL:
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/api/META-INF/MANIFEST.MF?rev=1526676&r1=1526675&r2=1526676&view=diff
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/api/META-INF/MANIFEST.MF
(original)
+++ sling/branches/tooling-ide-vlt/tooling/ide/api/META-INF/MANIFEST.MF Thu Sep
26 20:39:55 2013
@@ -19,3 +19,4 @@ Import-Package: org.apache.commons.httpc
org.json,
org.osgi.framework;version="1.6.0",
org.osgi.service.event
+Service-Component: OSGI-INF/*.xml
Added:
sling/branches/tooling-ide-vlt/tooling/ide/api/OSGI-INF/HttpOsgiClientFactory.xml
URL:
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/api/OSGI-INF/HttpOsgiClientFactory.xml?rev=1526676&view=auto
==============================================================================
---
sling/branches/tooling-ide-vlt/tooling/ide/api/OSGI-INF/HttpOsgiClientFactory.xml
(added)
+++
sling/branches/tooling-ide-vlt/tooling/ide/api/OSGI-INF/HttpOsgiClientFactory.xml
Thu Sep 26 20:39:55 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"
immediate="false">
+ <implementation
class="org.apache.sling.ide.osgi.impl.HttpOsgiClientFactory"/>
+ <service>
+ <provide interface="org.apache.sling.ide.osgi.OsgiClientFactory"/>
+ </service>
+</scr:component>
Propchange:
sling/branches/tooling-ide-vlt/tooling/ide/api/OSGI-INF/HttpOsgiClientFactory.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
sling/branches/tooling-ide-vlt/tooling/ide/api/OSGI-INF/HttpOsgiClientFactory.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Modified: sling/branches/tooling-ide-vlt/tooling/ide/api/build.properties
URL:
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/api/build.properties?rev=1526676&r1=1526675&r2=1526676&view=diff
==============================================================================
--- sling/branches/tooling-ide-vlt/tooling/ide/api/build.properties (original)
+++ sling/branches/tooling-ide-vlt/tooling/ide/api/build.properties Thu Sep 26
20:39:55 2013
@@ -1,4 +1,5 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
- .
+ .,\
+ OSGI-INF/
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=1526676&r1=1526675&r2=1526676&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 20:39:55 2013
@@ -16,18 +16,13 @@
*/
package org.apache.sling.ide.osgi;
-import org.apache.sling.ide.osgi.impl.HttpOsgiClient;
import org.apache.sling.ide.transport.RepositoryInfo;
/**
* 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 interface OsgiClientFactory {
- public OsgiClient createOsgiClient(RepositoryInfo repositoryInfo) {
- return new HttpOsgiClient(repositoryInfo);
- }
+ OsgiClient createOsgiClient(RepositoryInfo repositoryInfo);
}
Copied:
sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClientFactory.java
(from r1526675,
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/impl/HttpOsgiClientFactory.java?p2=sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/impl/HttpOsgiClientFactory.java&p1=sling/branches/tooling-ide-vlt/tooling/ide/api/src/org/apache/sling/ide/osgi/OsgiClientFactory.java&r1=1526675&r2=1526676&rev=1526676&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/impl/HttpOsgiClientFactory.java
Thu Sep 26 20:39:55 2013
@@ -14,20 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sling.ide.osgi;
+package org.apache.sling.ide.osgi.impl;
-import org.apache.sling.ide.osgi.impl.HttpOsgiClient;
+import org.apache.sling.ide.osgi.OsgiClient;
+import org.apache.sling.ide.osgi.OsgiClientFactory;
import org.apache.sling.ide.transport.RepositoryInfo;
-/**
- * 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 class HttpOsgiClientFactory implements OsgiClientFactory {
public OsgiClient createOsgiClient(RepositoryInfo repositoryInfo) {
return new HttpOsgiClient(repositoryInfo);
}
-}
+}
\ No newline at end of file
Modified:
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
URL:
http://svn.apache.org/viewvc/sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java?rev=1526676&r1=1526675&r2=1526676&view=diff
==============================================================================
---
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
(original)
+++
sling/branches/tooling-ide-vlt/tooling/ide/eclipse-core/src/org/apache/sling/ide/eclipse/core/internal/Activator.java
Thu Sep 26 20:39:55 2013
@@ -18,6 +18,7 @@ package org.apache.sling.ide.eclipse.cor
import org.apache.sling.ide.eclipse.core.ServiceUtil;
import org.apache.sling.ide.filter.FilterLocator;
+import org.apache.sling.ide.osgi.OsgiClientFactory;
import org.apache.sling.ide.serialization.SerializationManager;
import org.apache.sling.ide.transport.Repository;
import org.eclipse.core.runtime.Plugin;
@@ -43,6 +44,7 @@ public class Activator extends Plugin {
private ServiceTracker<Repository, Repository> repository;
private ServiceTracker<SerializationManager, SerializationManager>
serializationManager;
private ServiceTracker<FilterLocator, FilterLocator> filterLocator;
+ private ServiceTracker<OsgiClientFactory, OsgiClientFactory>
osgiClientFactory;
public void start(BundleContext context) throws Exception {
super.start(context);
@@ -57,6 +59,10 @@ public class Activator extends Plugin {
filterLocator = new ServiceTracker<FilterLocator,
FilterLocator>(context, FilterLocator.class, null);
filterLocator.open();
+
+ osgiClientFactory = new ServiceTracker<OsgiClientFactory,
OsgiClientFactory>(context, OsgiClientFactory.class,
+ null);
+ osgiClientFactory.open();
}
/*
@@ -67,6 +73,7 @@ public class Activator extends Plugin {
repository.close();
serializationManager.close();
filterLocator.close();
+ osgiClientFactory.close();
plugin = null;
super.stop(context);
@@ -93,4 +100,8 @@ public class Activator extends Plugin {
public FilterLocator getFilterLocator() {
return ServiceUtil.getNotNull(filterLocator);
}
+
+ public OsgiClientFactory getOsgiClientFactory() {
+ return ServiceUtil.getNotNull(osgiClientFactory);
+ }
}
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=1526676&r1=1526675&r2=1526676&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 20:39:55 2013
@@ -46,7 +46,6 @@ import org.apache.sling.ide.filter.Filte
import org.apache.sling.ide.filter.FilterResult;
import org.apache.sling.ide.osgi.OsgiClient;
import org.apache.sling.ide.osgi.OsgiClientException;
-import org.apache.sling.ide.osgi.OsgiClientFactory;
import org.apache.sling.ide.serialization.SerializationException;
import org.apache.sling.ide.serialization.SerializationKind;
import org.apache.sling.ide.serialization.SerializationManager;
@@ -119,7 +118,7 @@ public class SlingLaunchpadBehaviour ext
RepositoryInfo repositoryInfo;
try {
repositoryInfo = ServerUtil.getRepositoryInfo(getServer(),
monitor);
- OsgiClient client = new
OsgiClientFactory().createOsgiClient(repositoryInfo);
+ OsgiClient client =
Activator.getDefault().getOsgiClientFactory().createOsgiClient(repositoryInfo);
Version bundleVersion =
client.getBundleVersion(EmbeddedArtifactLocator.SUPPORT_BUNDLE_SYMBOLIC_NAME);
ISlingLaunchpadServer launchpadServer =
(ISlingLaunchpadServer) getServer().loadAdapter(SlingLaunchpadServer.class,
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=1526676&r1=1526675&r2=1526676&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 20:39:55 2013
@@ -2,6 +2,7 @@ package org.apache.sling.ide.eclipse.m2e
import org.apache.sling.ide.artifacts.EmbeddedArtifactLocator;
import org.apache.sling.ide.eclipse.core.ServiceUtil;
+import org.apache.sling.ide.osgi.OsgiClientFactory;
import org.eclipse.core.runtime.Plugin;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;
@@ -12,6 +13,7 @@ public class Activator extends Plugin {
public static Activator INSTANCE;
private ServiceTracker<EmbeddedArtifactLocator, EmbeddedArtifactLocator>
artifactLocator;
+ private ServiceTracker<OsgiClientFactory, OsgiClientFactory>
osgiClientFactory;
public static Activator getDefault() {
return INSTANCE;
@@ -25,6 +27,10 @@ public class Activator extends Plugin {
artifactLocator = new ServiceTracker<EmbeddedArtifactLocator,
EmbeddedArtifactLocator>(context, EmbeddedArtifactLocator.class, null);
artifactLocator.open();
+
+ osgiClientFactory = new ServiceTracker<OsgiClientFactory,
OsgiClientFactory>(context, OsgiClientFactory.class,
+ null);
+ osgiClientFactory.open();
}
@Override
@@ -40,4 +46,9 @@ public class Activator extends Plugin {
return ServiceUtil.getNotNull(artifactLocator);
}
+
+ public OsgiClientFactory getOsgiClientFactory() {
+
+ return ServiceUtil.getNotNull(osgiClientFactory);
+ }
}
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=1526676&r1=1526675&r2=1526676&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 20:39:55 2013
@@ -289,7 +289,7 @@ public class SetupServerWizardPage exten
String hostname = getHostname();
int launchpadPort = getPort();
- OsgiClientFactory factory = new OsgiClientFactory();
+ OsgiClientFactory factory =
Activator.getDefault().getOsgiClientFactory();
// TODO remove credential hardcoding
return factory.createOsgiClient(new RepositoryInfo("admin", "admin",
"http://" + hostname + ":" + launchpadPort
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=1526676&r1=1526675&r2=1526676&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 20:39:55 2013
@@ -19,6 +19,7 @@ package org.apache.sling.ide.eclipse.ui.
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.osgi.OsgiClientFactory;
import org.apache.sling.ide.serialization.SerializationManager;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
@@ -34,6 +35,7 @@ public class Activator extends AbstractU
private ServiceTracker<FilterLocator, FilterLocator> filterLocator;
private ServiceTracker<EventAdmin, EventAdmin> eventAdmin;
private ServiceTracker<EmbeddedArtifactLocator, EmbeddedArtifactLocator>
artifactLocator;
+ private ServiceTracker<OsgiClientFactory, OsgiClientFactory>
osgiClientFactory;
public static Activator getDefault() {
@@ -57,6 +59,10 @@ public class Activator extends AbstractU
artifactLocator = new ServiceTracker<>(context,
EmbeddedArtifactLocator.class, null);
artifactLocator.open();
+ osgiClientFactory = new ServiceTracker<OsgiClientFactory,
OsgiClientFactory>(context, OsgiClientFactory.class,
+ null);
+ osgiClientFactory.open();
+
INSTANCE = this;
}
@@ -67,6 +73,7 @@ public class Activator extends AbstractU
filterLocator.close();
eventAdmin.close();
artifactLocator.close();
+ osgiClientFactory.close();
super.stop(context);
}
@@ -87,4 +94,8 @@ public class Activator extends AbstractU
return ServiceUtil.getNotNull(artifactLocator);
}
+
+ public OsgiClientFactory getOsgiClientFactory() {
+ return ServiceUtil.getNotNull(osgiClientFactory);
+ }
}
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=1526676&r1=1526675&r2=1526676&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 20:39:55 2013
@@ -78,6 +78,7 @@ public class InstallEditorSection extend
private Label supportBundleVersionLabel;
private Composite actionArea;
private EmbeddedArtifactLocator artifactLocator;
+ private OsgiClientFactory osgiClientFactory;
@Override
public void createSection(Composite parent) {
@@ -157,6 +158,7 @@ public class InstallEditorSection extend
}
artifactLocator = Activator.getDefault().getArtifactLocator();
+ osgiClientFactory = Activator.getDefault().getOsgiClientFactory();
}
private void initialize() {
@@ -207,7 +209,7 @@ public class InstallEditorSection extend
try {
RepositoryInfo repositoryInfo =
ServerUtil.getRepositoryInfo(server.getOriginal(),
monitor);
- OsgiClient client = new
OsgiClientFactory().createOsgiClient(repositoryInfo);
+ OsgiClient client =
osgiClientFactory.createOsgiClient(repositoryInfo);
remoteVersion = client
.getBundleVersion(EmbeddedArtifactLocator.SUPPORT_BUNDLE_SYMBOLIC_NAME);
deployedVersion = remoteVersion;