You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by ms...@apache.org on 2016/04/14 14:29:00 UTC

[20/50] [abbrv] portals-pluto git commit: Added unit tests for async configuration code.

Added unit tests for async configuration code.


Project: http://git-wip-us.apache.org/repos/asf/portals-pluto/repo
Commit: http://git-wip-us.apache.org/repos/asf/portals-pluto/commit/914a9683
Tree: http://git-wip-us.apache.org/repos/asf/portals-pluto/tree/914a9683
Diff: http://git-wip-us.apache.org/repos/asf/portals-pluto/diff/914a9683

Branch: refs/heads/master
Commit: 914a9683516f93a97a0642cc02e557a4c08898d6
Parents: e14ab86
Author: Scott Nicklous <ms...@apache.org>
Authored: Tue Mar 15 06:44:58 2016 +0100
Committer: Scott Nicklous <ms...@apache.org>
Committed: Tue Mar 15 06:44:58 2016 +0100

----------------------------------------------------------------------
 .../container/om/portlet/PortletDefinition.java |  3 ++
 .../om/portlet/impl/ConfigurationProcessor.java | 23 ++++++++++++++
 .../impl/JSR362ConfigurationProcessor.java      |  8 ++++-
 .../om/portlet/impl/PortletDefinitionImpl.java  | 19 ++++++++++-
 .../processor/fixtures/resource/Resource1.java  |  4 +--
 .../bean/processor/tests/ResourceTest.java      | 33 +++++++++++++++++---
 .../impl/fixtures/TestAnnotatedPortlet.java     |  3 +-
 .../fixtures/TestMultiAnnotatedPortlet.java     | 22 +++++++++++--
 .../impl/jsr362/MergePortletDefinitionTest.java |  6 ++++
 .../impl/jsr362/MultiAnnotatedPortletTest.java  | 24 +++++++++++---
 .../PortletDefinition362AnnotationTest.java     | 11 ++++---
 .../jsr362/PortletDefinition362ImplTest.java    | 22 ++++++++++---
 .../om/portlet/portlet362Generated.xml          |  1 +
 .../container/om/portlet/portlet362Merge.xml    |  1 +
 14 files changed, 156 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container-api/src/main/java/org/apache/pluto/container/om/portlet/PortletDefinition.java
