You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2014/08/14 11:51:47 UTC

svn commit: r1617905 - in /tomee/tomee/trunk/examples/simple-singleton: ./ src/main/java/org/superbiz/registry/ src/test/java/org/superbiz/registry/

Author: andygumbrecht
Date: Thu Aug 14 09:51:47 2014
New Revision: 1617905

URL: http://svn.apache.org/r1617905
Log:
Format & doc fix

Modified:
    tomee/tomee/trunk/examples/simple-singleton/README.md
    tomee/tomee/trunk/examples/simple-singleton/src/main/java/org/superbiz/registry/ComponentRegistry.java
    tomee/tomee/trunk/examples/simple-singleton/src/main/java/org/superbiz/registry/PropertyRegistry.java
    tomee/tomee/trunk/examples/simple-singleton/src/test/java/org/superbiz/registry/ComponentRegistryTest.java
    tomee/tomee/trunk/examples/simple-singleton/src/test/java/org/superbiz/registry/PropertiesRegistryTest.java

Modified: tomee/tomee/trunk/examples/simple-singleton/README.md
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/simple-singleton/README.md?rev=1617905&r1=1617904&r2=1617905&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/simple-singleton/README.md (original)
+++ tomee/tomee/trunk/examples/simple-singleton/README.md Thu Aug 14 09:51:47 2014
@@ -13,110 +13,90 @@ See the [Singleton Beans](../../singleto
 Here we see a bean that uses the Bean-Managed Concurrency option as well as the @Startup annotation which causes the bean to be instantiated by the container when the application starts. Singleton beans with @ConcurrencyManagement(BEAN) are responsible for their own thread-safety. The bean shown is a simple properties "registry" and provides a place where options could be set and retrieved by all beans in the application.
 
     package org.superbiz.registry;
-
+    
     import javax.annotation.PostConstruct;
     import javax.annotation.PreDestroy;
     import javax.ejb.ConcurrencyManagement;
     import javax.ejb.Singleton;
     import javax.ejb.Startup;
     import java.util.Properties;
-
+    
     import static javax.ejb.ConcurrencyManagementType.BEAN;
-
+    
     @Singleton
     @Startup
     @ConcurrencyManagement(BEAN)
     public class PropertyRegistry {
-
+    
         // Note the java.util.Properties object is a thread-safe
         // collections that uses synchronization.  If it didn't
         // you would have to use some form of synchronization
         // to ensure the PropertyRegistryBean is thread-safe.
         private final Properties properties = new Properties();
-
+    
         // The @Startup annotation ensures that this method is
         // called when the application starts up.
         @PostConstruct
         public void applicationStartup() {
             properties.putAll(System.getProperties());
         }
-
+    
         @PreDestroy
         public void applicationShutdown() {
             properties.clear();
         }
-
-        public String getProperty(String key) {
+    
+        public String getProperty(final String key) {
             return properties.getProperty(key);
         }
-
-        public String setProperty(String key, String value) {
+    
+        public String setProperty(final String key, final String value) {
             return (String) properties.setProperty(key, value);
         }
-
-        public String removeProperty(String key) {
+    
+        public String removeProperty(final String key) {
             return (String) properties.remove(key);
         }
     }
 
-
 ## ComponentRegistry  <small>Container-Managed Concurrency</small>
 
 Here we see a bean that uses the Container-Managed Concurrency option, the default. With @ConcurrencyManagement(CONTAINER) the container controls whether multi-threaded access should be allowed to the bean (`@Lock(READ)`) or if single-threaded access should be enforced (`@Lock(WRITE)`).
 
     package org.superbiz.registry;
-
-    import org.junit.Assert;
-    import org.junit.AfterClass;
-    import org.junit.Test;
-
-    import javax.ejb.embeddable.EJBContainer;
-    import javax.naming.Context;
-    import java.net.URI;
+    
+    import javax.ejb.Lock;
+    import javax.ejb.Singleton;
+    import java.util.ArrayList;
     import java.util.Collection;
-    import java.util.Date;
-
-    public class ComponentRegistryTest {
-
-        private final static EJBContainer ejbContainer = EJBContainer.createEJBContainer();
-
-        @Test
-        public void oneInstancePerMultipleReferences() throws Exception {
-
-            final Context context = ejbContainer.getContext();
-
-            // Both references below will point to the exact same instance
-            ComponentRegistry one = (ComponentRegistry) context.lookup("java:global/simple-singleton/ComponentRegistry");
-            ComponentRegistry two = (ComponentRegistry) context.lookup("java:global/simple-singleton/ComponentRegistry");
-
-            URI expectedUri = new URI("foo://bar/baz");
-            one.setComponent(URI.class, expectedUri);
-            URI actualUri = two.getComponent(URI.class);
-            Assert.assertSame(expectedUri, actualUri);
-
-            two.removeComponent(URI.class);
-            URI uri = one.getComponent(URI.class);
-            Assert.assertNull(uri);
-
-            Date expectedDate = new Date();
-            two.setComponent(Date.class, expectedDate);
-            Date actualDate = one.getComponent(Date.class);
-            Assert.assertSame(expectedDate, actualDate);
-
-            one.removeComponent(URI.class);
-            uri = two.getComponent(URI.class);
-            Assert.assertNull(uri);
-
-            Collection<?> collection = one.getComponents();
-            Assert.assertTrue("Reference 'one' - ComponentRegistry is empty",collection.isEmpty());
-
-            collection = two.getComponents();
-            Assert.assertTrue("Reference 'two' - ComponentRegistry is empty",collection.isEmpty());
-        }
-
-        @AfterClass
-        public static void closeEjbContainer() {
-            ejbContainer.close();
+    import java.util.HashMap;
+    import java.util.Map;
+    
+    import static javax.ejb.LockType.READ;
+    import static javax.ejb.LockType.WRITE;
+    
+    @Singleton
+    @Lock(READ)
+    public class ComponentRegistry {
+    
+        private final Map<Class, Object> components = new HashMap<Class, Object>();
+    
+        public <T> T getComponent(final Class<T> type) {
+            return (T) components.get(type);
+        }
+    
+        public Collection<?> getComponents() {
+            return new ArrayList(components.values());
+        }
+    
+        @Lock(WRITE)
+        public <T> T setComponent(final Class<T> type, final T value) {
+            return (T) components.put(type, value);
+        }
+    
+        @Lock(WRITE)
+        public <T> T removeComponent(final Class<T> type) {
+            return (T) components.remove(type);
         }
     }
 
@@ -140,55 +120,56 @@ See the [Singleton Beans](../../singleto
 ## ComponentRegistryTest
 
     package org.superbiz.registry;
-
-    import org.junit.Assert;
+    
     import org.junit.AfterClass;
+    import org.junit.Assert;
     import org.junit.Test;
-
+    
     import javax.ejb.embeddable.EJBContainer;
     import javax.naming.Context;
     import java.net.URI;
     import java.util.Collection;
     import java.util.Date;
-
+    
     public class ComponentRegistryTest {
-
+    
         private final static EJBContainer ejbContainer = EJBContainer.createEJBContainer();
-
+    
         @Test
         public void oneInstancePerMultipleReferences() throws Exception {
-
+    
             final Context context = ejbContainer.getContext();
-
+    
             // Both references below will point to the exact same instance
-            ComponentRegistry one = (ComponentRegistry) context.lookup("java:global/simple-singleton/ComponentRegistry");
-            ComponentRegistry two = (ComponentRegistry) context.lookup("java:global/simple-singleton/ComponentRegistry");
-
-            URI expectedUri = new URI("foo://bar/baz");
+            final ComponentRegistry one = (ComponentRegistry) context.lookup("java:global/simple-singleton/ComponentRegistry");
+            final ComponentRegistry two = (ComponentRegistry) context.lookup("java:global/simple-singleton/ComponentRegistry");
+    
+            final URI expectedUri = new URI("foo://bar/baz");
             one.setComponent(URI.class, expectedUri);
-            URI actualUri = two.getComponent(URI.class);
+            final URI actualUri = two.getComponent(URI.class);
             Assert.assertSame(expectedUri, actualUri);
-
+    
             two.removeComponent(URI.class);
             URI uri = one.getComponent(URI.class);
             Assert.assertNull(uri);
-
-            Date expectedDate = new Date();
-            two.setComponent(Date.class, expectedDate);
-            Date actualDate = one.getComponent(Date.class);
-            Assert.assertSame(expectedDate, actualDate);
-
+    
             one.removeComponent(URI.class);
             uri = two.getComponent(URI.class);
             Assert.assertNull(uri);
-
+    
+            final Date expectedDate = new Date();
+            two.setComponent(Date.class, expectedDate);
+            final Date actualDate = one.getComponent(Date.class);
+            Assert.assertSame(expectedDate, actualDate);
+    
             Collection<?> collection = one.getComponents();
-            Assert.assertTrue("Reference 'one' - ComponentRegistry is empty",collection.isEmpty());
-
+            System.out.println(collection);
+            Assert.assertEquals("Reference 'one' - ComponentRegistry contains one record", collection.size(), 1);
+    
             collection = two.getComponents();
-            Assert.assertTrue("Reference 'two' - ComponentRegistry is empty",collection.isEmpty());
+            Assert.assertEquals("Reference 'two' - ComponentRegistry contains one record", collection.size(), 1);
         }
-
+    
         @AfterClass
         public static void closeEjbContainer() {
             ejbContainer.close();
@@ -198,49 +179,50 @@ See the [Singleton Beans](../../singleto
 ## PropertiesRegistryTest
 
     package org.superbiz.registry;
-
-    import org.junit.Assert;
+    
     import org.junit.AfterClass;
+    import org.junit.Assert;
     import org.junit.Test;
-
+    
     import javax.ejb.embeddable.EJBContainer;
     import javax.naming.Context;
-
+    
     public class PropertiesRegistryTest {
-
+    
         private final static EJBContainer ejbContainer = EJBContainer.createEJBContainer();
-
+    
         @Test
         public void oneInstancePerMultipleReferences() throws Exception {
-
-            Context context = ejbContainer.getContext();
-
-            PropertyRegistry one = (PropertyRegistry) context.lookup("java:global/simple-singleton/PropertyRegistry");
-            PropertyRegistry two = (PropertyRegistry) context.lookup("java:global/simple-singleton/PropertyRegistry");
-
+    
+            final Context context = ejbContainer.getContext();
+    
+            final PropertyRegistry one = (PropertyRegistry) context.lookup("java:global/simple-singleton/PropertyRegistry");
+            final PropertyRegistry two = (PropertyRegistry) context.lookup("java:global/simple-singleton/PropertyRegistry");
+    
             one.setProperty("url", "http://superbiz.org");
             String url = two.getProperty("url");
             Assert.assertSame("http://superbiz.org", url);
-
+    
             two.removeProperty("url");
             url = one.getProperty("url");
             Assert.assertNull(url);
-
+    
             two.setProperty("version", "1.0.5");
             String version = one.getProperty("version");
             Assert.assertSame("1.0.5", version);
-
+    
             one.removeProperty("version");
             version = two.getProperty("version");
             Assert.assertNull(version);
         }
-
+    
         @AfterClass
         public static void closeEjbContainer() {
             ejbContainer.close();
         }
     }
 
+
 #Running
 
 Running the example is fairly simple. In the "simple-singleton" directory run:

Modified: tomee/tomee/trunk/examples/simple-singleton/src/main/java/org/superbiz/registry/ComponentRegistry.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/simple-singleton/src/main/java/org/superbiz/registry/ComponentRegistry.java?rev=1617905&r1=1617904&r2=1617905&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/simple-singleton/src/main/java/org/superbiz/registry/ComponentRegistry.java (original)
+++ tomee/tomee/trunk/examples/simple-singleton/src/main/java/org/superbiz/registry/ComponentRegistry.java Thu Aug 14 09:51:47 2014
@@ -32,7 +32,7 @@ public class ComponentRegistry {
 
     private final Map<Class, Object> components = new HashMap<Class, Object>();
 
-    public <T> T getComponent(Class<T> type) {
+    public <T> T getComponent(final Class<T> type) {
         return (T) components.get(type);
     }
 
@@ -41,12 +41,12 @@ public class ComponentRegistry {
     }
 
     @Lock(WRITE)
-    public <T> T setComponent(Class<T> type, T value) {
+    public <T> T setComponent(final Class<T> type, final T value) {
         return (T) components.put(type, value);
     }
 
     @Lock(WRITE)
-    public <T> T removeComponent(Class<T> type) {
+    public <T> T removeComponent(final Class<T> type) {
         return (T) components.remove(type);
     }
 }

Modified: tomee/tomee/trunk/examples/simple-singleton/src/main/java/org/superbiz/registry/PropertyRegistry.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/simple-singleton/src/main/java/org/superbiz/registry/PropertyRegistry.java?rev=1617905&r1=1617904&r2=1617905&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/simple-singleton/src/main/java/org/superbiz/registry/PropertyRegistry.java (original)
+++ tomee/tomee/trunk/examples/simple-singleton/src/main/java/org/superbiz/registry/PropertyRegistry.java Thu Aug 14 09:51:47 2014
@@ -48,15 +48,15 @@ public class PropertyRegistry {
         properties.clear();
     }
 
-    public String getProperty(String key) {
+    public String getProperty(final String key) {
         return properties.getProperty(key);
     }
 
-    public String setProperty(String key, String value) {
+    public String setProperty(final String key, final String value) {
         return (String) properties.setProperty(key, value);
     }
 
-    public String removeProperty(String key) {
+    public String removeProperty(final String key) {
         return (String) properties.remove(key);
     }
 }

Modified: tomee/tomee/trunk/examples/simple-singleton/src/test/java/org/superbiz/registry/ComponentRegistryTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/simple-singleton/src/test/java/org/superbiz/registry/ComponentRegistryTest.java?rev=1617905&r1=1617904&r2=1617905&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/simple-singleton/src/test/java/org/superbiz/registry/ComponentRegistryTest.java (original)
+++ tomee/tomee/trunk/examples/simple-singleton/src/test/java/org/superbiz/registry/ComponentRegistryTest.java Thu Aug 14 09:51:47 2014
@@ -36,12 +36,12 @@ public class ComponentRegistryTest {
         final Context context = ejbContainer.getContext();
 
         // Both references below will point to the exact same instance
-        ComponentRegistry one = (ComponentRegistry) context.lookup("java:global/simple-singleton/ComponentRegistry");
-        ComponentRegistry two = (ComponentRegistry) context.lookup("java:global/simple-singleton/ComponentRegistry");
+        final ComponentRegistry one = (ComponentRegistry) context.lookup("java:global/simple-singleton/ComponentRegistry");
+        final ComponentRegistry two = (ComponentRegistry) context.lookup("java:global/simple-singleton/ComponentRegistry");
 
-        URI expectedUri = new URI("foo://bar/baz");
+        final URI expectedUri = new URI("foo://bar/baz");
         one.setComponent(URI.class, expectedUri);
-        URI actualUri = two.getComponent(URI.class);
+        final URI actualUri = two.getComponent(URI.class);
         Assert.assertSame(expectedUri, actualUri);
 
         two.removeComponent(URI.class);
@@ -52,9 +52,9 @@ public class ComponentRegistryTest {
         uri = two.getComponent(URI.class);
         Assert.assertNull(uri);
 
-        Date expectedDate = new Date();
+        final Date expectedDate = new Date();
         two.setComponent(Date.class, expectedDate);
-        Date actualDate = one.getComponent(Date.class);
+        final Date actualDate = one.getComponent(Date.class);
         Assert.assertSame(expectedDate, actualDate);
 
         Collection<?> collection = one.getComponents();

Modified: tomee/tomee/trunk/examples/simple-singleton/src/test/java/org/superbiz/registry/PropertiesRegistryTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/examples/simple-singleton/src/test/java/org/superbiz/registry/PropertiesRegistryTest.java?rev=1617905&r1=1617904&r2=1617905&view=diff
==============================================================================
--- tomee/tomee/trunk/examples/simple-singleton/src/test/java/org/superbiz/registry/PropertiesRegistryTest.java (original)
+++ tomee/tomee/trunk/examples/simple-singleton/src/test/java/org/superbiz/registry/PropertiesRegistryTest.java Thu Aug 14 09:51:47 2014
@@ -30,10 +30,10 @@ public class PropertiesRegistryTest {
     @Test
     public void oneInstancePerMultipleReferences() throws Exception {
 
-        Context context = ejbContainer.getContext();
+        final Context context = ejbContainer.getContext();
 
-        PropertyRegistry one = (PropertyRegistry) context.lookup("java:global/simple-singleton/PropertyRegistry");
-        PropertyRegistry two = (PropertyRegistry) context.lookup("java:global/simple-singleton/PropertyRegistry");
+        final PropertyRegistry one = (PropertyRegistry) context.lookup("java:global/simple-singleton/PropertyRegistry");
+        final PropertyRegistry two = (PropertyRegistry) context.lookup("java:global/simple-singleton/PropertyRegistry");
 
         one.setProperty("url", "http://superbiz.org");
         String url = two.getProperty("url");