Skip to content

Commit 9c9a689

Browse files
committed
JSC: Improved properties printing
JSC: used Java based logger git-svn-id: https://share-extras.googlecode.com/svn/trunk/Javascript Console@1051 a3f5c567-fd0f-3a89-9b71-a290c5a5f590
1 parent 29d4ea5 commit 9c9a689

File tree

8 files changed

+39
-78
lines changed

8 files changed

+39
-78
lines changed

javascript-console-repo/.classpath

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<classpathentry kind="src" path="source/java"/>
44
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
55
<classpathentry kind="var" path="ALFRESCO_SDK_400/lib/server/alfresco-core-4.0.0.jar" sourcepath="/ALFRESCO_SDK_400/src/alfresco-core-src.zip"/>
6-
<classpathentry kind="var" path="ALFRESCO_SDK_400/lib/server/alfresco-data-model-4.0.0.jar"/>
6+
<classpathentry kind="var" path="ALFRESCO_SDK_400/lib/server/alfresco-data-model-4.0.0.jar" sourcepath="/ALFRESCO_SDK_400/src/alfresco-datamodel-src.zip"/>
77
<classpathentry kind="var" path="ALFRESCO_SDK_400/lib/server/alfresco-remote-api-4.0.0.jar"/>
88
<classpathentry kind="var" path="ALFRESCO_SDK_400/lib/server/dependencies/spring-surf/spring-surf-core-1.0.0.jar"/>
99
<classpathentry kind="var" path="ALFRESCO_SDK_400/lib/server/dependencies/spring-surf/spring-webscripts-1.0.0.jar"/>

javascript-console-repo/config/alfresco/extension/fme-jsconsole-context.xml

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,33 +10,5 @@
1010
<property name="rhinoScriptProcessor" ref="javaScriptProcessor" />
1111
</bean>
1212

13-
<!--
14-
<bean id="slingshotDocLibCustomResponse"
15-
parent="baseJavaScriptExtension"
16-
class="org.alfresco.repo.jscript.SlingshotDocLibCustomResponse">
17-
<property name="extensionName">
18-
<value>slingshotDocLib</value>
19-
</property>
20-
<property name="customResponses">
21-
<map>
22-
<entry key="vtiServer">
23-
<ref bean="doclibCustomVtiServer"/>
24-
</entry>
25-
</map>
26-
</property>
27-
</bean>
28-
29-
30-
<bean id="slingshotDocLibCustomResponse" parent="applicationScriptUtils">
31-
<property name="decoratedProperties">
32-
<map merge="true">
33-
<entry key="alf:propertyHolder">
34-
<ref bean="customDecoratorBean"/>
35-
</entry>
36-
</map>
37-
</property>
38-
</bean>
39-
-->
40-
4113
</beans>
4214

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
21
jsconsole.setSpace(space);
3-
Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,4 @@
1-
/*
2-
* Set up a wrapper for the logger, to write logging information to the
3-
* output stream and yet keep all methods of the Java ScriptLogger available.
4-
*/
5-
var _$orglogger = logger;
6-
7-
logger = {
8-
log: function(text) {
9-
print(text);
10-
_$orglogger.log(text);
11-
},
12-
13-
warn: function(text) {
14-
print(text);
15-
_$orglogger.warn(text);
16-
},
17-
18-
isLoggingEnabled : function() {
19-
return _$orglogger.isLoggingEnabled();
20-
},
21-
22-
isWarnLoggingEnabled : function() {
23-
return _$orglogger.isWarnLoggingEnabled();
24-
},
25-
26-
system : _$orglogger.system,
27-
28-
/**
29-
* Sets the log level of a class or package using log4j
30-
* @param classname a Java class or package name
31-
* @param level log level TRACE,DEBUG,INFO,ERROR as String
32-
*/
33-
setLevel : function(classname, level) {
34-
var log4j = Packages.org.apache.log4j.Logger.getLogger(classname);
35-
var logLevel = Packages.org.apache.log4j.Level.toLevel(level);
36-
log4j.setLevel(logLevel);
37-
}
38-
};
39-
1+
logger=jsconsole.getLogger();
402
function print(obj) {
413
jsconsole.print(obj);
424
};

javascript-console-repo/source/java/de/fme/jsconsole/ExecuteWebscript.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public class ExecuteWebscript extends AbstractWebScript {
5555
private ScriptUtils scriptUtils;
5656

5757
private TransactionService transactionService;
58-
58+
5959
private Resource preRollScriptResource;
6060

6161
private String preRollScript = "";
@@ -93,7 +93,10 @@ public void execute(WebScriptRequest request, WebScriptResponse response) throws
9393

9494
ScriptContent scriptContent = new StringScriptContent(preRollScript + script + "\n" + postRollScript);
9595
JavascriptConsoleResult result = runScriptWithTransactionAndAuthentication(request, response, jsreq, scriptContent);
96-
result.writeJson(response);
96+
97+
if (!result.isStatusResponseSent()) {
98+
result.writeJson(response);
99+
}
97100
}
98101

