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]