Marathon: support discovering previously deployed apps.
diff --git a/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonContainerFactory.java b/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonContainerFactory.java
index 60321ba..a508c53 100644
--- a/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonContainerFactory.java
+++ b/containers-marathon/src/main/java/org/apache/aries/containers/marathon/impl/MarathonContainerFactory.java
@@ -58,7 +58,11 @@
 
     @Override
     public Service getService(ServiceConfig config) throws Exception {
-        // TODO get existing service
+        GetAppsResponse existing = marathonClient.getApps(
+                Collections.singletonMap("label", SERVICE_NAME + "==" + config.getServiceName()));
+        if (existing.getApps().size() > 0) {
+            return createServiceFromExistingApp(existing.getApps(), config);
+        }
 
         App app = new App();
         app.setId(config.getServiceName());
@@ -110,6 +114,14 @@
         return createServiceFromApp(res, config);
     }
 
+    private Service createServiceFromExistingApp(List<App> apps, ServiceConfig config) {
+        if (apps.size() != 1)
+            throw new IllegalStateException("More than one existing app found for service " +
+                    config.getServiceName() + " " + apps);
+
+        return createServiceFromApp(apps.get(0), config);
+    }
+
     private Service createServiceFromApp(App app, ServiceConfig cfg) {
         // TODO make this check more thorough
         if (!cfg.getServiceName().equals(app.getLabels().get(SERVICE_NAME)))