From 5220f584db21bd596e65cdc7bd8b7a32aa43bdd7 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Fri, 21 Nov 2014 11:43:34 -0800 Subject: [PATCH] Revert spring-boot-configuration-metadata for now See gh-1970 --- spring-boot-tools/pom.xml | 1 - .../pom.xml | 33 ----- .../ConfigurationMetadataGroup.java | 68 ---------- .../ConfigurationMetadataItem.java | 58 --------- .../ConfigurationMetadataProperty.java | 113 ---------------- .../ConfigurationMetadataRepository.java | 46 ------- ...igurationMetadataRepositoryJsonLoader.java | 98 -------------- .../ConfigurationMetadataSource.java | 110 ---------------- .../configurationmetadata/JsonReader.java | 116 ----------------- .../RawConfigurationMetadata.java | 78 ----------- ...SimpleConfigurationMetadataRepository.java | 121 ----------------- .../AbstractConfigurationMetadataTests.java | 66 ---------- ...tionMetadataRepositoryJsonLoaderTests.java | 122 ------------------ .../JsonReaderTests.java | 86 ------------ .../metadata/configuration-metadata-bar.json | 40 ------ .../configuration-metadata-empty.json | 3 - .../metadata/configuration-metadata-foo.json | 40 ------ .../metadata/configuration-metadata-foo2.json | 23 ---- .../configuration-metadata-invalid.json | 8 -- .../metadata/configuration-metadata-root.json | 11 -- 20 files changed, 1241 deletions(-) delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/pom.xml delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataGroup.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataItem.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataProperty.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataRepository.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataRepositoryJsonLoader.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataSource.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/JsonReader.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/RawConfigurationMetadata.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/SimpleConfigurationMetadataRepository.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/AbstractConfigurationMetadataTests.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/ConfigurationMetadataRepositoryJsonLoaderTests.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/JsonReaderTests.java delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-bar.json delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-empty.json delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-foo.json delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-foo2.json delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-invalid.json delete mode 100644 spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-root.json diff --git a/spring-boot-tools/pom.xml b/spring-boot-tools/pom.xml index b1bf4dcd71..6dfefa64f2 100644 --- a/spring-boot-tools/pom.xml +++ b/spring-boot-tools/pom.xml @@ -20,7 +20,6 @@ ${basedir}/.. - spring-boot-configuration-metadata spring-boot-configuration-processor spring-boot-dependency-tools spring-boot-loader diff --git a/spring-boot-tools/spring-boot-configuration-metadata/pom.xml b/spring-boot-tools/spring-boot-configuration-metadata/pom.xml deleted file mode 100644 index 115ee41505..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-tools - 1.2.0.BUILD-SNAPSHOT - - spring-boot-configuration-metadata - Spring Boot Configuration Metadata - Spring Boot Configuration Metadata - http://projects.spring.io/spring-boot/ - - Pivotal Software, Inc. - http://www.spring.io - - - ${basedir}/../.. - - - - org.json - json - - - - org.springframework - spring-core - test - - - diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataGroup.java b/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataGroup.java deleted file mode 100644 index 8bb0c8266a..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataGroup.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -import java.util.HashMap; -import java.util.Map; - -/** - * Gather a collection of {@link ConfigurationMetadataProperty} that are sharing - * a common prefix. - * - * @author Stephane Nicoll - * @since 1.2.0 - */ -public class ConfigurationMetadataGroup { - - private final String id; - - private final Map sources = - new HashMap(); - - private final Map properties = - new HashMap(); - - public ConfigurationMetadataGroup(String id) { - this.id = id; - } - - /** - * Return the id of the group. - */ - public String getId() { - return this.id; - } - - /** - * Return the {@link ConfigurationMetadataSource sources} defining - * the properties of this group. - */ - public Map getSources() { - return this.sources; - } - - /** - * Return the {@link ConfigurationMetadataProperty properties} defined in this group. - *

