[Laszlo-checkins] r3948 - openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler
ptw@openlaszlo.org
ptw at openlaszlo.org
Tue Feb 27 09:30:09 PST 2007
Author: ptw
Date: 2007-02-27 09:30:03 -0800 (Tue, 27 Feb 2007)
New Revision: 3948
Modified:
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryCompiler.java
Log:
Change 20070227-ptw-X by ptw at dueling-banjos.local on 2007-02-27 11:13:24 EST
in /Users/ptw/OpenLaszlo/3.4.1
Summary: Add autoincludes to schema only at top level
Bugs Fixed:
LPP-3565 'Dashboard has compilation errors'
Technical Reviewer: hminsky (Message-ID: <8c61fad60702270927r32af6157ob217117d6e488131 at mail.gmail.com>)
QA Reviewer: tyoung (pending)
Doc Reviewer: n/a (pending)
Details:
Move updating of schema for autoincludes out of the Canvas and
Library compilers up to the top-level compiler. At the top level,
process the root document for auto-included libraries and amend
the schema with the library definitions before processing the
document.
Tests:
smokecheck, dashboard, calendar, amazon
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java 2007-02-27 16:37:44 UTC (rev 3947)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java 2007-02-27 17:30:03 UTC (rev 3948)
@@ -159,16 +159,6 @@
}
- void updateSchema(Element element, ViewSchema schema, Set visited) {
- for (Iterator iter = getLibraries(element).iterator();
- iter.hasNext(); ) {
- File file = (File) iter.next();
- Compiler.updateSchemaFromLibrary(file, mEnv, schema, visited);
- }
- // Visit the children:
- super.updateSchema(element, schema, visited);
- }
-
private Map createCanvasObject(Element element, Canvas canvas) {
NodeModel model =
NodeModel.elementOnlyAsModel(element, mEnv.getSchema(), mEnv);
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java 2007-02-27 16:37:44 UTC (rev 3947)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java 2007-02-27 17:30:03 UTC (rev 3948)
@@ -333,13 +333,13 @@
} catch (org.jdom.JDOMException e) {
throw new ChainedException(e);
}
- Compiler.updateSchema(doc.getRootElement(), env,
- env.getSchema(), new HashSet());
+ ViewSchema schema = env.getSchema();
+ Compiler.updateRootSchema(root, env, schema, new HashSet());
if (SchemaLogger.isDebugEnabled()) {
org.jdom.output.XMLOutputter xmloutputter =
new org.jdom.output.XMLOutputter();
try {
- SchemaLogger.debug(xmloutputter.outputString(env.getSchema().getSchemaDOM()));
+ SchemaLogger.debug(xmloutputter.outputString(schema.getSchemaDOM()));
} catch (org.jdom.JDOMException e) {
throw new ChainedException(e);
}
@@ -353,7 +353,7 @@
if ("false".equals(env.getProperty(env.LINK_PROPERTY))) {
LibraryWriter lw = new LibraryWriter(props, ostr, mMediaCache, true, env);
env.setApplicationFile(file);
- lw.setRoot(doc.getRootElement());
+ lw.setRoot(root);
writer = lw;
} else {
writer = new SWFWriter(env.getProperties(), ostr, mMediaCache, true, env);
@@ -567,6 +567,19 @@
}
}
+ static void updateRootSchema(Element root, CompilationEnvironment env,
+ ViewSchema schema, Set visited)
+ {
+ ToplevelCompiler ec = (ToplevelCompiler)getElementCompiler(root, env);
+ // Update schema for auto-includes
+ for (Iterator iter = ec.getLibraries(root).iterator();
+ iter.hasNext(); ) {
+ File library = (File) iter.next();
+ Compiler.updateSchemaFromLibrary(library, env, schema, visited);
+ }
+ ec.updateSchema(root, schema, visited);
+ }
+
static void updateSchema(Element element, CompilationEnvironment env,
ViewSchema schema, Set visited)
{
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryCompiler.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryCompiler.java 2007-02-27 16:37:44 UTC (rev 3947)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryCompiler.java 2007-02-27 17:30:03 UTC (rev 3948)
@@ -124,15 +124,6 @@
void updateSchema(Element element, ViewSchema schema, Set visited) {
element = resolveLibraryElement(element, mEnv, visited, false);
if (element != null) {
- // If compiling a library we need to get the auto-includes
- // into the schema
- if (element.getParentElement() == null) {
- for (Iterator iter = getLibraries(element).iterator();
- iter.hasNext(); ) {
- File file = (File) iter.next();
- Compiler.updateSchemaFromLibrary(file, mEnv, schema, visited);
- }
- }
super.updateSchema(element, schema, visited);
// TODO [hqm 2005-02-09] can we compare any 'proxied' attribute here
// with the parent element (canvas) to warn if it conflicts.
More information about the Laszlo-checkins
mailing list