TAMAYA-150 Added UI module and related functionality.

Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/commit/1e06c3c9
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/1e06c3c9
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/1e06c3c9

Branch: refs/heads/master
Commit: 1e06c3c99107141f1013fb82bca4d4aa20b8e9f1
Parents: 8806019
Author: anatole <anat...@apache.org>
Authored: Tue Apr 19 13:52:19 2016 +0200
Committer: anatole <anat...@apache.org>
Committed: Tue Apr 19 13:53:44 2016 +0200

----------------------------------------------------------------------
 .../org/apache/tamaya/events/ui/EventView.java  |  15 ++-
 .../events/delta/ConfigurationChangeTest.java   |   8 +-
 mutable-config/pom.xml                          |  15 ++-
 .../mutableconfig/ui/ConfigUpdaterView.java     | 107 +++++++++++++++++++
 .../services/org.apache.tamaya.ui.ViewProvider  |  19 ++++
 5 files changed, 153 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1e06c3c9/events/src/main/java/org/apache/tamaya/events/ui/EventView.java
----------------------------------------------------------------------
diff --git a/events/src/main/java/org/apache/tamaya/events/ui/EventView.java 
b/events/src/main/java/org/apache/tamaya/events/ui/EventView.java
index 56e4b35..bee6e7b 100644
--- a/events/src/main/java/org/apache/tamaya/events/ui/EventView.java
+++ b/events/src/main/java/org/apache/tamaya/events/ui/EventView.java
@@ -23,7 +23,13 @@ import com.vaadin.data.Property;
 import com.vaadin.navigator.View;
 import com.vaadin.navigator.ViewChangeListener;
 import com.vaadin.shared.ui.label.ContentMode;
-import com.vaadin.ui.*;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.CheckBox;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.Notification;
+import com.vaadin.ui.Table;
+import com.vaadin.ui.TextField;
 import org.apache.tamaya.events.ConfigEvent;
 import org.apache.tamaya.events.ConfigEventListener;
 import org.apache.tamaya.events.ConfigEventManager;
@@ -36,9 +42,14 @@ import org.apache.tamaya.ui.services.MessageProvider;
 import javax.annotation.Priority;
 import java.util.Date;
 
