[Laszlo-checkins] r12098 - in openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo: cm compiler server servlets/responders
dda@openlaszlo.org
dda at openlaszlo.org
Sat Dec 13 08:01:53 PST 2008
Author: dda
Date: 2008-12-13 08:01:47 -0800 (Sat, 13 Dec 2008)
New Revision: 12098
Modified:
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/cm/CompilationManager.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Canvas.java
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/ToplevelCompiler.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/server/LPS.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderCompile.java
openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderLFC.java
Log:
Change 20081212-dda-V by dda at lester.local on 2008-12-12 05:44:02 EST
in /Users/dda/laszlo/src/svn/openlaszlo/trunk-d
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: lzsourceannotations=true now uses backtrace lfc.
New Features:
Bugs Fixed: LPP-7435 (LPS.getLFCname needs to be remodularized),
https://nexb.laszlosystems.com/trac/main/ticket/741 (LZX: Regression in proxied launch)
Technical Reviewer: ptw (pending)
QA Reviewer: (pending)
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details:
This change only fixes the reported problem, and does not refactor.
The technique ended up being: wherever 'backtrace' and 'profile'
have special argument handling, add the same sort of handling for
sourceannotations; add another argument to getLFCname to enforce
that the caller has knowledge about sourceannotations, and put
the smarts about what to do in getLFCname.
getLFCname should be remodularized to reduce the proliferation of
arguments, but there are some challenges to doing this, recorded here
in case someone wants to take up the gauntlet again.
First, not all the callers to getLFCname have ready access to a
CompilationEnvironment. In particular, Canvas calls
getLFCname - combining information from an original CompilationEnvironment
with canvas attributes (so that debugging can be set on the canvas).
And, while this can be solved (giving Canvas a copy of CompilationEnvironment,
or even just the properties), there are at least two additional mysteries that
need better assessing.
1) CompilationManager.getInfoXML() calls getLFCname using values
from the request properties that don't completely line up with
the properties used either in CompilationEnvironment or
ResponderCompile.initCMgrProperties ('lzbacktrace' is used in initCMgrProperties(),
'backtrace' is used in getInfoXML()).
2) ResponderLFC.respondImpl() calls getLFCname using standard values
in CompilationEnvironment (yay!) except that it also consults an extra
request parameter "_canvas_debug" (boo!)
It didn't seem safe to do refactoring and change these two call sites (possibly
breaking some functionality), and not having these sites changed makes
the refactoring rather less effective. If I knew how to completely
test the various namespaces that seem to be in use (whether intentional or not),
I'd be more bold in making a change of this sort.
Tests:
Regression: {smokecheck,weather,lzpix} x {swf8,swf9,dhtml}
Functionality: simple app observing libraries loaded via args
ARGS: LFC version:
(noargs) LFCdhtml
lzbacktrace=true LFCdhtml-backtrace
backtrace=true LFCdhtml
lzsourceannotations=true LFCdhtml-backtrace
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/cm/CompilationManager.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/cm/CompilationManager.java 2008-12-13 14:50:11 UTC (rev 12097)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/cm/CompilationManager.java 2008-12-13 16:01:47 UTC (rev 12098)
@@ -311,9 +311,10 @@
boolean isDebug = "true".equals(props.getProperty("debug"));
boolean isProfile = "true".equals(props.getProperty("profile"));
boolean isBacktrace = "true".equals(props.getProperty("backtrace"));
+ boolean isSourceAnnotations = "true".equals(props.getProperty(CompilationEnvironment.SOURCE_ANNOTATIONS_PROPERTY));
String runtime = props.getProperty(CompilationEnvironment.RUNTIME_PROPERTY);
- String lfc = LPS.getLFCname( runtime, isDebug, isProfile, isBacktrace);
+ String lfc = LPS.getLFCname( runtime, isDebug, isProfile, isBacktrace, isSourceAnnotations);
String path = LPS.getLFCDirectory();
File lfcfile = new File(path, lfc);
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Canvas.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Canvas.java 2008-12-13 14:50:11 UTC (rev 12097)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Canvas.java 2008-12-13 16:01:47 UTC (rev 12098)
@@ -121,6 +121,9 @@
/** computed backtrace flag, based on canvas 'backtrace' attribute + compilation request args **/
private boolean mBacktrace = false;
+ /** computed source annotations flag from request args **/
+ private boolean mSourceAnnotations = false;
+
/** computed profile flag from request args **/
private boolean mProfile = false;
@@ -187,7 +190,14 @@
return(mProfile);
}
+ public void setSourceAnnotations(boolean val) {
+ mSourceAnnotations = val;
+ }
+ public boolean getSourceAnnotations() {
+ return(mSourceAnnotations);
+ }
+
public void addInfo(Element info) {
mInfo.addContent(info);
}
@@ -438,7 +448,7 @@
"height='" + getHeightXML() + "' " +
"proxied='" + isProxied() + "' " +
"runtime='" + getRuntime() +"' " +
- "lfc='" + LPS.getLFCname(getRuntime(), mDebug, mProfile, mBacktrace) + "' " +
+ "lfc='" + LPS.getLFCname(getRuntime(), mDebug, mProfile, mBacktrace, mSourceAnnotations) + "' " +
"debug='" + mDebug + "' " +
"id='" + XMLUtils.escapeXml(getID()) +"' " +
"accessible='" + XMLUtils.escapeXml(getAccessible() + "") +"' " +
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 2008-12-13 14:50:11 UTC (rev 12097)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java 2008-12-13 16:01:47 UTC (rev 12098)
@@ -48,6 +48,7 @@
canvas.setDebug(mEnv.getBooleanProperty(CompilationEnvironment.DEBUG_PROPERTY));
canvas.setProfile(mEnv.getBooleanProperty(CompilationEnvironment.PROFILE_PROPERTY));
canvas.setBacktrace(mEnv.getBooleanProperty(CompilationEnvironment.BACKTRACE_PROPERTY));
+ canvas.setSourceAnnotations(mEnv.getBooleanProperty(CompilationEnvironment.SOURCE_ANNOTATIONS_PROPERTY));
// Set the "proxied" flag for this app.
// canvas attribute overrides passed in arg, warn for conflict
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 2008-12-13 14:50:11 UTC (rev 12097)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java 2008-12-13 16:01:47 UTC (rev 12098)
@@ -356,6 +356,11 @@
env.setProperty(CompilationEnvironment.SOURCELOCATOR_PROPERTY, sourcelocators);
}
+ String sourceannotations = props.getProperty(CompilationEnvironment.SOURCE_ANNOTATIONS_PROPERTY);
+ if (sourceannotations != null) {
+ env.setProperty(CompilationEnvironment.SOURCE_ANNOTATIONS_PROPERTY, sourceannotations);
+ }
+
String trackLines = props.getProperty(CompilationEnvironment.TRACK_LINES);
if (trackLines != null) {
env.setProperty(CompilationEnvironment.TRACK_LINES, trackLines);
@@ -490,6 +495,7 @@
}
if (canvas != null) {
canvas.setBacktrace(backtraceValue);
+ canvas.setSourceAnnotations(env.getBooleanProperty(CompilationEnvironment.SOURCE_ANNOTATIONS_PROPERTY));
// set file path (relative to webapp) in canvas
canvas.setFilePath(FileUtils.relativePath(file, LPS.HOME()));
}
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java 2008-12-13 14:50:11 UTC (rev 12097)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java 2008-12-13 16:01:47 UTC (rev 12098)
@@ -291,7 +291,7 @@
return LPS.getLFCname(env.getRuntime(),
env.getBooleanProperty(env.DEBUG_PROPERTY),
env.getBooleanProperty(env.PROFILE_PROPERTY),
- env.getBooleanProperty(env.BACKTRACE_PROPERTY) ||
+ env.getBooleanProperty(env.BACKTRACE_PROPERTY),
env.getBooleanProperty(env.SOURCE_ANNOTATIONS_PROPERTY));
}
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/server/LPS.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/server/LPS.java 2008-12-13 14:50:11 UTC (rev 12097)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/server/LPS.java 2008-12-13 16:01:47 UTC (rev 12098)
@@ -208,7 +208,7 @@
return HOME() + File.separator + LPS.getProperty("compiler.runtime.dir").replace('/', File.separatorChar);
}
- public static String getLFCname(String runtime, boolean debug, boolean profile, boolean backtrace) {
+ public static String getLFCname(String runtime, boolean debug, boolean profile, boolean backtrace, boolean sourceAnnotations) {
String lfc = "LFC";
String extension = "js";
if (runtime == null) {
@@ -229,7 +229,7 @@
lfc += "-profile";
}
- if (backtrace) {
+ if (backtrace || sourceAnnotations) {
lfc += "-backtrace";
} else if (debug) {
lfc += "-debug";
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderCompile.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderCompile.java 2008-12-13 14:50:11 UTC (rev 12097)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderCompile.java 2008-12-13 16:01:47 UTC (rev 12098)
@@ -409,6 +409,7 @@
* <li> "lzbacktrace"
* <li> "profile"
* <li> "sourcelocators"
+ * <li> "lzsourceannotations"
* <li> "lzr" (swf version := swf5 | swf6)
* <li> "lzproxied" true|false
* <li> "lzscript" true|false -- emit javascript, not object file
@@ -474,14 +475,11 @@
props.setProperty(CompilationEnvironment.BACKTRACE_PROPERTY, backtrace);
}
- // Look for "sourceannotations=true" flag
- // This flag is a shorthand for turning on various props needed by IDE debuggers
+ // Look for "lzsourceannotations=true" flag
props.setProperty(CompilationEnvironment.SOURCE_ANNOTATIONS_PROPERTY, "false");
String srcann = req.getParameter(CompilationEnvironment.SOURCE_ANNOTATIONS_PROPERTY);
if (srcann != null) {
props.setProperty(CompilationEnvironment.SOURCE_ANNOTATIONS_PROPERTY, srcann);
- props.setProperty(CompilationEnvironment.NAME_FUNCTIONS, srcann);
- props.setProperty(CompilationEnvironment.TRACK_LINES, srcann);
}
}
Modified: openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderLFC.java
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderLFC.java 2008-12-13 14:50:11 UTC (rev 12097)
+++ openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderLFC.java 2008-12-13 16:01:47 UTC (rev 12098)
@@ -3,7 +3,7 @@
* ****************************************************************************/
/* J_LZ_COPYRIGHT_BEGIN *******************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. *
+* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. *
* Use is subject to license terms. *
* J_LZ_COPYRIGHT_END *********************************************************/
@@ -74,7 +74,8 @@
"true".equals(req.getParameter(CompilationEnvironment.DEBUG_PROPERTY)) ||
req.getParameter("_canvas_debug") != null,
"true".equals(req.getParameter(CompilationEnvironment.PROFILE_PROPERTY)),
- "true".equals(req.getParameter(CompilationEnvironment.BACKTRACE_PROPERTY)));
+ "true".equals(req.getParameter(CompilationEnvironment.BACKTRACE_PROPERTY)),
+ "true".equals(req.getParameter(CompilationEnvironment.SOURCE_ANNOTATIONS_PROPERTY)));
String path = LPS.getLFCDirectory();
File lfcfile = new File(path, lfc);
More information about the Laszlo-checkins
mailing list