Skip to content

Commit

Permalink
FORGE-2576: Configuration is now stored in a properties format
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Jan 12, 2016
1 parent aab2a80 commit 62a1270
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 98 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

import javax.enterprise.inject.Vetoed;

import org.apache.commons.configuration.HierarchicalConfiguration;
import org.jboss.forge.furnace.util.Iterators;

/**
Expand All @@ -24,17 +23,16 @@
@Vetoed
public class ConfigurationAdapter implements Configuration
{
private org.apache.commons.configuration.HierarchicalConfiguration delegate;
private final org.apache.commons.configuration.Configuration delegate;

public HierarchicalConfiguration getDelegate()
public ConfigurationAdapter(final org.apache.commons.configuration.Configuration delegate)
{
return delegate;
this.delegate = delegate;
}

public Configuration setDelegate(final org.apache.commons.configuration.HierarchicalConfiguration delegate)
protected org.apache.commons.configuration.Configuration getDelegate()
{
this.delegate = delegate;
return this;
return delegate;
}

/*
Expand Down Expand Up @@ -282,13 +280,13 @@ public String[] getStringArray(final String key)
}

@Override
public List<?> getList(final String key)
public List<Object> getList(final String key)
{
return getDelegate().getList(key);
}

@Override
public List<?> getList(final String key, final List<?> defaultValue)
public List<Object> getList(final String key, final List<?> defaultValue)
{
return getDelegate().getList(key, defaultValue);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,21 @@

import javax.enterprise.inject.Vetoed;

import org.apache.commons.configuration.HierarchicalConfiguration;

/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
* @author <a href="mailto:danielsoro@gmail.com">Daniel Cunha (soro)</a>
*/
@Vetoed
public class ConfigurationAdapterSubset extends ConfigurationAdapter
{
private final HierarchicalConfiguration parent;
private final org.apache.commons.configuration.Configuration parent;
private final String prefix;

public ConfigurationAdapterSubset(HierarchicalConfiguration delegate, String prefix)
public ConfigurationAdapterSubset(org.apache.commons.configuration.Configuration delegate, String prefix)
{
super(delegate.subset(prefix));
this.parent = delegate;
this.prefix = prefix;

synchronized (delegate)
{
if (delegate.containsKey(prefix))
setDelegate(delegate.configurationAt(prefix, true));
else
setDelegate((HierarchicalConfiguration) delegate.subset(prefix));
}
}

@Override
Expand All @@ -44,7 +35,7 @@ public Iterator<String> getKeys()
{
try
{
return parent.configurationAt(prefix).getKeys();
return parent.subset(prefix).getKeys();
}
catch (IllegalArgumentException e)
{
Expand All @@ -60,7 +51,7 @@ public void clearProperty(String key)
{
try
{
parent.configurationAt(prefix).clearProperty(key);
parent.subset(prefix).clearProperty(key);
}
catch (IllegalArgumentException e)
{
Expand All @@ -76,7 +67,7 @@ public void setProperty(final String key, final Object value)
{
try
{
parent.configurationAt(prefix).setProperty(key, value);
parent.subset(prefix).setProperty(key, value);
}
catch (IllegalArgumentException e)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.jboss.forge.addon.configuration;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import javax.enterprise.inject.Produces;
Expand All @@ -10,7 +9,7 @@
import javax.inject.Inject;
import javax.inject.Singleton;

import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
import org.jboss.forge.addon.resource.FileResource;
import org.jboss.forge.furnace.Furnace;
Expand Down Expand Up @@ -53,7 +52,7 @@ public Configuration getUserConfiguration() throws ConfigurationException
File userConfigurationFile;
if (property == null || property.isEmpty())
{
userConfigurationFile = new File(OperatingSystemUtils.getUserForgeDir(), "config.xml");
userConfigurationFile = new File(OperatingSystemUtils.getUserForgeDir(), "config.properties");
}
else
{
Expand All @@ -66,9 +65,9 @@ public Configuration getUserConfiguration() throws ConfigurationException
{
parentFile.mkdirs();
}
try (FileWriter fw = new FileWriter(userConfigurationFile))
try
{
fw.write("<configuration/>");
userConfigurationFile.createNewFile();
}
catch (IOException e)
{
Expand All @@ -90,11 +89,11 @@ private Configuration getConfiguration(File file)
{
try
{
XMLConfiguration commonsConfig = new XMLConfiguration(file);
PropertiesConfiguration commonsConfig = new PropertiesConfiguration(file);
commonsConfig.setEncoding("UTF-8");
commonsConfig.setReloadingStrategy(new FileChangedReloadingStrategy());
commonsConfig.setAutoSave(true);
return new ConfigurationAdapter().setDelegate(commonsConfig);
return new ConfigurationAdapter(commonsConfig);
}
catch (org.apache.commons.configuration.ConfigurationException e)
{
Expand All @@ -109,7 +108,7 @@ private void setupTemporaryUserConfig()
File tmpFile;
try
{
tmpFile = File.createTempFile("user_config", ".xml");
tmpFile = File.createTempFile("user_config", ".properties");
System.setProperty(USER_CONFIG_PATH, tmpFile.getAbsolutePath());
tmpFile.deleteOnExit();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.forge.arquillian.AddonDeployment;
import org.jboss.forge.arquillian.AddonDeployments;
import org.jboss.forge.arquillian.AddonDependencies;
import org.jboss.forge.arquillian.AddonDependency;
import org.jboss.forge.arquillian.archive.AddonArchive;
import org.jboss.forge.furnace.repositories.AddonDependencyEntry;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -30,20 +29,13 @@
public class ConfigurationTest
{
@Deployment
@AddonDeployments({
@AddonDeployment(name = "org.jboss.forge.furnace.container:cdi"),
@AddonDeployment(name = "org.jboss.forge.addon:configuration")
@AddonDependencies({
@AddonDependency(name = "org.jboss.forge.furnace.container:cdi"),
@AddonDependency(name = "org.jboss.forge.addon:configuration")
})
public static AddonArchive getDeployment()
{
AddonArchive archive = ShrinkWrap
.create(AddonArchive.class)
.addBeansXML()
.addAsAddonDependencies(
AddonDependencyEntry.create("org.jboss.forge.furnace.container:cdi"),
AddonDependencyEntry.create("org.jboss.forge.addon:configuration")
);
return archive;
return ShrinkWrap.create(AddonArchive.class).addBeansXML();
}

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@
import org.jboss.forge.addon.configuration.facets.ConfigurationFacet;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.ProjectFactory;
import org.jboss.forge.arquillian.AddonDeployment;
import org.jboss.forge.arquillian.AddonDeployments;
import org.jboss.forge.arquillian.AddonDependencies;
import org.jboss.forge.arquillian.AddonDependency;
import org.jboss.forge.arquillian.archive.AddonArchive;
import org.jboss.forge.furnace.repositories.AddonDependencyEntry;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -30,24 +29,15 @@
public class ProjectConfigurationTest
{
@Deployment
@AddonDeployments({
@AddonDeployment(name = "org.jboss.forge.furnace.container:cdi"),
@AddonDeployment(name = "org.jboss.forge.addon:maven"),
@AddonDeployment(name = "org.jboss.forge.addon:projects"),
@AddonDeployment(name = "org.jboss.forge.addon:configuration")
@AddonDependencies({
@AddonDependency(name = "org.jboss.forge.furnace.container:cdi"),
@AddonDependency(name = "org.jboss.forge.addon:configuration"),
@AddonDependency(name = "org.jboss.forge.addon:projects"),
@AddonDependency(name = "org.jboss.forge.addon:maven")
})
public static AddonArchive getDeployment()
{
AddonArchive archive = ShrinkWrap
.create(AddonArchive.class)
.addBeansXML()
.addAsAddonDependencies(
AddonDependencyEntry.create("org.jboss.forge.furnace.container:cdi"),
AddonDependencyEntry.create("org.jboss.forge.addon:maven"),
AddonDependencyEntry.create("org.jboss.forge.addon:projects"),
AddonDependencyEntry.create("org.jboss.forge.addon:configuration")
);
return archive;
return ShrinkWrap.create(AddonArchive.class).addBeansXML();
}

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,9 @@

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.forge.arquillian.AddonDeployment;
import org.jboss.forge.arquillian.AddonDeployments;
import org.jboss.forge.arquillian.AddonDependencies;
import org.jboss.forge.arquillian.AddonDependency;
import org.jboss.forge.arquillian.archive.AddonArchive;
import org.jboss.forge.furnace.repositories.AddonDependencyEntry;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.junit.Assert;
import org.junit.Test;
Expand All @@ -24,20 +23,13 @@
public class UserConfigurationTest
{
@Deployment
@AddonDeployments({
@AddonDeployment(name = "org.jboss.forge.furnace.container:cdi"),
@AddonDeployment(name = "org.jboss.forge.addon:configuration")
@AddonDependencies({
@AddonDependency(name = "org.jboss.forge.furnace.container:cdi"),
@AddonDependency(name = "org.jboss.forge.addon:configuration")
})
public static AddonArchive getDeployment()
{
AddonArchive archive = ShrinkWrap
.create(AddonArchive.class)
.addBeansXML()
.addAsAddonDependencies(
AddonDependencyEntry.create("org.jboss.forge.furnace.container:cdi"),
AddonDependencyEntry.create("org.jboss.forge.addon:configuration")
);
return archive;
return ShrinkWrap.create(AddonArchive.class).addBeansXML();
}

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,9 @@
import org.jboss.forge.addon.projects.ProjectFactory;
import org.jboss.forge.addon.shell.test.ShellTest;
import org.jboss.forge.addon.ui.result.Failed;
import org.jboss.forge.arquillian.AddonDeployment;
import org.jboss.forge.arquillian.AddonDeployments;
import org.jboss.forge.arquillian.AddonDependencies;
import org.jboss.forge.arquillian.AddonDependency;
import org.jboss.forge.arquillian.archive.AddonArchive;
import org.jboss.forge.furnace.repositories.AddonDependencyEntry;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.junit.After;
import org.junit.Before;
Expand All @@ -39,26 +38,17 @@
public class ConfigCommandTest
{
@Deployment
@AddonDeployments({
@AddonDeployment(name = "org.jboss.forge.addon:shell-test-harness"),
@AddonDeployment(name = "org.jboss.forge.addon:configuration"),
@AddonDeployment(name = "org.jboss.forge.addon:shell"),
@AddonDeployment(name = "org.jboss.forge.addon:projects"),
@AddonDeployment(name = "org.jboss.forge.addon:maven"),
@AddonDependencies({
@AddonDependency(name = "org.jboss.forge.addon:shell-test-harness"),
@AddonDependency(name = "org.jboss.forge.addon:configuration"),
@AddonDependency(name = "org.jboss.forge.addon:shell"),
@AddonDependency(name = "org.jboss.forge.addon:projects"),
@AddonDependency(name = "org.jboss.forge.addon:maven"),
@AddonDependency(name = "org.jboss.forge.furnace.container:cdi")
})
public static AddonArchive getDeployment()
{
AddonArchive archive = ShrinkWrap
.create(AddonArchive.class)
.addBeansXML()
.addAsAddonDependencies(
AddonDependencyEntry.create("org.jboss.forge.furnace.container:cdi"),
AddonDependencyEntry.create("org.jboss.forge.addon:configuration"),
AddonDependencyEntry.create("org.jboss.forge.addon:shell-test-harness"),
AddonDependencyEntry.create("org.jboss.forge.addon:projects"),
AddonDependencyEntry.create("org.jboss.forge.addon:shell"));

return archive;
return ShrinkWrap.create(AddonArchive.class).addBeansXML();
}

@Inject
Expand Down

0 comments on commit 62a1270

Please sign in to comment.