Author: pbr
Date: 2007-08-01 10:28:36 -0700 (Wed, 01 Aug 2007)
New Revision: 5896

Modified:
   
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
   
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java
   
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
Log:
Change 20070731-Philip-4 by [EMAIL PROTECTED] on 2007-07-31 17:09:38 EST
   in /cygdrive/f/laszlo/svn/src/svn/openlaszlo/branches/wafflecone
   for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone

Summary: Wafflecone: Only write 'validate' attribute if explicitly defined by th
e user

New Features:

Bugs Fixed: LPP-3988

Technical Reviewer: ptw
QA Reviewer: (pending)
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details:
A canvas or library can define an attribute called 'validate' to bypass XML vali
dation. If the user does not explicitly define it, validate is set to true. With
 binary libraries, validate was unconditionally written to the output. This caus
es warning messages like the ones mentioned in LPP-3988. The fix is to write the
 validate attribute only when explicitly defined inside a library.

CompilationEnvironment.java
 Define a new property, e_validate, that is defined only when the user explicit
ly defines the validate attribute.
ToplevelCompiler.java
 Modified setValidateProperty() to set e_validate if the user specified the val
idate attribute in the canvas or library.
LibraryWriter.java
 Writes validate attribute only if e_validate and validate are defined properti
es.

Tests:
 See test file attached to LPP-3988.lzx. When run without this patch, a warning
 is generated when lpp3988.lzx is run. No warning is reported when the patch is
applied. You can also look inside the two binary compiled files to see that 'val
idate' is only written when explicitly specified.

Files:
M      WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
M      WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java
M      WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.jav
a

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20070731-Philip-4.tar


Modified: 
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
===================================================================
--- 
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
   2007-08-01 16:46:29 UTC (rev 5895)
+++ 
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
   2007-08-01 17:28:36 UTC (rev 5896)
@@ -33,6 +33,8 @@
     public static final String PROFILE_PROPERTY           = "profile";
     public static final String LINK_PROPERTY              = "link";
     public static final String VALIDATE_PROPERTY          = "validate";
+    // e_validate is defined if a user explicitly defined validate attribute
+    public static final String VALIDATE_EXPLICIT_PROPERTY = "e_validate";
     public static final String CSSFILE_PROPERTY           = "cssfile";
     // Log all debug.write messages back to the server
     public static final String LOGDEBUG_PROPERTY      = "logdebug";

Modified: 
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java
===================================================================
--- 
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java
    2007-08-01 16:46:29 UTC (rev 5895)
+++ 
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java
    2007-08-01 17:28:36 UTC (rev 5896)
@@ -99,10 +99,13 @@
   }
 
   private void exportAttributes() {
-      // Write out the validate attribute of the source library
-      String property = CompilationEnvironment.VALIDATE_PROPERTY;
-      String validate = mEnv.getProperty(property, null);
-      if (validate != null) {
+      // Write out the validate attribute of the source library, but only if
+      // it was explicitly defined by the user
+      String property   = CompilationEnvironment.VALIDATE_PROPERTY;
+      String e_property = CompilationEnvironment.VALIDATE_EXPLICIT_PROPERTY;
+      String validate   = mEnv.getProperty(property, null);
+      String e_validate = mEnv.getProperty(e_property, null);
+      if (e_validate != null && validate != null) {
         out.println("<attribute name='" + property + "' value='" + validate + 
"' />");
       }
   }

Modified: 
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
===================================================================
--- 
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
 2007-08-01 16:46:29 UTC (rev 5895)
+++ 
openlaszlo/branches/wafflecone/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
 2007-08-01 17:28:36 UTC (rev 5896)
@@ -84,8 +84,11 @@
      */
     void setValidateProperty(Element root , CompilationEnvironment env) {
         String validate = CompilationEnvironment.VALIDATE_PROPERTY;
+        String e_validate = CompilationEnvironment.VALIDATE_EXPLICIT_PROPERTY;
         // Look for canvas attribute
         if (root.getAttributeValue(validate) != null) {
+            // Record that the user explicitly defined validate
+            env.setProperty(e_validate, true);
             if ("false".equals(root.getAttributeValue("validate"))) {
                 env.setProperty(validate, false);
             } else {
@@ -99,6 +102,8 @@
             Element child = (Element) iter.next();
             if (child.getName().equals("attribute")
                 && validate.equals(child.getAttributeValue("name"))) {
+                // Record that the user explicitly defined validate
+                env.setProperty(e_validate, true);
                 if ("false".equals(child.getAttributeValue("value"))) {
                     env.setProperty(validate, false);
                 }


_______________________________________________
Laszlo-checkins mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins

Reply via email to