----------------------------------------------------------------------
diff --git a/pluto-container-api/src/main/java/org/apache/pluto/container/om/portlet/PortletDefinition.java b/pluto-container-api/src/main/java/org/apache/pluto/container/om/portlet/PortletDefinition.java
index 225844c..6d896a4 100644
--- a/pluto-container-api/src/main/java/org/apache/pluto/container/om/portlet/PortletDefinition.java
+++ b/pluto-container-api/src/main/java/org/apache/pluto/container/om/portlet/PortletDefinition.java
@@ -86,4 +86,7 @@ public interface PortletDefinition {
    List<Dependency> getDependencies();
    Dependency getDependency(String name);
 
+   boolean isAsyncSupported();
+   void setAsyncSupported(boolean asyncSupported);
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/ConfigurationProcessor.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/ConfigurationProcessor.java b/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/ConfigurationProcessor.java
index 40e16f4..d8250c1 100644
--- a/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/ConfigurationProcessor.java
+++ b/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/ConfigurationProcessor.java
@@ -25,6 +25,7 @@ import javax.enterprise.inject.spi.BeanManager;
 import javax.portlet.Portlet;
 import javax.portlet.annotations.PortletApplication;
 import javax.portlet.annotations.PortletConfiguration;
+import javax.portlet.annotations.ServeResourceMethod;
 import javax.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilder;
@@ -391,11 +392,31 @@ public abstract class ConfigurationProcessor {
       
       for (String pn : portletNames) {
          
+         // copy data from the method store to the portlet definition
+         
          PortletDefinition pd = pad.getPortlet(pn);
          if (pd == null) {
             pd = new PortletDefinitionImpl(pn, pad);
          }
          
+         // if one of the @serveResourceMethod annotations has its ayncSupported
+         // flag set to true, set the flag to true in the portlet definition
+         
+         Set<MethodIdentifier> mis = ams.getMethodIDsForPortlet(pn);
+         for (MethodIdentifier mi : mis) {
+            if (mi.getType() == MethodType.RESOURCE) {
+               List<AnnotatedMethod> meths = ams.getMethods(mi);
+               for (AnnotatedMethod meth : meths) {
+                  ServeResourceMethod srm = (ServeResourceMethod) meth.getAnnotation();
+                  if (srm != null && srm.asyncSupported()) {
+                     pd.setAsyncSupported(true);
+                  }
+               }
+            }
+         }
+         
+         // The processing event references
+         
          List<EventDefinitionReference> edrs = pd.getSupportedProcessingEvents();
          for (QName qn : ams.getProcessingEventRefs(pn)) {
             EventDefinition ed = pad.getEventDefinition(qn);
@@ -418,6 +439,8 @@ public abstract class ConfigurationProcessor {
             }
          }
          
+         // The publishing event references
+         
          edrs = pd.getSupportedPublishingEvents();
          for (QName qn : ams.getPublishingEventRefs(pn)) {
             EventDefinition ed = pad.getEventDefinition(qn);

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/JSR362ConfigurationProcessor.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/JSR362ConfigurationProcessor.java b/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/JSR362ConfigurationProcessor.java
index 321b706..eae8230 100644
--- a/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/JSR362ConfigurationProcessor.java
+++ b/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/JSR362ConfigurationProcessor.java
@@ -867,6 +867,11 @@ public class JSR362ConfigurationProcessor extends JSR286ConfigurationProcessor {
             Dependency dep = new DependencyImpl(dt.getName().getValue(), dt.getMinVersion().getValue());
             pd.addDependency(dep);
          }
+         
+         // Async supported
+         if (portlet.isAsyncSupported() != null) {
+            pd.setAsyncSupported(portlet.isAsyncSupported());
+         }
 
          pad.addPortlet(pd);
 
@@ -1286,11 +1291,12 @@ public class JSR362ConfigurationProcessor extends JSR286ConfigurationProcessor {
             pd.addInitParam(plutoInitParam);
          }
 
-         // cache scope, expiration time, resource bundle
+         // cache scope, expiration time, resource bundle, async flag
 
          pd.setCacheScope(pc.cacheScopePublic() ? "public" : "private");
          pd.setExpirationCache(pc.cacheExpirationTime());
          pd.setResourceBundle(pc.resourceBundle());
+         pd.setAsyncSupported(pc.asyncSupported());
 
          // handle portlet info - title, short title, keywords
 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/PortletDefinitionImpl.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/PortletDefinitionImpl.java b/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/PortletDefinitionImpl.java
index c69f48f..e2fd37d 100644
--- a/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/PortletDefinitionImpl.java
+++ b/pluto-container/src/main/java/org/apache/pluto/container/om/portlet/impl/PortletDefinitionImpl.java
@@ -73,8 +73,8 @@ public class PortletDefinitionImpl implements PortletDefinition {
    private final List<InitParam> iparms = new ArrayList<InitParam>(); 
    private final List<SecurityRoleRef> secRefs = new ArrayList<SecurityRoleRef>(); 
    private final List<Supports> supps = new ArrayList<Supports>();
-   
    private final List<Dependency> dependencies = new ArrayList<Dependency>(); 
+   private boolean asyncSupported = false;
 
    /**
     * Copy constructor
@@ -126,6 +126,7 @@ public class PortletDefinitionImpl implements PortletDefinition {
       for (Dependency dep : pd.getDependencies()) {
          this.dependencies.add(dep);
       }
+      this.asyncSupported = pd.isAsyncSupported();
    }
    
    /**
@@ -596,6 +597,22 @@ public class PortletDefinitionImpl implements PortletDefinition {
       crtOptions.add(new ContainerRuntimeOptionImpl(cro));
    }
 
+   /**
+    * @return the asyncSupported
+    */
+   @Override
+   public boolean isAsyncSupported() {
+      return asyncSupported;
+   }
+
+   /**
+    * @param asyncSupported the asyncSupported to set
+    */
+   @Override
+   public void setAsyncSupported(boolean asyncSupported) {
+      this.asyncSupported = asyncSupported;
+   }
+
    /* (non-Javadoc)
     * @see java.lang.Object#hashCode()
     */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/resource/Resource1.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/resource/Resource1.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/resource/Resource1.java
index 69486d6..4d44be3 100644
--- a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/resource/Resource1.java
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/resource/Resource1.java
@@ -56,7 +56,7 @@ public class Resource1 {
       meths.addMethod(this.getClass().getSimpleName() + "#resource2a");
    }
    
-   @ServeResourceMethod(portletNames="portlet2", resourceID="edit")
+   @ServeResourceMethod(portletNames="portlet2", resourceID="edit", asyncSupported=false)
    public void resource2b(ResourceRequest req, ResourceResponse resp) {
       meths.addMethod(this.getClass().getSimpleName() + "#resource2b");
    }
@@ -71,7 +71,7 @@ public class Resource1 {
       meths.addMethod(this.getClass().getSimpleName() + "#resource3a");
    }
    
-   @ServeResourceMethod(portletNames="portlet3", ordinal=300)
+   @ServeResourceMethod(portletNames="portlet3", ordinal=300, asyncSupported=true)
    public void resource3b() {
       meths.addMethod(this.getClass().getSimpleName() + "#resource3b");
    }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/tests/ResourceTest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/tests/ResourceTest.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/tests/ResourceTest.java
index e5724e1..8ff1be4 100644
--- a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/tests/ResourceTest.java
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/tests/ResourceTest.java
@@ -19,10 +19,7 @@
 package org.apache.pluto.container.bean.processor.tests;
 
 import static org.apache.pluto.container.bean.processor.MethodType.RESOURCE;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -41,6 +38,9 @@ import org.apache.pluto.container.bean.processor.MethodIdentifier;
 import org.apache.pluto.container.bean.processor.PortletCDIExtension;
 import org.apache.pluto.container.bean.processor.fixtures.resource.Resource1;
 import org.apache.pluto.container.bean.processor.fixtures.resource.Resource2;
+import org.apache.pluto.container.om.portlet.PortletApplicationDefinition;
+import org.apache.pluto.container.om.portlet.PortletDefinition;
+import org.apache.pluto.container.om.portlet.impl.ConfigurationHolder;
 import org.jglue.cdiunit.AdditionalClasses;
 import org.jglue.cdiunit.AdditionalPackages;
 import org.jglue.cdiunit.CdiRunner;
@@ -64,6 +64,7 @@ public class ResourceTest {
 
    private AnnotatedMethodStore ams     = null;
    private ConfigSummary        summary = null;
+   private PortletApplicationDefinition pad = null;
 
    @Before
    public void setUp() {
@@ -73,6 +74,11 @@ public class ResourceTest {
 
       assertNotNull(ams);
       assertNotNull(summary);
+      
+      ConfigurationHolder ch = new ConfigurationHolder();
+      ch.reconcileBeanConfig(ams);
+      pad = ch.getPad();
+      assertNotNull(pad);
    }
 
    @Test
@@ -372,4 +378,23 @@ public class ResourceTest {
       assertEquals(0, qns.size());
    }
 
+   @Test
+   public void testAsyncSupported() throws Exception {
+      PortletDefinition pd;
+      
+      // asyncSupported default value
+      pd = pad.getPortlet("portlet1");
+      assertNotNull(pd);
+      assertFalse(pd.isAsyncSupported());
+      
+      // set to false
+      pd = pad.getPortlet("portlet2");
+      assertNotNull(pd);
+      assertFalse(pd.isAsyncSupported());
+      
+      // set to true
+      pd = pad.getPortlet("portlet3");
+      assertNotNull(pd);
+      assertTrue(pd.isAsyncSupported());
+   }
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/fixtures/TestAnnotatedPortlet.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/fixtures/TestAnnotatedPortlet.java b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/fixtures/TestAnnotatedPortlet.java
index bed73a4..8e7cc29 100644
--- a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/fixtures/TestAnnotatedPortlet.java
+++ b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/fixtures/TestAnnotatedPortlet.java
@@ -74,7 +74,8 @@ import javax.portlet.annotations.Supports;
    }, dependencies = {
       @Dependency(name="Dojo", minVersion="3.1.4"),
       @Dependency(name="AngularJS", minVersion="1.4.8")
-   }
+   },
+   asyncSupported = true
    
 )
 public class TestAnnotatedPortlet {

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/fixtures/TestMultiAnnotatedPortlet.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/fixtures/TestMultiAnnotatedPortlet.java b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/fixtures/TestMultiAnnotatedPortlet.java
index c8e47fe..6b17008 100644
--- a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/fixtures/TestMultiAnnotatedPortlet.java
+++ b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/fixtures/TestMultiAnnotatedPortlet.java
@@ -66,8 +66,26 @@ import javax.portlet.annotations.PortletConfigurations;
          @LocaleString(locale="DE", value="Ein Portlet")
       }, keywords={
          @LocaleString(locale="DE", value="Eins, Zwei, Drei")
-      }
-   )
+      },
+      asyncSupported=true
+   ),
+   @PortletConfiguration(portletName="Portlet3", 
+   initParams = {
+         @InitParameter(name="color", value="#def"),
+      },
+      description={
+         @LocaleString(locale="de", value="Dieses Portlet zeigt die Zeit in verschiedenen Zeitzonen an")
+      }, displayName={
+         @LocaleString(locale="de", value="ZeitzonenPortlet")
+      }, title={
+         @LocaleString(locale="DE", value="Annotiertes Portlet")
+      }, shortTitle={
+         @LocaleString(locale="DE", value="Ein Portlet")
+      }, keywords={
+         @LocaleString(locale="DE", value="Eins, Zwei, Drei")
+      },
+      asyncSupported=false
+   ),
 })
 public class TestMultiAnnotatedPortlet extends GenericPortlet {
    // add portlet methods

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/MergePortletDefinitionTest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/MergePortletDefinitionTest.java b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/MergePortletDefinitionTest.java
index dcb8d99..c8b5d69 100644
--- a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/MergePortletDefinitionTest.java
+++ b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/MergePortletDefinitionTest.java
@@ -21,6 +21,7 @@ package org.apache.pluto.container.om.portlet.impl.jsr362;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
@@ -879,4 +880,9 @@ public class MergePortletDefinitionTest {
       assertTrue(deps.contains(dep));
    }
 
+   @Test
+   public void testAsyncSupported() throws Exception {
+      assertFalse(cut.isAsyncSupported());
+   }
+
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/MultiAnnotatedPortletTest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/MultiAnnotatedPortletTest.java b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/MultiAnnotatedPortletTest.java
index 762af95..2561f3b 100644
--- a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/MultiAnnotatedPortletTest.java
+++ b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/MultiAnnotatedPortletTest.java
@@ -19,9 +19,7 @@
 
 package org.apache.pluto.container.om.portlet.impl.jsr362;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.util.HashSet;
 import java.util.List;
@@ -60,6 +58,7 @@ public class MultiAnnotatedPortletTest {
    // Class under test
    private PortletDefinition portlet1;
    private PortletDefinition portlet2;
+   private PortletDefinition portlet3;
 
    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
@@ -79,12 +78,14 @@ public class MultiAnnotatedPortletTest {
 
    @Before
    public void setUpBefore() throws Exception {
-      assertEquals(2, pad.getPortlets().size());
+      assertEquals(3, pad.getPortlets().size());
       assertNotNull(pad.getPortlet("Portlet1"));
       assertNotNull(pad.getPortlet("Portlet2"));
+      assertNotNull(pad.getPortlet("Portlet3"));
       app = new PortletApplicationDefinitionImpl(pad);
       portlet1 = new PortletDefinitionImpl(pad.getPortlet("Portlet1"));
       portlet2 = new PortletDefinitionImpl(pad.getPortlet("Portlet2"));
+      portlet3 = new PortletDefinitionImpl(pad.getPortlet("Portlet3"));
    }
 
    // Begin portlet app tests ==================================
@@ -342,5 +343,20 @@ public class MultiAnnotatedPortletTest {
       assertEquals(text, info.getKeywords(Locale.FRENCH).getText());
       assertEquals(txt2, info.getKeywords(Locale.GERMAN).getText());
    }
+   
+   @Test
+   public void testAsyncSupportedDefault() throws Exception {
+      assertFalse(portlet1.isAsyncSupported());
+   }
+   
+   @Test
+   public void testAsyncSupportedTrue() throws Exception {
+      assertTrue(portlet2.isAsyncSupported());
+   }
+   
+   @Test
+   public void testAsyncSupportedFalse() throws Exception {
+      assertFalse(portlet3.isAsyncSupported());
+   }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/PortletDefinition362AnnotationTest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/PortletDefinition362AnnotationTest.java b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/PortletDefinition362AnnotationTest.java
index 4d206c0..0f94248 100644
--- a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/PortletDefinition362AnnotationTest.java
+++ b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/PortletDefinition362AnnotationTest.java
@@ -19,11 +19,7 @@
 
 package org.apache.pluto.container.om.portlet.impl.jsr362;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.util.Arrays;
 import java.util.HashSet;
@@ -811,5 +807,10 @@ public class PortletDefinition362AnnotationTest {
       assertEquals(2, deps.size());
       assertTrue(deps.contains(dep));
    }
+   
+   @Test
+   public void testAsyncSupported() throws Exception {
+      assertTrue(cut.isAsyncSupported());
+   }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/PortletDefinition362ImplTest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/PortletDefinition362ImplTest.java b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/PortletDefinition362ImplTest.java
index 401036a..abd89da 100644
--- a/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/PortletDefinition362ImplTest.java
+++ b/pluto-container/src/test/java/org/apache/pluto/container/om/portlet/impl/jsr362/PortletDefinition362ImplTest.java
@@ -19,10 +19,7 @@
 
 package org.apache.pluto.container.om.portlet.impl.jsr362;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.io.InputStream;
 import java.util.Arrays;
@@ -874,5 +871,22 @@ public class PortletDefinition362ImplTest {
       assertEquals(2, deps.size());
       assertTrue(deps.contains(dep));
    }
+   
+   @Test
+   public void testAsyncSupported() throws Exception {
+      assertTrue(cut.isAsyncSupported());
+   }
+   
+   @Test
+   public void testSetAsyncSupportedTrue() throws Exception {
+      cut.setAsyncSupported(true);
+      assertTrue(cut.isAsyncSupported());
+   }
+   
+   @Test
+   public void testSetAsyncSupportedFalse() throws Exception {
+      cut.setAsyncSupported(false);
+      assertFalse(cut.isAsyncSupported());
+   }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/test/resources/org/apache/pluto/container/om/portlet/portlet362Generated.xml
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/resources/org/apache/pluto/container/om/portlet/portlet362Generated.xml b/pluto-container/src/test/resources/org/apache/pluto/container/om/portlet/portlet362Generated.xml
index bc2d3d4..2c0a6bd 100644
--- a/pluto-container/src/test/resources/org/apache/pluto/container/om/portlet/portlet362Generated.xml
+++ b/pluto-container/src/test/resources/org/apache/pluto/container/om/portlet/portlet362Generated.xml
@@ -91,6 +91,7 @@
          <name>AngularJS</name>
          <min-version>1.4.8</min-version>
       </dependency>
+      <async-supported>true</async-supported>
    </portlet>
    <custom-portlet-mode id="mode1">
       <description xml:lang="de">description</description>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/914a9683/pluto-container/src/test/resources/org/apache/pluto/container/om/portlet/portlet362Merge.xml
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/resources/org/apache/pluto/container/om/portlet/portlet362Merge.xml b/pluto-container/src/test/resources/org/apache/pluto/container/om/portlet/portlet362Merge.xml
index b078403..8ad2e91 100644
--- a/pluto-container/src/test/resources/org/apache/pluto/container/om/portlet/portlet362Merge.xml
+++ b/pluto-container/src/test/resources/org/apache/pluto/container/om/portlet/portlet362Merge.xml
@@ -93,6 +93,7 @@
          <name>AngularJS</name>
          <min-version>1.4.8</min-version>
       </dependency>
+      <async-supported>false</async-supported>
    </portlet>
    <custom-portlet-mode id="mode1">
       <description xml:lang="de">description</description>