dflorey 2004/06/02 06:58:53
Modified: proposals/projector/src/java/org/apache/slide/projector/processor/xml
XPathQuery.java
proposals/projector/src/java/org/apache/slide/projector/engine
ResultConfiguration.java Process.java
ParameterConfiguration.java
proposals/projector/src/java/org/apache/slide/projector
Store.java
proposals/projector/src/java/org/apache/slide/projector/connector/webdav
WebdavConnector.java
proposals/projector/src/java/org/apache/slide/projector/application
ApplicationManager.java
Added: proposals/projector/src/java/org/apache/slide/projector/processor/query
ResultResolver.java
Log:
Improved DASLQuery-handling and fixed some bugs in the real core...
Revision Changes Path
1.3 +28 -24
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/xml/XPathQuery.java
Index: XPathQuery.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/xml/XPathQuery.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XPathQuery.java 1 Jun 2004 07:49:58 -0000 1.2
+++ XPathQuery.java 2 Jun 2004 13:58:53 -0000 1.3
@@ -28,16 +28,7 @@
public Value process(Value input, Context context) throws Exception {
XPath xPath = XPath.newInstance(((StringValue)input).toString());
List nodeList = xPath.selectNodes(rootElement);
- if ( nodeList.size() > 1 ) {
- List resources = new ArrayList();
- for ( Iterator i = nodeList.iterator(); i.hasNext(); ) {
- resources.add(createResourceFromNode(i.next()));
- }
- Value[] array = new Value[resources.size()];
- return new ArrayValue((Value [])resources.toArray(array));
- } else {
- return createResourceFromNode(nodeList.get(0));
- }
+ return createValueFromNodeList(nodeList);
}
public ParameterDescriptor getParameterDescriptor() {
@@ -56,19 +47,32 @@
}
}
- private Value createResourceFromNode(Object node) throws ProcessException {
- if ( node instanceof Element ) {
- return new ElementValue((Element)node);
- } else if ( node instanceof Attribute ) {
- return new StringValue(((Attribute)node).getValue());
- } else if ( node instanceof Text ) {
- return new StringValue(((Text)node).getText());
- } else if ( node instanceof Comment ) {
- return new StringValue(((Comment)node).getText());
- } else if ( node instanceof CDATA ) {
- return new StringValue(((CDATA)node).toString());
- } else if ( node instanceof ProcessingInstruction ) {
- return new StringValue(((ProcessingInstruction)node).getData());
+ public static Value createValueFromNodeList(List nodeList) throws
ProcessException {
+ if ( nodeList.size() > 1 ) {
+ List resources = new ArrayList();
+ for ( Iterator i = nodeList.iterator(); i.hasNext(); ) {
+ resources.add(createValueFromNode(i.next()));
+ }
+ Value[] array = new Value[resources.size()];
+ return new ArrayValue((Value [])resources.toArray(array));
+ } else {
+ return createValueFromNode(nodeList.get(0));
+ }
+ }
+
+ public static Value createValueFromNode(Object node) throws ProcessException {
+ if ( node instanceof Element ) {
+ return new ElementValue((Element)node);
+ } else if ( node instanceof Attribute ) {
+ return new StringValue(((Attribute)node).getValue());
+ } else if ( node instanceof Text ) {
+ return new StringValue(((Text)node).getText());
+ } else if ( node instanceof Comment ) {
+ return new StringValue(((Comment)node).getText());
+ } else if ( node instanceof CDATA ) {
+ return new StringValue(((CDATA)node).toString());
+ } else if ( node instanceof ProcessingInstruction ) {
+ return new StringValue(((ProcessingInstruction)node).getData());
}
throw new ProcessException(new ErrorMessage("unconvertableJDomNode"));
}
1.5 +26 -6
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/ResultConfiguration.java
Index: ResultConfiguration.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/ResultConfiguration.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ResultConfiguration.java 1 Jun 2004 07:49:54 -0000 1.4
+++ ResultConfiguration.java 2 Jun 2004 13:58:53 -0000 1.5
@@ -4,6 +4,7 @@
import org.apache.slide.projector.Context;
import org.apache.slide.projector.Result;
import org.apache.slide.projector.Store;
+import org.apache.slide.projector.descriptor.ResultEntryDescriptor;
import org.apache.slide.projector.util.StoreHelper;
import org.apache.slide.projector.value.MapValue;
import org.apache.slide.projector.value.StreamableValue;
@@ -56,8 +57,9 @@
return name;
}
- protected void storeValue(Value value, Result result, Context context) {
- if (presentable ) {
+ protected void storeValue(Value value, Store stepStore, Result result,
ResultEntryDescriptor[] resultEntryDescriptors, Context context) {
+ // FIXME: Throw process exception instead of severe logging
+ if (presentable ) {
if ( value instanceof StreamableValue ) {
if ( context instanceof HttpContext ) {
((HttpContext)context).setPresentableResource((StreamableValue)value);
@@ -68,11 +70,29 @@
logger.log(Level.SEVERE, "Only resources of type StreamableResource
can be presented!");
}
}
- if ( store == Store.NONE ) {
- } else if ( store == Store.OUTPUT ) {
- result.addResultEntry(key, value);
+ Store resultStore = stepStore;
+ if ( store == Store.OUTPUT ) {
+ // check if result is defined
+ boolean resultDefined = false;
+ for ( int i = 0; i < resultEntryDescriptors.length; i++ ) {
+ if ( resultEntryDescriptors[i].getName().equals(key) ) {
+ // check if result matches description
+ if (
ContentType.matches(resultEntryDescriptors[i].getContentType(),
value.getContentType()) ) {
+ result.addResultEntry(key, value);
+ resultDefined = true;
+ break;
+ } else {
+ logger.log(Level.SEVERE, "Storing result with key '"+key+"'
failed, because content type of generated result is '"+value.getContentType()+"' and
does not match defined content type '"+resultEntryDescriptors[i].getContentType()+"'");
+ }
+ }
+ }
+ if ( !resultDefined ) {
+ logger.log(Level.SEVERE, "Storing result failed, because result
with key '"+key+"' is not defined in processor description!");
+ }
} else {
- Store resultStore = context.getStore(store);
+ if ( store != Store.NONE ) {
+ resultStore = context.getStore(store);
+ }
if ( resultStore == null ) {
logger.log(Level.SEVERE, "Storing result with key '"+key+"' failed,
because store '"+Store.stores[store]+"' in not available in context '"+context+"'");
} else {
1.9 +19 -17
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/Process.java
Index: Process.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/Process.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Process.java 1 Jun 2004 14:48:42 -0000 1.8
+++ Process.java 2 Jun 2004 13:58:53 -0000 1.9
@@ -62,7 +62,7 @@
this.parameterDescriptors = (ParameterDescriptor
[])parameterDescriptors.toArray(new ParameterDescriptor[parameterDescriptors.size()]);
List outputResults =
XPath.newInstance("/process/description/output/result").selectNodes(rootElement);
List resultEntryDescriptors = new ArrayList();
- for ( Iterator i = inputParamters.iterator(); i.hasNext(); ) {
+ for ( Iterator i = outputResults.iterator(); i.hasNext(); ) {
Element outputResult = (Element)i.next();
String name = outputResult.getAttributeValue("name");
String description =
outputResult.getAttributeValue("description");
@@ -126,18 +126,20 @@
public Result process(Map parameter, Context context) throws Exception {
URI processorUri =
ProcessorManager.getInstance().getProcessorDescriptor(this).getUri();
- context.setProcess(processorUri);
- String nextStep = getStep(firstStep, context);
- Result result = null;
- Step step;
+ context.setProcess(processorUri); //
Remember current process in context
+ String nextStep = getStep(firstStep, context); // Lookup the first
step of this process
+ Store stepStore = new Cache(); //
This store is used to allow stack-like result/parameter delivery between steps
+ Result result = new Result(OK); // The
result of this process processor
+ Result stepResult = null; // The
result of the last executed step
+ Step step;
// The current step
do {
logger.log(Level.INFO, "Processing step: " + nextStep);
- context.setStep(nextStep);
+ context.setStep(nextStep);
// Remember current step in context
step = (Step)steps.get(nextStep);
if (step == null) throw new ProcessException(new
ErrorMessage("stepNotFound", new String[]{nextStep}));
Processor processor =
ProcessorManager.getInstance().getProcessor(step.getProcessorURI());
try {
- Map processorParameters = loadParameters(step,
processor, parameter, result, context);
+ Map processorParameters = loadParameters(step,
processor, parameter, stepStore, context);
if ( processor instanceof EnvironmentConsumer ) {
checkRequirements((EnvironmentConsumer)processor, context);
}
@@ -145,12 +147,12 @@
try {
if (step.getExpression() == null ) {
// no expression set, so invoke
processor
- result =
processor.process(processorParameters, context);
- saveResults(step, result, context);
+ stepResult =
processor.process(processorParameters, context);
+ saveResults(step, stepResult,
stepStore, result, getResultDescriptor().getResultEntryDescriptors(), context);
} else {
// expression set, so schedule this
processor as job
Scheduler.getInstance().addJob(step.getExpression(), step.getProcessorURI(),
processorParameters, step.repeat(), step.isPersistent());
- result = new Result(OK);
+ stepResult = new Result(OK);
}
nextStep = routeState(step, result.getState());
} catch (Exception e) {
@@ -160,7 +162,8 @@
throw new ValidationException(new
ErrorMessage("validationFailed", new Object[] { step.getProcessorURI(), nextStep }),
exception);
}
} while (nextStep != null);
- return generateResult(getState(step, result.getState()), result);
+ result.setState(getState(step, stepResult.getState()));
+ return result;
}
public ParameterDescriptor[] getParameterDescriptors() {
@@ -246,7 +249,7 @@
return key;
}
- static Map loadParameters(Step step, Processor processor, Map parameter,
Result previousResult, Context context) throws Exception {
+ static Map loadParameters(Step step, Processor processor, Map parameter, Store
stepStore, Context context) throws Exception {
// Collect parameters for this processor
Map parameters = new HashMap();
ParameterDescriptor[] parameterDescriptors =
processor.getParameterDescriptors();
@@ -263,7 +266,7 @@
}
} else if ( parameterConfiguration != null ) {
try {
- Value validatedValue =
parameterConfiguration.getValidatedValue(parameterDescriptor, parameter,
previousResult, context);
+ Value validatedValue =
parameterConfiguration.getValidatedValue(parameterDescriptor, parameter, stepStore,
context);
parameters.put(parameterDescriptor.getName(),
validatedValue);
} catch ( ValidationException exception ) {
throw new ProcessException(new
ErrorMessage("invalidParameter", new String[]{parameterDescriptor.getName()}),
exception);
@@ -273,14 +276,13 @@
return parameters;
}
- private static void saveResults(Step step, Result result, Context context) {
+ private static void saveResults(Step step, Result stepResult, Store stepStore,
Result result, ResultEntryDescriptor[] resultEntryDescriptors, Context context) {
// save results by using result configuration
-
for (Iterator i =
step.getResultConfigurations().entrySet().iterator(); i.hasNext();) {
Map.Entry entry = (Map.Entry)i.next();
String resultName = (String)entry.getKey();
- Value resultValue =
(Value)result.getResultEntries().get(resultName);
-
((ResultConfiguration)entry.getValue()).storeValue(resultValue, result, context);
+ Value resultValue =
(Value)stepResult.getResultEntries().get(resultName);
+
((ResultConfiguration)entry.getValue()).storeValue(resultValue, stepStore, result,
resultEntryDescriptors, context);
}
}
1.5 +11 -11
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/ParameterConfiguration.java
Index: ParameterConfiguration.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/engine/ParameterConfiguration.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ParameterConfiguration.java 1 Jun 2004 07:49:54 -0000 1.4
+++ ParameterConfiguration.java 2 Jun 2004 13:58:53 -0000 1.5
@@ -55,8 +55,8 @@
this.configuration = configuration;
}
- public Value getValidatedValue(ParameterDescriptor descriptor, Map parameter,
Result result, Context context) throws ProcessException, IOException {
- Object evaluatedValue = configuration.getEvaluatedValue(parameter, result,
context);
+ public Value getValidatedValue(ParameterDescriptor descriptor, Map parameter,
Store stepStore, Context context) throws ProcessException, IOException {
+ Object evaluatedValue = configuration.getEvaluatedValue(parameter,
stepStore, context);
if ( evaluatedValue == null && !descriptor.isRequired() ) {
return descriptor.getDefaultValue();
} else {
@@ -67,7 +67,7 @@
public interface Configuration {
public void configure(Element element);
- public Object getEvaluatedValue(Map parameter, Result result, Context context)
throws ProcessException, IOException;
+ public Object getEvaluatedValue(Map parameter, Store stepStore, Context
context) throws ProcessException, IOException;
}
public abstract class EnclosingConfiguration implements Configuration {
@@ -97,10 +97,10 @@
return (Configuration[])elements.toArray(configurations);
}
- public Object getEvaluatedValue(Map parameter, Result result, Context
context) throws ProcessException, IOException {
+ public Object getEvaluatedValue(Map parameter, Store stepStore, Context
context) throws ProcessException, IOException {
List array = new ArrayList();
for ( Iterator i = elements.iterator(); i.hasNext(); ) {
- Object evaluatedValue =
((Configuration)i.next()).getEvaluatedValue(parameter, result, context);
+ Object evaluatedValue =
((Configuration)i.next()).getEvaluatedValue(parameter, stepStore, context);
array.add(evaluatedValue);
}
return array;
@@ -119,11 +119,11 @@
return (Configuration[])entries.toArray(configurations);
}
- public Object getEvaluatedValue(Map parameter, Result result, Context
context) throws ProcessException, IOException {
+ public Object getEvaluatedValue(Map parameter, Store stepStore, Context
context) throws ProcessException, IOException {
Map map = new HashMap();
for ( Iterator i = entries.iterator(); i.hasNext(); ) {
MapEntryConfiguration entry = (MapEntryConfiguration)i.next();
- map.put(entry.getKey(), entry.getEvaluatedValue(parameter, result,
context));
+ map.put(entry.getKey(), entry.getEvaluatedValue(parameter,
stepStore, context));
}
return map;
}
@@ -146,8 +146,8 @@
return new Configuration[] { configuration };
}
- public Object getEvaluatedValue(Map parameter, Result result, Context
context) throws ProcessException, IOException {
- return configuration.getEvaluatedValue(parameter, result, context);
+ public Object getEvaluatedValue(Map parameter, Store stepStore, Context
context) throws ProcessException, IOException {
+ return configuration.getEvaluatedValue(parameter, stepStore, context);
}
public String getKey() {
@@ -175,12 +175,12 @@
processorUri = ( processor == null ? null : new URIValue(processor) );
}
- public Object getEvaluatedValue(Map parameter, Result result, Context
context) throws ProcessException, IOException {
+ public Object getEvaluatedValue(Map parameter, Store stepStore, Context
context) throws ProcessException, IOException {
Object value = getValue();
if (isStoreUsed()) {
String key = Process.evaluateKey(storeKey, context);
if ( getStore() == Store.NONE ) {
- if (result != null) value = result.getResultEntries().get(key);
+ value = stepStore.get(key);
} else if ( getStore() == Store.INPUT ) {
value = parameter.get(key);
} else {
1.3 +1 -1
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/Store.java
Index: Store.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/Store.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Store.java 6 May 2004 12:54:11 -0000 1.2
+++ Store.java 2 Jun 2004 13:58:53 -0000 1.3
@@ -4,7 +4,7 @@
public interface Store {
public final static int NONE = -1;
- public final static int REQUEST_PARAMETER = 0; // Reqeust parameter (can only
be of type String)
+ public final static int REQUEST_PARAMETER = 0; // Reqeust parameter (can only
be of type String or String[])
public final static int REQUEST_ATTRIBUTE = 1; // Request attribute
public final static int REQUEST_HEADER = 2;
public final static int SESSION = 3;
1.8 +16 -5
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/connector/webdav/WebdavConnector.java
Index: WebdavConnector.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/connector/webdav/WebdavConnector.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- WebdavConnector.java 1 Jun 2004 16:13:10 -0000 1.7
+++ WebdavConnector.java 2 Jun 2004 13:58:53 -0000 1.8
@@ -141,19 +141,30 @@
searchMethod.setDoAuthentication(true);
HttpState httpState = new HttpState();
httpState.setCredentials(null, Constants.REPOSITORY_HOST, credentials);
- searchMethod.execute(httpState, new
HttpConnection(Constants.REPOSITORY_HOST, Constants.REPOSITORY_PORT,
Constants.REPOSITORY_PROTOCOL));
- List resources = new ArrayList();
+ int state = searchMethod.execute(httpState, new
HttpConnection(Constants.REPOSITORY_HOST, Constants.REPOSITORY_PORT,
Constants.REPOSITORY_PROTOCOL));
+ if ( state != HttpStatus.SC_MULTI_STATUS ) {
+ throw new IOException("Received status code "+state+" when doing SEARCH
with query="+query);
+ }
+ List values = new ArrayList();
for ( Enumeration e = searchMethod.getAllResponseURLs();
e.hasMoreElements(); ) {
+ Map searchResults = new HashMap();
String uri = (String)e.nextElement();
+ for ( Enumeration pe = searchMethod.getResponseProperties(uri);
pe.hasMoreElements(); ) {
+ Property property = (Property)pe.nextElement();
+ searchResults.put(property.getLocalName(),
property.getPropertyAsString());
+ }
if ( uri.indexOf(Constants.REPOSITORY_DOMAIN) > 0 ) {
uri =
uri.substring(uri.indexOf(Constants.REPOSITORY_DOMAIN));
}
- Value resource = getResource(new URIValue(uri), credentials);
+ searchResults.put("uri", uri);
+ /*
+ Value resource = getResource(new URIValue(uri), credentials);
if ( resource != null ) {
resources.add(resource);
}
+ */
+ values.add(new MapValue(searchResults));
}
- Value[] resourceArray = new Value[resources.size()];
- return (Value [])resources.toArray(resourceArray);
+ return (Value [])values.toArray(new Value[values.size()]);
}
}
1.1
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/query/ResultResolver.java
Index: ResultResolver.java
===================================================================
/*
*
* ====================================================================
*
* Copyright 2004 The Apache Software Foundation
*
* Licensed 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.slide.projector.processor.query;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.slide.projector.Context;
import org.apache.slide.projector.Processor;
import org.apache.slide.projector.Result;
import org.apache.slide.projector.URI;
import org.apache.slide.projector.connector.ConnectorFactory;
import org.apache.slide.projector.descriptor.ArrayValueDescriptor;
import org.apache.slide.projector.descriptor.BooleanValueDescriptor;
import org.apache.slide.projector.descriptor.MapValueDescriptor;
import org.apache.slide.projector.descriptor.ParameterDescriptor;
import org.apache.slide.projector.descriptor.ResultDescriptor;
import org.apache.slide.projector.descriptor.ResultEntryDescriptor;
import org.apache.slide.projector.descriptor.StateDescriptor;
import org.apache.slide.projector.descriptor.StringValueDescriptor;
import org.apache.slide.projector.descriptor.URIValueDescriptor;
import org.apache.slide.projector.i18n.DefaultMessage;
import org.apache.slide.projector.i18n.ParameterMessage;
import org.apache.slide.projector.processor.SimpleProcessor;
import org.apache.slide.projector.processor.xml.XPathQuery;
import org.apache.slide.projector.value.ArrayValue;
import org.apache.slide.projector.value.BooleanValue;
import org.apache.slide.projector.value.DocumentValue;
import org.apache.slide.projector.value.MapValue;
import org.apache.slide.projector.value.MultipleStreamableValue;
import org.apache.slide.projector.value.NullValue;
import org.apache.slide.projector.value.StreamableValue;
import org.apache.slide.projector.value.Value;
import org.jdom.xpath.XPath;
/**
* @author dflorey
*/
public class ResultResolver implements Processor {
private final static String URI_ENTRY = "uri";
private final static String INSTRUCTIONS = "instructions";
private final static String INCLUDE_CONTENT = "includeContent";
private final static String CONTENT_ENTRY = "content";
private final static ParameterDescriptor[] parameterDescriptors =
new ParameterDescriptor[] {
new ParameterDescriptor(
SimpleProcessor.INPUT,
new
ParameterMessage("resultResolver/paramter/input"),
new ArrayValueDescriptor(new
MapValueDescriptor(
new
ParameterDescriptor(URI_ENTRY,
new
ParameterMessage("resultResolver/parameter/input/uri"),
new URIValueDescriptor())))),
new ParameterDescriptor(
INSTRUCTIONS,
new
ParameterMessage("resultResolver/paramter/instructions"),
new MapValueDescriptor(new
ParameterDescriptor(MapValueDescriptor.ALL,
new
ParameterMessage("resultResolver/parameter/instruction/instruction"),
new
StringValueDescriptor())), NullValue.NULL),
new ParameterDescriptor(
INCLUDE_CONTENT,
new
ParameterMessage("resultResolver/paramter/include-content"),
new BooleanValueDescriptor(),
BooleanValue.TRUE)
};
private final static ResultDescriptor resultDescriptor =
new ResultDescriptor(new StateDescriptor[] {
StateDescriptor.OK_DESCRIPTOR },
new ResultEntryDescriptor[] {
new ResultEntryDescriptor(SimpleProcessor.OUTPUT,
new
DefaultMessage("resultResolver/result/output"),
ArrayValue.CONTENT_TYPE, false) });
public Result process(Map parameter, Context context) throws Exception {
Value []values =
((ArrayValue)parameter.get(SimpleProcessor.INPUT)).getArray();
boolean includeContent =
((BooleanValue)parameter.get(INCLUDE_CONTENT)).booleanValue();
Value instructions = (Value)parameter.get(INSTRUCTIONS);
List arrayEntries = new ArrayList();
for ( int i = 0; i < values.length; i++ ) {
Map map = ((MapValue)values[i]).getMap();
Map resultMap = new HashMap();
resultMap.putAll(map);
URI uri = (URI)map.get(URI_ENTRY);
Value content =
ConnectorFactory.getConnector().getResource(uri, context.getCredentials());
if ( instructions instanceof MapValue ) {
if ( includeContent ) {
content = new
MultipleStreamableValue((StreamableValue) content);
}
DocumentValue documentValue = new
DocumentValue((StreamableValue)content);
Map instructionMap = ((MapValue)instructions).getMap();
for ( Iterator j =
instructionMap.entrySet().iterator(); j.hasNext(); ) {
Map.Entry entry = (Map.Entry)j.next();
String key = (String) entry.getKey();
XPath xPath =
XPath.newInstance(entry.getValue().toString());
List nodeList =
xPath.selectNodes(documentValue.getRootElement());
resultMap.put(key,
XPathQuery.createValueFromNodeList(nodeList));
}
}
if ( includeContent ) {
resultMap.put(CONTENT_ENTRY, content);
}
arrayEntries.add(new MapValue(resultMap));
}
return new Result(StateDescriptor.OK, SimpleProcessor.OUTPUT, new
ArrayValue((Value [])arrayEntries.toArray(new Value[arrayEntries.size()])));
}
public ParameterDescriptor[] getParameterDescriptors() {
return parameterDescriptors;
}
public ResultDescriptor getResultDescriptor() {
return resultDescriptor;
}
}
1.5 +1 -1
jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/application/ApplicationManager.java
Index: ApplicationManager.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/application/ApplicationManager.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ApplicationManager.java 1 Jun 2004 16:13:10 -0000 1.4
+++ ApplicationManager.java 2 Jun 2004 13:58:53 -0000 1.5
@@ -71,7 +71,7 @@
if ( !applicationUri.endsWith("/") ) {
applicationUri = applicationUri + "/";
}
- if ( applicationUri.indexOf(Constants.REPOSITORY_DOMAIN) > 0
) {
+ if ( applicationUri.indexOf(Constants.REPOSITORY_DOMAIN) != -1
) {
applicationUri =
applicationUri.substring(applicationUri.indexOf(Constants.REPOSITORY_DOMAIN)+Constants.REPOSITORY_DOMAIN.length());
}
if ( !installedApplications.containsKey(applicationUri) ) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]