99102
private String readScriptFromResource(Resource resource) throws IOException {
@@ -167,7 +170,6 @@ private JavascriptConsoleResult executeScriptContent(WebScriptRequest req, WebSc
167170

168171
JavascriptConsoleScriptObject javascriptConsole = new JavascriptConsoleScriptObject();
169172
scriptModel.put("jsconsole", javascriptConsole);
170-
scriptModel.put("logger", new JavascriptConsoleScriptLogger(javascriptConsole));
171173

172174
if (StringUtils.isNotBlank(spaceNodeRef)) {
173175
javascriptConsole.setSpace(scriptUtils.getNodeFromString(spaceNodeRef));
@@ -178,7 +180,6 @@ private JavascriptConsoleResult executeScriptContent(WebScriptRequest req, WebSc
178180
} else {
179181
javascriptConsole.setSpace((ScriptNode) ch);
180182
}
181-
182183
}
183184
scriptModel.put("space", javascriptConsole.getSpace());
184185

@@ -207,6 +208,7 @@ private JavascriptConsoleResult executeScriptContent(WebScriptRequest req, WebSc
207208
// is a redirect to a status specific template required?
208209
if (status.getRedirect()) {
209210
sendStatus(req, res, status, cache, format, templateModel);
211+
output.setStatusResponseSent(true);
210212
} else {
211213
// apply location
212214
String location = status.getLocation();
@@ -217,8 +219,7 @@ private JavascriptConsoleResult executeScriptContent(WebScriptRequest req, WebSc
217219
}
218220

219221
if (StringUtils.isNotBlank(template)) {
220-
TemplateProcessor templateProcessor = getContainer().getTemplateProcessorRegistry().getTemplateProcessorByExtension(
221-
"ftl");
222+
TemplateProcessor templateProcessor = getContainer().getTemplateProcessorRegistry().getTemplateProcessorByExtension("ftl");
222223
StringWriter sw = new StringWriter();
223224
templateProcessor.processString(template, templateModel, sw);
224225
if (log.isDebugEnabled()) {
@@ -311,7 +312,6 @@ public void setRhinoScriptProcessor(RhinoScriptProcessor rhinoScriptProcessor) {
311312
this.rhinoScriptProcessor = rhinoScriptProcessor;
312313
}
313314

314-
315315
private static class StringScriptContent implements ScriptContent {
316316
private final String content;
317317

javascript-console-repo/source/java/de/fme/jsconsole/JavascriptConsoleResult.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ public class JavascriptConsoleResult {
2828
private String spaceNodeRef = "";
2929

3030
private String spacePath = "";
31+
32+
private boolean statusResponseSent = false;
3133

3234
public void setPrintOutput(List<String> printOutput) {
3335
this.printOutput = printOutput;
@@ -61,6 +63,7 @@ public String getSpacePath() {
6163
return spacePath;
6264
}
6365

66+
6467
public void writeJson(WebScriptResponse response) throws IOException {
6568
response.setContentEncoding("UTF-8");
6669
response.setContentType(MimetypeMap.MIMETYPE_JSON);
@@ -80,4 +83,12 @@ public void writeJson(WebScriptResponse response) throws IOException {
8083
"Error writing json response.", e);
8184
}
8285
}
86+
87+
public boolean isStatusResponseSent() {
88+
return statusResponseSent;
89+
}
90+
91+
public void setStatusResponseSent(boolean statusResponseSent) {
92+
this.statusResponseSent = statusResponseSent;
93+
}
8394
}

javascript-console-repo/source/java/de/fme/jsconsole/JavascriptConsoleScriptLogger.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ public void out(String str)
113113
}
114114
}
115115

116-
117116
public void setLevel(String classname, String level) {
118117
Logger log4j = Logger.getLogger(classname);
119118
Level logLevel = Level.toLevel(level);

javascript-console-repo/source/java/de/fme/jsconsole/JavascriptConsoleScriptObject.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.Collection;
55
import java.util.Iterator;
66
import java.util.List;
7+
import java.util.Map;
78

89
import org.alfresco.repo.jscript.ScriptNode;
910
import org.alfresco.repo.security.authority.script.ScriptGroup;
@@ -34,6 +35,10 @@ public void setSpace(ScriptNode space) {
3435
this.space = space;
3536
}
3637

38+
public JavascriptConsoleScriptLogger getLogger() {
39+
return new JavascriptConsoleScriptLogger(this);
40+
}
41+
3742
public void print(Object obj) {
3843

3944
if (obj != null) {
@@ -58,6 +63,7 @@ public void print(Object obj) {
5863

5964
}
6065

66+
@SuppressWarnings("unchecked")
6167
private String formatValue(Object value) {
6268
if (value instanceof ScriptNode) {
6369
return formatScriptNode((ScriptNode) value);
@@ -71,10 +77,23 @@ private String formatValue(Object value) {
7177
return formatNodeRef((NodeRef) value);
7278
} else if (value instanceof ChildAssociationRef) {
7379
return formatChildAssoc((ChildAssociationRef) value);
80+
} else if (value instanceof Map) {
81+
return formatMap((Map<String, Object>) value);
7482
}
7583
return value.toString();
7684
}
7785

86+
private String formatMap(Map<String, Object> map) {
87+
StringBuffer buffer = new StringBuffer();
88+
for (Map.Entry<String, Object> entry : map.entrySet()) {
89+
buffer.append(formatValue(entry.getKey()));
90+
buffer.append(" : ");
91+
buffer.append(formatValue(entry.getValue()));
92+
buffer.append("\n");
93+
}
94+
return buffer.toString();
95+
}
96+
7897
private String formatScriptUser(ScriptUser value) {
7998
return "ScriptUser: " + value.getUserName() + " (" + value.getFullName()+")";
8099
}

0 commit comments

Comments
 (0)