You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2016/08/16 13:51:49 UTC
[12/15] incubator-tamaya git commit: Implemented UI improvements and
bugfixes. Fixed some impl details.
Implemented UI improvements and bugfixes.
Fixed some impl details.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/d86d5279
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/d86d5279
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/d86d5279
Branch: refs/heads/master
Commit: d86d52797f73286dd61e1b9335e5edf56a872b91
Parents: 0352ef0
Author: anatole <an...@apache.org>
Authored: Sat Jun 25 01:21:16 2016 +0200
Committer: anatole <an...@apache.org>
Committed: Tue Aug 16 15:51:30 2016 +0200
----------------------------------------------------------------------
.../org/apache/tamaya/events/ui/EventView.java | 9 ++-
modules/model/pom.xml | 6 ++
.../org/apache/tamaya/model/ConfigModel.java | 6 ++
.../apache/tamaya/model/ConfigModelManager.java | 46 ++++++++++--
.../java/org/apache/tamaya/model/Usage.java | 13 +++-
.../org/apache/tamaya/model/Validation.java | 4 +-
.../ConfiguredInlineModelProviderSpi.java | 6 +-
.../ConfiguredPropertiesModelProviderSpi.java | 6 +-
.../ConfiguredResourcesModelProviderSpi.java | 13 ++--
.../ConfiguredTypeEventsModelPopulator.java | 6 +-
.../tamaya/model/spi/AbstractConfigModel.java | 10 ++-
.../tamaya/model/spi/ConfigModelReader.java | 14 ++--
.../org/apache/tamaya/model/spi/GroupModel.java | 13 +++-
.../apache/tamaya/model/spi/ParameterModel.java | 35 ++++++---
.../apache/tamaya/model/spi/SectionModel.java | 19 +++--
.../tamaya/model/ConfigModelProviderTest.java | 17 +++--
.../tamaya/model/ConfigUsageStatsTest.java | 17 +++--
.../apache/tamaya/model/ValidationTests.java | 5 ++
.../src/test/resources/examples/configmodel.ini | 14 ++--
.../test/resources/examples/configmodel.json | 55 +++++++-------
.../resources/examples/configmodel.properties | 78 ++++++++++----------
.../spisupport/PropertyConverterManager.java | 2 +-
.../tamaya/spisupport/PropertyFiltering.java | 2 +-
modules/ui/pom.xml | 6 ++
.../ui/internal/ConfiguredMessageProvider.java | 2 +-
.../internal/ResourceBundleMessageProvider.java | 2 +-
.../org/apache/tamaya/ui/views/ConfigView.java | 27 ++++---
pom.xml | 6 ++
28 files changed, 277 insertions(+), 162 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/events/src/main/java/org/apache/tamaya/events/ui/EventView.java
----------------------------------------------------------------------
diff --git a/modules/events/src/main/java/org/apache/tamaya/events/ui/EventView.java b/modules/events/src/main/java/org/apache/tamaya/events/ui/EventView.java
index bee6e7b..2c4dead 100644
--- a/modules/events/src/main/java/org/apache/tamaya/events/ui/EventView.java
+++ b/modules/events/src/main/java/org/apache/tamaya/events/ui/EventView.java
@@ -59,17 +59,22 @@ public class EventView extends VerticalSpacedLayout implements View {
}
@Override
+ public String getName() {
+ return "view.events.name";
+ }
+
+ @Override
public String getUrlPattern() {
return "/events";
}
@Override
public String getDisplayName() {
- return "view.events.name";
+ return getName();
}
@Override
- public View createView(){
+ public View createView(Object... params){
return new EventView();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/pom.xml
----------------------------------------------------------------------
diff --git a/modules/model/pom.xml b/modules/model/pom.xml
index b121c24..c03ba0e 100644
--- a/modules/model/pom.xml
+++ b/modules/model/pom.xml
@@ -94,6 +94,12 @@ under the License.
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.tamaya.ext</groupId>
+ <artifactId>tamaya-ui</artifactId>
+ <version>${project.version}</version>
+ <optional>true</optional>
+ </dependency>
</dependencies>
<build>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/ConfigModel.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/ConfigModel.java b/modules/model/src/main/java/org/apache/tamaya/model/ConfigModel.java
index 77c3fb0..88403d1 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/ConfigModel.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/ConfigModel.java
@@ -28,6 +28,12 @@ import java.util.Collection;
public interface ConfigModel {
/**
+ * Access the owner.
+ * @return the owner of this model, never null.
+ */
+ String getOwner();
+
+ /**
* Get the type of item that is modelled.
* @return the modelled type, never null.
*/
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/ConfigModelManager.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/ConfigModelManager.java b/modules/model/src/main/java/org/apache/tamaya/model/ConfigModelManager.java
index b8ece0c..8a3cbc6 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/ConfigModelManager.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/ConfigModelManager.java
@@ -59,12 +59,46 @@ public final class ConfigModelManager {
return k2.getName().compareTo(k2.getName());
}
});
+ b.append("TYPE OWNER NAME MANDATORY DESCRIPTION\n");
+ b.append("-----------------------------------------------------------------------------------------------------\n");
for(ConfigModel model:models){
- b.append(model.getName()).append('(').append(model.getType())
- .append("):\n ").append(
- model.getDescription()).append("mandatory=").append(model.isRequired());
- b.append('\n');
+ switch(model.getType()){
+ case Parameter:
+ b.append("PARAM ");
+ break;
+ case Section:
+ b.append("SECTION ");
+ break;
+ case Group:
+ b.append("GROUP ");
+ break;
+ }
+ b.append(formatWithFixedLength(model.getOwner(), 10)).append(' ');
+ b.append(formatWithFixedLength(model.getName(), 50));
+ if(model.isRequired()){
+ b.append(formatWithFixedLength("yes", 12));
+ }else{
+ b.append(formatWithFixedLength("no", 12));
+ }
+ if(model.getDescription()!=null){
+ b.append(model.getDescription().replace("\n", "\\\n").replace("\"", "'")).append("\"");
+ }
+ b.append("\n");
+ }
+ return b.toString();
+ }
+
+ private static String formatWithFixedLength(String name, int targetLength) {
+ targetLength = targetLength-1;
+ StringBuilder b = new StringBuilder();
+ if(name.length() > targetLength){
+ name = name.substring(0, targetLength);
+ }
+ b.append(name);
+ for(int i=0;i<(targetLength-name.length());i++){
+ b.append(' ');
}
+ b.append(' ');
return b.toString();
}
@@ -193,10 +227,10 @@ public final class ConfigModelManager {
}
}
}
- result.add(Validation.ofUndefined(entry.getKey(), ModelTarget.Parameter));
+ result.add(Validation.ofUndefined("<auto>", entry.getKey(), ModelTarget.Parameter));
}
for(String area:areas){
- result.add(Validation.ofUndefined(area, ModelTarget.Section));
+ result.add(Validation.ofUndefined("<auto>", area, ModelTarget.Section));
}
}
return result;
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/Usage.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/Usage.java b/modules/model/src/main/java/org/apache/tamaya/model/Usage.java
index aad0ff2..2d84915 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/Usage.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/Usage.java
@@ -214,7 +214,7 @@ public final class Usage {
private AccessDetail getAccessDetails(String accessPoint, String[] trace) {
AccessDetail details = accessDetails.get(accessPoint);
if(details==null){
- details = new AccessDetail(accessPoint, trace);
+ details = new AccessDetail(key, accessPoint, trace);
accessDetails.put(accessPoint, details);
}
return details;
@@ -224,6 +224,7 @@ public final class Usage {
* Class modelling the access details tracked per detailed item, e.g. per class in the owning package.
*/
public static final class AccessDetail {
+ private String key;
private AtomicLong accessCount = new AtomicLong();
private long lastAccessTS;
private long firstAccessTS;
@@ -231,7 +232,8 @@ public final class Usage {
private String accessPoint;
private Map<Long, String> trackedValues;
- public AccessDetail(String accessPoint, String[] stackTrace){
+ public AccessDetail(String key, String accessPoint, String[] stackTrace){
+ this.key = Objects.requireNonNull(key);
this.accessPoint = Objects.requireNonNull(accessPoint);
this.stackTrace = stackTrace.clone();
}
@@ -259,6 +261,10 @@ public final class Usage {
return count;
}
+ public String getKey(){
+ return key;
+ }
+
public long getAccessCount() {
return accessCount.get();
}
@@ -292,7 +298,8 @@ public final class Usage {
@Override
public String toString() {
return "AccessDetails{" +
- "accessCount=" + accessCount +
+ "key=" + key +
+ ", accessCount=" + accessCount +
", lastAccessTS=" + lastAccessTS +
", firstAccessTS=" + firstAccessTS +
", stackTrace=" + Arrays.toString(stackTrace) +
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/Validation.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/Validation.java b/modules/model/src/main/java/org/apache/tamaya/model/Validation.java
index 1bcaf9f..d40102c 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/Validation.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/Validation.java
@@ -123,8 +123,8 @@ public final class Validation {
* @param type model type
* @return a corresponding configModel item
*/
- public static Validation ofUndefined(final String key, final ModelTarget type) {
- return new Validation(new AbstractConfigModel(key, false, "Undefined key: " + key) {
+ public static Validation ofUndefined(final String owner, final String key, final ModelTarget type) {
+ return new Validation(new AbstractConfigModel(owner, key, false, "Undefined key: " + key) {
@Override
public ModelTarget getType() {
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredInlineModelProviderSpi.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredInlineModelProviderSpi.java b/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredInlineModelProviderSpi.java
index 8111491..2e4f379 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredInlineModelProviderSpi.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredInlineModelProviderSpi.java
@@ -53,7 +53,11 @@ public class ConfiguredInlineModelProviderSpi implements ModelProviderSpi {
if (enabled) {
LOG.info("Reading model configuration from config...");
Map<String,String> config = ConfigurationProvider.getConfiguration().getProperties();
- configModels.addAll(ConfigModelReader.loadValidations(config));
+ String owner = config.get("_model.provider");
+ if(owner==null){
+ owner = config.toString();
+ }
+ configModels.addAll(ConfigModelReader.loadValidations(owner, config));
}
configModels = Collections.unmodifiableList(configModels);
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredPropertiesModelProviderSpi.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredPropertiesModelProviderSpi.java b/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredPropertiesModelProviderSpi.java
index 62158da..57af99c 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredPropertiesModelProviderSpi.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredPropertiesModelProviderSpi.java
@@ -129,7 +129,11 @@ public class ConfiguredPropertiesModelProviderSpi implements ModelProviderSpi {
Properties props = new Properties();
props.load(is);
Map<String,String> data = MapPropertySource.getMap(props);
- configModels.addAll(ConfigModelReader.loadValidations(
+ String owner = data.get("_model.owner");
+ if(owner==null){
+ owner = config.toString();
+ }
+ configModels.addAll(ConfigModelReader.loadValidations(owner,
data));
} catch (Exception e) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE,
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredResourcesModelProviderSpi.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredResourcesModelProviderSpi.java b/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredResourcesModelProviderSpi.java
index 7c5836e..85f2ac7 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredResourcesModelProviderSpi.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredResourcesModelProviderSpi.java
@@ -21,11 +21,7 @@ package org.apache.tamaya.model.internal;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
+import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -141,7 +137,12 @@ public class ConfiguredResourcesModelProviderSpi implements ModelProviderSpi {
for (final URL config : urls) {
try (InputStream is = config.openStream()) {
final ConfigurationData data = ConfigurationFormats.readConfigurationData(config);
- configModels.addAll(ConfigModelReader.loadValidations(data.getCombinedProperties()));
+ Map<String,String> props = data.getCombinedProperties();
+ String owner = props.get("_model.provider");
+ if(owner==null){
+ owner = config.toString();
+ }
+ configModels.addAll(ConfigModelReader.loadValidations(owner, props));
} catch (final Exception e) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE,
"Error loading config model data from " + config, e);
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredTypeEventsModelPopulator.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredTypeEventsModelPopulator.java b/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredTypeEventsModelPopulator.java
index 34bb5bd..f6169ad 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredTypeEventsModelPopulator.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/internal/ConfiguredTypeEventsModelPopulator.java
@@ -58,7 +58,8 @@ public final class ConfiguredTypeEventsModelPopulator implements ConfigEventList
for (String key : keys) {
ParameterModel val = ConfigModelManager.getModel(key, ParameterModel.class);
if (val == null) {
- ConfiguredTypeEventsModelProvider.addConfigModel(new ParameterModel.Builder(key)
+ ConfiguredTypeEventsModelProvider.addConfigModel(
+ new ParameterModel.Builder(confType.getName(), key)
.setType(field.getType().getName())
.setDescription("Injected field: " +
field.getAnnotatedField().getDeclaringClass().getName() + '.' + field.toString() +
@@ -72,7 +73,8 @@ public final class ConfiguredTypeEventsModelPopulator implements ConfigEventList
for (String key : keys) {
ParameterModel val = ConfigModelManager.getModel(key, ParameterModel.class);
if (val == null) {
- ConfiguredTypeEventsModelProvider.addConfigModel(new ParameterModel.Builder(key)
+ ConfiguredTypeEventsModelProvider.addConfigModel(
+ new ParameterModel.Builder(confType.getName(), key)
.setType(method.getParameterTypes()[0].getName())
.setDescription("Injected field: " +
method.getAnnotatedMethod().getDeclaringClass().getName() + '.' + method.toString() +
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/spi/AbstractConfigModel.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/spi/AbstractConfigModel.java b/modules/model/src/main/java/org/apache/tamaya/model/spi/AbstractConfigModel.java
index 6c1afb0..9cc746a 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/spi/AbstractConfigModel.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/spi/AbstractConfigModel.java
@@ -26,19 +26,25 @@ import java.util.Objects;
* Default configuration Model for a configuration area.
*/
public abstract class AbstractConfigModel implements ConfigModel, Comparable<ConfigModel> {
-
+ private final String owner;
private final String name;
private final String description;
private boolean required = false;
- protected AbstractConfigModel(String name, boolean required, String description) {
+ protected AbstractConfigModel(String owner, String name, boolean required, String description) {
this.name = Objects.requireNonNull(name);
+ this.owner = Objects.requireNonNull(owner);
this.description = description;
this.required = required;
}
@Override
+ public String getOwner() {
+ return owner;
+ }
+
+ @Override
public String getName() {
return name;
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/spi/ConfigModelReader.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/spi/ConfigModelReader.java b/modules/model/src/main/java/org/apache/tamaya/model/spi/ConfigModelReader.java
index b8d95d0..9944132 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/spi/ConfigModelReader.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/spi/ConfigModelReader.java
@@ -76,14 +76,14 @@ public final class ConfigModelReader {
String requiredVal = props.get(baseKey + ".model.required");
String targetKey = baseKey.substring(1);
if ("Parameter".equalsIgnoreCase(target)) {
- result.add(createParameterValidation(targetKey,
+ result.add(createParameterValidation(owner, targetKey,
description, type, requiredVal, regEx, validations));
} else if ("Section".equalsIgnoreCase(target)) {
if(transitive){
- result.add(createSectionValidation(targetKey+".*",
+ result.add(createSectionValidation(owner, targetKey+".*",
description, requiredVal, validations));
} else {
- result.add(createSectionValidation(targetKey,
+ result.add(createSectionValidation(owner, targetKey,
description, requiredVal, validations));
}
}
@@ -101,10 +101,10 @@ public final class ConfigModelReader {
* @param validations the optional custom validations to be performed.
* @return the new validation for this parameter.
*/
- private static ConfigModel createParameterValidation(String paramName, String description, String type, String reqVal,
+ private static ConfigModel createParameterValidation(String owner, String paramName, String description, String type, String reqVal,
String regEx, String validations) {
boolean required = "true".equalsIgnoreCase(reqVal);
- ParameterModel.Builder builder = ParameterModel.builder(paramName).setRequired(required)
+ ParameterModel.Builder builder = ParameterModel.builder(owner, paramName).setRequired(required)
.setDescription(description).setExpression(regEx).setType(type);
// if (validations != null) {
// try {
@@ -125,10 +125,10 @@ public final class ConfigModelReader {
* @param validations the optional custom validations to be performed.
* @return the new validation for this section.
*/
- private static ConfigModel createSectionValidation(String sectionName, String description, String reqVal,
+ private static ConfigModel createSectionValidation(String owner, String sectionName, String description, String reqVal,
String validations) {
boolean required = "true".equalsIgnoreCase(reqVal);
- SectionModel.Builder builder = SectionModel.builder(sectionName).setRequired(required)
+ SectionModel.Builder builder = SectionModel.builder(owner, sectionName).setRequired(required)
.setDescription(description);
// if (validations != null) {
// try {
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/spi/GroupModel.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/spi/GroupModel.java b/modules/model/src/main/java/org/apache/tamaya/model/spi/GroupModel.java
index b8ead01..0a38dda 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/spi/GroupModel.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/spi/GroupModel.java
@@ -35,15 +35,17 @@ import java.util.Objects;
*/
public class GroupModel implements ConfigModel {
+ private final String owner;
private final String name;
private boolean required;
private List<ConfigModel> childModels = new ArrayList<>();
- public GroupModel(String name, ConfigModel... configModels){
- this(name, Arrays.asList(configModels));
+ public GroupModel(String owner, String name, ConfigModel... configModels){
+ this(owner, name, Arrays.asList(configModels));
}
- public GroupModel(String name, Collection<ConfigModel> configModels){
+ public GroupModel(String owner, String name, Collection<ConfigModel> configModels){
+ this.owner = Objects.requireNonNull(owner);
this.name = Objects.requireNonNull(name);
this.childModels.addAll(configModels);
this.childModels = Collections.unmodifiableList(childModels);
@@ -56,6 +58,11 @@ public class GroupModel implements ConfigModel {
}
@Override
+ public String getOwner() {
+ return owner;
+ }
+
+ @Override
public String getName() {
return name;
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/spi/ParameterModel.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/spi/ParameterModel.java b/modules/model/src/main/java/org/apache/tamaya/model/spi/ParameterModel.java
index dfe5c56..a1faa02 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/spi/ParameterModel.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/spi/ParameterModel.java
@@ -44,7 +44,7 @@ public class ParameterModel extends AbstractConfigModel {
* @param builder the builder, not null.
*/
protected ParameterModel(Builder builder) {
- super(builder.name, builder.required, builder.description);
+ super(builder.owner, builder.name, builder.required, builder.description);
this.regEx = builder.regEx;
this.type = builder.type;
}
@@ -97,8 +97,8 @@ public class ParameterModel extends AbstractConfigModel {
* @param name the fully qualified parameter name.
* @return a new builder, never null.
*/
- public static Builder builder(String name) {
- return new Builder(name);
+ public static Builder builder(String owner, String name) {
+ return new Builder(owner, name);
}
/**
@@ -108,8 +108,8 @@ public class ParameterModel extends AbstractConfigModel {
* @param expression an optional regular expression to validate a value.
* @return the new ConfigModel instance.
*/
- public static ConfigModel of(String name, boolean required, String expression) {
- return new Builder(name).setRequired(required).setExpression(expression).build();
+ public static ConfigModel of(String owner, String name, boolean required, String expression) {
+ return new Builder(owner, name).setRequired(required).setExpression(expression).build();
}
/**
@@ -118,8 +118,8 @@ public class ParameterModel extends AbstractConfigModel {
* @param required the required flag.
* @return the new ConfigModel instance.
*/
- public static ConfigModel of(String name, boolean required) {
- return new Builder(name).setRequired(required).build();
+ public static ConfigModel of(String owner, String name, boolean required) {
+ return new Builder(owner, name).setRequired(required).build();
}
/**
@@ -127,8 +127,8 @@ public class ParameterModel extends AbstractConfigModel {
* @param name the fully qualified parameter name.
* @return the new ConfigModel instance.
*/
- public static ConfigModel of(String name) {
- return new Builder(name).setRequired(false).build();
+ public static ConfigModel of(String owner, String name) {
+ return new Builder(owner, name).setRequired(false).build();
}
@@ -138,6 +138,8 @@ public class ParameterModel extends AbstractConfigModel {
public static class Builder {
/** The parameter's target type. */
private Class<?> type;
+ /** The owner. */
+ private String owner;
/** The fully qualified parameter name. */
private String name;
/** The optional validation expression. */
@@ -151,7 +153,8 @@ public class ParameterModel extends AbstractConfigModel {
* Creates a new Builder.
* @param name the fully qualified parameter name, not null.
*/
- public Builder(String name) {
+ public Builder(String owner, String name) {
+ this.owner = Objects.requireNonNull(owner);
this.name = Objects.requireNonNull(name);
}
@@ -165,7 +168,7 @@ public class ParameterModel extends AbstractConfigModel {
this.type = Class.forName(type);
} catch (ClassNotFoundException e) {
try {
- this.type = Class.forName("java.lang."+type);
+ this.type = Class.forName("java.ui.lang."+type);
} catch (ClassNotFoundException e2) {
Logger.getLogger(getClass().getName()).log(Level.INFO, "Failed to load parameter type: " + type, e2);
}
@@ -204,6 +207,16 @@ public class ParameterModel extends AbstractConfigModel {
}
/**
+ * Sets the owner name.
+ * @param owner the owner name, not null.
+ * @return the Builder for chaining
+ */
+ public Builder setOwner(String owner) {
+ this.owner = Objects.requireNonNull(owner);
+ return this;
+ }
+
+ /**
* Sets the fully qualified parameter name.
* @param name the fully qualified parameter name, not null.
* @return the Builder for chaining
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/main/java/org/apache/tamaya/model/spi/SectionModel.java
----------------------------------------------------------------------
diff --git a/modules/model/src/main/java/org/apache/tamaya/model/spi/SectionModel.java b/modules/model/src/main/java/org/apache/tamaya/model/spi/SectionModel.java
index 31eaa51..5292bc8 100644
--- a/modules/model/src/main/java/org/apache/tamaya/model/spi/SectionModel.java
+++ b/modules/model/src/main/java/org/apache/tamaya/model/spi/SectionModel.java
@@ -40,8 +40,8 @@ public class SectionModel extends GroupModel {
* @param name the section name.
* @return a new builder instance.
*/
- public static Builder builder(String name){
- return new Builder(name);
+ public static Builder builder(String owner, String name){
+ return new Builder(owner, name);
}
/**
@@ -50,8 +50,8 @@ public class SectionModel extends GroupModel {
* @param required flag, if the section is required to be present.
* @return the ConfigModel instance
*/
- public static ConfigModel of(String name, boolean required){
- return new Builder(name).setRequired(required).build();
+ public static ConfigModel of(String owner, String name, boolean required){
+ return new Builder(owner, name).setRequired(required).build();
}
/**
@@ -61,8 +61,8 @@ public class SectionModel extends GroupModel {
* @param configModels additional configModels
* @return a new builder, never null.
*/
- public static ConfigModel of(String name, boolean required, ConfigModel... configModels){
- return new Builder(name).setRequired(required).addValidations(configModels).build();
+ public static ConfigModel of(String owner, String name, boolean required, ConfigModel... configModels){
+ return new Builder(owner, name).setRequired(required).addValidations(configModels).build();
}
/**
@@ -70,7 +70,7 @@ public class SectionModel extends GroupModel {
* @param builder the builder, not null.
*/
protected SectionModel(Builder builder) {
- super(builder.name, builder.childConfigModels);
+ super(builder.owner, builder.name, builder.childConfigModels);
}
@Override
@@ -117,6 +117,8 @@ public class SectionModel extends GroupModel {
* Builder for setting up a AreaConfigModel instance.
*/
public static class Builder{
+ /** The section owner. */
+ private String owner;
/** The section name. */
private String name;
/** The optional description. */
@@ -130,7 +132,8 @@ public class SectionModel extends GroupModel {
* Creates a new Builder.
* @param sectionName the section name, not null.
*/
- public Builder(String sectionName){
+ public Builder(String owner, String sectionName){
+ this.owner = Objects.requireNonNull(owner);
this.name = Objects.requireNonNull(sectionName);
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/test/java/org/apache/tamaya/model/ConfigModelProviderTest.java
----------------------------------------------------------------------
diff --git a/modules/model/src/test/java/org/apache/tamaya/model/ConfigModelProviderTest.java b/modules/model/src/test/java/org/apache/tamaya/model/ConfigModelProviderTest.java
index 32c8774..d45376d 100644
--- a/modules/model/src/test/java/org/apache/tamaya/model/ConfigModelProviderTest.java
+++ b/modules/model/src/test/java/org/apache/tamaya/model/ConfigModelProviderTest.java
@@ -48,14 +48,15 @@ public class ConfigModelProviderTest implements ModelProviderSpi {
private static final class TestConfigModel extends GroupModel {
public TestConfigModel(){
- super("TestConfig", new SectionModel.Builder("a.test.existing").setRequired(true).build(),
- ParameterModel.of("a.test.existing.aParam", true),
- ParameterModel.of("a.test.existing.optionalParam"),
- ParameterModel.of("a.test.existing.aABCParam", false, "[ABC].*"),
- new SectionModel.Builder("a.test.notexisting").setRequired(true).build(),
- ParameterModel.of("a.test.notexisting.aParam", true),
- ParameterModel.of("a.test.notexisting.optionalParam"),
- ParameterModel.of("a.test.existing.aABCParam2", false, "[ABC].*"));
+ super("TestConfigModel", "TestConfig", new SectionModel.Builder("TestConfigModel",
+ "a.test.existing").setRequired(true).build(),
+ ParameterModel.of("TestConfigModel", "a.test.existing.aParam", true),
+ ParameterModel.of("TestConfigModel", "a.test.existing.optionalParam"),
+ ParameterModel.of("TestConfigModel", "a.test.existing.aABCParam", false, "[ABC].*"),
+ new SectionModel.Builder("TestConfigModel", "a.test.notexisting").setRequired(true).build(),
+ ParameterModel.of("TestConfigModel", "a.test.notexisting.aParam", true),
+ ParameterModel.of("TestConfigModel", "a.test.notexisting.optionalParam"),
+ ParameterModel.of("TestConfigModel", "a.test.existing.aABCParam2", false, "[ABC].*"));
}
@Override
public String getName() {
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/test/java/org/apache/tamaya/model/ConfigUsageStatsTest.java
----------------------------------------------------------------------
diff --git a/modules/model/src/test/java/org/apache/tamaya/model/ConfigUsageStatsTest.java b/modules/model/src/test/java/org/apache/tamaya/model/ConfigUsageStatsTest.java
index ef56e73..5059786 100644
--- a/modules/model/src/test/java/org/apache/tamaya/model/ConfigUsageStatsTest.java
+++ b/modules/model/src/test/java/org/apache/tamaya/model/ConfigUsageStatsTest.java
@@ -53,14 +53,15 @@ public class ConfigUsageStatsTest implements ModelProviderSpi {
private static final class TestConfigModel extends GroupModel {
public TestConfigModel(){
- super("TestConfig", new SectionModel.Builder("a.test.existing").setRequired(true).build(),
- ParameterModel.of("a.test.existing.aParam", true),
- ParameterModel.of("a.test.existing.optionalParam"),
- ParameterModel.of("a.test.existing.aABCParam", false, "[ABC].*"),
- new SectionModel.Builder("a.test.notexisting").setRequired(true).build(),
- ParameterModel.of("a.test.notexisting.aParam", true),
- ParameterModel.of("a.test.notexisting.optionalParam"),
- ParameterModel.of("a.test.existing.aABCParam2", false, "[ABC].*"));
+ super("TestConfigModel", "TestConfig", new SectionModel.Builder("TestConfigModel",
+ "a.test.existing").setRequired(true).build(),
+ ParameterModel.of("TestConfigModel", "a.test.existing.aParam", true),
+ ParameterModel.of("TestConfigModel", "a.test.existing.optionalParam"),
+ ParameterModel.of("TestConfigModel", "a.test.existing.aABCParam", false, "[ABC].*"),
+ new SectionModel.Builder("TestConfigModel", "a.test.notexisting").setRequired(true).build(),
+ ParameterModel.of("TestConfigModel", "a.test.notexisting.aParam", true),
+ ParameterModel.of("TestConfigModel", "a.test.notexisting.optionalParam"),
+ ParameterModel.of("TestConfigModel", "a.test.existing.aABCParam2", false, "[ABC].*"));
}
@Override
public String getName() {
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/test/java/org/apache/tamaya/model/ValidationTests.java
----------------------------------------------------------------------
diff --git a/modules/model/src/test/java/org/apache/tamaya/model/ValidationTests.java b/modules/model/src/test/java/org/apache/tamaya/model/ValidationTests.java
index fcc3024..de4f76f 100644
--- a/modules/model/src/test/java/org/apache/tamaya/model/ValidationTests.java
+++ b/modules/model/src/test/java/org/apache/tamaya/model/ValidationTests.java
@@ -36,6 +36,11 @@ public class ValidationTests {
}
@Test
+ public void testConfigInfo(){
+ System.err.println(ConfigModelManager.getConfigInfoText());
+ }
+
+ @Test
public void testAllValidationsInclUndefined(){
System.err.println("Including UNDEFINED: \n" + ConfigModelManager.validate(true));
}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/test/resources/examples/configmodel.ini
----------------------------------------------------------------------
diff --git a/modules/model/src/test/resources/examples/configmodel.ini b/modules/model/src/test/resources/examples/configmodel.ini
index 0f37807..0e10cc1 100644
--- a/modules/model/src/test/resources/examples/configmodel.ini
+++ b/modules/model/src/test/resources/examples/configmodel.ini
@@ -25,7 +25,7 @@
# Description of Configuration Sections (minimal, can be extended by other modules).
# By default its interpreted as a section !
####################################################################################
-[{model}a]
+[_a.model]
class = Section
params2.type = String
params2.required = true
@@ -36,18 +36,18 @@ _number.type = Integer
_number.deprecated = true
_number.mappedTo = "a.paramInt"
-[{model}a.b.c]
+[_a.b.c.model]
class = Section
description = Just a test section
-[{model}a.b.c.aRequiredSection]
+[_a.b.c.aRequiredSection.model]
class = Section
required = true
description = A section containing required parameters is called a required section.\
Sections can also explicitly be defined to be required, but without\
specifying the paramteres to be contained.,
-[{model}a.b.c.aRequiredSection.subsection]
+[_a.b.c.aRequiredSection.subsection.model]
class = Section
param0.type = String
param0.description = "a minmally documented String parameter"
@@ -59,14 +59,14 @@ param1.required = true
intParam.type = Integer
intParam.description = "an optional parameter (default)"
-[{model}a.b.c.aRequiredSection.nonempty-subsection]
+[_a.b.c.aRequiredSection.nonempty-subsection.model]
class = Section
required = true
-[{model}a.b.c.aRequiredSection.optional-subsection]
+[_a.b.c.aRequiredSection.optional-subsection.model]
class = Section
-[{model}a.b.c.aValidatedSection]
+[_a.b.c.aValidatedSection.model]
class = Section
description = "A configModel section."
configModels = org.apache.tamaya.model.TestValidator?max=3
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/test/resources/examples/configmodel.json
----------------------------------------------------------------------
diff --git a/modules/model/src/test/resources/examples/configmodel.json b/modules/model/src/test/resources/examples/configmodel.json
index e8da8ef..529f26e 100644
--- a/modules/model/src/test/resources/examples/configmodel.json
+++ b/modules/model/src/test/resources/examples/configmodel.json
@@ -28,16 +28,11 @@
// Metamodel information
//##################################################################################
{
- "{model}": {
- "__name": "testmodel",
- "__provider": "ConfigModel Extension",
- "__version": "1.0",
- "__release-date": "2001-01-23",
- "__author": "Anatole Tresch",
- // "modelformat": "alternate format reader type"
- "__comments": "Late afternoon is best. Backup contact is Nancy.",
+ "_model": {
+ "provider": "ConfigModel Extension",
// reusable parameter definition
- "MyNumber": {
+ },
+ "_MyNumber.model": {
"class": "Parameter",
"type": "Integer",
"template": true,
@@ -46,63 +41,63 @@
//##################################################################################
// Description of Configuration Sections (minimal, can be extended by other modules).
//##################################################################################
- "a": {
+ "_a.model": {
"class": "Section",
// required, default is parameter!
- "params2": {
+ },
+ "_a.params2.model": {
"required": true,
"description": "a required parameter"
- },
- "paramInt": {
+ },
+ "_a.paramInt.model": {
// references a shared parameter definition.
"ref": "MyNumber",
"description": "an optional parameter (default)"
- },
- "_number": {
+ },
+ "_a.number.model": {
"type": "Integer",
"deprecated": true,
// references a deprecated parameter, now mapped to 'a.paramInt'.
"mappedto": "a.paramInt"
- }
},
- "a.b.c": {
+ "_a.b.c.model": {
"class": "Section",
"description": "Just a test section."
// a subsection, directly configured as child element.
- "aRequiredSection": {
+ },
+ "_a.b.c.aRequiredSection.model": {
"class": "Section",
"required": true,
"description": "A section containing required parameters is called a required section."
- }
},
// a subsection, configured in its own section.
- "a.b.c.aRequiredSection.subsection": {
- "class": "Section",
- "param0": {
+ "_a.b.c.aRequiredSection.subsection.model": {
+ "class": "Section"
+ }
+ "_a.b.c.param0-model": {
"type": "String",
"description": "a minimally documented String parameter"
- },
+ },
// A minimally defined String parameter
- "param00": {},
- "param1": {
+ "_a.b.c.param00": {},
+ "_a.b.c.param1": {
"type": "String",
"required": true,
"description": "a required parameter"
},
- "intParam": {
+ "_a.b.c.intParam": {
"type": "Integer",
"required": true,
"description": "an optional parameter (default)"
- }
},
- "a.b.c.aRequiredSection.nonempty-subsection": {
+ "_a.b.c.aRequiredSection.nonempty-subsection.model": {
"class": "Section",
"required": true
},
- "a.b.c.aRequiredSection.optional-subsection": {
+ "_a.b.c.aRequiredSection.optional-subsection.model": {
"class": "Section"
},
- "a.b.c.aRequiredSection.aValidatedSection": {
+ "_a.b.c.aRequiredSection.aValidatedSection.model": {
"class": "Section",
"description": "A validated section.",
"validations": "org.apache.tamaya.model.validation.MaxItemValidator?max=3"
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/model/src/test/resources/examples/configmodel.properties
----------------------------------------------------------------------
diff --git a/modules/model/src/test/resources/examples/configmodel.properties b/modules/model/src/test/resources/examples/configmodel.properties
index da0a275..b61695b 100644
--- a/modules/model/src/test/resources/examples/configmodel.properties
+++ b/modules/model/src/test/resources/examples/configmodel.properties
@@ -22,12 +22,12 @@
####################################################################################
# Metamodel information
-{model}.__provider=ConfigModel Extension
+_model.provider=ConfigModel Extension
# reusable parameter definition, referenceable as MyNumber
-{model}.MyNumber.class=Parameter
-{model}.MyNumber.type=Integer
-{model}.MyNumber.description=a (reusable) number type parameter (optional)
+_MyNumber.model.class=Parameter
+_MyNumber.model.type=Integer
+_MyNumber.model.description=a (reusable) number type parameter (optional)
####################################################################################
# Description of Configuration Sections (minimal, can be extended by other modules).
@@ -35,61 +35,61 @@
####################################################################################
# a (section)
-{model}.a.class=Section
-{model}.a.params2.class=Parameter
-{model}.a.params2.type=String
-{model}.a.params2.required=true
-{model}.a.params2.description=a required parameter
+_a.model.class=Section
+_a.params2.model.class=Parameter
+_a.params2.model.type=String
+_a.params2.model.required=true
+_a.params2.model.description=a required parameter
-{model}.a.paramInt.class=Parameter
-{model}.a.paramInt.type=ref:MyNumber
-{model}.a.paramInt.description=an optional parameter (default)
+_a.paramInt.model.class=Parameter
+_a.paramInt.model.type=ref:MyNumber
+_a.paramInt.model.description=an optional parameter (default)
-{model}.a._number.class=Parameter
-{model}.a._number.type=Integer
-{model}.a._number.deprecated=true
-{model}.a._number.mappedTo=a.paramInt
+_a._number.model.class=Parameter
+_a._number.model.type=Integer
+_a._number.model.deprecated=true
+_a._number.model.mappedTo=a.paramInt
# a.b.c (section)
-{model}.a.b.c.class=Section
-{model}.a.b.c.description=Just a test section
+_a.b.c.class=Section
+_a.b.c.description=Just a test section
# a.b.c.aRequiredSection (section)
-{model}.a.b.c.aRequiredSection.class=Section
-{model}.a.b.c.aRequiredSection.required=true
-{model}.a.b.c.aRequiredSection.description=A section containing required parameters is called a required section.\
+_a.b.c.aRequiredSection.model.class=Section
+_a.b.c.aRequiredSection.model.required=true
+_a.b.c.aRequiredSection.model.description=A section containing required parameters is called a required section.\
Sections can also explicitly be defined to be required, but without\
specifying the paramteres to be contained.,
# a.b.c.aRequiredSection.subsection (section)
-{model}.a.b.c.aRequiredSection.subsection.class=Section
+_a.b.c.aRequiredSection.model.subsection.class=Section
-{model}.a.b.c.aRequiredSection.subsection.param0.class=Parameter
-{model}.a.b.c.aRequiredSection.subsection.param0.type=String
-{model}.a.b.c.aRequiredSection.subsection.param0.description=a minmally documented String parameter
+_a.b.c.aRequiredSection.subsection.param0.model.class=Parameter
+_a.b.c.aRequiredSection.subsection.param0.model.type=String
+_a.b.c.aRequiredSection.subsection.param0.model.description=a minmally documented String parameter
# A minmal String parameter
-{model}.a.b.c.aRequiredSection.subsection.param00.class=Parameter
-{model}.a.b.c.aRequiredSection.subsection.param00.type=String
+_a.b.c.aRequiredSection.subsection.param00.model.class=Parameter
+_a.b.c.aRequiredSection.subsection.param00.model.type=String
# a.b.c.aRequiredSection.subsection (section)
-{model}.a.b.c.aRequiredSection.subsection.param1.class=Parameter
-{model}.a.b.c.aRequiredSection.subsection.param1.type = String
-{model}.a.b.c.aRequiredSection.subsection.param1.required = true
-{model}.a.b.c.aRequiredSection.subsection.intParam.class=Parameter
-{model}.a.b.c.aRequiredSection.subsection.intParam.type = Integer
-{model}.a.b.c.aRequiredSection.subsection.intParam.description=an optional parameter (default)
+_a.b.c.aRequiredSection.subsection.param1.model.class=Parameter
+_a.b.c.aRequiredSection.subsection.param1.model.type = String
+_a.b.c.aRequiredSection.subsection.param1.model.required = true
+_a.b.c.aRequiredSection.subsection.intParam.model.class=Parameter
+_a.b.c.aRequiredSection.subsection.intParam.model.type = Integer
+_a.b.c.aRequiredSection.subsection.intParam.model.description=an optional parameter (default)
# a.b.c.aRequiredSection.nonempty-subsection (section)
-{model}.a.b.c.aRequiredSection.nonempty-subsection.class=Section
-{model}.a.b.c.aRequiredSection.nonempty-subsection.required=true
+_a.b.c.aRequiredSection.nonempty-subsection.model.class=Section
+_a.b.c.aRequiredSection.nonempty-subsection.model.required=true
# a.b.c.aRequiredSection.optional-subsection (section)
-{model}.a.b.c.aRequiredSection.optional-subsection.class=Section
+_a.b.c.aRequiredSection.optional-subsection.model.class=Section
# a.b.c.aValidatedSection (section)
-{model}.a.b.c.aValidatedSection.class=Section
-{model}.a.b.c.aValidatedSection.description=A validated section.
-{model}.a.b.c.aValidatedSection.configModels=org.apache.tamaya.model.TestValidator
+_a.b.c.aValidatedSection.model.class=Section
+_a.b.c.aValidatedSection.model.description=A validated section.
+_a.b.c.aValidatedSection.model.configModels=org.apache.tamaya.model.TestValidator
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyConverterManager.java
----------------------------------------------------------------------
diff --git a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyConverterManager.java b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyConverterManager.java
index ff64210..2be6313 100644
--- a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyConverterManager.java
+++ b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyConverterManager.java
@@ -263,7 +263,7 @@ public class PropertyConverterManager {
if (converters != null) {
converterList.addAll(converters);
}
- // handling of java.lang wrapper classes
+ // handling of java.ui.lang wrapper classes
TypeLiteral<T> boxedType = mapBoxedType(targetType);
if (boxedType != null) {
try {
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFiltering.java
----------------------------------------------------------------------
diff --git a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFiltering.java b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFiltering.java
index 7d4d9e1..eef758b 100644
--- a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFiltering.java
+++ b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFiltering.java
@@ -95,7 +95,7 @@ public final class PropertyFiltering{
final String k = entry.getKey();
final String v = entry.getValue();
- String newValue = filter.filterProperty(k, new FilterContext(k, inputMap, false));
+ String newValue = filter.filterProperty(v, new FilterContext(k, inputMap, false));
if (newValue != null && !newValue.equals(v)) {
changes.incrementAndGet();
LOG.finest("Filter - " + k + ": " + v + " -> " + newValue + " by " + filter);
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/ui/pom.xml
----------------------------------------------------------------------
diff --git a/modules/ui/pom.xml b/modules/ui/pom.xml
index 6dd3f89..e5b86f7 100644
--- a/modules/ui/pom.xml
+++ b/modules/ui/pom.xml
@@ -64,6 +64,12 @@ under the License.
<version>${project.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.tamaya</groupId>
+ <artifactId>tamaya-core</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.tamaya.ext</groupId>
<artifactId>tamaya-functions</artifactId>
<version>${project.version}</version>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/ui/src/main/java/org/apache/tamaya/ui/internal/ConfiguredMessageProvider.java
----------------------------------------------------------------------
diff --git a/modules/ui/src/main/java/org/apache/tamaya/ui/internal/ConfiguredMessageProvider.java b/modules/ui/src/main/java/org/apache/tamaya/ui/internal/ConfiguredMessageProvider.java
index e2a761c..00c0ec7 100644
--- a/modules/ui/src/main/java/org/apache/tamaya/ui/internal/ConfiguredMessageProvider.java
+++ b/modules/ui/src/main/java/org/apache/tamaya/ui/internal/ConfiguredMessageProvider.java
@@ -50,7 +50,7 @@
// */
// public String getMessage(String bundleID, Locale locale){
// try{
-// ResourceBundle bundle = ResourceBundle.getBundle("ui/lang/tamaya", locale);
+// ResourceBundle bundle = ResourceBundle.getBundle("ui/ui.lang/tamaya", locale);
// return bundle.getString(bundleID);
// }
// catch(Exception e){
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/ui/src/main/java/org/apache/tamaya/ui/internal/ResourceBundleMessageProvider.java
----------------------------------------------------------------------
diff --git a/modules/ui/src/main/java/org/apache/tamaya/ui/internal/ResourceBundleMessageProvider.java b/modules/ui/src/main/java/org/apache/tamaya/ui/internal/ResourceBundleMessageProvider.java
index c0aa092..193144e 100644
--- a/modules/ui/src/main/java/org/apache/tamaya/ui/internal/ResourceBundleMessageProvider.java
+++ b/modules/ui/src/main/java/org/apache/tamaya/ui/internal/ResourceBundleMessageProvider.java
@@ -53,7 +53,7 @@
// baseName = ConfigurationProvider.getConfiguration().get("tamaya.ui.baseName");
// }
// if(baseName==null || baseName.isEmpty()){
-// baseName = "ui/lang/tamaya";
+// baseName = "ui/ui.lang/tamaya";
// }
// return baseName;
// }
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/modules/ui/src/main/java/org/apache/tamaya/ui/views/ConfigView.java
----------------------------------------------------------------------
diff --git a/modules/ui/src/main/java/org/apache/tamaya/ui/views/ConfigView.java b/modules/ui/src/main/java/org/apache/tamaya/ui/views/ConfigView.java
index 8b1fa3b..ea1837c 100644
--- a/modules/ui/src/main/java/org/apache/tamaya/ui/views/ConfigView.java
+++ b/modules/ui/src/main/java/org/apache/tamaya/ui/views/ConfigView.java
@@ -18,18 +18,11 @@
*/
package org.apache.tamaya.ui.views;
+import com.vaadin.data.Property;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
import com.vaadin.shared.ui.label.ContentMode;
-import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.Label;
-import com.vaadin.ui.TabSheet;
-import com.vaadin.ui.TextArea;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.Tree;
-import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.*;
import org.apache.tamaya.ConfigurationProvider;
import org.apache.tamaya.spi.ServiceContextManager;
import org.apache.tamaya.ui.UIConstants;
@@ -83,6 +76,7 @@ public class ConfigView extends VerticalSpacedLayout implements View {
private TextField keyFilter = new TextField("Key filter");
private TextField valueFilter = new TextField("Value filter");
+ private CheckBox showMetaEntries = new CheckBox("Show Metadata", false);
private Tree tree = new Tree("Current Configuration");
public ConfigView() {
@@ -104,7 +98,8 @@ public class ConfigView extends VerticalSpacedLayout implements View {
}
});
filters.setDefaultComponentAlignment(Alignment.BOTTOM_LEFT);
- filters.addComponents(keyFilter, valueFilter, filterButton);
+ filters.addComponents(keyFilter, valueFilter, filterButton, showMetaEntries);
+ filters.setSpacing(true);
fillTree();
configLayout.addComponents(filters, tree);
@@ -144,10 +139,14 @@ public class ConfigView extends VerticalSpacedLayout implements View {
tabPane.addTab(runtimeProps, "Runtime Properties");
runtimeProps.setSizeFull();
addComponents(caption, description, tabPane);
-
caption.addStyleName(UIConstants.LABEL_HUGE);
description.addStyleName(UIConstants.LABEL_LARGE);
-
+ showMetaEntries.addValueChangeListener(new Property.ValueChangeListener() {
+ @Override
+ public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
+ fillTree();
+ }
+ });
}
private void fillTree() {
@@ -160,6 +159,7 @@ public class ConfigView extends VerticalSpacedLayout implements View {
valueFilterExp = null;
}
tree.removeAllItems();
+ boolean showMetadata = showMetaEntries.getValue();
for(Map.Entry<String,String> entry: ConfigurationProvider.getConfiguration().getProperties().entrySet()){
String key = entry.getKey();
if(keyFilterExp!=null && !key.matches(keyFilterExp)){
@@ -168,6 +168,9 @@ public class ConfigView extends VerticalSpacedLayout implements View {
if(valueFilterExp!=null && !entry.getValue().matches(valueFilterExp)){
continue;
}
+ if(!showMetadata && entry.getKey().startsWith("_")){
+ continue;
+ }
tree.addItem(key);
tree.setItemCaption(key, getCaption(key, entry.getValue()));
tree.setChildrenAllowed(key, false);
http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/d86d5279/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index cd280fc..a15d1d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -268,36 +268,42 @@ under the License.
<groupId>org.jboss.arquillian.daemon</groupId>
<artifactId>arquillian-daemon-container-managed</artifactId>
<version>${arquillian.deamon.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.daemon</groupId>
<artifactId>arquillian-daemon-container-common</artifactId>
<version>${arquillian.deamon.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.daemon</groupId>
<artifactId>arquillian-daemon-main</artifactId>
<version>${arquillian.deamon.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.daemon</groupId>
<artifactId>arquillian-daemon-protocol-arquillian</artifactId>
<version>${arquillian.deamon.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.daemon</groupId>
<artifactId>arquillian-daemon-protocol-wire</artifactId>
<version>${arquillian.deamon.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.daemon</groupId>
<artifactId>arquillian-daemon-server</artifactId>
<version>${arquillian.deamon.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>