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());
+ }
}