A property may appear more than once for a given source, potentially with conflicting - * type or documentation. This is a "merged" view of the properties of this group. - * @see ConfigurationMetadataSource#getProperties() - */ - public Map getProperties() { - return this.properties; - } - -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataItem.java b/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataItem.java deleted file mode 100644 index 4487ee9702..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataItem.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -/** - * An extension of {@link ConfigurationMetadataProperty} that provides the - * a reference to its source. - * - * @author Stephane Nicoll - * @since 1.2.0 - */ -class ConfigurationMetadataItem extends ConfigurationMetadataProperty { - - private String sourceType; - - private String sourceMethod; - - /** - * The class name of the source that contributed this property. For example, if the property - * was from a class annotated with {@code @ConfigurationProperties} this attribute would - * contain the fully qualified name of that class. - */ - public String getSourceType() { - return this.sourceType; - } - - public void setSourceType(String sourceType) { - this.sourceType = sourceType; - } - - /** - * The full name of the method (include parenthesis and argument types) that contributed this - * property. For example, the name of a getter in a {@code @ConfigurationProperties} annotated - * class. - */ - public String getSourceMethod() { - return this.sourceMethod; - } - - public void setSourceMethod(String sourceMethod) { - this.sourceMethod = sourceMethod; - } - -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataProperty.java b/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataProperty.java deleted file mode 100644 index 13fcc86ae9..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataProperty.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -/** - * Define a configuration item. - * - * @author Stephane Nicoll - * @since 1.2.0 - */ -public class ConfigurationMetadataProperty { - - private String id; - - private String name; - - private String type; - - private String description; - - private Object defaultValue; - - private boolean deprecated; - - /** - * The full identifier of the property, in lowercase dashed form (e.g. my.group.simple-property) - */ - public String getId() { - return this.id; - } - - public void setId(String id) { - this.id = id; - } - - /** - * The name of the property, in lowercase dashed form (e.g. simple-property). If this item - * does not belong to any group, the id is returned. - */ - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - /** - * The class name of the data type of the property. For example, {@code java.lang.String}. - *

For consistency, the type of a primitive is specified using its wrapper counterpart, - * i.e. {@code boolean} becomes {@code java.lang.Boolean}. Collections type are harmonized - * to their interface counterpart and defines the actual generic types, i.e. - * {@code java.util.HashMap} becomes - * {@code java.util.Map} - *

