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;


Reply via email to