You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2010/03/04 23:03:10 UTC
svn commit: r919196 - in
/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF:
facelets/ java/org/apache/myfaces/javaloader/componentTest/
Author: werpu
Date: Thu Mar 4 22:03:09 2010
New Revision: 919196
URL: http://svn.apache.org/viewvc?rev=919196&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-86
adding basics of the taint history component
Added:
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistory.java (with props)
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistoryRenderer.java (with props)
Modified:
myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/facelets/extscripting.taglib.xml
Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/facelets/extscripting.taglib.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/facelets/extscripting.taglib.xml?rev=919196&r1=919195&r2=919196&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/facelets/extscripting.taglib.xml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/facelets/extscripting.taglib.xml Thu Mar 4 22:03:09 2010
@@ -14,4 +14,13 @@
<renderer-type>org.apache.myfaces.scripting.components.CompilerComponentRenderer</renderer-type>
</component>
</tag>
+ <tag>
+ <tag-name>taintHistory</tag-name>
+ <component>
+ <component-type>org.apache.myfaces.scripting.components.TaintHistory</component-type>
+ <renderer-type>org.apache.myfaces.scripting.components.TaintHistoryRenderer</renderer-type>
+ </component>
+ </tag>
+
+
</facelet-taglib>
Added: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistory.java?rev=919196&view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistory.java (added)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistory.java Thu Mar 4 22:03:09 2010
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.javaloader.componentTest;
+
+import javax.faces.component.FacesComponent;
+import javax.faces.component.UIOutput;
+
+/**
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+@FacesComponent("org.apache.myfaces.scripting.components.TaintHistory")
+public class TaintHistory extends UIOutput {
+
+ static final int DEFAULT_NO_ENTRIES = 10;
+
+ enum PropertyKeys {
+ noEntries, filter
+ }
+
+ public TaintHistory() {
+ setRendererType("org.apache.myfaces.scripting.components.TaintHistoryRenderer");
+ }
+
+ public void setNoEntries(int entries) {
+ if (entries < 0)
+ entries = DEFAULT_NO_ENTRIES;
+ getStateHelper().put(PropertyKeys.noEntries, entries);
+ }
+
+ public int getNoEntries() {
+ Integer retVal = (Integer) getStateHelper().eval(PropertyKeys.noEntries);
+ if (retVal == null) {
+ retVal = DEFAULT_NO_ENTRIES;
+ }
+ return retVal;
+ }
+
+ public void setFilter(int filter) {
+ getStateHelper().put(PropertyKeys.filter, filter);
+ }
+
+ public String getFilter() {
+ return (String) getStateHelper().eval(PropertyKeys.filter);
+ }
+}
Propchange: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistory.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistoryRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistoryRenderer.java?rev=919196&view=auto
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistoryRenderer.java (added)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistoryRenderer.java Thu Mar 4 22:03:09 2010
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.javaloader.componentTest;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.myfaces.scripting.api.ScriptingConst;
+import org.apache.myfaces.scripting.components.CompilerComponent;
+import org.apache.myfaces.scripting.core.util.WeavingContext;
+import org.apache.myfaces.scripting.refresh.ReloadingMetadata;
+import org.apache.myfaces.scripting.sandbox.compiler.CompilationResult;
+import org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.render.FacesRenderer;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.logging.Logger;
+
+/**
+ * A renderer which displays our taint history
+ *
+ * @author Werner Punz (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+@FacesRenderer(componentFamily = "javax.faces.Output", rendererType = "org.apache.myfaces.scripting.components.TaintHistoryRenderer")
+public class TaintHistoryRenderer extends HtmlTextRendererBase {
+ static Logger _log = Logger.getLogger(JavaTestRenderer1.class.getName());
+
+ @Override
+ public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
+ super.encodeBegin(context, component);
+
+ ResponseWriter wrtr = FacesContext.getCurrentInstance().getResponseWriter();
+
+ startDiv(component, wrtr, "historyBox");
+ int lastTainted = ((TaintHistory)component).getNoEntries();
+
+ Collection<ReloadingMetadata> result = WeavingContext.getRefreshContext().getLastTainted(lastTainted);
+ if (result == null || result.isEmpty()) {
+ wrtr.write("No taint history found");
+ }
+ endDiv(wrtr);
+
+ wrtr.flush();
+
+ }
+
+ private void writeWarnings(UIComponent component, ResponseWriter wrtr, CompilationResult result) throws IOException {
+ startDiv(component, wrtr, "warnings");
+ for (CompilationResult.CompilationMessage msg : result.getWarnings()) {
+ startDiv(component, wrtr, "line");
+ writeDiv(component, wrtr, "lineNo", String.valueOf(msg.getLineNumber()));
+ writeDiv(component, wrtr, "message", msg.getMessage());
+ endDiv(wrtr);
+ }
+ endDiv(wrtr);
+ }
+
+ private void writeWarningsLabel(UIComponent component, ResponseWriter wrtr, CompilerComponent compilerComp) throws IOException {
+ if (!StringUtils.isBlank(compilerComp.getWarningsLabel())) {
+ startDiv(component, wrtr, "warningsLabel");
+ wrtr.write(compilerComp.getWarningsLabel());
+ endDiv(wrtr);
+ }
+ }
+
+ private void writeErrors(UIComponent component, ResponseWriter wrtr, CompilationResult result) throws IOException {
+ startDiv(component, wrtr, "errors");
+ for (CompilationResult.CompilationMessage msg : result.getErrors()) {
+ startDiv(component, wrtr, "line");
+ writeDiv(component, wrtr, "lineNo", String.valueOf(msg.getLineNumber()));
+ writeDiv(component, wrtr, "message", msg.getMessage());
+ endDiv(wrtr);
+ }
+ endDiv(wrtr);
+ }
+
+ private String writeDiv(UIComponent component, ResponseWriter wrtr, String styleClass, String value) throws IOException {
+ startDiv(component, wrtr, styleClass);
+ wrtr.write(value);
+ endDiv(wrtr);
+ return "";
+ }
+
+ private void endDiv(ResponseWriter wrtr) throws IOException {
+ wrtr.endElement("div");
+ }
+
+ private void startDiv(UIComponent component, ResponseWriter wrtr, String styleClass) throws IOException {
+ wrtr.startElement("div", component);
+ wrtr.writeAttribute("class", styleClass, null);
+ }
+
+ private void writeErrorsLabel(UIComponent component, ResponseWriter wrtr, CompilerComponent compilerComp) throws IOException {
+ if (!StringUtils.isBlank(compilerComp.getErrorsLabel())) {
+ startDiv(component, wrtr, "errorsLabel");
+ wrtr.write(compilerComp.getErrorsLabel());
+ endDiv(wrtr);
+ }
+ }
+
+ private void copyCompilationResult(CompilationResult result, CompilationResult tempResult) {
+ result.getErrors().addAll(tempResult.getErrors());
+ result.getWarnings().addAll(tempResult.getWarnings());
+ }
+}
Propchange: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistoryRenderer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/componentTest/TaintHistoryRenderer.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL