Author: simoneg
Date: Thu Nov 26 12:59:15 2009
New Revision: 884544

URL: http://svn.apache.org/viewvc?rev=884544&view=rev
Log:
LABS-365 LABS-494 : fixed compounding and late config interaction problems

Modified:
    
labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/settings/ContextSettingsHolder.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducerImpl.aj
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HtmlProducer.java

Modified: 
labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/settings/ContextSettingsHolder.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/settings/ContextSettingsHolder.java?rev=884544&r1=884543&r2=884544&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/settings/ContextSettingsHolder.java
 (original)
+++ 
labs/magma/trunk/foundation-basics/src/main/java/org/apache/magma/settings/ContextSettingsHolder.java
 Thu Nov 26 12:59:15 2009
@@ -199,23 +199,22 @@
                                notted.add(acpart.substring(1));
                                acpart = parts[++upto];
                                done = (upto == parts.length - 2);
-                       } else {
-                               if (notted != null && notted.contains(seg)) 
return -1;
-                               if (lasted != null && lasted.contains(seg)) 
return -1;
-                               if (acpart.charAt(0) == '#') acpart = 
acpart.substring(1); 
-                               if (acpart.equals(seg)) {
-                                       notted = null;
-                                       if (parts[upto].charAt(0) == '#') {
-                                               if (lasted == null) lasted = 
new ArrayList<String>();
-                                               lasted.add(acpart);
-                                       }
-                                       if (upto == parts.length - 3 && lasted 
!= null && lasted.size() > 0) {
-                                               done = true;
-                                       } else {
-                                               acpart = parts[++upto];
-                                               total += pos;
-                                               if (upto == parts.length - 2) 
return total;
-                                       }
+                       } 
+                       if (notted != null && notted.contains(seg)) return -1;
+                       if (lasted != null && lasted.contains(seg)) return -1;
+                       if (acpart.charAt(0) == '#') acpart = 
acpart.substring(1); 
+                       if (acpart.equals(seg)) {
+                               notted = null;
+                               if (parts[upto].charAt(0) == '#') {
+                                       if (lasted == null) lasted = new 
ArrayList<String>();
+                                       lasted.add(acpart);
+                               }
+                               if (upto == parts.length - 3 && lasted != null 
&& lasted.size() > 0) {
+                                       done = true;
+                               } else {
+                                       acpart = parts[++upto];
+                                       total += pos;
+                                       if (upto == parts.length - 2) return 
total;
                                }
                        }
                }

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducerImpl.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducerImpl.aj?rev=884544&r1=884543&r2=884544&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducerImpl.aj
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/CompoundableProducerImpl.aj
 Thu Nov 26 12:59:15 2009
@@ -28,7 +28,9 @@
 import org.apache.magma.website.templating.Template;
 import org.apache.magma.website.utils.MakeURLRewritingContextBased;
 
+import org.apache.magma.basics.context.ContextOwner;
 import org.apache.magma.basics.context.RunningContext;
+import org.apache.magma.basics.context.SubRunningContext;
 import org.apache.magma.lateconfig.LateConfigurable;
 
 public aspect CompoundableProducerImpl {
@@ -127,28 +129,34 @@
        }
        
        private void compoundZone(CompoundableProducer prod, CompoundType side, 
Writer stream) throws IOException {
-               RunningContext.get().push("Compounded");
-               RunningContext.get().push(side.name());
-               try {
-                       List<Producer> list = prod.findCompoundedOn(side);
-                       if (!list.isEmpty()) {
-                               String addcss = null;
-                               if (prod.customCssClasses != null) {
-                                       addcss = 
prod.customCssClasses.get(side);
-                               }
-                               openWrapper(addcss, stream, side);
-                               for (Producer producer : list) {
-                                       if (producer instanceof HtmlProducer) {
+               List<Producer> list = prod.findCompoundedOn(side);
+               if (!list.isEmpty()) {
+                       String addcss = null;
+                       if (prod.customCssClasses != null) {
+                               addcss = prod.customCssClasses.get(side);
+                       }
+                       openWrapper(addcss, stream, side);
+                       for (Producer producer : list) {
+                               if (producer instanceof HtmlProducer) {
+                                       if (producer instanceof ContextOwner) {
+                                               SubRunningContext context = 
((ContextOwner)producer).getContext();
+                                               context.push("CompoundZone");
+                                               context.push(side.name());
+                                       }
+                                       try {
                                                openWrapper((HtmlProducer) 
producer, stream, side);
                                                
((HtmlProducer)producer).produce(stream);
                                                closeWrapper(stream);
+                                       } finally {
+                                               if (producer instanceof 
ContextOwner) {
+                                                       SubRunningContext 
context = ((ContextOwner)producer).getContext();
+                                                       context.popString();
+                                                       context.popString();
+                                               }
                                        }
                                }
-                               closeWrapper(stream);
                        }
-               } finally {
-                       RunningContext.get().popString();
-                       RunningContext.get().popString();
+                       closeWrapper(stream);
                }
        }
        

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HtmlProducer.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HtmlProducer.java?rev=884544&r1=884543&r2=884544&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HtmlProducer.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HtmlProducer.java
 Thu Nov 26 12:59:15 2009
@@ -18,6 +18,7 @@
 
 import org.apache.magma.basics.MagmaException;
 import org.apache.magma.lateconfig.LateConfigurable;
+import org.apache.magma.lateconfig.LateConfigurationTrigger;
 import org.apache.magma.website.templating.Template;
 
 import java.io.IOException;
@@ -85,7 +86,8 @@
        public void setRepeatable(boolean repeatable) {
                this.repeatable = repeatable;
        }
-
+       
+       @LateConfigurationTrigger
        public String getCustomHtmlId() {
                return customHtmlId;
        }
@@ -94,7 +96,8 @@
        public void setCustomHtmlId(String customHtmlId) {
                this.customHtmlId = customHtmlId;
        }
-
+       
+       @LateConfigurationTrigger
        public boolean isUseDefaultClasses() {
                return useDefaultClasses;
        }
@@ -112,6 +115,7 @@
                customCssClasses.add(cssClass);
        }
 
+       @LateConfigurationTrigger
        public List<String> getCustomCssClasses() {
                return customCssClasses;
        }



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

Reply via email to