Note that this class may be a complex type that gets converted from a String as values - * are bound. - */ - public String getType() { - return this.type; - } - - public void setType(String type) { - this.type = type; - } - - /** - * A short description of the property, if any. - */ - public String getDescription() { - return this.description; - } - - public void setDescription(String description) { - this.description = description; - } - - /** - * The default value, if any. - */ - public Object getDefaultValue() { - return this.defaultValue; - } - - public void setDefaultValue(Object defaultValue) { - this.defaultValue = defaultValue; - } - - /** - * Specify if the property is deprecated - */ - public boolean isDeprecated() { - return this.deprecated; - } - - public void setDeprecated(boolean deprecated) { - this.deprecated = deprecated; - } - -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataRepository.java b/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataRepository.java deleted file mode 100644 index 0086e50847..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataRepository.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -import java.util.Map; - -/** - * A repository of configuration metadata. - * - * @author Stephane Nicoll - * @since 1.2.0 - */ -public interface ConfigurationMetadataRepository { - - /** - * Defines the name of the "root" group, that is the group that - * gathers all the properties that aren't attached to a specific - * group. - */ - static final String ROOT_GROUP = "_ROOT_GROUP_"; - - /** - * Return the groups, indexed by id. - */ - Map getAllGroups(); - - /** - * Return the properties, indexed by id. - */ - Map getAllProperties(); - -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataRepositoryJsonLoader.java b/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataRepositoryJsonLoader.java deleted file mode 100644 index 1c62b6ae66..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataRepositoryJsonLoader.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.Charset; -import java.util.Collection; - -import org.json.JSONException; - -/** - * Load a {@link ConfigurationMetadataRepository} from the content of arbitrary resource(s). - * - * @author Stephane Nicoll - * @since 1.2.0 - */ -public class ConfigurationMetadataRepositoryJsonLoader { - - public static final Charset UTF_8 = Charset.forName("UTF-8"); - - private JsonReader reader = new JsonReader(); - - - /** - * Create a {@link ConfigurationMetadataRepository} with the metadata defined by - * the specified {@code resources} using {@link #UTF_8}. If the same config - * metadata items is held within different resources, the first that is loaded is kept. - */ - public ConfigurationMetadataRepository loadAll(Collection resources) throws IOException { - return loadAll(resources, UTF_8); - } - - /** - * Create a {@link ConfigurationMetadataRepository} with the metadata defined by - * the specified {@code resources} using the specified {@link Charset}. If the - * same config metadata items is held within different resources, the first that - * is loaded is kept. - */ - public ConfigurationMetadataRepository loadAll(Collection resources, Charset charset) throws IOException { - if (resources == null) { - throw new IllegalArgumentException("Resources must not be null."); - } - if (resources.size() == 1) { - return load(resources.iterator().next(), charset); - } - - SimpleConfigurationMetadataRepository repository = new SimpleConfigurationMetadataRepository(); - for (InputStream resource : resources) { - SimpleConfigurationMetadataRepository repo = load(resource, charset); - repository.include(repo); - } - return repository; - } - - private SimpleConfigurationMetadataRepository load(InputStream stream, Charset charset) throws IOException { - try { - RawConfigurationMetadata metadata = this.reader.read(stream, charset); - return create(metadata); - } - catch (IOException e) { - throw new IllegalArgumentException("Failed to read configuration metadata", e); - } - catch (JSONException e) { - throw new IllegalArgumentException("Invalid configuration metadata document", e); - } - } - - private SimpleConfigurationMetadataRepository create(RawConfigurationMetadata metadata) { - SimpleConfigurationMetadataRepository repository = new SimpleConfigurationMetadataRepository(); - repository.add(metadata.getSources()); - for (ConfigurationMetadataItem item : metadata.getItems()) { - ConfigurationMetadataSource source = null; - String sourceType = item.getSourceType(); - if (sourceType != null) { - source = metadata.getSource(sourceType); - } - repository.add(item, source); - } - return repository; - } - -} - diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataSource.java b/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataSource.java deleted file mode 100644 index dd5a2d8e6b..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/ConfigurationMetadataSource.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -import java.util.HashMap; -import java.util.Map; - -/** - * A source of configuration metadata. Also defines where - * the source is declared, for instance if it is defined - * as a {@code @Bean}. - * - * @author Stephane Nicoll - * @since 1.2.0 - */ -public class ConfigurationMetadataSource { - - private String groupId; - - private String type; - - private String description; - - private String sourceType; - - private String sourceMethod; - - private final Map properties - = new HashMap(); - - /** - * The identifier of the group to which this source is associated - */ - public String getGroupId() { - return this.groupId; - } - - void setGroupId(String groupId) { - this.groupId = groupId; - } - - /** - * The type of the source. Usually this is the fully qualified name - * of a class that defines one more configuration item. This class may or - * may not be available at runtime. - */ - public String getType() { - return this.type; - } - - void setType(String type) { - this.type = type; - } - - /** - * The description of this source, if any. - */ - public String getDescription() { - return this.description; - } - - void setDescription(String description) { - this.description = description; - } - - /** - * The type where this source is defined. This can be identical - * to the {@linkplain #getType() type} if the source is self-defined. - */ - public String getSourceType() { - return this.sourceType; - } - - void setSourceType(String sourceType) { - this.sourceType = sourceType; - } - - /** - * The method name that defines this source, if any. - */ - public String getSourceMethod() { - return this.sourceMethod; - } - - void setSourceMethod(String sourceMethod) { - this.sourceMethod = sourceMethod; - } - - /** - * Return the properties defined by this source. - */ - public Map getProperties() { - return this.properties; - } - -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/JsonReader.java b/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/JsonReader.java deleted file mode 100644 index f0ac07fd42..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/JsonReader.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.List; - -import org.json.JSONArray; -import org.json.JSONObject; - -/** - * Read standard json metadata format as {@link ConfigurationMetadataRepository} - * - * @author Stephane Nicoll - * @since 1.2.0 - */ -class JsonReader { - - public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); - - private static final int BUFFER_SIZE = 4096; - - public RawConfigurationMetadata read(InputStream in) throws IOException { - return read(in, DEFAULT_CHARSET); - } - - public RawConfigurationMetadata read(InputStream in, Charset charset) throws IOException { - JSONObject json = readJson(in, charset); - List groups = parseAllSources(json); - List items = parseAllItems(json); - return new RawConfigurationMetadata(groups, items); - } - - private List parseAllSources(JSONObject root) { - List result = new ArrayList(); - if (!root.has("groups")) { - return result; - } - JSONArray sources = root.getJSONArray("groups"); - for (int i = 0; i < sources.length(); i++) { - JSONObject source = sources.getJSONObject(i); - result.add(parseSource(source)); - } - return result; - } - - private List parseAllItems(JSONObject root) { - List result = new ArrayList(); - if (!root.has("properties")) { - return result; - } - JSONArray items = root.getJSONArray("properties"); - for (int i = 0; i < items.length(); i++) { - JSONObject item = items.getJSONObject(i); - result.add(parseItem(item)); - } - return result; - } - - private ConfigurationMetadataSource parseSource(JSONObject json) { - ConfigurationMetadataSource source = new ConfigurationMetadataSource(); - source.setGroupId(json.getString("name")); - source.setType(json.optString("type", null)); - source.setDescription(json.optString("description", null)); - source.setSourceType(json.optString("sourceType", null)); - source.setSourceMethod(json.optString("sourceMethod", null)); - return source; - } - - private ConfigurationMetadataItem parseItem(JSONObject json) { - ConfigurationMetadataItem item = new ConfigurationMetadataItem(); - item.setId(json.getString("name")); - item.setType(json.optString("type", null)); - item.setDescription(json.optString("description", null)); - item.setDefaultValue(json.opt("defaultValue")); - item.setDeprecated(json.optBoolean("deprecated", false)); - item.setSourceType(json.optString("sourceType", null)); - item.setSourceMethod(json.optString("sourceMethod", null)); - return item; - } - - private JSONObject readJson(InputStream in, Charset charset) throws IOException { - try { - StringBuilder out = new StringBuilder(); - InputStreamReader reader = new InputStreamReader(in, charset); - char[] buffer = new char[BUFFER_SIZE]; - int bytesRead = -1; - while ((bytesRead = reader.read(buffer)) != -1) { - out.append(buffer, 0, bytesRead); - } - return new JSONObject(out.toString()); - } - finally { - in.close(); - } - } - -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/RawConfigurationMetadata.java b/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/RawConfigurationMetadata.java deleted file mode 100644 index ff953a7580..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/RawConfigurationMetadata.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -import java.util.ArrayList; -import java.util.List; - -/** - * A raw metadata structure. Used to initialize a {@link ConfigurationMetadataRepository}. - * - * @author Stephane Nicoll - * @since 1.2.0 - */ -class RawConfigurationMetadata { - - private final List sources; - - private final List items; - - RawConfigurationMetadata(List sources, List items) { - this.sources = new ArrayList(sources); - this.items = new ArrayList(items); - for (ConfigurationMetadataItem item : this.items) { - resolveName(item); - } - } - - public List getSources() { - return this.sources; - } - - public ConfigurationMetadataSource getSource(String type) { - for (ConfigurationMetadataSource source : this.sources) { - if (type.equals(source.getType())) { - return source; - } - } - return null; - } - - public List getItems() { - return this.items; - } - - /** - * Resolve the name of an item against this instance. - * @see ConfigurationMetadataProperty#setName(String) - */ - private void resolveName(ConfigurationMetadataItem item) { - item.setName(item.getId()); // fallback - if (item.getSourceType() == null) { - return; - } - ConfigurationMetadataSource source = getSource(item.getSourceType()); - if (source != null) { - String groupId = source.getGroupId(); - String id = item.getId(); - if (id.startsWith(groupId)) { // match - String name = id.substring(groupId.length() + 1, id.length()); // "." - item.setName(name); - } - } - } -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/SimpleConfigurationMetadataRepository.java b/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/SimpleConfigurationMetadataRepository.java deleted file mode 100644 index 2cd9e2b899..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/main/java/org/springframework/configurationmetadata/SimpleConfigurationMetadataRepository.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -/** - * The default {@link ConfigurationMetadataRepository} implementation. - * - * @author Stephane Nicoll - * @since 1.2.0 - */ -public class SimpleConfigurationMetadataRepository implements ConfigurationMetadataRepository { - - private final Map allGroups = new HashMap(); - - @Override - public Map getAllGroups() { - return Collections.unmodifiableMap(this.allGroups); - } - - @Override - public Map getAllProperties() { - Map properties = new HashMap(); - for (ConfigurationMetadataGroup group : this.allGroups.values()) { - properties.putAll(group.getProperties()); - } - return properties; - } - - /** - * Register the specified {@link ConfigurationMetadataSource sources}. - */ - public void add(Collection sources) { - for (ConfigurationMetadataSource source : sources) { - String groupId = source.getGroupId(); - ConfigurationMetadataGroup group = this.allGroups.get(groupId); - if (group == null) { - group = new ConfigurationMetadataGroup(groupId); - this.allGroups.put(groupId, group); - } - String sourceType = source.getType(); - if (sourceType != null) { - putIfAbsent(group.getSources(), sourceType, source); - } - } - } - - /** - * Add a {@link ConfigurationMetadataProperty} with the {@link ConfigurationMetadataSource source} - * that defines it, if any. - */ - public void add(ConfigurationMetadataProperty property, ConfigurationMetadataSource source) { - if (source != null) { - putIfAbsent(source.getProperties(),property.getId(), property); - } - putIfAbsent(getGroup(source).getProperties(), property.getId(), property); - } - - - /** - * Merge the content of the specified repository to this repository. - */ - public void include(ConfigurationMetadataRepository repository) { - for (ConfigurationMetadataGroup group : repository.getAllGroups().values()) { - ConfigurationMetadataGroup existingGroup = this.allGroups.get(group.getId()); - if (existingGroup == null) { - this.allGroups.put(group.getId(), group); - } - else { - // Merge properties - for (Map.Entry entry : group.getProperties().entrySet()) { - putIfAbsent(existingGroup.getProperties(), entry.getKey(), entry.getValue()); - } - // Merge sources - for (Map.Entry entry : group.getSources().entrySet()) { - putIfAbsent(existingGroup.getSources(), entry.getKey(), entry.getValue()); - } - } - } - - } - - private ConfigurationMetadataGroup getGroup(ConfigurationMetadataSource source) { - if (source == null) { - ConfigurationMetadataGroup rootGroup = this.allGroups.get(ROOT_GROUP); - if (rootGroup == null) { - rootGroup = new ConfigurationMetadataGroup(ROOT_GROUP); - this.allGroups.put(ROOT_GROUP, rootGroup); - } - return rootGroup; - } - else { - return this.allGroups.get(source.getGroupId()); - } - } - - private void putIfAbsent(Map map, String key, V value) { - if (!map.containsKey(key)) { - map.put(key, value); - } - } - -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/AbstractConfigurationMetadataTests.java b/spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/AbstractConfigurationMetadataTests.java deleted file mode 100644 index aa655cbb59..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/AbstractConfigurationMetadataTests.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -import java.io.IOException; -import java.io.InputStream; - -import org.junit.Rule; -import org.junit.rules.ExpectedException; - -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -/** - * - * @author Stephane Nicoll - */ -public abstract class AbstractConfigurationMetadataTests { - - @Rule - public final ExpectedException thrown = ExpectedException.none(); - - protected void assertSource(ConfigurationMetadataSource actual, String groupId, String type, String sourceType) { - assertNotNull(actual); - assertEquals(groupId, actual.getGroupId()); - assertEquals(type, actual.getType()); - assertEquals(sourceType, actual.getSourceType()); - } - - protected void assertProperty(ConfigurationMetadataProperty actual, String id, String name, - Class type, Object defaultValue) { - assertNotNull(actual); - assertEquals(id, actual.getId()); - assertEquals(name, actual.getName()); - String typeName = type != null ? type.getName() : null; - assertEquals(typeName, actual.getType()); - assertEquals(defaultValue, actual.getDefaultValue()); - } - - protected void assertItem(ConfigurationMetadataItem actual, String sourceType) { - assertNotNull(actual); - assertEquals(sourceType, actual.getSourceType()); - } - - protected InputStream getInputStreamFor(String name) throws IOException { - Resource r = new ClassPathResource("metadata/configuration-metadata-" + name + ".json"); - return r.getInputStream(); - } -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/ConfigurationMetadataRepositoryJsonLoaderTests.java b/spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/ConfigurationMetadataRepositoryJsonLoaderTests.java deleted file mode 100644 index 8d8fbc5a82..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/ConfigurationMetadataRepositoryJsonLoaderTests.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -import java.io.IOException; -import java.util.Arrays; -import java.util.Collections; -import java.util.Map; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -/** - * Tests for {@link ConfigurationMetadataRepository}. - * - * @author Stephane Nicoll - */ -public class ConfigurationMetadataRepositoryJsonLoaderTests extends AbstractConfigurationMetadataTests { - - private final ConfigurationMetadataRepositoryJsonLoader loader = new ConfigurationMetadataRepositoryJsonLoader(); - - @Test - public void nullResource() throws IOException { - thrown.expect(IllegalArgumentException.class); - loader.loadAll(null); - } - - @Test - public void simpleRepository() throws IOException { - ConfigurationMetadataRepository repo = loader.loadAll(Collections.singleton(getInputStreamFor("foo"))); - validateFoo(repo); - assertEquals(1, repo.getAllGroups().size()); - - contains(repo.getAllProperties(), "spring.foo.name", "spring.foo.description", "spring.foo.counter"); - assertEquals(3, repo.getAllProperties().size()); - } - - @Test - public void severalRepositoriesNoConflict() throws IOException { - ConfigurationMetadataRepository repo = loader.loadAll( - Arrays.asList(getInputStreamFor("foo"), getInputStreamFor("bar"))); - validateFoo(repo); - validateBar(repo); - assertEquals(2, repo.getAllGroups().size()); - - contains(repo.getAllProperties(), "spring.foo.name", "spring.foo.description", "spring.foo.counter", - "spring.bar.name", "spring.bar.description", "spring.bar.counter"); - assertEquals(6, repo.getAllProperties().size()); - } - - @Test - public void repositoryWithRoot() throws IOException { - ConfigurationMetadataRepository repo = loader.loadAll( - Arrays.asList(getInputStreamFor("foo"), getInputStreamFor("root"))); - validateFoo(repo); - assertEquals(2, repo.getAllGroups().size()); - - contains(repo.getAllProperties(), "spring.foo.name", "spring.foo.description", "spring.foo.counter", - "spring.root.name", "spring.root2.name"); - assertEquals(5, repo.getAllProperties().size()); - } - - @Test - public void severalRepositoriesIdenticalGroups() throws IOException { - ConfigurationMetadataRepository repo = loader.loadAll( - Arrays.asList(getInputStreamFor("foo"), getInputStreamFor("foo2"))); - assertEquals(1, repo.getAllGroups().size()); - ConfigurationMetadataGroup group = repo.getAllGroups().get("spring.foo"); - contains(group.getSources(), "org.acme.Foo", "org.acme.Foo2", "org.springframework.boot.FooProperties"); - assertEquals(3, group.getSources().size()); - contains(group.getProperties(), "spring.foo.name", "spring.foo.description", "spring.foo.counter", - "spring.foo.enabled", "spring.foo.type"); - assertEquals(5, group.getProperties().size()); - contains(repo.getAllProperties(), "spring.foo.name", "spring.foo.description", "spring.foo.counter", - "spring.foo.enabled", "spring.foo.type"); - assertEquals(5, repo.getAllProperties().size()); - } - - private void validateFoo(ConfigurationMetadataRepository repo) { - ConfigurationMetadataGroup group = repo.getAllGroups().get("spring.foo"); - contains(group.getSources(), "org.acme.Foo", "org.springframework.boot.FooProperties"); - ConfigurationMetadataSource source = group.getSources().get("org.acme.Foo"); - contains(source.getProperties(), "spring.foo.name", "spring.foo.description"); - assertEquals(2, source.getProperties().size()); - ConfigurationMetadataSource source2 = group.getSources().get("org.springframework.boot.FooProperties"); - contains(source2.getProperties(), "spring.foo.name", "spring.foo.counter"); - assertEquals(2, source2.getProperties().size()); - } - - private void validateBar(ConfigurationMetadataRepository repo) { - ConfigurationMetadataGroup group = repo.getAllGroups().get("spring.bar"); - contains(group.getSources(), "org.acme.Bar", "org.springframework.boot.BarProperties"); - ConfigurationMetadataSource source = group.getSources().get("org.acme.Bar"); - contains(source.getProperties(), "spring.bar.name", "spring.bar.description"); - assertEquals(2, source.getProperties().size()); - ConfigurationMetadataSource source2 = group.getSources().get("org.springframework.boot.BarProperties"); - contains(source2.getProperties(), "spring.bar.name", "spring.bar.counter"); - assertEquals(2, source2.getProperties().size()); - } - - private void contains(Map source, String... keys) { - for (String key : keys) { - assertTrue("Item '" + key + "' not found. Got " + source.keySet(), source.containsKey(key)); - } - } -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/JsonReaderTests.java b/spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/JsonReaderTests.java deleted file mode 100644 index 997d552d99..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/test/java/org/springframework/configurationmetadata/JsonReaderTests.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.configurationmetadata; - -import java.io.IOException; -import java.util.List; - -import org.json.JSONException; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -/** - * Tests for {@link JsonReader} - * - * @author Stephane Nicoll - */ -public class JsonReaderTests extends AbstractConfigurationMetadataTests { - - private final JsonReader reader = new JsonReader(); - - @Test - public void emptyMetadata() throws IOException { - RawConfigurationMetadata rawMetadata = reader.read(getInputStreamFor("empty")); - assertEquals(0, rawMetadata.getSources().size()); - assertEquals(0, rawMetadata.getItems().size()); - } - - @Test - public void invalidMetadata() throws IOException { - thrown.expect(JSONException.class); - reader.read(getInputStreamFor("invalid")); - } - - @Test - public void simpleMetadata() throws IOException { - RawConfigurationMetadata rawMetadata = reader.read(getInputStreamFor("foo")); - List sources = rawMetadata.getSources(); - assertEquals(2, sources.size()); - List items = rawMetadata.getItems(); - assertEquals(4, items.size()); - - - ConfigurationMetadataSource source = sources.get(0); - assertSource(source, "spring.foo", "org.acme.Foo", "org.acme.config.FooApp"); - assertEquals("foo()", source.getSourceMethod()); - assertEquals("This is Foo.", source.getDescription()); - ConfigurationMetadataItem item = items.get(0); - assertProperty(item, "spring.foo.name", "name", String.class, null); - assertItem(item, "org.acme.Foo"); - ConfigurationMetadataItem item2 = items.get(1); - assertProperty(item2, "spring.foo.description", "description", String.class, "FooBar"); - assertEquals("Foo description.", item2.getDescription()); - assertNull(item2.getSourceMethod()); - assertItem(item2, "org.acme.Foo"); - } - - @Test - public void rootMetadata() throws IOException { - RawConfigurationMetadata rawMetadata = reader.read(getInputStreamFor("root")); - List sources = rawMetadata.getSources(); - assertEquals(0, sources.size()); - List items = rawMetadata.getItems(); - assertEquals(2, items.size()); - - ConfigurationMetadataItem item = items.get(0); - assertProperty(item, "spring.root.name", "spring.root.name", String.class, null); - - } - -} diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-bar.json b/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-bar.json deleted file mode 100644 index 3e1d9e124d..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-bar.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "groups": [ - { - "name": "spring.bar", - "type": "org.acme.Bar", - "sourceType": "org.acme.config.BarApp", - "sourceMethod": "bar()", - "description": "This is Bar." - }, - { - "name": "spring.bar", - "type": "org.springframework.boot.BarProperties" - } - ], - "properties": [ - { - "name": "spring.bar.name", - "type": "java.lang.String", - "sourceType": "org.acme.Bar" - }, - { - "name": "spring.bar.description", - "type": "java.lang.String", - "sourceType": "org.acme.Bar", - "description": "Bar description.", - "defaultValue": "BarFoo" - }, - { - "name": "spring.bar.name", - "type": "java.lang.String", - "sourceType": "org.springframework.boot.BarProperties" - }, - { - "name": "spring.bar.counter", - "type": "java.lang.Integer", - "sourceType": "org.springframework.boot.BarProperties", - "defaultValue": 0 - } - ] -} \ No newline at end of file diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-empty.json b/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-empty.json deleted file mode 100644 index b42f309e7a..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-empty.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "foo": "bar" -} \ No newline at end of file diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-foo.json b/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-foo.json deleted file mode 100644 index 4ddc86da17..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-foo.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "groups": [ - { - "name": "spring.foo", - "type": "org.acme.Foo", - "sourceType": "org.acme.config.FooApp", - "sourceMethod": "foo()", - "description": "This is Foo." - }, - { - "name": "spring.foo", - "type": "org.springframework.boot.FooProperties" - } - ], - "properties": [ - { - "name": "spring.foo.name", - "type": "java.lang.String", - "sourceType": "org.acme.Foo" - }, - { - "name": "spring.foo.description", - "type": "java.lang.String", - "sourceType": "org.acme.Foo", - "description": "Foo description.", - "defaultValue": "FooBar" - }, - { - "name": "spring.foo.name", - "type": "java.lang.String", - "sourceType": "org.springframework.boot.FooProperties" - }, - { - "name": "spring.foo.counter", - "type": "java.lang.Integer", - "sourceType": "org.springframework.boot.FooProperties", - "defaultValue": 0 - } - ] -} \ No newline at end of file diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-foo2.json b/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-foo2.json deleted file mode 100644 index a57f4992cf..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-foo2.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "groups": [ - { - "name": "spring.foo", - "type": "org.acme.Foo2", - "sourceType": "org.acme.config.FooApp", - "sourceMethod": "foo2()", - "description": "This is Foo2." - } - ], - "properties": [ - { - "name": "spring.foo.enabled", - "type": "java.lang.Boolean", - "sourceType": "org.acme.Foo2" - }, - { - "name": "spring.foo.type", - "type": "java.lang.String", - "sourceType": "org.acme.Foo2" - } - ] -} \ No newline at end of file diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-invalid.json b/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-invalid.json deleted file mode 100644 index ca2f071115..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-invalid.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "properties": [ - { - "type": "java.lang.String", - "sourceType": "org.acme.Invalid" - } - ] -} \ No newline at end of file diff --git a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-root.json b/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-root.json deleted file mode 100644 index 8fced8db7c..0000000000 --- a/spring-boot-tools/spring-boot-configuration-metadata/src/test/resources/metadata/configuration-metadata-root.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "properties": [ - { - "name": "spring.root.name", - "type": "java.lang.String" - }, - { - "name": "spring.root2.name" - } - ] -} \ No newline at end of file