FELIX-1799: Hot-deployment not working on admin:create'd instances

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@829191 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/karaf/admin/core/src/main/java/org/apache/felix/karaf/admin/internal/AdminServiceImpl.java b/karaf/admin/core/src/main/java/org/apache/felix/karaf/admin/internal/AdminServiceImpl.java
index df8d155..b80ad5c 100644
--- a/karaf/admin/core/src/main/java/org/apache/felix/karaf/admin/internal/AdminServiceImpl.java
+++ b/karaf/admin/core/src/main/java/org/apache/felix/karaf/admin/internal/AdminServiceImpl.java
@@ -140,6 +140,7 @@
 
         copyResourceToDir(karafBase, "etc/config.properties", true);
         copyResourceToDir(karafBase, "etc/java.util.logging.properties", true);
+        copyResourceToDir(karafBase, "etc/org.apache.felix.fileinstall-deploy.cfg", true);
         copyResourceToDir(karafBase, "etc/org.apache.felix.karaf.log.cfg", true);
         copyResourceToDir(karafBase, FEATURES_CFG, true);
         copyResourceToDir(karafBase, "etc/org.apache.felix.karaf.management.cfg", true);
diff --git a/karaf/admin/core/src/test/java/org/apache/felix/karaf/admin/internal/AdminServiceImplTest.java b/karaf/admin/core/src/test/java/org/apache/felix/karaf/admin/internal/AdminServiceImplTest.java
index 02b9961..89dac42 100644
--- a/karaf/admin/core/src/test/java/org/apache/felix/karaf/admin/internal/AdminServiceImplTest.java
+++ b/karaf/admin/core/src/test/java/org/apache/felix/karaf/admin/internal/AdminServiceImplTest.java
@@ -19,16 +19,18 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.Arrays;
 import java.util.Properties;
 
 import junit.framework.TestCase;
-
+import org.apache.felix.karaf.admin.Instance;
 import org.apache.felix.karaf.admin.InstanceSettings;
 
 public class AdminServiceImplTest extends TestCase {
+
     public void testHandleFeatures() throws Exception {
         AdminServiceImpl as = new AdminServiceImpl();
         
@@ -61,4 +63,34 @@
             f.delete();
         }
     }
+
+    /**
+     * Ensure the admin:create generates all the required configuration files
+     * //TODO: fix this test so it can run in an IDE
+     */
+    public void testConfigurationFiles() throws Exception {
+        AdminServiceImpl service = new AdminServiceImpl();
+        service.setStorageLocation(new File("target/instances/" + System.currentTimeMillis()));
+
+        InstanceSettings settings = new InstanceSettings(8122, getName(), null, null);
+        Instance instance = service.createInstance(getName(), settings);
+
+        assertFileExists(instance.getLocation(), "etc/config.properties");
+        assertFileExists(instance.getLocation(), "etc/users.properties");
+        assertFileExists(instance.getLocation(), "etc/startup.properties");
+
+        assertFileExists(instance.getLocation(), "etc/java.util.logging.properties");
+        assertFileExists(instance.getLocation(), "etc/org.apache.felix.karaf.features.cfg");
+        assertFileExists(instance.getLocation(), "etc/org.apache.felix.fileinstall-deploy.cfg");
+        assertFileExists(instance.getLocation(), "etc/org.apache.felix.karaf.log.cfg");
+        assertFileExists(instance.getLocation(), "etc/org.apache.felix.karaf.management.cfg");
+        assertFileExists(instance.getLocation(), "etc/org.ops4j.pax.logging.cfg");
+        assertFileExists(instance.getLocation(), "etc/org.ops4j.pax.url.mvn.cfg");
+    }
+
+    private void assertFileExists(String path, String name) throws IOException {
+        File file = new File(path, name);
+        assertTrue("Expected " + file.getCanonicalPath() + " to exist",
+                   file.exists());
+    }   
 }