You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2017/08/11 09:16:11 UTC

[1/3] karaf git commit: Replace tabs in files

Repository: karaf
Updated Branches:
  refs/heads/master 3b42fb5a5 -> 0cbb26858


Replace tabs in files

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/935006e6
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/935006e6
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/935006e6

Branch: refs/heads/master
Commit: 935006e6d1ca68a5f84b2ad1584e7db84f939eb5
Parents: 3b42fb5
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Fri Aug 11 10:07:52 2017 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Fri Aug 11 10:07:52 2017 +0200

----------------------------------------------------------------------
 .../service/FeatureConfigInstaller.java         | 80 ++++++++---------
 .../org/apache/karaf/features/AppendTest.java   | 90 ++++++++++----------
 .../org/apache/karaf/features/FeatureTest.java  | 20 ++---
 .../apache/karaf/features/RepositoryTest.java   | 12 ++-
 4 files changed, 104 insertions(+), 98 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/935006e6/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureConfigInstaller.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureConfigInstaller.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureConfigInstaller.java
index d1fc525..77522c5 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureConfigInstaller.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeatureConfigInstaller.java
@@ -73,8 +73,9 @@ public class FeatureConfigInstaller {
         }
     }
 
-    private Configuration createConfiguration(ConfigurationAdmin configurationAdmin,
-                                              String pid, String factoryPid) throws IOException, InvalidSyntaxException {
+    private Configuration createConfiguration(ConfigurationAdmin configurationAdmin, String pid,
+                                              String factoryPid)
+        throws IOException, InvalidSyntaxException {
         if (factoryPid != null) {
             return configurationAdmin.createFactoryConfiguration(pid, null);
         } else {
@@ -82,8 +83,9 @@ public class FeatureConfigInstaller {
         }
     }
 
-    private Configuration findExistingConfiguration(ConfigurationAdmin configurationAdmin,
-                                                    String pid, String factoryPid) throws IOException, InvalidSyntaxException {
+    private Configuration findExistingConfiguration(ConfigurationAdmin configurationAdmin, String pid,
+                                                    String factoryPid)
+        throws IOException, InvalidSyntaxException {
         String filter;
         if (factoryPid == null) {
             filter = "(" + Constants.SERVICE_PID + "=" + pid + ")";
@@ -99,7 +101,7 @@ public class FeatureConfigInstaller {
     }
 
     public void installFeatureConfigs(Feature feature) throws IOException, InvalidSyntaxException {
-    	for (ConfigInfo config : feature.getConfigurations()) {
+        for (ConfigInfo config : feature.getConfigurations()) {
             TypedProperties props = new TypedProperties();
             // trim lines
             String val = config.getValue();
@@ -108,14 +110,14 @@ public class FeatureConfigInstaller {
             } else {
                 props.load(new StringReader(val));
             }
-			String[] pid = parsePid(config.getName());
-			Configuration cfg = findExistingConfiguration(configAdmin, pid[0], pid[1]);
-			if (cfg == null) {
-				Dictionary<String, Object> cfgProps = convertToDict(props);
-				cfg = createConfiguration(configAdmin, pid[0], pid[1]);
-				String key = createConfigurationKey(pid[0], pid[1]);
-				cfgProps.put(CONFIG_KEY, key);
-				props.put(CONFIG_KEY, key);
+            String[] pid = parsePid(config.getName());
+            Configuration cfg = findExistingConfiguration(configAdmin, pid[0], pid[1]);
+            if (cfg == null) {
+                Dictionary<String, Object> cfgProps = convertToDict(props);
+                cfg = createConfiguration(configAdmin, pid[0], pid[1]);
+                String key = createConfigurationKey(pid[0], pid[1]);
+                cfgProps.put(CONFIG_KEY, key);
+                props.put(CONFIG_KEY, key);
                 if (storage != null && configCfgStore) {
                     File cfgFile;
                     if (pid[1] != null) {
@@ -125,15 +127,15 @@ public class FeatureConfigInstaller {
                     }
                     cfgProps.put(FILEINSTALL_FILE_NAME, cfgFile.getAbsoluteFile().toURI().toString());
                 }
-				cfg.update(cfgProps);
+                cfg.update(cfgProps);
                 try {
                     updateStorage(pid[0], pid[1], props, false);
                 } catch (Exception e) {
                     LOGGER.warn("Can't update cfg file", e);
                 }
-			} else if (config.isAppend()) {
+            } else if (config.isAppend()) {
                 boolean update = false;
-				Dictionary<String,Object> properties = cfg.getProperties();
+                Dictionary<String, Object> properties = cfg.getProperties();
                 for (String key : props.keySet()) {
                     if (properties.get(key) == null) {
                         properties.put(key, props.get(key));
@@ -148,20 +150,21 @@ public class FeatureConfigInstaller {
                         LOGGER.warn("Can't update cfg file", e);
                     }
                 }
-			}
-		}
+            }
+        }
         for (ConfigFileInfo configFile : feature.getConfigurationFiles()) {
-            installConfigurationFile(configFile.getLocation(), configFile.getFinalname(), configFile.isOverride());
+            installConfigurationFile(configFile.getLocation(), configFile.getFinalname(),
+                                     configFile.isOverride());
         }
     }
 
-	private Dictionary<String, Object> convertToDict(Map<String, Object> props) {
-		Dictionary<String, Object> cfgProps = new Hashtable<>();
+    private Dictionary<String, Object> convertToDict(Map<String, Object> props) {
+        Dictionary<String, Object> cfgProps = new Hashtable<>();
         for (Map.Entry<String, Object> e : props.entrySet()) {
             cfgProps.put(e.getKey(), e.getValue());
         }
-		return cfgProps;
-	}
+        return cfgProps;
+    }
 
     private String createConfigurationKey(String pid, String factoryPid) {
         return factoryPid == null ? pid : pid + "-" + factoryPid;
@@ -194,8 +197,8 @@ public class FeatureConfigInstaller {
         // Substitute all variables, but keep unknown ones.
         final String dummyKey = "";
         try {
-            finalname = InterpolationHelper.substVars(finalname, dummyKey, null, null, null,
-                    true, true, false);
+            finalname = InterpolationHelper.substVars(finalname, dummyKey, null, null, null, true, true,
+                                                      false);
         } catch (final IllegalArgumentException ex) {
             LOGGER.info("Substitution failed. Skip substitution of variables of configuration final name ({}).",
                     finalname);
@@ -219,7 +222,8 @@ public class FeatureConfigInstaller {
         return finalname;
     }
 
-    private void installConfigurationFile(String fileLocation, String finalname, boolean override) throws IOException {
+    private void installConfigurationFile(String fileLocation, String finalname, boolean override)
+        throws IOException {
         finalname = substFinalName(finalname);
 
         File file = new File(finalname);
@@ -256,7 +260,8 @@ public class FeatureConfigInstaller {
         }
     }
 
-    protected void updateStorage(String pid, String factoryPid, TypedProperties props, boolean append) throws Exception {
+    protected void updateStorage(String pid, String factoryPid, TypedProperties props, boolean append)
+        throws Exception {
         if (storage != null && configCfgStore) {
             // get the cfg file
             File cfgFile;
@@ -271,13 +276,13 @@ public class FeatureConfigInstaller {
                 Object val = cfg.getProperties().get(FILEINSTALL_FILE_NAME);
                 try {
                     if (val instanceof URL) {
-                        cfgFile = new File(((URL) val).toURI());
+                        cfgFile = new File(((URL)val).toURI());
                     }
                     if (val instanceof URI) {
-                        cfgFile = new File((URI) val);
+                        cfgFile = new File((URI)val);
                     }
                     if (val instanceof String) {
-                        cfgFile = new File(new URL((String) val).toURI());
+                        cfgFile = new File(new URL((String)val).toURI());
                     }
                 } catch (Exception e) {
                     throw new IOException(e.getMessage(), e);
@@ -289,11 +294,11 @@ public class FeatureConfigInstaller {
                 props.save(cfgFile);
             } else {
                 TypedProperties properties = new TypedProperties();
-                properties.load( cfgFile );
+                properties.load(cfgFile);
                 for (String key : props.keySet()) {
                     if (!Constants.SERVICE_PID.equals(key)
-                            && !ConfigurationAdmin.SERVICE_FACTORYPID.equals(key)
-                            && !FILEINSTALL_FILE_NAME.equals(key)) {
+                        && !ConfigurationAdmin.SERVICE_FACTORYPID.equals(key)
+                        && !FILEINSTALL_FILE_NAME.equals(key)) {
                         List<String> comments = props.getComments(key);
                         List<String> value = props.getRaw(key);
                         if (!properties.containsKey(key)) {
@@ -310,10 +315,9 @@ public class FeatureConfigInstaller {
                     // remove "removed" properties from the cfg file
                     ArrayList<String> propertiesToRemove = new ArrayList<>();
                     for (String key : properties.keySet()) {
-                        if (!props.containsKey(key)
-                                && !Constants.SERVICE_PID.equals(key)
-                                && !ConfigurationAdmin.SERVICE_FACTORYPID.equals(key)
-                                && !FILEINSTALL_FILE_NAME.equals(key)) {
+                        if (!props.containsKey(key) && !Constants.SERVICE_PID.equals(key)
+                            && !ConfigurationAdmin.SERVICE_FACTORYPID.equals(key)
+                            && !FILEINSTALL_FILE_NAME.equals(key)) {
                             propertiesToRemove.add(key);
                         }
                     }
@@ -323,7 +327,7 @@ public class FeatureConfigInstaller {
                 }
                 // save the cfg file
                 storage.mkdirs();
-                properties.save( cfgFile );
+                properties.save(cfgFile);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/karaf/blob/935006e6/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/AppendTest.java b/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
index 49daded..d6d5d20 100644
--- a/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
@@ -28,58 +28,62 @@ import org.osgi.service.cm.ConfigurationAdmin;
 
 public class AppendTest extends TestCase {
 
-	public void testLoad() throws Exception {
+    public void testLoad() throws Exception {
 
-		System.setProperty("karaf.data", "data");
-		System.setProperty("karaf.etc", "etc");
+        System.setProperty("karaf.data", "data");
+        System.setProperty("karaf.etc", "etc");
 
-		RepositoryImpl r = new RepositoryImpl(getClass().getResource("internal/service/f08.xml").toURI());
-		// Check repo
-		Feature[] features = r.getFeatures();
-		assertNotNull(features);
-		assertEquals(1, features.length);
-		Feature feature = features[0];
+        RepositoryImpl r = new RepositoryImpl(getClass().getResource("internal/service/f08.xml").toURI());
+        // Check repo
+        Feature[] features = r.getFeatures();
+        assertNotNull(features);
+        assertEquals(1, features.length);
+        Feature feature = features[0];
 
-		ConfigInfo configInfo = feature.getConfigurations().get(0);
-		assertNotNull(configInfo);
-		assertTrue(configInfo.isAppend());
+        ConfigInfo configInfo = feature.getConfigurations().get(0);
+        assertNotNull(configInfo);
+        assertTrue(configInfo.isAppend());
 
-		Properties properties = configInfo.getProperties();
-		assertNotNull(properties);
-		String property = properties.getProperty("javax.servlet.context.tempdir");
-		assertNotNull(property);
-		assertFalse(property.contains("${"));
+        Properties properties = configInfo.getProperties();
+        assertNotNull(properties);
+        String property = properties.getProperty("javax.servlet.context.tempdir");
+        assertNotNull(property);
+        assertFalse(property.contains("${"));
         assertEquals(property, "data/pax-web-jsp");
 
-		ConfigurationAdmin admin = EasyMock.createMock(ConfigurationAdmin.class);
-		Configuration config = EasyMock.createMock(Configuration.class);
-		EasyMock.expect(admin.listConfigurations(EasyMock.eq("(service.pid=org.ops4j.pax.web)")))
-				.andReturn(new Configuration[] { config });
-		Hashtable<String, Object> original = new Hashtable<>();
+        ConfigurationAdmin admin = EasyMock.createMock(ConfigurationAdmin.class);
+        Configuration config = EasyMock.createMock(Configuration.class);
+        EasyMock.expect(admin.listConfigurations(EasyMock.eq("(service.pid=org.ops4j.pax.web)")))
+            .andReturn(new Configuration[] {
+                                            config
+        });
+        Hashtable<String, Object> original = new Hashtable<>();
         original.put("javax.servlet.context.tempdir", "data/pax-web-jsp");
-		EasyMock.expect(config.getProperties()).andReturn(original);
+        EasyMock.expect(config.getProperties()).andReturn(original);
 
-		Hashtable<String, Object> expected = new Hashtable<>();
+        Hashtable<String, Object> expected = new Hashtable<>();
         expected.put("org.ops4j.pax.web", "data/pax-web-jsp");
-		expected.put("org.apache.karaf.features.configKey", "org.ops4j.pax.web");
-		expected.put("foo", "bar");
-		EasyMock.expectLastCall();
-		EasyMock.replay(admin, config);
+        expected.put("org.apache.karaf.features.configKey", "org.ops4j.pax.web");
+        expected.put("foo", "bar");
+        EasyMock.expectLastCall();
+        EasyMock.replay(admin, config);
 
-		FeatureConfigInstaller installer = new FeatureConfigInstaller(admin);
-		installer.installFeatureConfigs(feature);
-		EasyMock.verify(admin, config);
+        FeatureConfigInstaller installer = new FeatureConfigInstaller(admin);
+        installer.installFeatureConfigs(feature);
+        EasyMock.verify(admin, config);
 
-		EasyMock.reset(admin, config);
-		EasyMock.expect(admin.listConfigurations(EasyMock.eq("(service.pid=org.ops4j.pax.web)")))
-				.andReturn(new Configuration[]{config});
-		original = new Hashtable<>();
-		original.put("org.apache.karaf.features.configKey", "org.ops4j.pax.web");
-		original.put("javax.servlet.context.tempdir", "value");
-		original.put("foo", "bar");
-		EasyMock.expect(config.getProperties()).andReturn(original);
-		EasyMock.replay(admin, config);
-		installer.installFeatureConfigs(feature);
-		EasyMock.verify(admin, config);
-	}
+        EasyMock.reset(admin, config);
+        EasyMock.expect(admin.listConfigurations(EasyMock.eq("(service.pid=org.ops4j.pax.web)")))
+            .andReturn(new Configuration[] {
+                                            config
+        });
+        original = new Hashtable<>();
+        original.put("org.apache.karaf.features.configKey", "org.ops4j.pax.web");
+        original.put("javax.servlet.context.tempdir", "value");
+        original.put("foo", "bar");
+        EasyMock.expect(config.getProperties()).andReturn(original);
+        EasyMock.replay(admin, config);
+        installer.installFeatureConfigs(feature);
+        EasyMock.verify(admin, config);
+    }
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/935006e6/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java b/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
index 33debdf..0cd66bb 100644
--- a/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
@@ -19,14 +19,14 @@ package org.apache.karaf.features;
 import junit.framework.TestCase;
 
 public class FeatureTest extends TestCase {
-	
-	public void testValueOf() {
-		Feature feature = org.apache.karaf.features.internal.model.Feature.valueOf("name/1.0.0");
-		assertEquals(feature.getName(), "name");
-		assertEquals(feature.getVersion(), "1.0.0");
-		feature = org.apache.karaf.features.internal.model.Feature.valueOf("name");
-		assertEquals(feature.getName(), "name");
-		assertEquals(feature.getVersion(), org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION);
-	}
-	
+
+    public void testValueOf() {
+        Feature feature = org.apache.karaf.features.internal.model.Feature.valueOf("name/1.0.0");
+        assertEquals(feature.getName(), "name");
+        assertEquals(feature.getVersion(), "1.0.0");
+        feature = org.apache.karaf.features.internal.model.Feature.valueOf("name");
+        assertEquals(feature.getName(), "name");
+        assertEquals(feature.getVersion(), org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION);
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/935006e6/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java b/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java
index de543cd..c630c6f 100644
--- a/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java
@@ -43,7 +43,7 @@ public class RepositoryTest extends TestCase {
         assertNotNull(features[0].getConfigurations());
         assertEquals(1, features[0].getConfigurations().size());
         assertNotNull(features[0].getConfigurations().get(0).getName());
-		assertEquals("c1", features[0].getConfigurations().get(0).getName());
+        assertEquals("c1", features[0].getConfigurations().get(0).getName());
         assertEquals(1, features[0].getConfigurations().get(0).getProperties().size());
         assertEquals("v", features[0].getConfigurations().get(0).getProperties().get("k"));
         assertNotNull(features[0].getDependencies());
@@ -85,12 +85,10 @@ public class RepositoryTest extends TestCase {
         assertEquals("f1", features[0].getName());
         assertNotNull(features[0].getConfigurations());
         assertEquals(1, features[0].getConfigurations().size());
-		assertNotNull(features[0].getConfigurations().get(0).getName());
-		assertEquals("c1", features[0].getConfigurations().get(0).getName());
-		assertEquals(1, features[0].getConfigurations().get(0).getProperties()
-				.size());
-		assertEquals("v", features[0].getConfigurations().get(0)
-				.getProperties().get("k"));
+        assertNotNull(features[0].getConfigurations().get(0).getName());
+        assertEquals("c1", features[0].getConfigurations().get(0).getName());
+        assertEquals(1, features[0].getConfigurations().get(0).getProperties().size());
+        assertEquals("v", features[0].getConfigurations().get(0).getProperties().get("k"));
         assertNotNull(features[0].getDependencies());
         assertEquals(0, features[0].getDependencies().size());
         assertNotNull(features[0].getBundles());


[2/3] karaf git commit: Improve test to actually test the append scenario

Posted by cs...@apache.org.
Improve test to actually test the append scenario

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/562019cb
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/562019cb
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/562019cb

Branch: refs/heads/master
Commit: 562019cbd2ffea35508d2cb30c29028130bd56de
Parents: 935006e
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Fri Aug 11 11:00:11 2017 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Fri Aug 11 11:00:11 2017 +0200

----------------------------------------------------------------------
 .../org/apache/karaf/features/AppendTest.java   | 110 +++++++++++--------
 1 file changed, 63 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/562019cb/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/AppendTest.java b/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
index d6d5d20..662ad2d 100644
--- a/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
@@ -16,74 +16,90 @@
  */
 package org.apache.karaf.features;
 
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.Dictionary;
 import java.util.Hashtable;
 import java.util.Properties;
 
-import junit.framework.TestCase;
 import org.apache.karaf.features.internal.service.FeatureConfigInstaller;
 import org.apache.karaf.features.internal.service.RepositoryImpl;
+import org.easymock.Capture;
 import org.easymock.EasyMock;
+import org.easymock.IMocksControl;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
 
-public class AppendTest extends TestCase {
-
-    public void testLoad() throws Exception {
+public class AppendTest {
 
+    private IMocksControl c;
+    private Feature feature;
+    private ConfigurationAdmin admin;
+    private FeatureConfigInstaller installer;
+    
+    @Before
+    public void before() throws Exception {
         System.setProperty("karaf.data", "data");
         System.setProperty("karaf.etc", "etc");
-
         RepositoryImpl r = new RepositoryImpl(getClass().getResource("internal/service/f08.xml").toURI());
-        // Check repo
         Feature[] features = r.getFeatures();
-        assertNotNull(features);
-        assertEquals(1, features.length);
-        Feature feature = features[0];
-
-        ConfigInfo configInfo = feature.getConfigurations().get(0);
-        assertNotNull(configInfo);
-        assertTrue(configInfo.isAppend());
-
-        Properties properties = configInfo.getProperties();
-        assertNotNull(properties);
-        String property = properties.getProperty("javax.servlet.context.tempdir");
-        assertNotNull(property);
-        assertFalse(property.contains("${"));
-        assertEquals(property, "data/pax-web-jsp");
+        feature = features[0];
+        checkFeature(feature);
+        c = EasyMock.createControl();
+        admin = c.createMock(ConfigurationAdmin.class);
+        installer = new FeatureConfigInstaller(admin);
+    }
 
-        ConfigurationAdmin admin = EasyMock.createMock(ConfigurationAdmin.class);
-        Configuration config = EasyMock.createMock(Configuration.class);
-        EasyMock.expect(admin.listConfigurations(EasyMock.eq("(service.pid=org.ops4j.pax.web)")))
-            .andReturn(new Configuration[] {
-                                            config
-        });
+    @Test
+    public void testNoChange() throws Exception {
         Hashtable<String, Object> original = new Hashtable<>();
-        original.put("javax.servlet.context.tempdir", "data/pax-web-jsp");
-        EasyMock.expect(config.getProperties()).andReturn(original);
+        original.put("javax.servlet.context.tempdir", "bar");
+        expectConfig(admin, original);
 
-        Hashtable<String, Object> expected = new Hashtable<>();
-        expected.put("org.ops4j.pax.web", "data/pax-web-jsp");
-        expected.put("org.apache.karaf.features.configKey", "org.ops4j.pax.web");
-        expected.put("foo", "bar");
-        EasyMock.expectLastCall();
-        EasyMock.replay(admin, config);
+        c.replay();
+        installer.installFeatureConfigs(feature);
+        c.verify();
+    }
 
-        FeatureConfigInstaller installer = new FeatureConfigInstaller(admin);
+    @Test
+    public void testAppend() throws Exception {
+        Hashtable<String, Object> original = new Hashtable<>();
+        original.put("foo", "bar");
+        Configuration config = expectConfig(admin, original);
+        Capture<Dictionary<String, ?>> captured = EasyMock.newCapture();
+        config.update(EasyMock.capture(captured));
+        expectLastCall();
+        c.replay();
         installer.installFeatureConfigs(feature);
-        EasyMock.verify(admin, config);
+        c.verify();
+        assertEquals("data/pax-web-jsp", captured.getValue().get("javax.servlet.context.tempdir"));
+    }
 
-        EasyMock.reset(admin, config);
-        EasyMock.expect(admin.listConfigurations(EasyMock.eq("(service.pid=org.ops4j.pax.web)")))
+    private Configuration expectConfig(ConfigurationAdmin admin, Hashtable<String, Object> original)
+        throws IOException, InvalidSyntaxException {
+        Configuration config = c.createMock(Configuration.class);
+        expect(admin.listConfigurations(eq("(service.pid=org.ops4j.pax.web)")))
             .andReturn(new Configuration[] {
                                             config
-        });
-        original = new Hashtable<>();
-        original.put("org.apache.karaf.features.configKey", "org.ops4j.pax.web");
-        original.put("javax.servlet.context.tempdir", "value");
-        original.put("foo", "bar");
-        EasyMock.expect(config.getProperties()).andReturn(original);
-        EasyMock.replay(admin, config);
-        installer.installFeatureConfigs(feature);
-        EasyMock.verify(admin, config);
+        }).atLeastOnce();
+        expect(config.getProperties()).andReturn(original).atLeastOnce();
+        return config;
+    }
+
+    private void checkFeature(Feature feature) {
+        ConfigInfo configInfo = feature.getConfigurations().get(0);
+        assertTrue(configInfo.isAppend());
+
+        Properties properties = configInfo.getProperties();
+        String tempDir = properties.getProperty("javax.servlet.context.tempdir");
+        assertEquals("data/pax-web-jsp", tempDir);
     }
 }


[3/3] karaf git commit: Test config write back

Posted by cs...@apache.org.
Test config write back

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/0cbb2685
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/0cbb2685
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/0cbb2685

Branch: refs/heads/master
Commit: 0cbb2685817e70a45e44cb423dd2bd5cdfa37351
Parents: 562019c
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Fri Aug 11 11:15:59 2017 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Fri Aug 11 11:15:59 2017 +0200

----------------------------------------------------------------------
 .../src/test/java/org/apache/karaf/features/AppendTest.java | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/0cbb2685/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/AppendTest.java b/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
index 662ad2d..d64da81 100644
--- a/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/AppendTest.java
@@ -22,6 +22,8 @@ import static org.easymock.EasyMock.expectLastCall;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.util.Dictionary;
 import java.util.Hashtable;
@@ -48,7 +50,7 @@ public class AppendTest {
     @Before
     public void before() throws Exception {
         System.setProperty("karaf.data", "data");
-        System.setProperty("karaf.etc", "etc");
+        System.setProperty("karaf.etc", "target");
         RepositoryImpl r = new RepositoryImpl(getClass().getResource("internal/service/f08.xml").toURI());
         Feature[] features = r.getFeatures();
         feature = features[0];
@@ -71,6 +73,8 @@ public class AppendTest {
 
     @Test
     public void testAppend() throws Exception {
+        File cfgFile = new File("target/org.ops4j.pax.web.cfg");
+        cfgFile.delete();
         Hashtable<String, Object> original = new Hashtable<>();
         original.put("foo", "bar");
         Configuration config = expectConfig(admin, original);
@@ -81,6 +85,9 @@ public class AppendTest {
         installer.installFeatureConfigs(feature);
         c.verify();
         assertEquals("data/pax-web-jsp", captured.getValue().get("javax.servlet.context.tempdir"));
+        Properties props = new Properties();
+        props.load(new FileInputStream(cfgFile));
+        assertEquals("data/pax-web-jsp", props.getProperty("javax.servlet.context.tempdir"));
     }
 
     private Configuration expectConfig(ConfigurationAdmin admin, Hashtable<String, Object> original)