ivelin 2002/09/21 15:57:19
Modified: src/java/org/apache/cocoon/acting AbstractAction.java
AbstractXMLFormAction.java SendmailAction.java
src/java/org/apache/cocoon/generation
WebServiceProxyGenerator.java
src/java/org/apache/cocoon/samples/xmlform
UsageFeedbackAction.java WizardAction.java
src/java/org/apache/cocoon/servlet CocoonServlet.java
src/java/org/apache/cocoon/transformation
XMLFormTransformer.java
src/webapp/WEB-INF cocoon.xconf instrumentation.xconf
logkit.xconf
src/webapp/WEB-INF/db cocoondb.properties cocoondb.script
src/webapp/WEB-INF/entities book-cocoon-v10.dtd
changes-v10.dtd document-v10.dtd faq-v10.dtd
javadoc-v04draft.dtd specification-v10.dtd
todo-v10.dtd
src/webapp/samples sitemap.xmap
src/webapp/samples/chaperon/grammars java.rgrm
src/webapp/samples/common/style/xsl/html
simple-samples2html.xsl
src/webapp/samples/hello-world/style/xsl simple-page2swf.xsl
src/webapp/samples/linkstatus linkstatus.xsl
src/webapp/samples/mod-db database.xml schema.sql
src/webapp/samples/profiler page2html.xsl
src/webapp/samples/stylesheets simple-samples2html.xsl
svg-samples2html.xsl
src/webapp/samples/sub/stylesheets simple-samples2html.xsl
src/webapp/samples/webserviceproxy sitemap.xmap
src/webapp/samples/welcome welcome.xhtml
src/webapp/samples/xmlform sitemap.xmap
Log:
patch for
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12721
fixed several problems caused by recent changes in other C2.1 modules
Revision Changes Path
1.8 +3 -3
xml-cocoon2/src/java/org/apache/cocoon/acting/AbstractAction.java
Index: AbstractAction.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/AbstractAction.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- AbstractAction.java 23 Aug 2002 06:49:01 -0000 1.7
+++ AbstractAction.java 21 Sep 2002 22:57:18 -0000 1.8
@@ -3,7 +3,7 @@
============================================================================
The Apache Software License, Version 1.1
============================================================================
-
+
Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
@@ -15,7 +15,7 @@
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
-
+
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
1.7 +113 -14
xml-cocoon2/src/java/org/apache/cocoon/acting/AbstractXMLFormAction.java
Index: AbstractXMLFormAction.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/AbstractXMLFormAction.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AbstractXMLFormAction.java 16 Sep 2002 03:57:27 -0000 1.6
+++ AbstractXMLFormAction.java 21 Sep 2002 22:57:18 -0000 1.7
@@ -85,6 +85,7 @@
import org.apache.avalon.framework.CascadingRuntimeException;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.excalibur.pool.Poolable;
+import org.apache.avalon.excalibur.pool.Recyclable;
import org.apache.excalibur.source.Source;
// Cocoon classes
@@ -104,6 +105,7 @@
// Cocoon Form
import org.apache.cocoon.components.xmlform.Form;
+import org.apache.cocoon.components.xmlform.FormListener;
@@ -129,7 +131,9 @@
*/
public abstract class AbstractXMLFormAction
extends ConfigurableComposerAction
- implements Poolable
+ implements Poolable, Recyclable,
+ FormListener
+
{
public static final String OBJECT_MAP_NEXT_PAGE = "page";
@@ -159,6 +163,57 @@
return PREPARE_RESULT_CONTINUE;
}
+
+ /**
+ *
+ * FormListener callback
+ * called in the beginning Form.populate()
+ * before population starts.
+ *
+ * This is the place to handle unchecked checkboxes, special validation or
+ * application specific rules.
+ *
+ */
+ public void reset( Form form )
+ {
+ // Do Nothing by default
+ return;
+ }
+
+
+ /**
+ * FormListener callback
+ *
+ * Invoked during Form.populate();
+ *
+ * It is invoked before a request parameter is mapped to
+ * an attribute of the form model.
+ *
+ * It is appropriate to use this method for filtering
+ * custom request parameters which do not reference
+ * the model.
+ *
+ * Another appropriate use of this method is for graceful filtering of
invalid
+ * values, in case that knowledge of the system state or
+ * other circumstainces make the standard validation
+ * insufficient. For example if a registering user choses a username which
+ * is already taken - the check requires database transaction, which is
+ * beyond the scope of document validating schemas.
+ * Of course customized Validators can be implemented to do
+ * this kind of domain specific validation
+ * instead of using this method.
+ *
+ *
+ * @return false if the request parameter should not be filtered.
+ * true otherwise.
+ */
+ public boolean filterRequestParameter (Form form, String parameterName)
+ {
+ // in this example we do not expect "custom" parameters
+ return false;
+ }
+
+
/**
* Invoked during the form population process
@@ -200,6 +255,16 @@
src_ = src;
params_ = params;
+
+ // ensure that there is a form available
+ // through the rest of the flow
+ Form form = getForm();
+ if (form == null)
+ {
+ throw new IllegalStateException( "Action could not obtain the Form"
);
+ }
+
+
// find and save the action command
findCommand();
@@ -208,17 +273,30 @@
Map prepareResult = prepare();
if ( prepareResult != null ) return prepareResult;
- // ensure that there is a form available
- // through the rest of the flow
- Form form = getForm();
+ // attache callback hooks to the form
+ // in case the action subclasses are interested in
+ // form events
+ getForm().addFormListener( this );
+ Map result = null;
- // populate form with request parameters
- // population is automatically followed by validation by default.
- // If this is not the desired behaviour, the Form class can be
subclassed
- form.populate( objectModel );
-
-
- return perform();
+ try
+ {
+ // populate form with request parameters
+ // population is automatically followed by validation by default.
+ // If this is not the desired behaviour, the Form class can be
subclassed
+ form.populate( objectModel );
+
+ result = perform();
+ }
+ finally
+ {
+ // since the action may be recycled immediately after
+ // the request. It is important that it's callback hooks
+ // are removed from the Form.
+ getForm().removeFormListener( this );
+ }
+
+ return result;
}
@@ -421,8 +499,29 @@
// default to request scope
formScope = Form.SCOPE_REQUEST;
}
+
return formScope;
}
+
+
+
+ /**
+ * Recycle this component.
+ */
+ public void recycle()
+ {
+
+ redirector_ = null;
+ resolver_ = null;
+ objectModel_ = null;
+ params_ = null;
+ src_ = null;
+ request_ = null;
+ session_ = null;
+ command_ = null;
+
+ }
+
// action state objects
1.8 +3 -3
xml-cocoon2/src/java/org/apache/cocoon/acting/SendmailAction.java
Index: SendmailAction.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/SendmailAction.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SendmailAction.java 11 Sep 2002 08:26:44 -0000 1.7
+++ SendmailAction.java 21 Sep 2002 22:57:18 -0000 1.8
@@ -8,10 +8,10 @@
Redistribution and use in source and binary forms, with or without modifica-
tion, are permitted provided that the following conditions are met:
-
+
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
-
+
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
1.2 +10 -2
xml-cocoon2/src/java/org/apache/cocoon/generation/WebServiceProxyGenerator.java
Index: WebServiceProxyGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/generation/WebServiceProxyGenerator.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WebServiceProxyGenerator.java 4 Jul 2002 20:57:47 -0000 1.1
+++ WebServiceProxyGenerator.java 21 Sep 2002 22:57:18 -0000 1.2
@@ -15,7 +15,7 @@
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
-
+
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
@@ -251,7 +251,15 @@
method.setQueryString( urlQryString + "&" + submitQryString );
} // if there are submit parameters
- httpClient.executeMethod( method );
+ int htcode = httpClient.executeMethod( method );
+
+ // @todo: Maybe we should implement some
+ // meaningful reaction to htcodes different than 200
+
+ // @todo: fix-me
+ // This sleep() is a temporary workaround
+ // to avoid NullPointerException in the next line.
+ Thread.currentThread().sleep( 100 );
String ret = method.getResponseBodyAsString();
1.3 +4 -4
xml-cocoon2/src/java/org/apache/cocoon/samples/xmlform/UsageFeedbackAction.java
Index: UsageFeedbackAction.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/samples/xmlform/UsageFeedbackAction.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- UsageFeedbackAction.java 29 Jul 2002 03:07:08 -0000 1.2
+++ UsageFeedbackAction.java 21 Sep 2002 22:57:18 -0000 1.3
@@ -74,7 +74,7 @@
extends AbstractXMLFormAction
{
-
+
// Web Service Response names
final String SERVICE_RESPONSE_OK = "ok";
1.8 +8 -10
xml-cocoon2/src/java/org/apache/cocoon/samples/xmlform/WizardAction.java
Index: WizardAction.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/samples/xmlform/WizardAction.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- WizardAction.java 8 Sep 2002 12:20:28 -0000 1.7
+++ WizardAction.java 21 Sep 2002 22:57:18 -0000 1.8
@@ -128,10 +128,8 @@
}
else if ( getCommand().equals( CMD_START ) )
{
- // reset state by removing old form
- // if one exists
- Form.remove( getObjectModel(), getFormId() );
- getForm().addFormListener( this );
+ // reset workflow state if necessary
+ // ...
return page( VIEW_USERID );
}
@@ -142,9 +140,9 @@
}
- // get ready for action
- // if not ready return page("whereNext");
- return null;
+ // nothing special
+ // continue with form population;
+ return super.PREPARE_RESULT_CONTINUE;
}
1.38 +3 -3
xml-cocoon2/src/java/org/apache/cocoon/servlet/CocoonServlet.java
Index: CocoonServlet.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/servlet/CocoonServlet.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- CocoonServlet.java 21 Sep 2002 15:07:56 -0000 1.37
+++ CocoonServlet.java 21 Sep 2002 22:57:18 -0000 1.38
@@ -15,7 +15,7 @@
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
-
+
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
@@ -49,7 +49,7 @@
*/
package org.apache.cocoon.servlet;
-
+
import org.apache.avalon.excalibur.logger.DefaultLogKitManager;
import org.apache.avalon.excalibur.logger.LogKitManager;
import org.apache.avalon.framework.activity.Initializable;
1.12 +81 -37
xml-cocoon2/src/java/org/apache/cocoon/transformation/XMLFormTransformer.java
Index: XMLFormTransformer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/transformation/XMLFormTransformer.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- XMLFormTransformer.java 8 Sep 2002 23:02:57 -0000 1.11
+++ XMLFormTransformer.java 21 Sep 2002 22:57:18 -0000 1.12
@@ -281,8 +281,14 @@
public final static String TAG_COMMON_ATTR_REF = "ref";
- // the current Form being processed
- private Form currentForm;
+ // the stack of nested forms.
+ // Although nested form tags are not allowed, it is possible
+ // that an output tag (with reference to another form) might be nested
within a form tag.
+ // In this case elements under the output tag (like caption) can reference
properties
+ // of the form of the enclosing output tag.
+
+ private Stack formStack = null;
+
private Object value_;
@@ -317,7 +323,7 @@
namespaceURI = NS;
// init tracking parameters
- currentForm = null;
+ formStack = new Stack();
cannonicalRef = "";
refStack = new Stack();
currentTagDepth = 0;
@@ -328,6 +334,26 @@
/**
+ * Recycle this component.
+ */
+ public void recycle()
+ {
+ // init tracking parameters
+ formStack.clear();
+ formStack = null;
+ cannonicalRef = null;
+ refStack.clear();
+ refStack = null;
+ currentTagDepth = 0;
+ repeatTagDepth = -1;
+ isRecording = false;
+ nodeset = null;
+
+ super.recycle();
+ }
+
+
+ /**
* Start processing elements of our namespace.
* This hook is invoked for each sax event with our namespace.
* @param uri The namespace of the element.
@@ -474,9 +500,9 @@
super.startElement( uri, name, raw, attributes);
}
- // if the currentForm is still not available
- // then we can't process nested form tags
- else if (currentForm != null)
+ // if we are not within an enclosing form
+ // then we can't process the following nested tags
+ else if (!formStack.isEmpty())
{
if (
@@ -485,22 +511,24 @@
TAG_PASSWORD.equals(name) ||
TAG_SELECTBOOLEAN.equals(name) ||
TAG_SELECTONE.equals(name) ||
- TAG_SELECTMANY.equals(name)
+ TAG_SELECTMANY.equals(name)
)
{
- startElementSimpleField( uri, name, raw, attributes, currentForm
);
+ startElementSimpleField( uri, name, raw, attributes );
}
else if (
TAG_CAPTION.equals(name) ||
TAG_VALUE.equals(name)
)
{
- startElementWithOptionalRefAndSimpleContent( uri, name, raw,
attributes, currentForm );
+ startElementWithOptionalRefAndSimpleContent( uri, name, raw,
attributes );
}
else if (
TAG_SUBMIT.equals(name) ||
TAG_CANCEL.equals(name) ||
- TAG_RESET.equals(name) )
+ TAG_RESET.equals(name) ||
+ TAG_ITEM.equals(name)
+ )
{
super.startElement(uri, name, raw, attributes);
}
@@ -510,11 +538,11 @@
// since there are intricacies in
// handling the value sub-element
isHiddenTag = true;
- startElementSimpleField( uri, name, raw, attributes,
currentForm );
+ startElementSimpleField( uri, name, raw, attributes );
}
else
{
- getLogger().error("unknown element [" + String.valueOf(name) +
"]");
+ getLogger().error("pass through element [" +
String.valueOf(name) + "]");
super.startElement(uri, name, raw, attributes);
}
}
@@ -538,23 +566,27 @@
{
String id = attributes.getValue(TAG_FORM_ATTR_ID);
- if ( currentForm != null )
+ if ( !formStack.isEmpty() )
{
- String error = "Form nodes should not be nested ! Current form [id=" +
currentForm.getId() + "], nested form [id=" + String.valueOf(id) + "]";
+ String error = "Form nodes should not be nested ! Current form [id=" +
formStack.peek() + "], nested form [id=" + String.valueOf(id) + "]";
getLogger().error( error );
- throw new SAXException( error );
+ throw new IllegalStateException( error );
}
super.startElement(uri, name, raw, attributes);
// load up the referenced form
- currentForm = Form.lookup( objectModel, id );
+ Form currentForm = Form.lookup( objectModel, id );
// if the form wasn't found, we're in trouble
if (currentForm == null)
{
- getLogger().error("could not find form [id=" + String.valueOf(id) +
"]");
- }
+ String error = "Form is null [id=" + String.valueOf(id) + "]";
+ getLogger().error( error );
+ throw new IllegalStateException( error );
+ };
+
+ formStack.push( currentForm );
} // end of startElementForm
@@ -568,11 +600,11 @@
String formAttr = attributes.getValue( TAG_OUTPUT_ATTR_FORM );
if (formAttr == null)
{
- if (currentForm == null)
+ if ( formStack.isEmpty() )
{
throw new SAXException( "When used outside of a form tag, the
output tag requires an '" + TAG_OUTPUT_ATTR_FORM + "' attribute" );
}
- form = currentForm;
+ form = (Form) formStack.peek();
}
else
{
@@ -657,24 +689,25 @@
String formAttr = attributes.getValue( TAG_OUTPUT_ATTR_FORM );
if (formAttr == null)
{
- if (currentForm == null)
+ if ( formStack.isEmpty() )
{
throw new SAXException( "When used outside of a form tag, the
output tag requires an '" + TAG_OUTPUT_ATTR_FORM + "' attribute" );
}
- form = currentForm;
+ form = (Form) formStack.peek();
}
else
{
form = Form.lookup( objectModel, formAttr );
}
+ formStack.push( form );
- startElementSimpleField( uri, name, raw, attributes, form );
+ startElementSimpleField( uri, name, raw, attributes );
} // end of startElementOutput
- protected void startElementSimpleField(String uri, String name, String
raw, Attributes attributes, Form form)
+ protected void startElementSimpleField(String uri, String name, String
raw, Attributes attributes )
throws SAXException
{
String ref = attributes.getValue(TAG_COMMON_ATTR_REF);
@@ -684,11 +717,13 @@
throw new SAXException( name + " element should provide a '" +
TAG_COMMON_ATTR_REF + "' attribute" );
}
- if ( form == null)
+ if ( formStack.isEmpty() )
{
throw new SAXException( name + " element should be either nested
within a form tag or provide a form attribute" );
}
+ Form form = (Form) formStack.peek();
+
getLogger().debug("[" + String.valueOf( name ) + "] getting value from
form [id=" + form.getId() + ", ref=" + String.valueOf(ref) + "]");
value_ = form.getValue( ref );
@@ -699,32 +734,34 @@
getLogger().debug("Value of form [id=" + form.getId() + ", ref=" +
String.valueOf(ref) + "] = [" + value_ + "]") ;
- // Only render value sub-elements
+ // Only render value sub-elements
// at this point
// if this is not a xf:hidden element.
- if(! isHiddenTag) renderValueSubElements();
+ if(! isHiddenTag) renderValueSubElements();
} // end of startElementSimpleField
- protected void startElementWithOptionalRefAndSimpleContent(String uri,
String name, String raw, Attributes attributes, Form form)
+ protected void startElementWithOptionalRefAndSimpleContent(String uri,
String name, String raw, Attributes attributes )
throws SAXException
{
String ref = attributes.getValue(TAG_COMMON_ATTR_REF);
if (ref == null) // ref attribute is not provided
{
- this.startElement( uri, name, raw, attributes );
+ super.startElement( uri, name, raw, attributes );
return;
}
- if ( form == null)
+ if ( formStack.isEmpty() )
{
throw new SAXException( name + " element should be either nested
within a form tag or provide a form attribute" );
}
+ Form form = (Form) formStack.peek();
+
getLogger().debug("[" + String.valueOf( name ) + "] getting value from
form [id=" + form.getId() + ", ref=" + String.valueOf(ref) + "]");
- value_ = form.getValue( ref );
+ Object value = form.getValue( ref );
// we will only forward the SAX event once we know
// that the value of the tag is available
@@ -733,11 +770,11 @@
getLogger().debug("Value of form [id=" + form.getId() + ", ref=" +
String.valueOf(ref) + "] = [" + value_ + "]") ;
// Now render the character data inside the tag
- String v = String.valueOf( value_ );
+ String v = String.valueOf( value );
super.characters(v.toCharArray(),0,v.length());
} // end of startElementSimpleFieldWithOptionalRef
-
+
/**
* Renders one or more xf:value elements
@@ -872,12 +909,11 @@
}
else if (TAG_FORM.equals(name))
{
- // nullify currentForm since we're getting out of its scope
- currentForm = null;
+ // pop currentForm from stack since we're getting out of its scope
+ formStack.pop();
super.endElement(uri, name, raw);
}
else if (
- TAG_OUTPUT.equals(name) ||
TAG_TEXTBOX.equals(name) ||
TAG_PASSWORD.equals(name) ||
TAG_SELECTBOOLEAN.equals(name) ||
@@ -887,9 +923,15 @@
TAG_CAPTION.equals( name ) ||
TAG_VALUE.equals( name )
)
+ {
+ super.endElement(uri, name, raw);
+ }
+ else if ( TAG_OUTPUT.equals(name) )
{
+ formStack.pop();
super.endElement(uri, name, raw);
}
+
else if (TAG_HIDDEN.equals(name))
{
isHiddenTag = false;
@@ -950,7 +992,7 @@
{
// reset ignore hooks counter
this.ignoreHooksCount = 0;
-
+ Form currentForm = (Form) formStack.peek();
Collection locations = currentForm.locate( nodeset );
Iterator iter = locations.iterator();
// iterate over each node in the nodeset
@@ -1005,6 +1047,8 @@
{
// reset ignore hooks counter
this.ignoreHooksCount = 0;
+
+ Form currentForm = (Form) formStack.peek();
Collection locations = currentForm.locate( nodeset );
Iterator iter = locations.iterator();
1.39 +217 -5 xml-cocoon2/src/webapp/WEB-INF/cocoon.xconf
Index: cocoon.xconf
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/cocoon.xconf,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- cocoon.xconf 23 Aug 2002 09:28:10 -0000 1.38
+++ cocoon.xconf 21 Sep 2002 22:57:18 -0000 1.39
@@ -13,8 +13,20 @@
<!-- ===================== General Components =========================== -->
- <xml-parser class="org.apache.avalon.excalibur.xml.JaxpParser"
- logger="core.xml-parser" pool-grow="4" pool-max="32"
pool-min="8">
+
+ <!-- HSQLDB Server for samples:
+ Comment this section out if you don't care about the samples.
+ port : number port where the server is listening
+ silent : true/false display all queries
+ trace : true/false display JDBC trace messages
+ -->
+ <hsqldb-server class="org.apache.cocoon.components.hsqldb.ServerImpl"
logger="core.hsqldb-server" pool-max="1" pool-min="1">
+ <parameter name="port" value="9002"/>
+ <parameter name="silent" value="true"/>
+ <parameter name="trace" value="false"/>
+ </hsqldb-server>
+
+<xml-parser class="org.apache.avalon.excalibur.xml.JaxpParser"
logger="core.xml-parser" pool-grow="4" pool-max="32" pool-min="8">
<!-- Parser:
The default parser used in Apache Cocoon is
@@ -80,6 +92,33 @@
<parameter name="use-persistent-cache" value="true"/>
</transient-store>
+ <!-- Persistent store for the cache. Two store implementations to choose
+ from:
+ * FilesystemStore: Simple. Dependable. Thorougly tested.
+ * JispFilesystemStore: Scalable. New kid on the block. Not
thorougly tested.
+
+ Common configuration parameters:
+ use-cache-directory: Indicates that cache directory specified in
+ web.xml should be used.
+ use-work-directory: Indicates that work directory specified in
+ web.xml should be used.
+ directory: Specifies directory to use. Absolute or relative to the
+ work directory.
+
+ JispFilesystemStore configuration parameters
+ (in addition to common parameters):
+ datafile: name of the store file to use.
+ indexfile: name of the index file to use.
+ order: FIXME: put description here.
+ -->
+ <persistent-store
class="org.apache.cocoon.components.store.JispFilesystemStore"
logger="core.store.persistent">
+ <parameter name="use-cache-directory" value="true"/>
+ <parameter name="datafile" value="cocoon-cache.dat"/>
+ <parameter name="indexfile" value="cocoon-cache.idx"/>
+ <parameter name="order" value="2701"/>
+ </persistent-store>
+
+
<!-- Store Janitor:
Be careful with the heapsize and freememory parameters. Wrong values can
cause high cpu usage. Example configuration:
@@ -148,7 +187,15 @@
<!-- file protocol : this is a WriteableSource -->
<protocol class="org.apache.cocoon.components.source.FileSourceFactory"
name="file"/>
- </source-handler>
+
+
+ <!-- xmldb pseudo protocol -->
+ <protocol class="org.apache.cocoon.components.source.XMLDBSourceFactory"
name="xmldb">
+ <!-- Xindice driver -->
+ <driver class="org.apache.xindice.client.xmldb.DatabaseImpl"
type="xindice"/>
+ <!-- Add here other XML:DB compliant databases drivers -->
+ </protocol>
+</source-handler>
<!-- Source Factories
Each source factory adds a special uri protocol to the system.
@@ -161,7 +208,18 @@
<!-- file protocol : this is a WriteableSource -->
<component-instance
class="org.apache.cocoon.components.source.impl.FileSourceFactory" name="file"/>
- </source-factories>
+
+
+ <!-- xmldb pseudo protocol -->
+ <component-instance
class="org.apache.cocoon.components.source.impl.SourceFactoryWrapper"
name="xmldb">
+ <source-factory
class="org.apache.cocoon.components.source.XMLDBSourceFactory">
+ <!-- Xindice driver -->
+ <driver class="org.apache.xindice.client.xmldb.DatabaseImpl"
type="xindice"/>
+ <!-- Add here other XML:DB compliant databases drivers -->
+ </source-factory>
+ </component-instance>
+
+</source-factories>
<!-- The XMLizer converts different mime-types to XML -->
<xmlizer>
@@ -479,4 +537,158 @@
<parameter name="verbosity" value="1"/>
</entity-resolver>
-</cocoon>
+
+
+ <!-- Flow interpreter support.
+
+ The attributes recognized by the <flow-interpreters> element are:
+
+ default (string value):
+
+ the default interpreted language assumed for <map:script>
+ elements which do not specify a "language" attribute. If not
+ present, the first language that's described within the
+ <flow-interpreters> element is assumed to be the default
+ language.
+
+ reload-scripts (boolean value, default false):
+
+ whether to check if the scripts source files are
+ modified. Checking for modification is an expensive
+ operation, so leave it disabled in a production
+ environment. If not present it is assumed to be "false". When
+ "true" *all* script files are checked for modification on
+ each function invocation done using <map:call
+ function="...">, but not more frequent than the value of
+ "check-time" (see below).
+
+ check-time (long value, default 1000):
+
+ time in miliseconds between the checks for the last
+ modification date of script files.
+
+ Within <flow-interpreters> only <component-instance> elements are
+ recognized. The attributes recognized by this element are "name"
+ and "class". "name" specifies the name of a scripting language,
+ and "class" defines the Java class that implements it. See
+ org.apache.cocoon.components.flow.Interpreter for the Cocoon
+ interface with an scripting language interpreter.
+
+ -->
+
+ <flow-interpreters check-time="2000" default="JavaScript" logger="flow"
reload-scripts="true">
+
+ <component-instance
class="org.apache.cocoon.components.flow.javascript.JavaScriptInterpreter"
name="JavaScript">
+
<load-on-startup>resource://org/apache/cocoon/components/flow/javascript/system.js</load-on-startup>
+ </component-instance>
+
+<!--
+ Temporarily disable Scheme, until full support is completed
+-->
+
+<!--
+ <component-instance name="Scheme"
+
class="org.apache.cocoon.components.flow.scheme.SchemeInterpreter">
+
<load-on-startup>resource://org/apache/cocoon/components/flow/scheme/system.scm</load-on-startup>
+ <heap>/WEB-INF/sisc.heap</heap>
+ </component-instance>
+-->
+
+ </flow-interpreters>
+
+ <continuations time-to-live="3600"/>
+
+
+
+ <!-- Profiler:
+ The profiler facilitates the gathering of statistics about timings of
+ different steps of pipelines. Profiler consists of several components:
+ profiling pipeline and profiler generator
+ which are used to generate the profile report. You need to enable all of
+ these components to use profiler.
+ -->
+ <profiler results="10"/>
+
+ <!-- =============== Sitemap In/Out/Database Modules ====================
-->
+
+ <input-modules>
+ <component-instance
class="org.apache.cocoon.components.modules.input.RequestParameterModule"
logger="core.modules.input" name="request"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.RequestAttributeModule"
logger="core.modules.input" name="attribute"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.RequestURIModule"
logger="core.modules.input" name="URI"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.HeaderAttributeModule"
logger="core.modules.input" name="header"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.SessionAttributeModule"
logger="core.modules.input" name="session"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.StringConstantModule"
logger="core.modules.input" name="constant"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.RandomNumberModule"
logger="core.modules.input" name="random"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.DigestMetaModule"
logger="core.modules.input" name="digest"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.DateInputModule"
logger="core.modules.input" name="date"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.NullInputModule"
logger="core.modules.input" name="nullinput"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.CollectionMetaModule"
logger="core.modules.input" name="collection"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.XMLMetaModule"
logger="core.modules.input" name="xmlmeta"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.MapMetaModule"
logger="core.modules.input" name="mapmeta"/>
+ <component-instance
class="org.apache.cocoon.components.modules.input.DefaultsMetaModule"
logger="core.modules.input" name="defaults">
+ <input-module name="request"/>
+ <values>
+ <skin>defaultSkin</skin>
+ <base-url>http://localhost:8080/cocoon</base-url>
+ </values>
+ </component-instance>
+ </input-modules>
+
+ <output-modules>
+ <component-instance
class="org.apache.cocoon.components.modules.output.RequestAttributeOutputModule"
logger="core.modules.output" name="attribute"/>
+ <component-instance
class="org.apache.cocoon.components.modules.output.SessionAttributeOutputModule"
logger="core.modules.output" name="session"/>
+ </output-modules>
+
+ <autoincrement-modules>
+ <component-instance
class="org.apache.cocoon.components.modules.database.HsqlIdentityAutoIncrementModule"
logger="core.modules.auto" name="auto"/>
+<!--
+ Choose the one suitable for your DBMS. You *can* have more than
+ one at a time, but they need to have different names. You then
+ need to specify explicitly, which one to use in your descriptor
+ file.
+
+ <component-instance logger="core.modules.auto" name="auto"
class="org.apache.cocoon.components.modules.database.ManualAutoIncrementModule"/>
+ <component-instance logger="core.modules.auto" name="auto"
class="org.apache.cocoon.components.modules.database.IfxSerialAutoIncrementModule"/>
+ <component-instance logger="core.modules.auto" name="auto"
class="org.apache.cocoon.components.modules.database.MysqlAutoIncrementModule"/>
+-->
+ </autoincrement-modules>
+
+
+ <!-- Search:
+ These are the components that handle the search.
+
+ Cocoon indexer write into an index.
+ Cocoon searcher reads form an index, returning matched hits.
+ Cocoon crawler crawls all links starting from a given base URI.
+ Lucene xml indexer build a lucene document from XML content.
+ -->
+ <cocoon-indexer logger="core.search.indexer"/>
+ <cocoon-searcher logger="core.search.searcher"/>
+ <cocoon-crawler logger="core.search.crawler"/>
+ <lucene-xml-indexer logger="core.search.lucene"/>
+
+
+ <!-- Deli support -->
+ <!-- Uncomment this section to enable DELI
+ <deli class="org.apache.cocoon.components.deli.DeliImpl">
+ <parameter name="deli-config-file"
value="resources/deli/config/deliConfig.xml"/>
+ </deli>
+ -->
+
+
+ <portal-manager logger="core.portal-manager" pool-grow="4" pool-max="32"
pool-min="8"/>
+
+
+
+ <session-manager logger="core.session-manager" pool-grow="4" pool-max="32"
pool-min="8"/>
+
+
+
+ <authentication-manager logger="core.authentication-manager"
pool-grow="4" pool-max="32" pool-min="8">
+ <mediatypes default="html">
+ <media name="wap" useragent="Nokia"/>
+ <media name="wap" useragent="UP"/>
+ <media name="wap" useragent="Wapalizer"/>
+ </mediatypes>
+ </authentication-manager>
+</cocoon>
\ No newline at end of file
1.2 +1 -1 xml-cocoon2/src/webapp/WEB-INF/instrumentation.xconf
Index: instrumentation.xconf
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/instrumentation.xconf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- instrumentation.xconf 16 Sep 2002 14:05:48 -0000 1.1
+++ instrumentation.xconf 21 Sep 2002 22:57:18 -0000 1.2
@@ -27,4 +27,4 @@
</instrument>
</instrumentable>
</instrumentables>
-</instrument>
\ No newline at end of file
+</instrument>
1.11 +15 -0 xml-cocoon2/src/webapp/WEB-INF/logkit.xconf
Index: logkit.xconf
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/logkit.xconf,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- logkit.xconf 12 Jun 2002 20:07:38 -0000 1.10
+++ logkit.xconf 21 Sep 2002 22:57:18 -0000 1.11
@@ -58,6 +58,15 @@
<append>false</append>
</cocoon>
+ <!-- The logger for the xmlform components -->
+ <cocoon id="xmlform">
+ <filename>${context-root}/WEB-INF/logs/xmlform.log</filename>
+ <format type="cocoon">
+ %7.7{priority} %{time} [%{category}] (%{uri})
%{thread}/%{class:short}: %{message}\n%{throwable}
+ </format>
+ <append>false</append>
+ </cocoon>
+
<!--
This log file gets only messages with log level ERROR and below.
-->
@@ -131,5 +140,11 @@
<log-target id-ref="flow"/>
<log-target id-ref="error"/>
</category>
+
+ <category name="xmlform" log-level="DEBUG">
+ <log-target id-ref="xmlform"/>
+ <log-target id-ref="error"/>
+ </category>
+
</categories>
</logkit>
1.8 +1 -1 xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.properties
Index: cocoondb.properties
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.properties,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- cocoondb.properties 4 Jul 2002 20:57:47 -0000 1.7
+++ cocoondb.properties 21 Sep 2002 22:57:18 -0000 1.8
@@ -1,4 +1,4 @@
#HSQL database
-#Thu Jul 04 15:52:54 CDT 2002
+#Mon Sep 16 23:16:08 CDT 2002
version=1.6
modified=yes
1.8 +13 -1 xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.script
Index: cocoondb.script
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.script,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- cocoondb.script 2 Jun 2002 03:33:35 -0000 1.7
+++ cocoondb.script 21 Sep 2002 22:57:18 -0000 1.8
@@ -4,8 +4,8 @@
CREATE TABLE GROUPS(GID INTEGER IDENTITY PRIMARY KEY,GNAME
VARCHAR,UNIQUE(GNAME))
CREATE TABLE USER_GROUPS(UID INTEGER,GID INTEGER,UNIQUE(UID,GID),FOREIGN
KEY(UID)REFERENCES USER(UID),FOREIGN KEY(GID)REFERENCES GROUPS(GID))
CREATE TABLE STATE_TAX(CATEGORY VARCHAR NOT NULL,GROSSTAX_COLLECTED DOUBLE
NOT NULL,NETTAX_COLLECTED DOUBLE NOT NULL,YEAR INTEGER NOT NULL)
-GRANT ALL ON CLASS "java.lang.Math" TO PUBLIC
GRANT ALL ON CLASS "org.hsqldb.Library" TO PUBLIC
+GRANT ALL ON CLASS "java.lang.Math" TO PUBLIC
CREATE USER SA PASSWORD "" ADMIN
CREATE ALIAS DAYNAME FOR "org.hsqldb.Library.dayname"
CREATE ALIAS SPACE FOR "org.hsqldb.Library.space"
@@ -115,5 +115,17 @@
INSERT INTO STATE_TAX VALUES('Horse Racing',1.7921198E7,1.7321198E7,2001)
INSERT INTO STATE_TAX VALUES('Severance',7981539.0,7967438.0,2001)
INSERT INTO STATE_TAX VALUES('School District
Income',1.61257059E8,1.53238001E8,2001)
+/*C1*/CONNECT USER sa PASSWORD ""
+/*C2*/CONNECT USER sa PASSWORD ""
/*C3*/CONNECT USER sa PASSWORD ""
/*C4*/CONNECT USER sa PASSWORD ""
+/*C5*/CONNECT USER sa PASSWORD ""
+/*C6*/CONNECT USER sa PASSWORD ""
+/*C7*/CONNECT USER sa PASSWORD ""
+/*C8*/CONNECT USER sa PASSWORD ""
+/*C9*/CONNECT USER sa PASSWORD ""
+/*C10*/CONNECT USER sa PASSWORD ""
+/*C11*/CONNECT USER sa PASSWORD ""
+/*C12*/CONNECT USER sa PASSWORD ""
+/*C13*/CONNECT USER sa PASSWORD ""
+/*C14*/CONNECT USER sa PASSWORD ""
1.2 +1 -1
xml-cocoon2/src/webapp/WEB-INF/entities/book-cocoon-v10.dtd
Index: book-cocoon-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/WEB-INF/entities/book-cocoon-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- book-cocoon-v10.dtd 2 Jul 2002 14:36:36 -0000 1.1
+++ book-cocoon-v10.dtd 21 Sep 2002 22:57:18 -0000 1.2
@@ -36,7 +36,7 @@
20011031 Initial version. (DC)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
1.2 +1 -1 xml-cocoon2/src/webapp/WEB-INF/entities/changes-v10.dtd
Index: changes-v10.dtd
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/entities/changes-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- changes-v10.dtd 2 Jul 2002 14:36:36 -0000 1.1
+++ changes-v10.dtd 21 Sep 2002 22:57:18 -0000 1.2
@@ -38,7 +38,7 @@
20000316 Added bugfixing attribute. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
1.2 +1 -1 xml-cocoon2/src/webapp/WEB-INF/entities/document-v10.dtd
Index: document-v10.dtd
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/entities/document-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- document-v10.dtd 2 Jul 2002 14:36:36 -0000 1.1
+++ document-v10.dtd 21 Sep 2002 22:57:18 -0000 1.2
@@ -54,7 +54,7 @@
20020223 Allowed "figure" at section level (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
1.2 +1 -1 xml-cocoon2/src/webapp/WEB-INF/entities/faq-v10.dtd
Index: faq-v10.dtd
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/entities/faq-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- faq-v10.dtd 2 Jul 2002 14:36:36 -0000 1.1
+++ faq-v10.dtd 21 Sep 2002 22:57:18 -0000 1.2
@@ -36,7 +36,7 @@
19991129 Initial version. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
1.2 +1 -1
xml-cocoon2/src/webapp/WEB-INF/entities/javadoc-v04draft.dtd
Index: javadoc-v04draft.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/WEB-INF/entities/javadoc-v04draft.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- javadoc-v04draft.dtd 2 Jul 2002 14:36:36 -0000 1.1
+++ javadoc-v04draft.dtd 21 Sep 2002 22:57:18 -0000 1.2
@@ -47,7 +47,7 @@
19991129 Cleaned up DTD. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
1.2 +1 -1
xml-cocoon2/src/webapp/WEB-INF/entities/specification-v10.dtd
Index: specification-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/WEB-INF/entities/specification-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- specification-v10.dtd 2 Jul 2002 14:36:36 -0000 1.1
+++ specification-v10.dtd 21 Sep 2002 22:57:18 -0000 1.2
@@ -31,7 +31,7 @@
19991129 Initial version. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
1.2 +1 -1 xml-cocoon2/src/webapp/WEB-INF/entities/todo-v10.dtd
Index: todo-v10.dtd
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/entities/todo-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- todo-v10.dtd 2 Jul 2002 14:36:36 -0000 1.1
+++ todo-v10.dtd 21 Sep 2002 22:57:18 -0000 1.2
@@ -39,7 +39,7 @@
19991225 Added actions element for better structure (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
1.20 +30 -90 xml-cocoon2/src/webapp/samples/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/sitemap.xmap,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- sitemap.xmap 20 Sep 2002 18:14:40 -0000 1.19
+++ sitemap.xmap 21 Sep 2002 22:57:19 -0000 1.20
@@ -88,16 +88,16 @@
orthogonal to pipelines. Please refer to the docs.
-->
<map:views>
- <map:view name="content" from-label="content">
+ <map:view from-label="content" name="content">
<map:serialize type="xml"/>
</map:view>
- <map:view name="pretty-content" from-label="data">
+ <map:view from-label="data" name="pretty-content">
<map:transform src="common/style/xsl/html/simple-xml2html.xsl"/>
<map:serialize type="html"/>
</map:view>
- <map:view name="links" from-position="last">
+ <map:view from-position="last" name="links">
<map:serialize type="links"/>
</map:view>
@@ -229,7 +229,7 @@
<map:match pattern="welcome">
<map:generate src="samples.xml"/>
- <map:transform type="xalan"
src="common/style/xsl/html/simple-samples2html.xsl"/>
+ <map:transform src="common/style/xsl/html/simple-samples2html.xsl"
type="xalan"/>
<map:serialize/>
</map:match>
</map:pipeline>
@@ -326,7 +326,21 @@
<map:generate src="xmldb:xindice://localhost:4080/db/{1}"/>
<map:serialize type="xml"/>
</map:match>
- </map:pipeline>
+
+
+ <!-- Mount search pages sitemap, for using indexing & searching -->
+ <map:match pattern="search/**">
+ <map:mount check-reload="yes" src="search/" uri-prefix="search"/>
+ </map:match>
+
+
+ <!-- =============== Parent Component Manager ====================== -->
+ <map:match pattern="parentcm">
+ <map:generate src="{1}" type="parentcm"/>
+ <map:transform src="stylesheets/parentcm/time.xsl"/>
+ <map:serialize/>
+ </map:match>
+</map:pipeline>
<!-- main samples pipeline -->
<map:pipeline>
@@ -360,7 +374,7 @@
</map:otherwise>
</map:select>
-->
- <map:transform type="xslt" src="stylesheets/simple-samples2html.xsl"/>
+ <map:transform src="stylesheets/simple-samples2html.xsl" type="xslt"/>
<!-- uncomment the following if you want to use Xalan's interpreter as
the XSLT processor -->
<!-- <map:transform type="xalan"
src="stylesheets/simple-samples2html.xsl"/> -->
<!--
@@ -390,45 +404,6 @@
- <map:match pattern="welcome-svg">
- <map:generate src="docs/samples/samples.xml"/>
- <map:transform src="stylesheets/svg-samples2html.xsl"/>
- <map:transform type="extractor"/>
- <!--
- Here, several transformers are needed to obtain the desired
- result. Note, that the above is not the default transformer but
- one named "extractor". Interestingly enough, this transformer
- does not need any additional configuration or input.
-
- If we look at it's javadocs it says:
-
- "[...] The transformation half of the FragmentExtractor. This
- transformer sieves an incoming stream of xml with embedded SVG
- images and replaces the images with an xlink locator pointing
- to the image. [...]"
-
- So, this interacts with the fragment below, doing the actual
- generating.
- -->
- <map:transform src="stylesheets/fragment-extractor.xsl"/>
- <map:serialize/>
- </map:match>
-
- <map:match pattern="welcome-svg-images/*.png">
- <map:generate src="{1}" type="extractor"/>
- <!--
- Again, citing the javadocs:
-
- "[...] The generation half of
- FragmentExtractor. FragmentExtractor is a transformer-generator
- pair which is designed to allow sitemap managers to extract
- certain nodes from a SAX stream and move them into a separate
- pipeline. The main use for this is to extract inline SVG images
- and serve them up through a separate pipeline, usually
- serializing them to PNG or JPEG format first. [...]"
- -->
- <map:serialize type="svg2png"/>
- </map:match>
@@ -469,23 +444,7 @@
<map:serialize type="xml"/>
</map:match>
- <map:match pattern="hello.svg">
- <map:generate src="docs/samples/hello-page.xml"/>
- <map:transform src="stylesheets/page/simple-page2svg.xsl"/>
- <map:serialize type="svg2jpeg"/>
- </map:match>
- <map:match pattern="hello.wrl">
- <map:generate src="docs/samples/hello-page.xml"/>
- <map:transform src="stylesheets/page/simple-page2vrml.xsl"/>
- <map:serialize type="vrml"/>
- </map:match>
-
- <map:match pattern="hello.pdf">
- <map:generate src="docs/samples/hello-page.xml"/>
- <map:transform src="stylesheets/page/simple-page2fo.xsl"/>
- <map:serialize type="fo2pdf"/>
- </map:match>
<map:match pattern="redirect">
<map:act type="request">
@@ -586,15 +545,6 @@
<!-- ================ Static =========================== -->
- <map:match pattern="fo">
- <map:generate src="docs/samples/fo/readme.fo"/>
- <map:serialize type="fo2pdf"/>
- </map:match>
-
- <map:match pattern="svg">
- <map:generate src="docs/samples/svg/henryV.svg"/>
- <map:serialize type="svg2png"/>
- </map:match>
<map:match pattern="scripts/*">
<map:generate src="docs/samples/scripts/{1}" type="script"/>
@@ -602,14 +552,6 @@
<map:serialize type="html"/>
</map:match>
- <map:match pattern="templates/*">
- <map:generate src="templates/{1}" type="velocity">
- <map:parameter name="name" value="Velocity"/>
- <map:parameter name="project" value="Cocoon"/>
- </map:generate>
- <map:transform src="stylesheets/page/simple-page2html.xsl"/>
- <map:serialize type="html"/>
- </map:match>
<map:match pattern="slides/slides">
<map:call resource="slides"/>
@@ -934,37 +876,37 @@
<map:match pattern="welcome">
<map:generate src="samples.xml"/>
- <map:transform type="xalan"
src="common/style/xsl/html/simple-samples2html.xsl"/>
+ <map:transform src="common/style/xsl/html/simple-samples2html.xsl"
type="xalan"/>
<map:serialize/>
</map:match>
<map:match pattern="scratchpad">
<map:generate src="scratchpad-samples.xml"/>
- <map:transform type="xalan"
src="common/style/xsl/html/simple-samples2html.xsl"/>
+ <map:transform src="common/style/xsl/html/simple-samples2html.xsl"
type="xalan"/>
<map:serialize/>
</map:match>
<!-- ========================= Server ================================ -->
<map:match pattern="**favicon.ico">
- <map:read src="common/resources/icons/cocoon.ico"
mime-type="application/ico"/>
+ <map:read mime-type="application/ico"
src="common/resources/icons/cocoon.ico"/>
</map:match>
<!-- ================== Common ======================= -->
<map:match pattern="*.css">
- <map:read src="common/style/css/{1}.css" mime-type="text/css"/>
+ <map:read mime-type="text/css" src="common/style/css/{1}.css"/>
</map:match>
<map:match pattern="images/*.gif">
- <map:read src="common/resources/images/{1}.gif" mime-type="image/gif"/>
+ <map:read mime-type="image/gif" src="common/resources/images/{1}.gif"/>
</map:match>
<map:match pattern="images/*.jpg">
- <map:read src="common/resources/images/{1}.jpg" mime-type="image/jpg"/>
+ <map:read mime-type="image/jpg" src="common/resources/images/{1}.jpg"/>
</map:match>
<map:match pattern="images/*.png">
- <map:read src="common/resources/images/{1}.png" mime-type="image/png"/>
+ <map:read mime-type="image/png" src="common/resources/images/{1}.png"/>
</map:match>
<!-- ================== Common fallthrough ===================== -->
@@ -985,19 +927,17 @@
<!-- samples automount -->
<map:match pattern="*/**">
- <map:mount uri-prefix="{1}" src="{1}/" check-reload="yes"/>
+ <map:mount check-reload="yes" src="{1}/" uri-prefix="{1}"/>
</map:match>
<map:handle-errors>
<!-- FIXME -->
<!--<map:transform src="common/style/xsl/html/error2html.xsl"/>-->
<map:transform
src="context://samples/common/style/xsl/html/error2html.xsl"/>
- <map:serialize type="html" status-code="500"/>
+ <map:serialize status-code="500" type="html"/>
</map:handle-errors>
</map:pipeline>
</map:pipelines>
-</map:sitemap>
-
-<!-- end of file -->
+</map:sitemap><!-- end of file -->
\ No newline at end of file
1.2 +1616 -808
xml-cocoon2/src/webapp/samples/chaperon/grammars/java.rgrm
Index: java.rgrm
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/chaperon/grammars/java.rgrm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- java.rgrm 15 Aug 2002 13:43:19 -0000 1.1
+++ java.rgrm 21 Sep 2002 22:57:19 -0000 1.2
@@ -1,808 +1,1616 @@
-/*------------------------------------------------------------------
- * Copyright (C)
- * 1996, 1997, 1998 Dmitri Bronnikov, All rights reserved.
- *
- * THIS GRAMMAR IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR NON-INFRINGMENT.
- *
- * [EMAIL PROTECTED]
- *
- *------------------------------------------------------------------
- *
- * VERSION 1.06 DATE 20 AUG 1998
- *
- *------------------------------------------------------------------
- *
- * UPDATES
- *
- * 1.06 Correction of Java 1.1 syntax
- * 1.05 Yet more Java 1.1
- * <qualified name>.<allocation expression>
- * 1.04 More Java 1.1 features:
- * <class name>.this
- * <type name>.class
- * 1.03 Added Java 1.1 features:
- * inner classes,
- * anonymous classes,
- * non-static initializer blocks,
- * array initialization by new operator
- * 1.02 Corrected cast expression syntax
- * 1.01 All shift/reduce conflicts, except dangling else, resolved
- *
- *------------------------------------------------------------------
- *
- * PARSING CONFLICTS RESOLVED
- *
- * Some Shift/Reduce conflicts have been resolved at the expense of
- * the grammar defines a superset of the language. The following
- * actions have to be performed to complete program syntax checking:
- *
- * 1) Check that modifiers applied to a class, interface, field,
- * or constructor are allowed in respectively a class, inteface,
- * field or constructor declaration. For example, a class
- * declaration should not allow other modifiers than abstract,
- * final and public.
- *
- * 2) For an expression statement, check it is either increment, or
- * decrement, or assignment expression.
- *
- * 3) Check that type expression in a cast operator indicates a type.
- * Some of the compilers that I have tested will allow simultaneous
- * use of identically named type and variable in the same scope
- * depending on context.
- *
- * 4) Change lexical definition to change '[' optionally followed by
- * any number of white-space characters immediately followed by ']'
- * to OP_DIM token. I defined this token as [\[]{white_space}*[\]]
- * in the lexer.
- *
- *------------------------------------------------------------------
- *
- * UNRESOLVED SHIFT/REDUCE CONFLICTS
- *
- * Dangling else in if-then-else
- *
- *------------------------------------------------------------------
- */
-
-%uri "http://chaperon.sourceforge.net/grammar/java/1.0";
-
-%token DOPEN \(;
-%token DCLOSE \);
-%token COPEN \{;
-%token CCLOSE \};
-%token BOPEN \[;
-%token BCLOSE \];
-%token SEMICOLON \;;
-%token COMMA \,;
-%token DOT \.;
-
-%token OP_EQ ==;
-%token OP_LE \<=;
-%token OP_GE \>=;
-%token OP_NE !=;
-%token OP_LOR \|\|;
-%token OP_LAND &&;
-%token OP_INC \+\+;
-%token OP_DEC \-\-;
-%token OP_SHR \>\>;
-%token OP_SHL \<\<;
-%token OP_SHRR \>\>\>;
-%token ASS_OP \+= | \-= | \*= | /= | &= | \|= | \^= | \%= | \<\<= | \>\>=
| \>\>\>=;
-
-%token EQ \=;
-%token GT \>;
-%token LT \<;
-%token NOT \!;
-%token TILDE \~;
-%token QM \?;
-%token COLON \:;
-%token PLUS \+;
-%token MINUS \-;
-%token MULT \*;
-%token DIV \/;
-%token AND \&;
-%token OR \|;
-%token XOR \^;
-%token MOD \%;
-
-%token BOOLLIT true|false;
-
-%token ABSTRACT abstract;
-%token DO do;
-%token IMPLEMENTS implements;
-%token PACKAGE package;
-%token THROW throw;
-%token BOOLEAN boolean;
-%token DOUBLE double;
-%token IMPORT import;
-%token PRIVATE private;
-%token THROWS throws;
-%token BREAK break;
-
-%right ELSE else;
-
-%token INNER inner;
-%token PROTECTED protected;
-%token TRANSIENT transient;
-%token BYTE byte;
-%token EXTENDS extends;
-%token INSTANCEOF instanceof;
-%token PUBLIC public;
-%token TRY try;
-%token CASE case;
-%token FINAL final;
-%token INT int;
-%token REST rest;
-%token VAR var;
-%token CAST cast;
-%token FINALLY finally;
-%token INTERFACE interface;
-%token RETURN return;
-%token VOID void;
-%token CATCH catch;
-%token FLOAT float;
-%token LONG long;
-%token SHORT short;
-%token VOLATILE volatile;
-%token CHAR char;
-%token FOR for;
-%token NATIVE native;
-%token STATIC static;
-%token WHILE while;
-%token CLASS class;
-%token FUTURE future;
-%token NEW new;
-%token SUPER super;
-%token CONST const;
-%token GENERIC generic;
-%token NULL null;
-%token SWITCH switch;
-%token CONTINUE continue;
-%token GOTO goto;
-%token OPERATOR operator;
-%token SYNCHRONIZED synchronized;
-%token DEFAULT default;
-%token IF if;
-%token OUTER outer;
-%token THIS this;
-
-%ab HexDigit [0-9a-fA-F];
-%ab Digit [0-9];
-%ab OctalDigit [0-7];
-%ab TetraDigit [0-3];
-%ab NonZeroDigit [1-9];
-%ab Letter [a-zA-Z_];
-%ab AnyButSlash [^\/];
-%ab AnyButAstr [^\*];
-%ab UniEsc [\1b];
-
-%ab OctEscape1 \\ <OctalDigit>;
-%ab OctEscape2 \\ <OctalDigit><OctalDigit>;
-%ab OctEscape3 \\ <TetraDigit><OctalDigit><OctalDigit>;
-%ab OctEscape (<OctEscape1>|<OctEscape2>|<OctEscape3>);
-
-%ab Escape [\\]([rnbft\\\'\"]);
-%ab ULetter (<Letter>|<UniEsc>);
-%ab Identifier <ULetter>(<ULetter>|<Digit>)*;
-
-%ab IntSuffix (l|L);
-%ab DecimalNum <NonZeroDigit><Digit>*<IntSuffix>?;
-%ab OctalNum 0 <OctalDigit>*<IntSuffix>?;
-%ab HexNum 0 (x|X) <HexDigit><HexDigit>*<IntSuffix>?;
-%ab IntegerLiteral (<DecimalNum>|<OctalNum>|<HexNum>);
-
-%ab Sign (\+ | \-);
-%ab FlSuffix (f|F|d|D);
-%ab SignedInt <Sign>?<Digit>+;
-%ab Expo (e|E);
-%ab ExponentPart <Expo><SignedInt>?;
-%ab Float1 <Digit>+ \. (<Digit>+)?<ExponentPart>?<FlSuffix>?;
-%ab Float2 \. <Digit>+<ExponentPart>?<FlSuffix>?;
-%ab Float3 <Digit>+<ExponentPart><FlSuffix>?;
-%ab Float4 <Digit>+<FlSuffix>;
-%ab FloatingPoint (<Float1>|<Float2>|<Float3>|<Float4>);
-
-%ab AnyChrChr [^\\'];
-%ab AnyStrChr [^\\\"];
-%ab Character \' (<Escape>|<OctEscape>|<AnyChrChr>) \' ;
-%ab String \" (<Escape>|<OctEscape>|<AnyStrChr>)* \" ;
-%ab Numeric (<IntegerLiteral>|<FloatingPoint>);
-
-%token LITERAL (<Numeric>|<Character>|<String>);
-
-%token IDENTIFIER ([a-zA-Z_]|[\1b])(([a-zA-Z_]|[\1b])|[0-9])*;
-
-
-//%token OP_DIM \[ ([\r\n\f\t\b\ ]|( \/ \* ([^\*]| \* [^\/])* \* \/ |
-// \/ \/ (.*)))* \] ;
-
-//%whitespace [\r\n\f\t\b\ ];
-
-
-%token OP_DIM \[ ([\r\n\t\ ]|( \/ \* ([^\*]| \* [^\/])* \* \/ |
- \/ \/ (.*)))* \] ;
-
-%ignore whitespace [\t\ ];
-
-%ignore eol \r(\n)?|\n;
-
-%ab Comment1 \/ \* (<AnyButAstr>|[\*]<AnyButSlash>)* \* \/;
-%ab Comment2 \/ \/ (.*);
-%ignore comment (<Comment1>|<Comment2>);
-
-%start CompilationUnit;
-
-%%
-
-TypeSpecifier
- : TypeName
- | TypeName Dims
- ;
-
-TypeName
- : PrimitiveType
- | QualifiedName
- ;
-
-ClassNameList
- : QualifiedName
- | ClassNameList COMMA QualifiedName
- ;
-
-PrimitiveType
- : BOOLEAN
- | CHAR
- | BYTE
- | SHORT
- | INT
- | LONG
- | FLOAT
- | DOUBLE
- | VOID
- ;
-
-SemiColons
- : SEMICOLON
- | SemiColons SEMICOLON
- ;
-
-CompilationUnit
- : ProgramFile
- ;
-
-ProgramFile
- : PackageStatement ImportStatements TypeDeclarations
- | PackageStatement ImportStatements
- | PackageStatement TypeDeclarations
- | ImportStatements TypeDeclarations
- | PackageStatement
- | ImportStatements
- | TypeDeclarations
- ;
-
-PackageStatement
- : PACKAGE QualifiedName SemiColons
- ;
-
-TypeDeclarations
- : TypeDeclarationOptSemi
- | TypeDeclarations TypeDeclarationOptSemi
- ;
-
-TypeDeclarationOptSemi
- : TypeDeclaration
- | TypeDeclaration SemiColons
- ;
-
-ImportStatements
- : ImportStatement
- | ImportStatements ImportStatement
- ;
-
-ImportStatement
- : IMPORT QualifiedName SemiColons
- | IMPORT QualifiedName DOT MULT SemiColons
- ;
-
-QualifiedName
- : IDENTIFIER %append
- | QualifiedName DOT IDENTIFIER %append
- ;
-
-TypeDeclaration
- : ClassHeader COPEN FieldDeclarations CCLOSE
- | ClassHeader COPEN CCLOSE
- ;
-
-ClassHeader
- : Modifiers ClassWord IDENTIFIER Extends Interfaces
- | Modifiers ClassWord IDENTIFIER Extends
- | Modifiers ClassWord IDENTIFIER Interfaces
- | ClassWord IDENTIFIER Extends Interfaces
- | Modifiers ClassWord IDENTIFIER
- | ClassWord IDENTIFIER Extends
- | ClassWord IDENTIFIER Interfaces
- | ClassWord IDENTIFIER
- ;
-
-Modifiers
- : Modifier %append
- | Modifiers Modifier %append
- ;
-
-Modifier
- : ABSTRACT
- | FINAL
- | PUBLIC
- | PROTECTED
- | PRIVATE
- | STATIC
- | TRANSIENT
- | VOLATILE
- | NATIVE
- | SYNCHRONIZED
- ;
-
-ClassWord
- : CLASS
- | INTERFACE
- ;
-
-Interfaces
- : IMPLEMENTS ClassNameList
- ;
-
-FieldDeclarations
- : FieldDeclarationOptSemi
- | FieldDeclarations FieldDeclarationOptSemi
- ;
-
-FieldDeclarationOptSemi
- : FieldDeclaration
- | FieldDeclaration SemiColons
- ;
-
-FieldDeclaration
- : FieldVariableDeclaration SEMICOLON
- | MethodDeclaration
- | ConstructorDeclaration
- | StaticInitializer
- | NonStaticInitializer
- | TypeDeclaration
- ;
-
-FieldVariableDeclaration
- : Modifiers TypeSpecifier VariableDeclarators
- | TypeSpecifier VariableDeclarators
- ;
-
-VariableDeclarators
- : VariableDeclarator
- | VariableDeclarators COMMA VariableDeclarator
- ;
-
-VariableDeclarator
- : DeclaratorName
- | DeclaratorName EQ VariableInitializer
- ;
-
-VariableInitializer
- : Expression
- | COPEN CCLOSE
- | COPEN ArrayInitializers CCLOSE
- ;
-
-ArrayInitializers
- : VariableInitializer
- | ArrayInitializers COMMA VariableInitializer
- | ArrayInitializers COMMA
- ;
-
-MethodDeclaration
- : Modifiers TypeSpecifier MethodDeclarator Throws MethodBody
- | Modifiers TypeSpecifier MethodDeclarator MethodBody
- | TypeSpecifier MethodDeclarator Throws MethodBody
- | TypeSpecifier MethodDeclarator MethodBody
- ;
-
-MethodDeclarator
- : DeclaratorName DOPEN ParameterList DCLOSE
- | DeclaratorName DOPEN DCLOSE
- | MethodDeclarator OP_DIM
- ;
-
-ParameterList
- : Parameter
- | ParameterList COMMA Parameter
- ;
-
-Parameter
- : TypeSpecifier DeclaratorName
- | FINAL TypeSpecifier DeclaratorName
- ;
-
-DeclaratorName
- : IDENTIFIER
- | DeclaratorName OP_DIM
- ;
-
-Throws
- : THROWS ClassNameList
- ;
-
-MethodBody
- : Block
- | SEMICOLON
- ;
-
-ConstructorDeclaration
- : Modifiers ConstructorDeclarator Throws Block
- | Modifiers ConstructorDeclarator Block
- | ConstructorDeclarator Throws Block
- | ConstructorDeclarator Block
- ;
-
-ConstructorDeclarator
- : IDENTIFIER DOPEN ParameterList DCLOSE
- | IDENTIFIER DOPEN DCLOSE
- ;
-
-StaticInitializer
- : STATIC Block
- ;
-
-NonStaticInitializer
- : Block
- ;
-
-Extends
- : EXTENDS TypeName
- | Extends COMMA TypeName
- ;
-
-Block
- : COPEN LocalVariableDeclarationsAndStatements CCLOSE
- | COPEN CCLOSE
- ;
-
-LocalVariableDeclarationsAndStatements
- : LocalVariableDeclarationOrStatement %append
- | LocalVariableDeclarationsAndStatements
LocalVariableDeclarationOrStatement %append
- ;
-
-LocalVariableDeclarationOrStatement
- : LocalVariableDeclarationStatement
- | Statement
- ;
-
-LocalVariableDeclarationStatement
- : TypeSpecifier VariableDeclarators SEMICOLON
- | FINAL TypeSpecifier VariableDeclarators SEMICOLON
- ;
-
-Statement
- : EmptyStatement
- | LabelStatement
- | ExpressionStatement SEMICOLON
- | SelectionStatement
- | IterationStatement
- | JumpStatement
- | GuardingStatement
- | Block
- ;
-
-EmptyStatement
- : SEMICOLON
- ;
-
-LabelStatement
- : IDENTIFIER COLON
- | CASE ConstantExpression COLON
- | DEFAULT COLON
- ;
-
-ExpressionStatement
- : Expression
- ;
-
-SelectionStatement
- : IF DOPEN Expression DCLOSE Statement %prec ELSE
- | IF DOPEN Expression DCLOSE Statement ELSE Statement %prec ELSE
- | SWITCH DOPEN Expression DCLOSE Block
- ;
-
-IterationStatement
- : WHILE DOPEN Expression DCLOSE Statement
- | DO Statement WHILE DOPEN Expression DCLOSE SEMICOLON
- | FOR DOPEN ForInit ForExpr ForIncr DCLOSE Statement
- | FOR DOPEN ForInit ForExpr DCLOSE Statement
- ;
-
-ForInit
- : ExpressionStatements SEMICOLON
- | LocalVariableDeclarationStatement
- | SEMICOLON
- ;
-
-ForExpr
- : Expression SEMICOLON
- | SEMICOLON
- ;
-
-ForIncr
- : ExpressionStatements
- ;
-
-ExpressionStatements
- : ExpressionStatement %resolve
- | ExpressionStatements COMMA ExpressionStatement
- ;
-
-JumpStatement
- : BREAK IDENTIFIER SEMICOLON
- | BREAK SEMICOLON
- | CONTINUE IDENTIFIER SEMICOLON
- | CONTINUE SEMICOLON
- | RETURN Expression SEMICOLON
- | RETURN SEMICOLON
- | THROW Expression SEMICOLON
- ;
-
-GuardingStatement
- : SYNCHRONIZED DOPEN Expression DCLOSE Statement
- | TRY Block Finally
- | TRY Block Catches
- | TRY Block Catches Finally
- ;
-
-Catches
- : Catch
- | Catches Catch
- ;
-
-Catch
- : CatchHeader Block
- ;
-
-CatchHeader
- : CATCH DOPEN TypeSpecifier IDENTIFIER DCLOSE
- | CATCH DOPEN TypeSpecifier DCLOSE
- ;
-
-Finally
- : FINALLY Block
- ;
-
-PrimaryExpression
- : QualifiedName %resolve
- | NotJustName %resolve
- ;
-
-NotJustName
- : SpecialName %resolve
- | NewAllocationExpression %resolve
- | ComplexPrimary %resolve
- ;
-
-ComplexPrimary
- : DOPEN Expression DCLOSE
- | ComplexPrimaryNoParenthesis %resolve
- ;
-
-ComplexPrimaryNoParenthesis
- : LITERAL
- | BOOLLIT
- | ArrayAccess
- | FieldAccess
- | MethodCall
- ;
-
-ArrayAccess
- : QualifiedName BOPEN Expression BCLOSE
- | ComplexPrimary BOPEN Expression BCLOSE
- ;
-
-FieldAccess
- : NotJustName DOT IDENTIFIER
- | RealPostfixExpression DOT IDENTIFIER
- | QualifiedName DOT THIS
- | QualifiedName DOT CLASS
- | PrimitiveType DOT CLASS
- ;
-
-MethodCall
- : MethodAccess DOPEN ArgumentList DCLOSE
- | MethodAccess DOPEN DCLOSE
- ;
-
-MethodAccess
- : ComplexPrimaryNoParenthesis
- | SpecialName
- | QualifiedName
- ;
-
-SpecialName
- : THIS
- | SUPER
- | NULL
- ;
-
-ArgumentList
- : Expression
- | ArgumentList COMMA Expression
- ;
-
-NewAllocationExpression
- : PlainNewAllocationExpression
- | QualifiedName DOT PlainNewAllocationExpression
- ;
-
-PlainNewAllocationExpression
- : ArrayAllocationExpression
- | ClassAllocationExpression
- | ArrayAllocationExpression COPEN CCLOSE
- | ClassAllocationExpression COPEN CCLOSE
- | ArrayAllocationExpression COPEN ArrayInitializers CCLOSE
- | ClassAllocationExpression COPEN FieldDeclarations CCLOSE
- ;
-
-ClassAllocationExpression
- : NEW TypeName DOPEN ArgumentList DCLOSE
- | NEW TypeName DOPEN DCLOSE
- ;
-
-ArrayAllocationExpression
- : NEW TypeName DimExprs Dims
- | NEW TypeName DimExprs
- | NEW TypeName Dims
- ;
-
-DimExprs
- : DimExpr
- | DimExprs DimExpr
- ;
-
-DimExpr
- : BOPEN Expression BCLOSE
- ;
-
-Dims
- : OP_DIM
- | Dims OP_DIM
- ;
-
-PostfixExpression
- : PrimaryExpression %resolve
- | RealPostfixExpression %resolve
- ;
-
-RealPostfixExpression
- : PostfixExpression OP_INC
- | PostfixExpression OP_DEC
- ;
-
-UnaryExpression
- : OP_INC UnaryExpression
- | OP_DEC UnaryExpression
- | ArithmeticUnaryOperator CastExpression
- | LogicalUnaryExpression %resolve
- ;
-
-LogicalUnaryExpression
- : PostfixExpression %resolve
- | LogicalUnaryOperator UnaryExpression
- ;
-
-LogicalUnaryOperator
- : TILDE
- | NOT
- ;
-
-ArithmeticUnaryOperator
- : PLUS
- | MINUS
- ;
-
-CastExpression
- : UnaryExpression %resolve
- | DOPEN PrimitiveTypeExpression DCLOSE CastExpression
- | DOPEN ClassTypeExpression DCLOSE CastExpression
- | DOPEN Expression DCLOSE LogicalUnaryExpression
- ;
-
-PrimitiveTypeExpression
- : PrimitiveType
- | PrimitiveType Dims
- ;
-
-ClassTypeExpression
- : QualifiedName Dims
- ;
-
-MultiplicativeExpression
- : CastExpression %resolve
- | MultiplicativeExpression MULT CastExpression
- | MultiplicativeExpression DIV CastExpression
- | MultiplicativeExpression MOD CastExpression
- ;
-
-AdditiveExpression
- : MultiplicativeExpression %resolve
- | AdditiveExpression PLUS MultiplicativeExpression
- | AdditiveExpression MINUS MultiplicativeExpression
- ;
-
-ShiftExpression
- : AdditiveExpression %resolve
- | ShiftExpression OP_SHL AdditiveExpression
- | ShiftExpression OP_SHR AdditiveExpression
- | ShiftExpression OP_SHRR AdditiveExpression
- ;
-
-RelationalExpression
- : ShiftExpression %resolve
- | RelationalExpression LT ShiftExpression
- | RelationalExpression GT ShiftExpression
- | RelationalExpression OP_LE ShiftExpression
- | RelationalExpression OP_GE ShiftExpression
- | RelationalExpression INSTANCEOF TypeSpecifier
- ;
-
-EqualityExpression
- : RelationalExpression %resolve
- | EqualityExpression OP_EQ RelationalExpression
- | EqualityExpression OP_NE RelationalExpression
- ;
-
-AndExpression
- : EqualityExpression %resolve
- | AndExpression AND EqualityExpression
- ;
-
-ExclusiveOrExpression
- : AndExpression %resolve
- | ExclusiveOrExpression XOR AndExpression
- ;
-
-InclusiveOrExpression
- : ExclusiveOrExpression %resolve
- | InclusiveOrExpression OR ExclusiveOrExpression
- ;
-
-ConditionalAndExpression
- : InclusiveOrExpression %resolve
- | ConditionalAndExpression OP_LAND InclusiveOrExpression
- ;
-
-ConditionalOrExpression
- : ConditionalAndExpression %resolve
- | ConditionalOrExpression OP_LOR ConditionalAndExpression
- ;
-
-ConditionalExpression
- : ConditionalOrExpression %resolve
- | ConditionalOrExpression QM Expression COLON ConditionalExpression
- ;
-
-AssignmentExpression
- : ConditionalExpression %resolve
- | UnaryExpression AssignmentOperator AssignmentExpression
- ;
-
-AssignmentOperator
- : EQ
- | ASS_OP
- ;
-
-Expression
- : AssignmentExpression
- ;
-
-ConstantExpression
- : ConditionalExpression
- ;
-
-
+/*------------------------------------------------------------------
+
+ * Copyright (C)
+
+ * 1996, 1997, 1998 Dmitri Bronnikov, All rights reserved.
+
+ *
+
+ * THIS GRAMMAR IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR
+
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+
+ * PURPOSE, OR NON-INFRINGMENT.
+
+ *
+
+ * [EMAIL PROTECTED]
+
+ *
+
+ *------------------------------------------------------------------
+
+ *
+
+ * VERSION 1.06 DATE 20 AUG 1998
+
+ *
+
+ *------------------------------------------------------------------
+
+ *
+
+ * UPDATES
+
+ *
+
+ * 1.06 Correction of Java 1.1 syntax
+
+ * 1.05 Yet more Java 1.1
+
+ * <qualified name>.<allocation expression>
+
+ * 1.04 More Java 1.1 features:
+
+ * <class name>.this
+
+ * <type name>.class
+
+ * 1.03 Added Java 1.1 features:
+
+ * inner classes,
+
+ * anonymous classes,
+
+ * non-static initializer blocks,
+
+ * array initialization by new operator
+
+ * 1.02 Corrected cast expression syntax
+
+ * 1.01 All shift/reduce conflicts, except dangling else, resolved
+
+ *
+
+ *------------------------------------------------------------------
+
+ *
+
+ * PARSING CONFLICTS RESOLVED
+
+ *
+
+ * Some Shift/Reduce conflicts have been resolved at the expense of
+
+ * the grammar defines a superset of the language. The following
+
+ * actions have to be performed to complete program syntax checking:
+
+ *
+
+ * 1) Check that modifiers applied to a class, interface, field,
+
+ * or constructor are allowed in respectively a class, inteface,
+
+ * field or constructor declaration. For example, a class
+
+ * declaration should not allow other modifiers than abstract,
+
+ * final and public.
+
+ *
+
+ * 2) For an expression statement, check it is either increment, or
+
+ * decrement, or assignment expression.
+
+ *
+
+ * 3) Check that type expression in a cast operator indicates a type.
+
+ * Some of the compilers that I have tested will allow simultaneous
+
+ * use of identically named type and variable in the same scope
+
+ * depending on context.
+
+ *
+
+ * 4) Change lexical definition to change '[' optionally followed by
+
+ * any number of white-space characters immediately followed by ']'
+
+ * to OP_DIM token. I defined this token as [\[]{white_space}*[\]]
+
+ * in the lexer.
+
+ *
+
+ *------------------------------------------------------------------
+
+ *
+
+ * UNRESOLVED SHIFT/REDUCE CONFLICTS
+
+ *
+
+ * Dangling else in if-then-else
+
+ *
+
+ *------------------------------------------------------------------
+
+ */
+
+
+
+%uri "http://chaperon.sourceforge.net/grammar/java/1.0";
+
+
+
+%token DOPEN \(;
+
+%token DCLOSE \);
+
+%token COPEN \{;
+
+%token CCLOSE \};
+
+%token BOPEN \[;
+
+%token BCLOSE \];
+
+%token SEMICOLON \;;
+
+%token COMMA \,;
+
+%token DOT \.;
+
+
+
+%token OP_EQ ==;
+
+%token OP_LE \<=;
+
+%token OP_GE \>=;
+
+%token OP_NE !=;
+
+%token OP_LOR \|\|;
+
+%token OP_LAND &&;
+
+%token OP_INC \+\+;
+
+%token OP_DEC \-\-;
+
+%token OP_SHR \>\>;
+
+%token OP_SHL \<\<;
+
+%token OP_SHRR \>\>\>;
+
+%token ASS_OP \+= | \-= | \*= | /= | &= | \|= | \^= | \%= | \<\<= | \>\>=
| \>\>\>=;
+
+
+
+%token EQ \=;
+
+%token GT \>;
+
+%token LT \<;
+
+%token NOT \!;
+
+%token TILDE \~;
+
+%token QM \?;
+
+%token COLON \:;
+
+%token PLUS \+;
+
+%token MINUS \-;
+
+%token MULT \*;
+
+%token DIV \/;
+
+%token AND \&;
+
+%token OR \|;
+
+%token XOR \^;
+
+%token MOD \%;
+
+
+
+%token BOOLLIT true|false;
+
+
+
+%token ABSTRACT abstract;
+
+%token DO do;
+
+%token IMPLEMENTS implements;
+
+%token PACKAGE package;
+
+%token THROW throw;
+
+%token BOOLEAN boolean;
+
+%token DOUBLE double;
+
+%token IMPORT import;
+
+%token PRIVATE private;
+
+%token THROWS throws;
+
+%token BREAK break;
+
+
+
+%right ELSE else;
+
+
+
+%token INNER inner;
+
+%token PROTECTED protected;
+
+%token TRANSIENT transient;
+
+%token BYTE byte;
+
+%token EXTENDS extends;
+
+%token INSTANCEOF instanceof;
+
+%token PUBLIC public;
+
+%token TRY try;
+
+%token CASE case;
+
+%token FINAL final;
+
+%token INT int;
+
+%token REST rest;
+
+%token VAR var;
+
+%token CAST cast;
+
+%token FINALLY finally;
+
+%token INTERFACE interface;
+
+%token RETURN return;
+
+%token VOID void;
+
+%token CATCH catch;
+
+%token FLOAT float;
+
+%token LONG long;
+
+%token SHORT short;
+
+%token VOLATILE volatile;
+
+%token CHAR char;
+
+%token FOR for;
+
+%token NATIVE native;
+
+%token STATIC static;
+
+%token WHILE while;
+
+%token CLASS class;
+
+%token FUTURE future;
+
+%token NEW new;
+
+%token SUPER super;
+
+%token CONST const;
+
+%token GENERIC generic;
+
+%token NULL null;
+
+%token SWITCH switch;
+
+%token CONTINUE continue;
+
+%token GOTO goto;
+
+%token OPERATOR operator;
+
+%token SYNCHRONIZED synchronized;
+
+%token DEFAULT default;
+
+%token IF if;
+
+%token OUTER outer;
+
+%token THIS this;
+
+
+
+%ab HexDigit [0-9a-fA-F];
+
+%ab Digit [0-9];
+
+%ab OctalDigit [0-7];
+
+%ab TetraDigit [0-3];
+
+%ab NonZeroDigit [1-9];
+
+%ab Letter [a-zA-Z_];
+
+%ab AnyButSlash [^\/];
+
+%ab AnyButAstr [^\*];
+
+%ab UniEsc [\1b];
+
+
+
+%ab OctEscape1 \\ <OctalDigit>;
+
+%ab OctEscape2 \\ <OctalDigit><OctalDigit>;
+
+%ab OctEscape3 \\ <TetraDigit><OctalDigit><OctalDigit>;
+
+%ab OctEscape (<OctEscape1>|<OctEscape2>|<OctEscape3>);
+
+
+
+%ab Escape [\\]([rnbft\\\'\"]);
+
+%ab ULetter (<Letter>|<UniEsc>);
+
+%ab Identifier <ULetter>(<ULetter>|<Digit>)*;
+
+
+
+%ab IntSuffix (l|L);
+
+%ab DecimalNum <NonZeroDigit><Digit>*<IntSuffix>?;
+
+%ab OctalNum 0 <OctalDigit>*<IntSuffix>?;
+
+%ab HexNum 0 (x|X) <HexDigit><HexDigit>*<IntSuffix>?;
+
+%ab IntegerLiteral (<DecimalNum>|<OctalNum>|<HexNum>);
+
+
+
+%ab Sign (\+ | \-);
+
+%ab FlSuffix (f|F|d|D);
+
+%ab SignedInt <Sign>?<Digit>+;
+
+%ab Expo (e|E);
+
+%ab ExponentPart <Expo><SignedInt>?;
+
+%ab Float1 <Digit>+ \. (<Digit>+)?<ExponentPart>?<FlSuffix>?;
+
+%ab Float2 \. <Digit>+<ExponentPart>?<FlSuffix>?;
+
+%ab Float3 <Digit>+<ExponentPart><FlSuffix>?;
+
+%ab Float4 <Digit>+<FlSuffix>;
+
+%ab FloatingPoint (<Float1>|<Float2>|<Float3>|<Float4>);
+
+
+
+%ab AnyChrChr [^\\'];
+
+%ab AnyStrChr [^\\\"];
+
+%ab Character \' (<Escape>|<OctEscape>|<AnyChrChr>) \' ;
+
+%ab String \" (<Escape>|<OctEscape>|<AnyStrChr>)* \" ;
+
+%ab Numeric (<IntegerLiteral>|<FloatingPoint>);
+
+
+
+%token LITERAL (<Numeric>|<Character>|<String>);
+
+
+
+%token IDENTIFIER ([a-zA-Z_]|[\1b])(([a-zA-Z_]|[\1b])|[0-9])*;
+
+
+
+
+
+//%token OP_DIM \[ ([\r\n\f\t\b\ ]|( \/ \* ([^\*]| \* [^\/])* \* \/ |
+
+// \/ \/ (.*)))* \] ;
+
+
+
+//%whitespace [\r\n\f\t\b\ ];
+
+
+
+
+
+%token OP_DIM \[ ([\r\n\t\ ]|( \/ \* ([^\*]| \* [^\/])* \* \/ |
+
+ \/ \/ (.*)))* \] ;
+
+
+
+%ignore whitespace [\t\ ];
+
+
+
+%ignore eol \r(\n)?|\n;
+
+
+
+%ab Comment1 \/ \* (<AnyButAstr>|[\*]<AnyButSlash>)* \* \/;
+
+%ab Comment2 \/ \/ (.*);
+
+%ignore comment (<Comment1>|<Comment2>);
+
+
+
+%start CompilationUnit;
+
+
+
+%%
+
+
+
+TypeSpecifier
+
+ : TypeName
+
+ | TypeName Dims
+
+ ;
+
+
+
+TypeName
+
+ : PrimitiveType
+
+ | QualifiedName
+
+ ;
+
+
+
+ClassNameList
+
+ : QualifiedName
+
+ | ClassNameList COMMA QualifiedName
+
+ ;
+
+
+
+PrimitiveType
+
+ : BOOLEAN
+
+ | CHAR
+
+ | BYTE
+
+ | SHORT
+
+ | INT
+
+ | LONG
+
+ | FLOAT
+
+ | DOUBLE
+
+ | VOID
+
+ ;
+
+
+
+SemiColons
+
+ : SEMICOLON
+
+ | SemiColons SEMICOLON
+
+ ;
+
+
+
+CompilationUnit
+
+ : ProgramFile
+
+ ;
+
+
+
+ProgramFile
+
+ : PackageStatement ImportStatements TypeDeclarations
+
+ | PackageStatement ImportStatements
+
+ | PackageStatement TypeDeclarations
+
+ | ImportStatements TypeDeclarations
+
+ | PackageStatement
+
+ | ImportStatements
+
+ | TypeDeclarations
+
+ ;
+
+
+
+PackageStatement
+
+ : PACKAGE QualifiedName SemiColons
+
+ ;
+
+
+
+TypeDeclarations
+
+ : TypeDeclarationOptSemi
+
+ | TypeDeclarations TypeDeclarationOptSemi
+
+ ;
+
+
+
+TypeDeclarationOptSemi
+
+ : TypeDeclaration
+
+ | TypeDeclaration SemiColons
+
+ ;
+
+
+
+ImportStatements
+
+ : ImportStatement
+
+ | ImportStatements ImportStatement
+
+ ;
+
+
+
+ImportStatement
+
+ : IMPORT QualifiedName SemiColons
+
+ | IMPORT QualifiedName DOT MULT SemiColons
+
+ ;
+
+
+
+QualifiedName
+
+ : IDENTIFIER %append
+
+ | QualifiedName DOT IDENTIFIER %append
+
+ ;
+
+
+
+TypeDeclaration
+
+ : ClassHeader COPEN FieldDeclarations CCLOSE
+
+ | ClassHeader COPEN CCLOSE
+
+ ;
+
+
+
+ClassHeader
+
+ : Modifiers ClassWord IDENTIFIER Extends Interfaces
+
+ | Modifiers ClassWord IDENTIFIER Extends
+
+ | Modifiers ClassWord IDENTIFIER Interfaces
+
+ | ClassWord IDENTIFIER Extends Interfaces
+
+ | Modifiers ClassWord IDENTIFIER
+
+ | ClassWord IDENTIFIER Extends
+
+ | ClassWord IDENTIFIER Interfaces
+
+ | ClassWord IDENTIFIER
+
+ ;
+
+
+
+Modifiers
+
+ : Modifier %append
+
+ | Modifiers Modifier %append
+
+ ;
+
+
+
+Modifier
+
+ : ABSTRACT
+
+ | FINAL
+
+ | PUBLIC
+
+ | PROTECTED
+
+ | PRIVATE
+
+ | STATIC
+
+ | TRANSIENT
+
+ | VOLATILE
+
+ | NATIVE
+
+ | SYNCHRONIZED
+
+ ;
+
+
+
+ClassWord
+
+ : CLASS
+
+ | INTERFACE
+
+ ;
+
+
+
+Interfaces
+
+ : IMPLEMENTS ClassNameList
+
+ ;
+
+
+
+FieldDeclarations
+
+ : FieldDeclarationOptSemi
+
+ | FieldDeclarations FieldDeclarationOptSemi
+
+ ;
+
+
+
+FieldDeclarationOptSemi
+
+ : FieldDeclaration
+
+ | FieldDeclaration SemiColons
+
+ ;
+
+
+
+FieldDeclaration
+
+ : FieldVariableDeclaration SEMICOLON
+
+ | MethodDeclaration
+
+ | ConstructorDeclaration
+
+ | StaticInitializer
+
+ | NonStaticInitializer
+
+ | TypeDeclaration
+
+ ;
+
+
+
+FieldVariableDeclaration
+
+ : Modifiers TypeSpecifier VariableDeclarators
+
+ | TypeSpecifier VariableDeclarators
+
+ ;
+
+
+
+VariableDeclarators
+
+ : VariableDeclarator
+
+ | VariableDeclarators COMMA VariableDeclarator
+
+ ;
+
+
+
+VariableDeclarator
+
+ : DeclaratorName
+
+ | DeclaratorName EQ VariableInitializer
+
+ ;
+
+
+
+VariableInitializer
+
+ : Expression
+
+ | COPEN CCLOSE
+
+ | COPEN ArrayInitializers CCLOSE
+
+ ;
+
+
+
+ArrayInitializers
+
+ : VariableInitializer
+
+ | ArrayInitializers COMMA VariableInitializer
+
+ | ArrayInitializers COMMA
+
+ ;
+
+
+
+MethodDeclaration
+
+ : Modifiers TypeSpecifier MethodDeclarator Throws MethodBody
+
+ | Modifiers TypeSpecifier MethodDeclarator MethodBody
+
+ | TypeSpecifier MethodDeclarator Throws MethodBody
+
+ | TypeSpecifier MethodDeclarator MethodBody
+
+ ;
+
+
+
+MethodDeclarator
+
+ : DeclaratorName DOPEN ParameterList DCLOSE
+
+ | DeclaratorName DOPEN DCLOSE
+
+ | MethodDeclarator OP_DIM
+
+ ;
+
+
+
+ParameterList
+
+ : Parameter
+
+ | ParameterList COMMA Parameter
+
+ ;
+
+
+
+Parameter
+
+ : TypeSpecifier DeclaratorName
+
+ | FINAL TypeSpecifier DeclaratorName
+
+ ;
+
+
+
+DeclaratorName
+
+ : IDENTIFIER
+
+ | DeclaratorName OP_DIM
+
+ ;
+
+
+
+Throws
+
+ : THROWS ClassNameList
+
+ ;
+
+
+
+MethodBody
+
+ : Block
+
+ | SEMICOLON
+
+ ;
+
+
+
+ConstructorDeclaration
+
+ : Modifiers ConstructorDeclarator Throws Block
+
+ | Modifiers ConstructorDeclarator Block
+
+ | ConstructorDeclarator Throws Block
+
+ | ConstructorDeclarator Block
+
+ ;
+
+
+
+ConstructorDeclarator
+
+ : IDENTIFIER DOPEN ParameterList DCLOSE
+
+ | IDENTIFIER DOPEN DCLOSE
+
+ ;
+
+
+
+StaticInitializer
+
+ : STATIC Block
+
+ ;
+
+
+
+NonStaticInitializer
+
+ : Block
+
+ ;
+
+
+
+Extends
+
+ : EXTENDS TypeName
+
+ | Extends COMMA TypeName
+
+ ;
+
+
+
+Block
+
+ : COPEN LocalVariableDeclarationsAndStatements CCLOSE
+
+ | COPEN CCLOSE
+
+ ;
+
+
+
+LocalVariableDeclarationsAndStatements
+
+ : LocalVariableDeclarationOrStatement %append
+
+ | LocalVariableDeclarationsAndStatements
LocalVariableDeclarationOrStatement %append
+
+ ;
+
+
+
+LocalVariableDeclarationOrStatement
+
+ : LocalVariableDeclarationStatement
+
+ | Statement
+
+ ;
+
+
+
+LocalVariableDeclarationStatement
+
+ : TypeSpecifier VariableDeclarators SEMICOLON
+
+ | FINAL TypeSpecifier VariableDeclarators SEMICOLON
+
+ ;
+
+
+
+Statement
+
+ : EmptyStatement
+
+ | LabelStatement
+
+ | ExpressionStatement SEMICOLON
+
+ | SelectionStatement
+
+ | IterationStatement
+
+ | JumpStatement
+
+ | GuardingStatement
+
+ | Block
+
+ ;
+
+
+
+EmptyStatement
+
+ : SEMICOLON
+
+ ;
+
+
+
+LabelStatement
+
+ : IDENTIFIER COLON
+
+ | CASE ConstantExpression COLON
+
+ | DEFAULT COLON
+
+ ;
+
+
+
+ExpressionStatement
+
+ : Expression
+
+ ;
+
+
+
+SelectionStatement
+
+ : IF DOPEN Expression DCLOSE Statement %prec ELSE
+
+ | IF DOPEN Expression DCLOSE Statement ELSE Statement %prec ELSE
+
+ | SWITCH DOPEN Expression DCLOSE Block
+
+ ;
+
+
+
+IterationStatement
+
+ : WHILE DOPEN Expression DCLOSE Statement
+
+ | DO Statement WHILE DOPEN Expression DCLOSE SEMICOLON
+
+ | FOR DOPEN ForInit ForExpr ForIncr DCLOSE Statement
+
+ | FOR DOPEN ForInit ForExpr DCLOSE Statement
+
+ ;
+
+
+
+ForInit
+
+ : ExpressionStatements SEMICOLON
+
+ | LocalVariableDeclarationStatement
+
+ | SEMICOLON
+
+ ;
+
+
+
+ForExpr
+
+ : Expression SEMICOLON
+
+ | SEMICOLON
+
+ ;
+
+
+
+ForIncr
+
+ : ExpressionStatements
+
+ ;
+
+
+
+ExpressionStatements
+
+ : ExpressionStatement %resolve
+
+ | ExpressionStatements COMMA ExpressionStatement
+
+ ;
+
+
+
+JumpStatement
+
+ : BREAK IDENTIFIER SEMICOLON
+
+ | BREAK SEMICOLON
+
+ | CONTINUE IDENTIFIER SEMICOLON
+
+ | CONTINUE SEMICOLON
+
+ | RETURN Expression SEMICOLON
+
+ | RETURN SEMICOLON
+
+ | THROW Expression SEMICOLON
+
+ ;
+
+
+
+GuardingStatement
+
+ : SYNCHRONIZED DOPEN Expression DCLOSE Statement
+
+ | TRY Block Finally
+
+ | TRY Block Catches
+
+ | TRY Block Catches Finally
+
+ ;
+
+
+
+Catches
+
+ : Catch
+
+ | Catches Catch
+
+ ;
+
+
+
+Catch
+
+ : CatchHeader Block
+
+ ;
+
+
+
+CatchHeader
+
+ : CATCH DOPEN TypeSpecifier IDENTIFIER DCLOSE
+
+ | CATCH DOPEN TypeSpecifier DCLOSE
+
+ ;
+
+
+
+Finally
+
+ : FINALLY Block
+
+ ;
+
+
+
+PrimaryExpression
+
+ : QualifiedName %resolve
+
+ | NotJustName %resolve
+
+ ;
+
+
+
+NotJustName
+
+ : SpecialName %resolve
+
+ | NewAllocationExpression %resolve
+
+ | ComplexPrimary %resolve
+
+ ;
+
+
+
+ComplexPrimary
+
+ : DOPEN Expression DCLOSE
+
+ | ComplexPrimaryNoParenthesis %resolve
+
+ ;
+
+
+
+ComplexPrimaryNoParenthesis
+
+ : LITERAL
+
+ | BOOLLIT
+
+ | ArrayAccess
+
+ | FieldAccess
+
+ | MethodCall
+
+ ;
+
+
+
+ArrayAccess
+
+ : QualifiedName BOPEN Expression BCLOSE
+
+ | ComplexPrimary BOPEN Expression BCLOSE
+
+ ;
+
+
+
+FieldAccess
+
+ : NotJustName DOT IDENTIFIER
+
+ | RealPostfixExpression DOT IDENTIFIER
+
+ | QualifiedName DOT THIS
+
+ | QualifiedName DOT CLASS
+
+ | PrimitiveType DOT CLASS
+
+ ;
+
+
+
+MethodCall
+
+ : MethodAccess DOPEN ArgumentList DCLOSE
+
+ | MethodAccess DOPEN DCLOSE
+
+ ;
+
+
+
+MethodAccess
+
+ : ComplexPrimaryNoParenthesis
+
+ | SpecialName
+
+ | QualifiedName
+
+ ;
+
+
+
+SpecialName
+
+ : THIS
+
+ | SUPER
+
+ | NULL
+
+ ;
+
+
+
+ArgumentList
+
+ : Expression
+
+ | ArgumentList COMMA Expression
+
+ ;
+
+
+
+NewAllocationExpression
+
+ : PlainNewAllocationExpression
+
+ | QualifiedName DOT PlainNewAllocationExpression
+
+ ;
+
+
+
+PlainNewAllocationExpression
+
+ : ArrayAllocationExpression
+
+ | ClassAllocationExpression
+
+ | ArrayAllocationExpression COPEN CCLOSE
+
+ | ClassAllocationExpression COPEN CCLOSE
+
+ | ArrayAllocationExpression COPEN ArrayInitializers CCLOSE
+
+ | ClassAllocationExpression COPEN FieldDeclarations CCLOSE
+
+ ;
+
+
+
+ClassAllocationExpression
+
+ : NEW TypeName DOPEN ArgumentList DCLOSE
+
+ | NEW TypeName DOPEN DCLOSE
+
+ ;
+
+
+
+ArrayAllocationExpression
+
+ : NEW TypeName DimExprs Dims
+
+ | NEW TypeName DimExprs
+
+ | NEW TypeName Dims
+
+ ;
+
+
+
+DimExprs
+
+ : DimExpr
+
+ | DimExprs DimExpr
+
+ ;
+
+
+
+DimExpr
+
+ : BOPEN Expression BCLOSE
+
+ ;
+
+
+
+Dims
+
+ : OP_DIM
+
+ | Dims OP_DIM
+
+ ;
+
+
+
+PostfixExpression
+
+ : PrimaryExpression %resolve
+
+ | RealPostfixExpression %resolve
+
+ ;
+
+
+
+RealPostfixExpression
+
+ : PostfixExpression OP_INC
+
+ | PostfixExpression OP_DEC
+
+ ;
+
+
+
+UnaryExpression
+
+ : OP_INC UnaryExpression
+
+ | OP_DEC UnaryExpression
+
+ | ArithmeticUnaryOperator CastExpression
+
+ | LogicalUnaryExpression %resolve
+
+ ;
+
+
+
+LogicalUnaryExpression
+
+ : PostfixExpression %resolve
+
+ | LogicalUnaryOperator UnaryExpression
+
+ ;
+
+
+
+LogicalUnaryOperator
+
+ : TILDE
+
+ | NOT
+
+ ;
+
+
+
+ArithmeticUnaryOperator
+
+ : PLUS
+
+ | MINUS
+
+ ;
+
+
+
+CastExpression
+
+ : UnaryExpression %resolve
+
+ | DOPEN PrimitiveTypeExpression DCLOSE CastExpression
+
+ | DOPEN ClassTypeExpression DCLOSE CastExpression
+
+ | DOPEN Expression DCLOSE LogicalUnaryExpression
+
+ ;
+
+
+
+PrimitiveTypeExpression
+
+ : PrimitiveType
+
+ | PrimitiveType Dims
+
+ ;
+
+
+
+ClassTypeExpression
+
+ : QualifiedName Dims
+
+ ;
+
+
+
+MultiplicativeExpression
+
+ : CastExpression %resolve
+
+ | MultiplicativeExpression MULT CastExpression
+
+ | MultiplicativeExpression DIV CastExpression
+
+ | MultiplicativeExpression MOD CastExpression
+
+ ;
+
+
+
+AdditiveExpression
+
+ : MultiplicativeExpression %resolve
+
+ | AdditiveExpression PLUS MultiplicativeExpression
+
+ | AdditiveExpression MINUS MultiplicativeExpression
+
+ ;
+
+
+
+ShiftExpression
+
+ : AdditiveExpression %resolve
+
+ | ShiftExpression OP_SHL AdditiveExpression
+
+ | ShiftExpression OP_SHR AdditiveExpression
+
+ | ShiftExpression OP_SHRR AdditiveExpression
+
+ ;
+
+
+
+RelationalExpression
+
+ : ShiftExpression %resolve
+
+ | RelationalExpression LT ShiftExpression
+
+ | RelationalExpression GT ShiftExpression
+
+ | RelationalExpression OP_LE ShiftExpression
+
+ | RelationalExpression OP_GE ShiftExpression
+
+ | RelationalExpression INSTANCEOF TypeSpecifier
+
+ ;
+
+
+
+EqualityExpression
+
+ : RelationalExpression %resolve
+
+ | EqualityExpression OP_EQ RelationalExpression
+
+ | EqualityExpression OP_NE RelationalExpression
+
+ ;
+
+
+
+AndExpression
+
+ : EqualityExpression %resolve
+
+ | AndExpression AND EqualityExpression
+
+ ;
+
+
+
+ExclusiveOrExpression
+
+ : AndExpression %resolve
+
+ | ExclusiveOrExpression XOR AndExpression
+
+ ;
+
+
+
+InclusiveOrExpression
+
+ : ExclusiveOrExpression %resolve
+
+ | InclusiveOrExpression OR ExclusiveOrExpression
+
+ ;
+
+
+
+ConditionalAndExpression
+
+ : InclusiveOrExpression %resolve
+
+ | ConditionalAndExpression OP_LAND InclusiveOrExpression
+
+ ;
+
+
+
+ConditionalOrExpression
+
+ : ConditionalAndExpression %resolve
+
+ | ConditionalOrExpression OP_LOR ConditionalAndExpression
+
+ ;
+
+
+
+ConditionalExpression
+
+ : ConditionalOrExpression %resolve
+
+ | ConditionalOrExpression QM Expression COLON ConditionalExpression
+
+ ;
+
+
+
+AssignmentExpression
+
+ : ConditionalExpression %resolve
+
+ | UnaryExpression AssignmentOperator AssignmentExpression
+
+ ;
+
+
+
+AssignmentOperator
+
+ : EQ
+
+ | ASS_OP
+
+ ;
+
+
+
+Expression
+
+ : AssignmentExpression
+
+ ;
+
+
+
+ConstantExpression
+
+ : ConditionalExpression
+
+ ;
+
+
+
+
+
1.4 +3 -3
xml-cocoon2/src/webapp/samples/common/style/xsl/html/simple-samples2html.xsl
Index: simple-samples2html.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/common/style/xsl/html/simple-samples2html.xsl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- simple-samples2html.xsl 4 Jun 2002 23:38:15 -0000 1.3
+++ simple-samples2html.xsl 21 Sep 2002 22:57:19 -0000 1.4
@@ -6,7 +6,7 @@
<xsl:template match="/">
<html>
<head>
- <title>Apache Cocoon @version@</title>
+ <title>Apache Cocoon 2.1-dev</title>
<link rel="SHORTCUT ICON" href="favicon.ico"/>
</head>
<body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
@@ -14,7 +14,7 @@
<tr>
<td width="*"><font face="arial,helvetica,sanserif"
color="#000000">The Apache Software Foundation is proud to
present...</font></td>
<td width="40%" align="center"><img border="0"
src="images/cocoon.gif"/></td>
- <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version @version@</b></font></td>
+ <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version 2.1-dev</b></font></td>
</tr>
<tr>
<table bgcolor="#000000" border="0" cellspacing="2" cellpadding="2"
align="center" width="100%">
@@ -32,7 +32,7 @@
<p align="center">
<font size="-1">
- Copyright © @year@ <a href="http://www.apache.org/">The Apache
Software Foundation</a>.<br/>
+ Copyright © 1999-2002 <a href="http://www.apache.org/">The Apache
Software Foundation</a>.<br/>
All rights reserved.
</font>
</p>
1.2 +5 -5
xml-cocoon2/src/webapp/samples/hello-world/style/xsl/simple-page2swf.xsl
Index: simple-page2swf.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/hello-world/style/xsl/simple-page2swf.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- simple-page2swf.xsl 23 Jul 2002 19:38:00 -0000 1.1
+++ simple-page2swf.xsl 21 Sep 2002 22:57:19 -0000 1.2
@@ -431,7 +431,7 @@
<ShapeRaw>EDVoWs5mw86yAJqwAxyiW8YyrJci72p4FV2+SHwVjp/U1gV3AoW3yQ+C1phVyUDCY6I0MAmXQA1z
9lnmwR21AJ48ANhRJeFrrK2LPaHXuo11/qWkGzYvtode6jqcP11B7mZQ1GEAmXQBAKNvYugA
</ShapeRaw>
</Glyph>
- <Glyph char="�" advance="768" xmin="128" ymin="-640" xmax="640"
ymax="0">
+ <Glyph char="?" advance="768" xmin="128" ymin="-640" xmax="640"
ymax="0">
<ShapeRaw>EDUpD4eB4OW0HBEHKmAFagLAcqgOCAOWwHIgAAA= </ShapeRaw>
</Glyph>
<Glyph char="�" advance="228" xmin="54" ymin="-104" xmax="159"
ymax="136">
@@ -484,17 +484,17 @@
<ShapeRaw>EDVoxpH4Gf2VfgrvdcHAlmyrcFqbr64FV2VbglHZlp94d74AJ7SANnjJ95mQBX5wBXyPk5yPlE0A
J0IACIb9mdBWQaw02gQc6HN0IQA2zgBMDojzHKQoAEyiAHNzOOdwAK5OALPx9zNjXNgASzgFBCAA
</ShapeRaw>
</Glyph>
- <Glyph char="�" advance="768" xmin="128" ymin="-640" xmax="640"
ymax="0">
+ <Glyph char="?" advance="768" xmin="128" ymin="-640" xmax="640"
ymax="0">
<ShapeRaw>EDUpD4eB4OW0HBEHKmAFagLAcqgOCAOWwHIgAAA= </ShapeRaw>
</Glyph>
<Glyph char="�" advance="626" xmin="21" ymin="-915" xmax="600"
ymax="0">
<ShapeRaw>EDVpMr1544RhwOpsq3Jb3ZpuK7xXtTKngmfZqeRBuyrgrJ9MLab1ewzb8ejNig35S6bDPtOVVAA=
</ShapeRaw>
</Glyph>
- <Glyph char="�" advance="768" xmin="128" ymin="-640" xmax="640"
ymax="0">
+ <Glyph char="?" advance="768" xmin="128" ymin="-640" xmax="640"
ymax="0">
<ShapeRaw>EDUpD4eB4OW0HBEHKmAFagLAcqgOCAOWwHIgAAA= </ShapeRaw>
</Glyph>
- <Glyph char="�" advance="768" xmin="128" ymin="-640" xmax="640"
ymax="0">
+ <Glyph char="?" advance="768" xmin="128" ymin="-640" xmax="640"
ymax="0">
<ShapeRaw>EDUpD4eB4OW0HBEHKmAFagLAcqgOCAOWwHIgAAA= </ShapeRaw>
</Glyph>
<Glyph char="�" advance="228" xmin="64" ymin="-745" xmax="169"
ymax="-505">
@@ -549,7 +549,7 @@
ZltmNrCXawAOpgBdIzCYuP0oAmQAAuy5i7LAJ2YAndPNm08y+AAVoc2LwJNN9Wmxsy2LMUBLEAV1
M2sU/SQA </ShapeRaw>
</Glyph>
- <Glyph char="�" advance="768" xmin="128" ymin="-640" xmax="640"
ymax="0">
+ <Glyph char="?" advance="768" xmin="128" ymin="-640" xmax="640"
ymax="0">
<ShapeRaw>EDUpD4eB4OW0HBEHKmAFagLAcqgOCAOWwHIgAAA= </ShapeRaw>
</Glyph>
<Glyph char="�" advance="512" xmin="20" ymin="-737" xmax="490"
ymax="0">
1.2 +1 -1 xml-cocoon2/src/webapp/samples/linkstatus/linkstatus.xsl
Index: linkstatus.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/linkstatus/linkstatus.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linkstatus.xsl 14 Jun 2002 16:19:13 -0000 1.1
+++ linkstatus.xsl 21 Sep 2002 22:57:19 -0000 1.2
@@ -31,4 +31,4 @@
</tr>
</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+</xsl:stylesheet>
1.2 +1 -1 xml-cocoon2/src/webapp/samples/mod-db/database.xml
Index: database.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/mod-db/database.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- database.xml 24 Jun 2002 10:44:32 -0000 1.1
+++ database.xml 21 Sep 2002 22:57:19 -0000 1.2
@@ -125,4 +125,4 @@
<table name="user_groups" others-mode="request"/>
</table-set>
-</root>
\ No newline at end of file
+</root>
1.2 +1 -1 xml-cocoon2/src/webapp/samples/mod-db/schema.sql
Index: schema.sql
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/mod-db/schema.sql,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- schema.sql 24 Jun 2002 10:44:32 -0000 1.1
+++ schema.sql 21 Sep 2002 22:57:19 -0000 1.2
@@ -24,4 +24,4 @@
primary key (uid,gid),
foreign key (uid) references user(uid),
foreign key (gid) references groups(gid)
-);
\ No newline at end of file
+);
1.2 +3 -3 xml-cocoon2/src/webapp/samples/profiler/page2html.xsl
Index: page2html.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/profiler/page2html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- page2html.xsl 3 Sep 2002 10:07:31 -0000 1.1
+++ page2html.xsl 21 Sep 2002 22:57:19 -0000 1.2
@@ -7,7 +7,7 @@
<xsl:template match="/">
<html>
<head>
- <title>Apache Cocoon @version@</title>
+ <title>Apache Cocoon 2.1-dev</title>
<link rel="SHORTCUT ICON" href="favicon.ico"/>
<xsl:apply-templates select="page/style"/>
@@ -20,7 +20,7 @@
present...</font></td>
<td width="40%" align="center"><img border="0"
src="/cocoon/samples/images/cocoon.gif"/></td>
<td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version
[EMAIL PROTECTED]@</b></font></td>
+2.1-dev</b></font></td>
</tr>
<tr>
<table bgcolor="#000000" border="0" cellspacing="2" cellpadding="2"
align="center" width="100%">
@@ -40,7 +40,7 @@
<p align="center">
<font size="-1">
- Copyright © @year@ <a href="http://www.apache.org/">The Apache
Software Foundation</a>.<br/>
+ Copyright © 1999-2002 <a href="http://www.apache.org/">The Apache
Software Foundation</a>.<br/>
All rights reserved.
</font>
</p>
1.3 +3 -3
xml-cocoon2/src/webapp/samples/stylesheets/simple-samples2html.xsl
Index: simple-samples2html.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/stylesheets/simple-samples2html.xsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- simple-samples2html.xsl 21 Aug 2002 07:29:27 -0000 1.2
+++ simple-samples2html.xsl 21 Sep 2002 22:57:19 -0000 1.3
@@ -6,7 +6,7 @@
<xsl:template match="/">
<html>
<head>
- <title>Apache Cocoon @version@</title>
+ <title>Apache Cocoon 2.1-dev</title>
<link rel="SHORTCUT ICON" href="favicon.ico"/>
</head>
<body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
@@ -17,7 +17,7 @@
<tr>
<td width="30%"></td>
<td width="40%" align="center"><img border="0"
src="/cocoon/samples/images/cocoon.gif"/></td>
- <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version @version@</b></font></td>
+ <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version 2.1-dev</b></font></td>
</tr>
</table>
@@ -25,7 +25,7 @@
<p align="center">
<font size="-1">
- Copyright © @year@ <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
+ Copyright © 1999-2002 <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
All rights reserved.
</font>
</p>
1.2 +3 -3
xml-cocoon2/src/webapp/samples/stylesheets/svg-samples2html.xsl
Index: svg-samples2html.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/stylesheets/svg-samples2html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- svg-samples2html.xsl 2 Jul 2002 13:06:40 -0000 1.1
+++ svg-samples2html.xsl 21 Sep 2002 22:57:19 -0000 1.2
@@ -5,7 +5,7 @@
<xsl:template match="/">
<html>
<head>
- <title>Apache Cocoon @version@</title>
+ <title>Apache Cocoon 2.1-dev</title>
</head>
<body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
<table border="0" cellspacing="2" cellpadding="2" align="center"
width="100%">
@@ -15,7 +15,7 @@
<tr>
<td width="30%"></td>
<td width="40%" align="center"><img border="0"
src="images/cocoon.gif"/></td>
- <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version @version@</b></font></td>
+ <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version 2.1-dev</b></font></td>
</tr>
</table>
@@ -23,7 +23,7 @@
<p align="center">
<font size="-1">
- Copyright © @year@ <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
+ Copyright © 1999-2002 <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
All rights reserved.
</font>
</p>
1.2 +4 -4
xml-cocoon2/src/webapp/samples/sub/stylesheets/simple-samples2html.xsl
Index: simple-samples2html.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/sub/stylesheets/simple-samples2html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- simple-samples2html.xsl 1 Jul 2002 15:11:08 -0000 1.1
+++ simple-samples2html.xsl 21 Sep 2002 22:57:19 -0000 1.2
@@ -9,7 +9,7 @@
<xsl:template match="/">
<html>
<head>
- <title>Apache Cocoon @version@</title>
+ <title>Apache Cocoon 2.1-dev</title>
</head>
<body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
<table border="0" cellspacing="2" cellpadding="2" align="center"
width="100%">
@@ -19,7 +19,7 @@
<tr>
<td width="30%"></td>
<td width="40%" align="center"><img border="0"
src="../images/cocoon.gif"/></td>
- <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version @version@</b></font></td>
+ <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version 2.1-dev</b></font></td>
</tr>
</table>
@@ -27,7 +27,7 @@
<p align="center">
<font size="-1">
- Copyright © @year@ <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
+ Copyright © 1999-2002 <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
All rights reserved.
</font>
</p>
1.4 +8 -2
xml-cocoon2/src/webapp/samples/webserviceproxy/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/webserviceproxy/sitemap.xmap,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- sitemap.xmap 4 Jul 2002 21:19:06 -0000 1.3
+++ sitemap.xmap 21 Sep 2002 22:57:19 -0000 1.4
@@ -4,7 +4,7 @@
<!-- =========================== Components
================================ -->
<map:components>
<map:generators default="file">
- <map:generator name="wsproxy"
src="org.apache.cocoon.generation.WebServiceProxyGenerator"
logger="webapp.wsproxy"/>
+ <map:generator name="wsproxy"
src="org.apache.cocoon.generation.WebServiceProxyGenerator"
logger="sitemap.generator.wsproxy"/>
</map:generators>
</map:components>
@@ -23,9 +23,15 @@
<!-- Interactive Web Application Syndication -->
<map:match pattern="*">
+
<map:generate type="wsproxy"
-
src="http://{header:host}/cocoon/samples/xmlform/wizard?cocoon-view=xml"
+
+
src="http://localhost:8080/cocoon/samples/xmlform/wizard?cocoon-view=xml"
label="xml"/>
+
+ <!-- This line is temporarily hidden, due to problem with the
InputModule -->
+ <!--
src="http://{header:host}/cocoon/samples/xmlform/wizard?cocoon-view=xml" -->
+
<map:transform src="stylesheets/newWizard2html.xsl" />
<map:transform
src="context://samples/stylesheets/xmlform/xmlform2html.xsl"/>
<map:serialize type="html"/>
1.3 +2 -2 xml-cocoon2/src/webapp/samples/welcome/welcome.xhtml
Index: welcome.xhtml
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/welcome/welcome.xhtml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- welcome.xhtml 13 Aug 2002 02:23:35 -0000 1.2
+++ welcome.xhtml 21 Sep 2002 22:57:19 -0000 1.3
@@ -7,7 +7,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>Apache Cocoon @version@</title>
+ <title>Apache Cocoon 2.1-dev</title>
<link href="favicon.ico" rel="SHORTCUT ICON" />
</head>
@@ -30,7 +30,7 @@
<tr>
<td align="center" width="30%">
<font color="#000000" face="arial,helvetica,sanserif">
- <b>version @version@</b>
+ <b>version 2.1-dev</b>
</font>
</td>
</tr>
1.9 +5 -5 xml-cocoon2/src/webapp/samples/xmlform/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/xmlform/sitemap.xmap,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- sitemap.xmap 29 Jul 2002 03:03:16 -0000 1.8
+++ sitemap.xmap 21 Sep 2002 22:57:19 -0000 1.9
@@ -4,12 +4,12 @@
<!-- =========================== Components
================================ -->
<map:components>
<map:actions>
- <map:action name="WizardAction"
src="org.apache.cocoon.samples.xmlform.WizardAction" logger="webapp.xmlform"/>
- <map:action name="UsageFeedbackAction"
src="org.apache.cocoon.samples.xmlform.UsageFeedbackAction"
logger="webapp.xmlform"/>
+ <map:action name="WizardAction"
src="org.apache.cocoon.samples.xmlform.WizardAction" logger="xmlform"/>
+ <map:action name="UsageFeedbackAction"
src="org.apache.cocoon.samples.xmlform.UsageFeedbackAction" logger="xmlform"/>
</map:actions>
<map:generators default="file"/>
<map:transformers default="xslt">
- <map:transformer name="xmlform"
src="org.apache.cocoon.transformation.XMLFormTransformer"
logger="webapp.xmlform"/>
+ <map:transformer name="xmlform"
src="org.apache.cocoon.transformation.XMLFormTransformer" logger="xmlform"/>
</map:transformers>
<map:readers default="resource"/>
<map:serializers default="html"/>
@@ -74,9 +74,9 @@
<!-- Content transformation logic -->
<map:generate src="wizard/{page}.xml"/>
<map:transform type="xmlform" label="debug, xml"/>
- <map:transform src="stylesheets/wizard2html.xsl" />
+ <map:transform src="stylesheets/wizard2html.xsl"/>
<map:transform
src="context://samples/stylesheets/xmlform/xmlform2html.xsl"/>
- <map:serialize type="xhtml"/>
+ <map:serialize type="html"/>
</map:act>
</map:match>
</map:pipeline>
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]