-
+/**
+ * Tamaya View for observing the current event stream.
+ */
 public class EventView extends VerticalSpacedLayout implements View {
 
+    /**
+     * Provider used to register the view.
+     */
     @Priority(20)
     public static final class Provider implements ViewProvider{
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1e06c3c9/events/src/test/java/org/apache/tamaya/events/delta/ConfigurationChangeTest.java
----------------------------------------------------------------------
diff --git 
a/events/src/test/java/org/apache/tamaya/events/delta/ConfigurationChangeTest.java
 
b/events/src/test/java/org/apache/tamaya/events/delta/ConfigurationChangeTest.java
index 95269e2..b20ebef 100644
--- 
a/events/src/test/java/org/apache/tamaya/events/delta/ConfigurationChangeTest.java
+++ 
b/events/src/test/java/org/apache/tamaya/events/delta/ConfigurationChangeTest.java
@@ -45,9 +45,15 @@ public class ConfigurationChangeTest {
         Configuration config = ConfigurationProvider.getConfiguration();
         ConfigurationChange change = 
ConfigurationChangeBuilder.of(config).build();
         assertNotNull(change);
-        assertTrue(change.isEmpty());
+        assertTrue(change.getUpdatedSize()==0);
+        assertTrue(change.getAddedSize()==0);
+        assertTrue(change.getRemovedSize()==0);
+        assertTrue(change.getChanges().size()==0);
         for (Map.Entry<String, String> en : config.getProperties().entrySet()) 
{
             if (!"[meta]frozenAt".equals(en.getKey())) {
+                if(en.getKey().contains("random.new")){ // dynamic generated 
value!
+                    continue;
+                }
                 assertEquals("Error for " + en.getKey(), en.getValue(), 
change.getResource().get(en.getKey()));
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1e06c3c9/mutable-config/pom.xml
----------------------------------------------------------------------
diff --git a/mutable-config/pom.xml b/mutable-config/pom.xml
index 0ddd7bf..cf06546 100644
--- a/mutable-config/pom.xml
+++ b/mutable-config/pom.xml
@@ -41,24 +41,23 @@ under the License.
             <groupId>org.apache.tamaya</groupId>
             <artifactId>tamaya-api</artifactId>
             <version>${project.version}</version>
-            <scope>provided</scope>
-            <optional>true</optional>
         </dependency>
         <dependency>
             <groupId>org.apache.tamaya.ext</groupId>
             <artifactId>tamaya-spisupport</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <!--<dependency>-->
-        <!--<groupId>org.apache.tamaya.ext</groupId>-->
-        <!--<artifactId>tamaya-events</artifactId>-->
-        <!--<version>${project.version}</version>-->
-        <!--</dependency>-->
+        <dependency>
+            <groupId>org.apache.tamaya.ext</groupId>
+            <artifactId>tamaya-ui</artifactId>
+            <version>${project.version}</version>
+            <optional>true</optional>
+        </dependency>
         <dependency>
             <groupId>org.apache.tamaya</groupId>
             <artifactId>tamaya-core</artifactId>
             <version>${project.version}</version>
-            <scope>test</scope>
+            <scope>runtime</scope>
         </dependency>
 
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1e06c3c9/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/ui/ConfigUpdaterView.java
----------------------------------------------------------------------
diff --git 
a/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/ui/ConfigUpdaterView.java
 
b/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/ui/ConfigUpdaterView.java
new file mode 100644
index 0000000..7a4956c
--- /dev/null
+++ 
b/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/ui/ConfigUpdaterView.java
@@ -0,0 +1,107 @@
+/*
+ * 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.mutableconfig.ui;
+
+import com.vaadin.navigator.View;
+import com.vaadin.navigator.ViewChangeListener;
+import com.vaadin.shared.ui.label.ContentMode;
+import com.vaadin.ui.ComboBox;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.TextArea;
+import com.vaadin.ui.TextField;
+import org.apache.tamaya.mutableconfig.MutableConfigurationProvider;
+import org.apache.tamaya.spi.ServiceContextManager;
+import org.apache.tamaya.ui.UIConstants;
+import org.apache.tamaya.ui.ViewProvider;
+import org.apache.tamaya.ui.components.VerticalSpacedLayout;
+import org.apache.tamaya.ui.services.MessageProvider;
+
+import javax.annotation.Priority;
+import java.util.Arrays;
+
+/**
+ * Tamaya UI view to change configuration.
+ */
+public class ConfigUpdaterView extends VerticalSpacedLayout implements View {
+
+    /**
+     * Provider to register the view.
+     */
+    @Priority(20)
+    public static final class Provider implements ViewProvider{
+
+        @Override
+        public ViewLifecycle getLifecycle() {
+            return ViewLifecycle.LAZY;
+        }
+
+        @Override
+        public String getUrlPattern() {
+            return "/edit";
+        }
+
+        @Override
+        public String getDisplayName() {
+            return "view.update.name";
+        }
+
+        @Override
+        public View createView(){
+            return new ConfigUpdaterView();
+        }
+    }
+
+    private ComboBox changePropagationPolicy = new 
ComboBox("view.update.select.propagationPolicy",
+            Arrays.asList(new String[]{"ALL", "MOST_SIGNIFICANT_ONLY", 
"SELECTIVE", "NONE"}));
+
+    private TextField changePropagationPolicyOther = new 
TextField("view.update.text.propagationPolicyOther",
+            
MutableConfigurationProvider.getApplyAllChangePolicy().getClass().getName());
+
+    private TextArea generalInfo = new 
TextArea(ServiceContextManager.getServiceContext()
+            
.getService(MessageProvider.class).getMessage("view.update.textArea.general"));
+
+
+
+    public ConfigUpdaterView() {
+        Label caption = new Label(ServiceContextManager.getServiceContext()
+                
.getService(MessageProvider.class).getMessage("view.update.name"));
+        Label description = new Label(ServiceContextManager.getServiceContext()
+                
.getService(MessageProvider.class).getMessage("view.update.description"),
+                ContentMode.HTML);
+
+        caption.addStyleName(UIConstants.LABEL_HUGE);
+        description.addStyleName(UIConstants.LABEL_LARGE);
+        addComponents(caption, 
description,changePropagationPolicy,changePropagationPolicyOther,generalInfo);
+    }
+
+
+    private String getCaption(String key, String value) {
+        int index = key.lastIndexOf('.');
+        if(index<0){
+            return key + " = " + value;
+        }else{
+            return key.substring(index+1) + " = " + value;
+        }
+    }
+
+    @Override
+    public void enter(ViewChangeListener.ViewChangeEvent event) {
+
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1e06c3c9/mutable-config/src/main/resources/META-INF/services/org.apache.tamaya.ui.ViewProvider
----------------------------------------------------------------------
diff --git 
a/mutable-config/src/main/resources/META-INF/services/org.apache.tamaya.ui.ViewProvider
 
b/mutable-config/src/main/resources/META-INF/services/org.apache.tamaya.ui.ViewProvider
new file mode 100644
index 0000000..d2ac687
--- /dev/null
+++ 
b/mutable-config/src/main/resources/META-INF/services/org.apache.tamaya.ui.ViewProvider
@@ -0,0 +1,19 @@
+#
+# 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.
+#
+org.apache.tamaya.mutableconfig.ui.ConfigUpdaterView$Provider
\ No newline at end of file

Reply via email to