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 2017/10/16 23:03:14 UTC
[5/6] incubator-tamaya-sandbox git commit: TAMAYA-300 Added tests to
improve mutation coverage. Movewd OSGI and MP to extensions.
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
----------------------------------------------------------------------
diff --git a/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java b/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
deleted file mode 100644
index 1debc71..0000000
--- a/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.microprofile.converter;
-
-import org.apache.tamaya.spi.ConversionContext;
-import org.apache.tamaya.spi.PropertyConverter;
-
-import javax.annotation.Priority;
-import java.util.Locale;
-import java.util.Objects;
-import java.util.logging.Logger;
-
-/**
- * Converter, converting from String to Boolean for 1 = true, otherwise false.
- */
-@Priority(-1)
-public class BooleanAsIntegerConverterFix implements PropertyConverter<Boolean> {
-
- private final Logger LOG = Logger.getLogger(getClass().getName());
-
- @Override
- public Boolean convert(String value, ConversionContext context) {
- context.addSupportedFormats(getClass(), "'1' (true), otherwise false.");
- try{
- int val = Integer.parseInt(Objects.requireNonNull(value).trim());
- if(val==1) {
- return Boolean.TRUE;
- }
- return Boolean.FALSE;
- }catch(Exception e){
- // OK
- return Boolean.FALSE;
- }
- }
-
- @Override
- public boolean equals(Object o){
- return getClass().equals(o.getClass());
- }
-
- @Override
- public int hashCode(){
- return getClass().hashCode();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
----------------------------------------------------------------------
diff --git a/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java b/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
deleted file mode 100644
index 163481d..0000000
--- a/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.microprofile.converter;
-
-import org.apache.tamaya.ConfigException;
-import org.apache.tamaya.ConfigQuery;
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.TypeLiteral;
-import org.apache.tamaya.spi.ConversionContext;
-import org.apache.tamaya.spi.PropertyConverter;
-
-import javax.annotation.Priority;
-import javax.inject.Provider;
-import java.lang.reflect.Type;
-import java.util.List;
-import java.util.Objects;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * Converter, converting from String to Boolean for 1 = true, otherwise false.
- */
-@Priority(-1)
-public class ProviderConverter implements PropertyConverter<Provider> {
-
- private static final Logger LOG = Logger.getLogger(ProviderConverter.class.getName());
-
- @Override
- public Provider convert(String value, ConversionContext context) {
- return () -> {
- try{
- Type targetType = context.getTargetType().getType();
- ConvertQuery converter = new ConvertQuery(value, TypeLiteral.of(targetType));
- return context.getConfiguration().query(converter);
- }catch(Exception e){
- throw new ConfigException("Error evaluating config value.", e);
- }
- };
- }
-
- @Override
- public boolean equals(Object o){
- return getClass().equals(o.getClass());
- }
-
- @Override
- public int hashCode(){
- return getClass().hashCode();
- }
-
- private static final class ConvertQuery<T> implements ConfigQuery<T> {
-
- private String rawValue;
- private TypeLiteral<T> type;
-
- public ConvertQuery(String rawValue, TypeLiteral<T> type) {
- this.rawValue = Objects.requireNonNull(rawValue);
- this.type = Objects.requireNonNull(type);
- }
-
- @Override
- public T query(Configuration config) {
- List<PropertyConverter<T>> converters = config.getContext().getPropertyConverters(type);
- ConversionContext context = new ConversionContext.Builder(type).setConfigurationContext(config.getContext())
- .setConfiguration(config).setKey(ConvertQuery.class.getName()).build();
- for(PropertyConverter<?> conv: converters) {
- try{
- if(conv instanceof ProviderConverter){
- continue;
- }
- T result = (T)conv.convert(rawValue, context);
- if(result!=null){
- return result;
- }
- }catch(Exception e){
- LOG.log(Level.FINEST, e, () -> "Converter "+ conv +" failed to convert to " + type);
- }
- }
- return null;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
----------------------------------------------------------------------
diff --git a/microprofile/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension b/microprofile/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
deleted file mode 100644
index 21ec9d5..0000000
--- a/microprofile/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-#
-
-org.apache.tamaya.microprofile.cdi.MicroprofileCDIExtension
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
----------------------------------------------------------------------
diff --git a/microprofile/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter b/microprofile/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
deleted file mode 100644
index 2205fa2..0000000
--- a/microprofile/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertyConverter
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-#
-
-org.apache.tamaya.microprofile.converter.BooleanAsIntegerConverterFix
-org.apache.tamaya.microprofile.converter.ProviderConverter
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertySource
----------------------------------------------------------------------
diff --git a/microprofile/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertySource b/microprofile/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertySource
deleted file mode 100644
index 585700b..0000000
--- a/microprofile/src/main/resources/META-INF/services/org.apache.tamaya.spi.PropertySource
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-#
-
-org.apache.tamaya.microprofile.MicroprofileDefaultProperties
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigProviderResolver
----------------------------------------------------------------------
diff --git a/microprofile/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigProviderResolver b/microprofile/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigProviderResolver
deleted file mode 100644
index 040f5fd..0000000
--- a/microprofile/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigProviderResolver
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-#
-
-org.apache.tamaya.microprofile.MicroprofileConfigProviderResolver
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/main/resources/beans.xml
----------------------------------------------------------------------
diff --git a/microprofile/src/main/resources/beans.xml b/microprofile/src/main/resources/beans.xml
deleted file mode 100644
index 9b07802..0000000
--- a/microprofile/src/main/resources/beans.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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 current 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.
--->
-<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
-
-
-</beans>
-
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilderTest.java
----------------------------------------------------------------------
diff --git a/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilderTest.java b/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilderTest.java
deleted file mode 100644
index 3250102..0000000
--- a/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilderTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.microprofile;
-
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.spi.ConfigBuilder;
-import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
-import org.eclipse.microprofile.config.spi.ConfigSource;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.junit.Assert.*;
-
-/**
- * Created by atsticks on 24.03.17.
- */
-public class MicroprofileConfigBuilderTest {
-
- private ConfigSource testSource = new ConfigSource() {
- @Override
- public Map<String, String> getProperties() {
- Map<String,String> map = new HashMap<>();
- map.put("timestamp", String.valueOf(System.currentTimeMillis()));
- return map;
- }
-
- @Override
- public String getValue(String propertyName) {
- if("timestamp".equals(propertyName)){
- return String.valueOf(System.currentTimeMillis());
- }
- return null;
- }
-
- @Override
- public String getName() {
- return "test";
- }
- };
-
- @Test
- public void testBuildEmptyConfig(){
- ConfigBuilder builder = ConfigProviderResolver.instance().getBuilder();
- assertNotNull(builder);
- Config config = builder.build();
- assertNotNull(config);
- assertFalse(config.getPropertyNames().iterator().hasNext());
- assertFalse(config.getConfigSources().iterator().hasNext());
- }
-
- @Test
- public void testBuildConfig(){
- ConfigBuilder builder = ConfigProviderResolver.instance().getBuilder();
- assertNotNull(builder);
- builder.withSources(testSource);
- Config config = builder.build();
- assertNotNull(config);
- assertTrue(config.getPropertyNames().iterator().hasNext());
- assertTrue(config.getConfigSources().iterator().hasNext());
- assertNotNull(config.getValue("timestamp", String.class));
- ConfigSource src = config.getConfigSources().iterator().next();
- assertNotNull(src);
- assertEquals(src, testSource);
- }
-
- @Test
- public void testBuildDefaultConfig(){
- ConfigBuilder builder = ConfigProviderResolver.instance().getBuilder();
- assertNotNull(builder);
- builder.addDefaultSources();
- Config config = builder.build();
- assertNotNull(config);
- assertTrue(config.getPropertyNames().iterator().hasNext());
- assertTrue(config.getConfigSources().iterator().hasNext());
- assertNotNull(config.getValue("java.home", String.class));
- ConfigSource src = config.getConfigSources().iterator().next();
- assertNotNull(src);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderResolverTest.java
----------------------------------------------------------------------
diff --git a/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderResolverTest.java b/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderResolverTest.java
deleted file mode 100644
index 9b6b554..0000000
--- a/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderResolverTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.microprofile;
-
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.spi.ConfigBuilder;
-import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
-import org.junit.Test;
-
-import java.net.URL;
-import java.net.URLClassLoader;
-
-import static org.junit.Assert.*;
-
-/**
- * Created by atsticks on 24.03.17.
- */
-public class MicroprofileConfigProviderResolverTest {
-
- @Test
- public void testInstance(){
- assertNotNull(ConfigProviderResolver.instance());
- }
-
- @Test
- public void testGetBuilder(){
- assertNotNull(ConfigProviderResolver.instance().getBuilder());
- }
-
- @Test
- public void testGetConfig(){
- assertNotNull(ConfigProviderResolver.instance().getConfig());
- }
-
- @Test
- public void testGetConfig_CL(){
- assertNotNull(ConfigProviderResolver.instance().getConfig(ClassLoader.getSystemClassLoader()));
- }
-
- @Test
- public void testRegisterAndReleaseConfig(){
- ClassLoader cl = new URLClassLoader(new URL[]{});
- Config emptyConfig = ConfigProviderResolver.instance().getBuilder().build();
- assertNotNull(emptyConfig);
- Config cfg = ConfigProviderResolver.instance().getConfig(cl);
- assertNotNull(cfg);
- ConfigProviderResolver.instance().registerConfig(emptyConfig, cl);
- cfg = ConfigProviderResolver.instance().getConfig(cl);
- assertNotNull(cfg);
- assertEquals(cfg, emptyConfig);
- ConfigProviderResolver.instance().releaseConfig(emptyConfig);
- cfg = ConfigProviderResolver.instance().getConfig(cl);
- assertNotNull(cfg);
- assertNotSame(cfg, emptyConfig);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderTest.java
----------------------------------------------------------------------
diff --git a/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderTest.java b/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderTest.java
deleted file mode 100644
index 039145d..0000000
--- a/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.microprofile;
-
-import org.apache.tamaya.ConfigurationProvider;
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-/**
- * Created by atsticks on 24.03.17.
- */
-public class MicroprofileConfigProviderTest {
-
- @Test
- public void testDefaultConfigAccess(){
- Config config = ConfigProvider.getConfig();
- assertNotNull(config);
- Iterable<String> names = config.getPropertyNames();
- assertNotNull(names);
- int count = 0;
- for(String name:names){
- count++;
- System.out.println(count + ": " +name);
- }
- assertTrue(ConfigurationProvider.getConfiguration().getProperties().size() <= count);
- }
-
- @Test
- public void testClassloaderAccess(){
- Config config = ConfigProvider.getConfig(Thread.currentThread().getContextClassLoader());
- assertNotNull(config);
- Iterable<String> names = config.getPropertyNames();
- assertNotNull(names);
- int count = 0;
- for(String name:names){
- count++;
- }
- assertTrue(count>0);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigTest.java
----------------------------------------------------------------------
diff --git a/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigTest.java b/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigTest.java
deleted file mode 100644
index 1c5375a..0000000
--- a/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.microprofile;
-
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.eclipse.microprofile.config.spi.ConfigSource;
-import org.junit.Test;
-
-import java.util.NoSuchElementException;
-import java.util.Optional;
-
-import static org.junit.Assert.*;
-
-/**
- * Created by atsticks on 24.03.17.
- */
-public class MicroprofileConfigTest {
-
- @Test
- public void testDefaultConfigAccess() {
- Config config = ConfigProvider.getConfig();
- Iterable<ConfigSource> sources = config.getConfigSources();
- int count = 0;
- for (ConfigSource cs : sources) {
- count++;
- }
- assertEquals(3, count);
- }
-
- @Test
- public void testOptionalAccess(){
- Config config = ConfigProvider.getConfig();
- int count = 0;
- for(String key:config.getPropertyNames()){
- Optional<String> val = config.getOptionalValue(key, String.class);
- assertNotNull(val);
- val = config.getOptionalValue(key + System.currentTimeMillis(), String.class);
- assertNotNull(val);
- assertFalse(val.isPresent());
- }
- }
-
- @Test
- public void testGetValue(){
- Config config = ConfigProvider.getConfig();
- int count = 0;
- for(String key:config.getPropertyNames()){
- String val = config.getValue(key, String.class);
- assertNotNull(val);
- }
- }
-
- @Test(expected = NoSuchElementException.class)
- public void testGetValue_NoValue(){
- Config config = ConfigProvider.getConfig();
- config.getValue("fooBar", String.class);
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testGetValue_InvalidType(){
- Config config = ConfigProvider.getConfig();
- config.getValue("java.version", Integer.class);
- }
-
- @Test
- public void testEmptySystemProperty(){
- System.setProperty("my.empty.property", "");
- Config config = ConfigProvider.getConfig();
- assertEquals("", config.getValue("my.empty.property", String.class));
- }
-
- @Test
- public void testEmptyConfigProperty(){
- Config config = ConfigProvider.getConfig();
- assertEquals("", config.getValue("my.empty.property.in.config.file", String.class));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigArchiveProcessor.java
----------------------------------------------------------------------
diff --git a/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigArchiveProcessor.java b/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigArchiveProcessor.java
deleted file mode 100644
index 61cd11c..0000000
--- a/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigArchiveProcessor.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.microprofile.tck;
-
-import org.apache.tamaya.core.internal.converters.OptionalConverter;
-import org.apache.tamaya.microprofile.MicroprofileAdapter;
-import org.apache.tamaya.microprofile.MicroprofileConfigProviderResolver;
-import org.apache.tamaya.microprofile.cdi.MicroprofileCDIExtension;
-import org.apache.tamaya.microprofile.converter.BooleanAsIntegerConverterFix;
-import org.apache.tamaya.spi.PropertyConverter;
-import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
-import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
-import org.jboss.arquillian.test.spi.TestClass;
-import org.jboss.shrinkwrap.api.Archive;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.EmptyAsset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.jboss.shrinkwrap.resolver.api.maven.Maven;
-
-import javax.enterprise.inject.spi.Extension;
-import java.io.File;
-
-/**
- * Adds the whole Config implementation classes and resources to the
- * Arquillian deployment archive. This is needed to have the container
- * pick up the beans from within the impl for the TCK tests.
- *
- * @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
- */
-public class TamayaConfigArchiveProcessor implements ApplicationArchiveProcessor {
-
- @Override
- public void process(Archive<?> applicationArchive, TestClass testClass) {
- if (applicationArchive instanceof WebArchive) {
- File[] coreLibs = Maven.resolver()
- .loadPomFromFile("pom.xml").resolve("org.apache.tamaya:tamaya-core")
- .withTransitivity().asFile();
- File[] apiLibs = Maven.resolver()
- .loadPomFromFile("pom.xml").resolve("org.apache.tamaya:tamaya-api")
- .withTransitivity().asFile();
- File[] functionsLib = Maven.resolver()
- .loadPomFromFile("pom.xml").resolve("org.apache.tamaya.ext:tamaya-functions")
- .withTransitivity().asFile();
-
- JavaArchive configJar = ShrinkWrap
- .create(JavaArchive.class, "tamaya-config-impl.jar")
- .addPackage(MicroprofileAdapter.class.getPackage())
- .addPackage(MicroprofileCDIExtension.class.getPackage())
- .addPackage(BooleanAsIntegerConverterFix.class.getPackage())
- .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
- .addAsServiceProvider(ConfigProviderResolver.class, MicroprofileConfigProviderResolver.class)
- .addAsServiceProvider(PropertyConverter.class, BooleanAsIntegerConverterFix.class)
- .addAsServiceProvider(PropertyConverter.class, OptionalConverter.class)
- .addAsServiceProvider(Extension.class, MicroprofileCDIExtension.class);
- ((WebArchive) applicationArchive).addAsLibraries(
- configJar)
- .addAsLibraries(apiLibs)
- .addAsLibraries(coreLibs)
- .addAsLibraries(functionsLib);
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigExtension.java
----------------------------------------------------------------------
diff --git a/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigExtension.java b/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigExtension.java
deleted file mode 100644
index 9c0dfd3..0000000
--- a/microprofile/src/test/java/org/apache/tamaya/microprofile/tck/TamayaConfigExtension.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.microprofile.tck;
-
-import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
-import org.jboss.arquillian.core.spi.LoadableExtension;
-
-/**
- * Arquillian extension to load Tamaya into Arquillian context.
- * @author <a href="mailto:anatole@apache.org">Anatole Tresch</a>
- */
-public class TamayaConfigExtension implements LoadableExtension {
-
- @Override
- public void register(ExtensionBuilder extensionBuilder) {
- extensionBuilder.service(
- ApplicationArchiveProcessor.class,
- TamayaConfigArchiveProcessor.class);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/microprofile/src/test/resources/META-INF/beans.xml b/microprofile/src/test/resources/META-INF/beans.xml
deleted file mode 100644
index adee378..0000000
--- a/microprofile/src/test/resources/META-INF/beans.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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 current 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.
--->
-<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
-
-</beans>
-
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/resources/META-INF/microprofile-config.properties
----------------------------------------------------------------------
diff --git a/microprofile/src/test/resources/META-INF/microprofile-config.properties b/microprofile/src/test/resources/META-INF/microprofile-config.properties
deleted file mode 100644
index 2e63bf8..0000000
--- a/microprofile/src/test/resources/META-INF/microprofile-config.properties
+++ /dev/null
@@ -1,105 +0,0 @@
-#
-# Copyright (c) 2016-2017 Contributors to the Eclipse Foundation
-#
-# See the NOTICES file(s) distributed with this work for additional
-# information regarding copyright ownership.
-#
-# 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.
-#
-
-my.optional.int.property=1234
-my.optional.string.property=hello
-
-tck.config.test.javaconfig.properties.key1=VALue1
-
-
-tck.config.test.overwritten.in.custompropertyfile.key1=value from microprofile-config.properties
-
-
-tck.config.test.javaconfig.converter.integervalue = 1234
-tck.config.test.javaconfig.converter.integervalue.broken = xxx
-
-tck.config.test.javaconfig.converter.longvalue = 1234567890
-tck.config.test.javaconfig.converter.longvalue.broken = xxx
-
-tck.config.test.javaconfig.converter.floatvalue = 12.34
-tck.config.test.javaconfig.converter.floatvalue.broken = alfasdf
-
-tck.config.test.javaconfig.converter.doublevalue = 12.34
-tck.config.test.javaconfig.converter.doublevalue.broken = alfasdf
-
-tck.config.test.javaconfig.converter.durationvalue = PT15M
-tck.config.test.javaconfig.converter.durationvalue.broken = alfasdf
-
-tck.config.test.javaconfig.converter.localtimevalue = 10:37
-tck.config.test.javaconfig.converter.localtimevalue.broken = alfasdf
-
-tck.config.test.javaconfig.converter.localdatevalue = 2017-12-24
-tck.config.test.javaconfig.converter.localdatevalue.broken = alfasdf
-
-tck.config.test.javaconfig.converter.localdatetimevalue = 2017-12-24T10:25:30
-tck.config.test.javaconfig.converter.localdatetimevalue.broken = alfasdf
-
-tck.config.test.javaconfig.converter.offsetdatetimevalue = 2007-12-03T10:15:30+01:00
-tck.config.test.javaconfig.converter.offsetdatetimevalue.broken = alfasdf
-
-tck.config.test.javaconfig.converter.offsettimevalue = 13:45:30.123456789+02:00
-tck.config.test.javaconfig.converter.offsettimevalue.broken = alfasdf
-
-tck.config.test.javaconfig.converter.instantvalue = 2015-06-02T21:34:33.616Z
-tck.config.test.javaconfig.converter.instantvalue.broken = alfasdf
-
-tck.config.test.javaconfig.configvalue.key1=value1
-
-# test BooleanConverter START
-tck.config.test.javaconfig.configvalue.boolean.true=true
-tck.config.test.javaconfig.configvalue.boolean.true_uppercase=TRUE
-tck.config.test.javaconfig.configvalue.boolean.true_mixedcase=TruE
-tck.config.test.javaconfig.configvalue.boolean.false=false
-
-tck.config.test.javaconfig.configvalue.boolean.one=1
-tck.config.test.javaconfig.configvalue.boolean.zero=0
-tck.config.test.javaconfig.configvalue.boolean.seventeen=17
-
-tck.config.test.javaconfig.configvalue.boolean.yes=yes
-tck.config.test.javaconfig.configvalue.boolean.yes_uppercase=YES
-tck.config.test.javaconfig.configvalue.boolean.yes_mixedcase=Yes
-tck.config.test.javaconfig.configvalue.boolean.no=no
-
-tck.config.test.javaconfig.configvalue.boolean.y=y
-tck.config.test.javaconfig.configvalue.boolean.y_uppercase=Y
-tck.config.test.javaconfig.configvalue.boolean.n=n
-
-tck.config.test.javaconfig.configvalue.boolean.on=on
-tck.config.test.javaconfig.configvalue.boolean.on_uppercase=ON
-tck.config.test.javaconfig.configvalue.boolean.on_mixedcase=oN
-tck.config.test.javaconfig.configvalue.boolean.off=off
-
-# test BooleanConverter END
-
-# various other converter
-tck.config.test.javaconfig.configvalue.integer=1234
-tck.config.test.javaconfig.configvalue.long=1234567890123456
-tck.config.test.javaconfig.configvalue.float=12.34
-tck.config.test.javaconfig.configvalue.double=12.34567890123456
-
-# Custom Converter tests
-tck.config.test.javaconfig.converter.duckname=Hannelore
-
-# URL Converter tests
-tck.config.test.javaconfig.converter.urlvalue=http://microprofile.io
-tck.config.test.javaconfig.converter.urlvalue.broken=tt:--location$
-
-# Empty values
-my.empty.property.in.config.file=
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
----------------------------------------------------------------------
diff --git a/microprofile/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/microprofile/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
deleted file mode 100644
index b2af25c..0000000
--- a/microprofile/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-#
-org.apache.tamaya.microprofile.tck.TamayaConfigExtension
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/resources/sampleconfig.yaml
----------------------------------------------------------------------
diff --git a/microprofile/src/test/resources/sampleconfig.yaml b/microprofile/src/test/resources/sampleconfig.yaml
deleted file mode 100644
index 27f2392..0000000
--- a/microprofile/src/test/resources/sampleconfig.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Copyright (c) 2016-2017 Mark Struberg and others
-#
-# 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.
-#
-# just needed as a trigger for the ConfigSource pickup.
-# Content is hardcoded in SampleYamlConfigSource
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/microprofile/src/test/tck-suite.xml
----------------------------------------------------------------------
diff --git a/microprofile/src/test/tck-suite.xml b/microprofile/src/test/tck-suite.xml
deleted file mode 100644
index 84d36ad..0000000
--- a/microprofile/src/test/tck-suite.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you 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 current 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.
--->
-<suite name="microprofile-config-TCK" verbose="2" configfailurepolicy="continue" >
- <test name="microprofile-config 1.1 TCK">
- <packages>
- <package name="org.eclipse.microprofile.config.tck.*">
- </package>
- </packages>
- </test>
-</suite>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/osgi/common/bnd.bnd
----------------------------------------------------------------------
diff --git a/osgi/common/bnd.bnd b/osgi/common/bnd.bnd
deleted file mode 100644
index e937379..0000000
--- a/osgi/common/bnd.bnd
+++ /dev/null
@@ -1,33 +0,0 @@
--buildpath: \
- osgi.annotation; version=6.0.0,\
- osgi.core; version=6.0,\
- osgi.cmpn; version=6.0
-
--testpath: \
- ${junit}
-
-javac.source: 1.8
-javac.target: 1.8
-
-Bundle-Version: ${version}.${tstamp}
-Bundle-Name: Apache Tamaya - OSGI ConfigurationPlugin
-Bundle-SymbolicName: org.apache.tamaya.osgi
-Bundle-Description: Apacha Tamaya Configuration - OSGI ConfigurationPlugin
-Bundle-Category: Implementation
-Bundle-Copyright: (C) Apache Foundation
-Bundle-License: Apache Licence version 2
-Bundle-Vendor: Apache Software Foundation
-Bundle-ContactAddress: dev-tamaya@incubator.apache.org
-Bundle-DocURL: http://tamaya.apache.org
-Bundle-Activator: org.apache.tamaya.osgi.Activator
-Export-Package: \
- org.apache.tamaya.osgi,\
- org.apache.tamaya.osgi.commands
-Import-Package: \
- org.osgi.framework,\
- org.osgi.service.cm,\
- org.apache.tamaya,\
- org.apache.tamaya.spi,\
- org.apache.tamaya.functions,\
- org.apache.tamaya.spisupport
-Export-Service: org.apache.tamaya.osgi.commands.TamayaConfigService
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/osgi/common/pom.xml
----------------------------------------------------------------------
diff --git a/osgi/common/pom.xml b/osgi/common/pom.xml
deleted file mode 100644
index a166929..0000000
--- a/osgi/common/pom.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <!--
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
- -->
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.tamaya.ext</groupId>
- <artifactId>tamaya-osgi-all</artifactId>
- <version>0.4-incubating-SNAPSHOT</version>
- </parent>
-
- <artifactId>tamaya-osgi</artifactId>
- <packaging>jar</packaging>
- <name>Apache Tamaya :: OSGi :: ConfigurationPlugin</name>
- <description>Tamaya Based OSGI ConfigurationPlugin Implementation</description>
-
- <properties>
- <osgi.config.version>1.5.0</osgi.config.version>
- <osgi.tracker.version>1.5.1</osgi.tracker.version>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.util.tracker</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tamaya</groupId>
- <artifactId>tamaya-api</artifactId>
- <version>${project.parent.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tamaya</groupId>
- <artifactId>tamaya-core</artifactId>
- <version>${project.parent.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tamaya.ext</groupId>
- <artifactId>tamaya-functions</artifactId>
- <version>${project.parent.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tamaya.ext</groupId>
- <artifactId>tamaya-spisupport</artifactId>
- <version>${project.parent.version}</version>
- </dependency>
-
- <!-- Testing -->
- <dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>java-hamcrest</artifactId>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- </dependency>
-
- </dependencies>
-
-</project>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/osgi/common/src/main/java/org/apache/tamaya/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/osgi/common/src/main/java/org/apache/tamaya/osgi/Activator.java b/osgi/common/src/main/java/org/apache/tamaya/osgi/Activator.java
deleted file mode 100644
index aef323d..0000000
--- a/osgi/common/src/main/java/org/apache/tamaya/osgi/Activator.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.osgi;
-
-import org.apache.tamaya.osgi.commands.TamayaConfigService;
-import org.osgi.framework.*;
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
-import org.osgi.service.cm.ConfigurationPlugin;
-import org.osgi.service.component.annotations.Reference;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import java.util.logging.Logger;
-
-/**
- * Activator that registers the Tamaya based Service Class for {@link ConfigurationAdmin},
- * using a default service priority of {@code 0}. This behaviour is configurable based on OSGI properties:
- * <ul>
- * <li><p><b>org.tamaya.integration.osgi.cm.ranking, type: int</b> allows to configure the OSGI service ranking for
- * Tamaya based ConfigurationAdmin instance. The default ranking used is 10.</p></li>
- * <li><p><b>org.tamaya.integration.osgi.cm.override, type: boolean</b> allows to configure if Tamaya should
- * register its ConfigAdmin service. Default is true.</p></li>
- * </ul>
- */
-public class Activator implements BundleActivator {
-
- private static final Integer DEFAULT_RANKING = 100000;
-
- private static final Logger LOG = Logger.getLogger(Activator.class.getName());
-
- private ServiceRegistration<TamayaConfigService> registration;
-
- private TamayaConfigPlugin plugin;
-
-
- @Override
- public void start(BundleContext context) throws Exception {
- ServiceReference<ConfigurationAdmin> cmRef = context.getServiceReference(ConfigurationAdmin.class);
- ConfigurationAdmin cm = context.getService(cmRef);
- Configuration configuration = cm.getConfiguration(TamayaConfigPlugin.COMPONENTID, null);
- this.plugin = new TamayaConfigPlugin(context);
- Dictionary<String, Object> props = new Hashtable<>();
- props.put(Constants.SERVICE_RANKING, DEFAULT_RANKING);
- LOG.info("Registering Tamaya OSGI Config Service...");
- registration = context.registerService(
- TamayaConfigService.class,
- this.plugin, props);
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- if (registration != null) {
- registration.unregister();
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/osgi/common/src/main/java/org/apache/tamaya/osgi/Backups.java
----------------------------------------------------------------------
diff --git a/osgi/common/src/main/java/org/apache/tamaya/osgi/Backups.java b/osgi/common/src/main/java/org/apache/tamaya/osgi/Backups.java
deleted file mode 100644
index 0ae1048..0000000
--- a/osgi/common/src/main/java/org/apache/tamaya/osgi/Backups.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.osgi;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * Singleton class to store OSGI configuration backups before change the OSGI
- * Config with Tamaya settings. This allows to restore the configuration in
- * case of issues.
- */
-final class Backups {
-
- private static final Logger LOG = Logger.getLogger(Backups.class.getName());
- public static final String TAMAYA_BACKUP = "tamaya.backup";
- private static Map<String, Hashtable<String,?>> initialConfigState = new ConcurrentHashMap<>();
-
- private Backups(){}
-
- /**
- * Sets the given backup for a PID.
- * @param pid the PID, not null.
- * @param config the config to store.
- */
- public static void set(String pid, Dictionary<String,?> config){
- initialConfigState.put(pid, toHashtable(config));
- }
-
- /**
- * Converts the dictionary to a hash table to enabled serialization.
- * @param dictionary he config, not null.
- * @return the correspoinding Hashtable
- */
- private static Hashtable<String, ?> toHashtable(Dictionary<String, ?> dictionary) {
- if (dictionary == null) {
- return null;
- }
- if(dictionary instanceof Hashtable){
- return (Hashtable) dictionary;
- }
- Hashtable<String, Object> map = new Hashtable<>(dictionary.size());
- Enumeration<String> keys = dictionary.keys();
- while (keys.hasMoreElements()) {
- String key = keys.nextElement();
- map.put(key, dictionary.get(key));
- }
- return map;
- }
-
- /**
- * Removes a backup.
- * @param pid the PID, not null.
- * @return
- */
- public static Dictionary<String,?> remove(String pid){
- return initialConfigState.remove(pid);
- }
-
- /**
- * Removes all backups.
- */
- public static void removeAll(){
- initialConfigState.clear();
- }
-
- /**
- * Get a backup for a PID.
- * @param pid the PID, not null.
- * @return the backup found, or null.
- */
- public static Dictionary<String,?> get(String pid){
- return initialConfigState.get(pid);
- }
-
- /**
- * Get all current stored backups.
- * @return The backups stored, by PID.
- */
- public static Map<String,Dictionary<String,?>> get(){
- return new HashMap<>(initialConfigState);
- }
-
- /**
- * Get all current kjnown PIDs.
- * @return the PIDs, never null.
- */
- public static Set<String> getPids(){
- return initialConfigState.keySet();
- }
-
- /**
- * Checks if a backup exists for a given PID.
- * @param pid the pid, not null.
- * @return
- */
- public static boolean contains(String pid){
- return initialConfigState.containsKey(pid);
- }
-
- /**
- * Saves the bachups into the given config.
- * @param config the config, not nul.
- */
- public static void save(Dictionary<String,Object> config){
- try{
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(bos);
- oos.writeObject(initialConfigState);
- oos.flush();
- Base64.getEncoder().encode(bos.toByteArray());
- config.put(TAMAYA_BACKUP, Base64.getEncoder().encodeToString(bos.toByteArray()));
- }catch(Exception e){
- LOG.log(Level.SEVERE, "Failed to restore OSGI Backups.", e);
- }
- }
-
- /**
- * Restores the backups ino the given config.
- * @param config the config, not null.
- */
- public static void restore(Dictionary<String,Object> config){
- try{
- String serialized = (String)config.get("tamaya.backup");
- if(serialized!=null) {
- ByteArrayInputStream bis = new ByteArrayInputStream(Base64.getDecoder().decode(serialized));
- ObjectInputStream ois = new ObjectInputStream(bis);
- initialConfigState = (Map<String, Hashtable<String,?>>) ois.readObject();
- ois.close();
- }
- } catch (Exception e) {
- LOG.log(Level.WARNING, "Failed to store getConfig change getHistory.", e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigChanger.java
----------------------------------------------------------------------
diff --git a/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigChanger.java b/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigChanger.java
deleted file mode 100644
index 0969a59..0000000
--- a/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigChanger.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.osgi;
-
-import org.apache.tamaya.ConfigurationProvider;
-import org.apache.tamaya.functions.ConfigurationFunctions;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
-
-import java.io.IOException;
-import java.util.Date;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Objects;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * Created by atsticks on 19.09.17.
- */
-final class ConfigChanger {
-
- private static final Logger LOG = Logger.getLogger(TamayaConfigPlugin.class.getName());
-
- private BundleContext context;
- private ConfigurationAdmin cm;
-
- public ConfigChanger(BundleContext context){
- this.context = context;
- ServiceReference<ConfigurationAdmin> cmRef = context.getServiceReference(ConfigurationAdmin.class);
- this.cm = context.getService(cmRef);
- }
-
- public BundleContext getContext(){
- return context;
- }
-
- public ConfigurationAdmin getConfigurationAdmin(){
- return cm;
- }
-
- public Dictionary<String, Object> configure(String pid, Bundle bundle, Policy policy, boolean opModeExplicit, boolean dryRun) {
- try {
- String root = '[' + pid + ']';
- // TODO Check for Bundle.getLocation() usage here...
- Configuration osgiConfig = cm.getConfiguration(pid, bundle!=null?bundle.getLocation():null);
- Policy opMode = Objects.requireNonNull(policy);
- // Check manifest config
- if(bundle!=null) {
- if(!opModeExplicit) {
- String opVal = bundle.getHeaders().get(TamayaConfigPlugin.TAMAYA_POLICY_MANIFEST);
- if (opVal != null) {
- opMode = Policy.valueOf(opVal.toUpperCase());
- }
- }
- String customRoot = bundle.getHeaders().get(TamayaConfigPlugin.TAMAYA_CUSTOM_ROOT_MANIFEST);
- if(customRoot!=null){
- root = customRoot;
- }
- }
- // Check for dynamic OSGI overrides
- if(osgiConfig!=null){
- Dictionary<String,Object> props = osgiConfig.getProperties();
- if(props!=null){
- if(!opModeExplicit) {
- String opVal = (String) props.get(TamayaConfigPlugin.TAMAYA_POLICY_PROP);
- if (opVal != null) {
- opMode = Policy.valueOf(opVal.toUpperCase());
- }
- }
- String customRoot = (String)props.get(TamayaConfigPlugin.TAMAYA_CUSTOM_ROOT_PROP);
- if(customRoot!=null){
- root = customRoot;
- }
- }else{
- props = new Hashtable<>();
- }
- if(!dryRun && !Backups.contains(pid)){
- Backups.set(pid, props);
- LOG.finest("Stored OSGI configuration backup for PID: " + pid);
- }
- LOG.finest("Evaluating Tamaya Config for PID: " + pid);
- org.apache.tamaya.Configuration tamayaConfig = getTamayaConfiguration(root);
- if (tamayaConfig == null) {
- LOG.finest("No Tamaya configuration for root: " + root);
- }else {
- if(dryRun){
- modifyConfiguration(pid, tamayaConfig, props, opMode);
- }else {
- try {
- if (bundle != null) {
- ConfigHistory.configuring(pid, "bundle=" + bundle.getSymbolicName() + ", opMode=" + opMode);
- } else {
- ConfigHistory.configuring(pid, "trigger=Tamaya, opMode=" + opMode);
- }
- modifyConfiguration(pid, tamayaConfig, props, opMode);
- if (!props.isEmpty()) {
- osgiConfig.update(props);
- LOG.info("Updated configuration for PID: " + pid + ": " + props);
- ConfigHistory.configured(pid, "SUCCESS");
- }
- }catch(Exception e){
- LOG.log(Level.WARNING, "Failed to update configuration for PID: " + pid, e);
- ConfigHistory.configured(pid, "FAILED: " + e);
- }
- }
- }
- return props;
- }
- return null;
- } catch (Exception e) {
- LOG.log(Level.WARNING, "Failed to initialize configuration for PID: " + pid, e);
- return null;
- }
- }
-
- public void modifyConfiguration(String pid, org.apache.tamaya.Configuration config, Dictionary<String, Object> dictionary, Policy opMode) {
- LOG.info(() -> "Updating configuration for PID: " + pid + "...");
- dictionary.put("tamaya.modified.at", new Date().toString());
-
- Map<String, Object> dictionaryMap = new HashMap<>();
- Enumeration<String> keys = dictionary.keys();
- while (keys.hasMoreElements()) {
- String key = keys.nextElement();
- Object value = dictionary.get(key);
- dictionaryMap.put(key, value);
- }
- for (Map.Entry<String, Object> dictEntry : dictionaryMap.entrySet()) {
- Object configuredValue = config.getOrDefault(dictEntry.getKey(), dictEntry.getValue().getClass(), null);
- if (configuredValue != null) {
- if(configuredValue.equals(dictEntry.getValue())){
- continue;
- }
- switch (opMode) {
- case EXTEND:
- break;
- case OVERRIDE:
- LOG.info(() -> "Setting key " + dictEntry.getKey() + " to " + configuredValue);
- ConfigHistory.propertySet(pid,dictEntry.getKey(), configuredValue, dictEntry.getValue());
- dictionary.put(dictEntry.getKey(), configuredValue);
- break;
- case UPDATE_ONLY:
- LOG.info(() -> "Setting key " + dictEntry.getKey() + " to " + configuredValue);
- ConfigHistory.propertySet(pid,dictEntry.getKey(), configuredValue, dictEntry.getValue());
- dictionary.put(dictEntry.getKey(), configuredValue);
- }
- }
- }
- for (Map.Entry<String, String> configEntry : config.getProperties().entrySet()) {
- Object dictValue = dictionary.get(configEntry.getKey());
- if(dictValue!=null && dictValue.equals(configEntry.getValue())){
- continue;
- }
- switch (opMode) {
- case EXTEND:
- if(dictValue==null){
- LOG.info(() -> "Setting key " + configEntry.getKey() + " to " + configEntry.getValue());
- ConfigHistory.propertySet(pid,configEntry.getKey(), configEntry.getValue(), null);
- dictionary.put(configEntry.getKey(), configEntry.getValue());
- }
- break;
- case OVERRIDE:
- LOG.info(() -> "Setting key " + configEntry.getKey() + " to " + configEntry.getValue());
- ConfigHistory.propertySet(pid,configEntry.getKey(), configEntry.getValue(), null);
- dictionary.put(configEntry.getKey(), configEntry.getValue());
- break;
- case UPDATE_ONLY:
- if(dictValue!=null){
- LOG.info(() -> "Setting key " + configEntry.getKey() + " to " + configEntry.getValue());
- ConfigHistory.propertySet(pid,configEntry.getKey(), configEntry.getValue(), dictValue);
- dictionary.put(configEntry.getKey(), configEntry.getValue());
- }
- break;
- }
- }
- }
-
- public org.apache.tamaya.Configuration getTamayaConfiguration(String root) {
- if (root != null) {
- return ConfigurationProvider.getConfiguration()
- .with(ConfigurationFunctions.section(root, true));
- }
- return null;
- }
-
- public void restoreBackup(String pid, Dictionary<String, Object> config)throws IOException{
- Configuration osgiConfig = cm.getConfiguration(pid);
- if(osgiConfig!=null){
- config.put(TamayaConfigPlugin.TAMAYA_ENABLED_PROP, "false");
- osgiConfig.update(Objects.requireNonNull(config));
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java
----------------------------------------------------------------------
diff --git a/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java b/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java
deleted file mode 100644
index dc41787..0000000
--- a/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.osgi;
-
-import java.io.*;
-import java.util.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * Class storing the history of changers done to the OSGI configuration by Tamaya.
- * This class can be used in the future to restore the previous state, if needed.
- */
-public final class ConfigHistory implements Serializable{
-
- private static final long serialVersionUID = 1L;
- private static final Logger LOG = Logger.getLogger(ConfigHistory.class.getName());
- /** The key of the plugin OSGI configuration, where the history is stored/retrieved. */
- private static final String HISTORY_KEY = "tamaya.history";
-
- public enum TaskType{
- PROPERTY,
- BEGIN,
- END,
- }
- /** The max number of changes tracked. */
- private static int maxHistory = 10000;
- /** The overall history. */
- private static List<ConfigHistory> history = new LinkedList<ConfigHistory>();
-
- /** The entry timestamp. */
- private long timestamp = System.currentTimeMillis();
- /** The entry type. */
- private TaskType type;
- /** The previous value. */
- private Object previousValue;
- /** The current value. */
- private Object value;
- /** The key. */
- private String key;
- /** The target PID. */
- private String pid;
-
- private ConfigHistory(TaskType taskType, String pid){
- this.type = Objects.requireNonNull(taskType);
- this.pid = Objects.requireNonNull(pid);
- }
-
- /**
- * Creates and registers an entry when starting to configure a bundle.
- * @param pid the PID
- * @param info any info.
- * @return the entry, never null.
- */
- public static ConfigHistory configuring(String pid, String info){
- ConfigHistory h = new ConfigHistory(TaskType.BEGIN, pid)
- .setValue(info);
- synchronized (history){
- history.add(h);
- checkHistorySize();
- }
- return h;
- }
-
- /**
- * Creates and registers an entry when finished to configure a bundle.
- * @param pid the PID
- * @param info any info.
- * @return the entry, never null.
- */
- public static ConfigHistory configured(String pid, String info){
- ConfigHistory h = new ConfigHistory(TaskType.END, pid)
- .setValue(info);
- synchronized (history){
- history.add(h);
- checkHistorySize();
- }
- return h;
- }
-
- /**
- * Creates and registers an entry when a property has been changed.
- * @param pid the PID
- * @param key the key, not null.
- * @param previousValue the previous value.
- * @param value the new value.
- * @return the entry, never null.
- */
- public static ConfigHistory propertySet(String pid, String key, Object value, Object previousValue){
- ConfigHistory h = new ConfigHistory(TaskType.PROPERTY, pid)
- .setKey(key)
- .setPreviousValue(previousValue)
- .setValue(value);
- synchronized (history){
- history.add(h);
- checkHistorySize();
- }
- return h;
- }
-
- /**
- * Sets the maximum history size.
- * @param maxHistory the size
- */
- static void setMaxHistory(int maxHistory){
- ConfigHistory.maxHistory = maxHistory;
- }
-
- /**
- * Get the max history size.
- * @return the max size
- */
- static int getMaxHistory(){
- return maxHistory;
- }
-
- /**
- * Access the current history.
- * @return the current history, never null.
- */
- static List<ConfigHistory> getHistory(){
- return getHistory(null);
- }
-
- /**
- * Clears the history.
- */
- static void clearHistory(){
- clearHistory(null);
- }
-
- /**
- * Clears the history for a PID.
- * @param pid the pid, null clears the full history.
- */
- static void clearHistory(String pid){
- synchronized (history){
- if("*".equals(pid)) {
- history.clear();
- }else{
- history.removeAll(getHistory(pid));
- }
- }
- }
-
- /**
- * Get the history for a PID.
- * @param pid the pid, null returns the full history.
- * @return
- */
- public static List<ConfigHistory> getHistory(String pid) {
- if(pid==null || pid.isEmpty()){
- return new ArrayList<>(history);
- }
- synchronized (history) {
- List<ConfigHistory> result = new ArrayList<>();
- for (ConfigHistory h : history) {
- if (h.getPid().startsWith(pid)) {
- result.add(h);
- }
- }
- return result;
- }
- }
-
- public TaskType getType(){
- return type;
- }
-
- public String getPid() {
- return pid;
- }
-
- public Object getPreviousValue() {
- return previousValue;
- }
-
- public ConfigHistory setPreviousValue(Object previousValue) {
- this.previousValue = previousValue;
- return this;
- }
-
- public Object getValue() {
- return value;
- }
-
- public ConfigHistory setValue(Object value) {
- this.value = value;
- return this;
- }
-
- public String getKey() {
- return key;
- }
-
- public ConfigHistory setKey(String key) {
- this.key = key;
- return this;
- }
-
- @Override
- public String toString() {
- return "ConfigHistory{" +
- "timestamp=" + timestamp +
- ", previousValue=" + previousValue +
- ", value=" + value +
- ", key='" + key + '\'' +
- '}';
- }
-
-
- /**
- * This methd saves the (serialized) history in the plugin's OSGI configuration using
- * the HISTORY_KEY key.
- * @param osgiConfig the plugin config, not null.
- */
- static void save(Dictionary<String,Object> osgiConfig){
- try {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(bos);
- oos.writeObject(history);
- oos.flush();
- osgiConfig.put(HISTORY_KEY, Base64.getEncoder().encodeToString(bos.toByteArray()));
- } catch (Exception e) {
- LOG.log(Level.WARNING, "Failed to store getConfig change history.", e);
- }
- }
-
- /**
- * Restores the history from the plugin's OSGI configuration.
- * @param osgiConfig
- */
- static void restore(Dictionary<String,Object> osgiConfig){
- try{
- String serialized = (String)osgiConfig.get(HISTORY_KEY);
- if(serialized!=null) {
- ByteArrayInputStream bis = new ByteArrayInputStream(Base64.getDecoder().decode(serialized));
- ObjectInputStream ois = new ObjectInputStream(bis);
- ConfigHistory.history = (List<ConfigHistory>) ois.readObject();
- ois.close();
- }
- } catch (Exception e) {
- LOG.log(Level.WARNING, "Failed to store getConfig change history.", e);
- }
- }
-
- private static void checkHistorySize(){
- while(history.size() > maxHistory){
- history.remove(0);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/eeab5ce0/osgi/common/src/main/java/org/apache/tamaya/osgi/Policy.java
----------------------------------------------------------------------
diff --git a/osgi/common/src/main/java/org/apache/tamaya/osgi/Policy.java b/osgi/common/src/main/java/org/apache/tamaya/osgi/Policy.java
deleted file mode 100644
index f19c2d1..0000000
--- a/osgi/common/src/main/java/org/apache/tamaya/osgi/Policy.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tamaya.osgi;
-
-/**
- * Operation mode applied to the getConfig read.
- */
-public enum Policy {
- /** Only add properties not existing in the getConfig. */
- EXTEND,
- /** Override existing properties and add new properties. */
- OVERRIDE,
- /** Override existing properties only. */
- UPDATE_ONLY
-}
\ No newline at end of file