Author: simoneg
Date: Wed Jul 14 02:39:31 2010
New Revision: 963927

URL: http://svn.apache.org/viewvc?rev=963927&view=rev
Log:
Support for better discovery of nested HtmlProducers

Added:
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/ProducerWithChildren.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/ProducerWithChildrenImpl.aj
Modified:
    
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/UnitTestDispatch.java
    
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java

Added: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/ProducerWithChildren.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/ProducerWithChildren.java?rev=963927&view=auto
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/ProducerWithChildren.java
 (added)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/ProducerWithChildren.java
 Wed Jul 14 02:39:31 2010
@@ -0,0 +1,11 @@
+package org.apache.magma.website;
+
+import java.util.List;
+
+public interface ProducerWithChildren<T extends Producer> {
+
+       public List<T> getChildren();
+       public void addChild(T child);
+       public void removeChild(T child);
+       
+}

Added: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/ProducerWithChildrenImpl.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/ProducerWithChildrenImpl.aj?rev=963927&view=auto
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/ProducerWithChildrenImpl.aj
 (added)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/ProducerWithChildrenImpl.aj
 Wed Jul 14 02:39:31 2010
@@ -0,0 +1,25 @@
+package org.apache.magma.website;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public aspect ProducerWithChildrenImpl {
+       
+       private List<T> ProducerWithChildren<T>.producers = null;
+       
+       public void ProducerWithChildren<T>.addChild(T child) {
+               if (producers == null) producers = new ArrayList<T>();
+               producers.add(child);
+       }
+       
+       public void ProducerWithChildren<T>.removeChild(T child) {
+               if (producers == null) return;
+               producers.remove(child);
+       }
+       
+       public List<T> ProducerWithChildren<T>.getChildren() {
+               return producers == null ? Collections.EMPTY_LIST : producers;
+       }
+
+}

Modified: 
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/UnitTestDispatch.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/UnitTestDispatch.java?rev=963927&r1=963926&r2=963927&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/UnitTestDispatch.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/UnitTestDispatch.java
 Wed Jul 14 02:39:31 2010
@@ -24,6 +24,7 @@ import javax.servlet.http.HttpServletRes
 public class UnitTestDispatch extends Dispatch {
 
        private Template template = null;
+       private Producer usedProducer = null;
        
        @Override
        public void handle(HttpServletRequest req, HttpServletResponse resp) {
@@ -33,6 +34,7 @@ public class UnitTestDispatch extends Di
        @Override
        public void handleHTML(HtmlProducer producer, HttpServletRequest req,
                        HttpServletResponse resp) {
+               this.usedProducer = producer;
                super.handleHTML(producer, req, resp);
        }
 
@@ -43,6 +45,7 @@ public class UnitTestDispatch extends Di
 
        @Override
        public void handleRAW(Producer producer, HttpServletRequest req, 
HttpServletResponse resp) {
+               this.usedProducer = producer;
                super.handleRAW(producer, req, resp);
        }
 
@@ -65,5 +68,9 @@ public class UnitTestDispatch extends Di
                if (this.template != null) return this.template;
                return super.getDefaultTemplate();
        }
+
+       public Producer getUsedProducer() {
+               return usedProducer;
+       }
        
 }

Modified: 
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java?rev=963927&r1=963926&r2=963927&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/test/java/org/apache/magma/website/WebHandlerCycleTest.java
 Wed Jul 14 02:39:31 2010
@@ -17,6 +17,7 @@
 package org.apache.magma.website;
 
 import java.io.ByteArrayOutputStream;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.magma.website.producers.ProducerParameters;
@@ -356,9 +357,15 @@ public class WebHandlerCycleTest {
        public void compounding() throws Exception {
                DefaultExpectations def = new DefaultExpectations() {{
                }};
+               UnitTestDispatch disp = new UnitTestDispatch();
+               def.disp = disp;
                def.setupMinimal("/testSession/compound");
                def.start();            
                assertStructure(def.out.toString(), "comp-head", "comp-bef", 
"comp-content", "comp-aft", "comp-sidea", "comp-foot");
+               Producer prod = disp.getUsedProducer();
+               assertTrue(prod instanceof HtmlProducer);
+               List<Producer> children = ((HtmlProducer)prod).getChildren();
+               assertEquals(5, children.size());
        }       
 
        @Test



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to