Dennis Kao
2013-08-06 993f2864cac61b4e9f574920147e72abcc7de2c5
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/ElementDigesterUtils.java
File was renamed from xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/DigesterUtils.java
@@ -5,7 +5,7 @@
import org.apache.commons.digester3.binder.DigesterLoader;
import org.apache.commons.digester3.xmlrules.FromXmlRulesModule;
public class DigesterUtils {
public class ElementDigesterUtils {
    protected static Digester digester = null;
    protected static DigesterLoader loader = DigesterLoader.newLoader( new FromXmlRulesModule() {
            @Override
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/XGeosConfigDigesterUtils.java
New file
@@ -0,0 +1,11 @@
package com.ximple.eofms.util;
/**
 * Created with IntelliJ IDEA.
 * User: ulysseskao
 * Date: 2013/8/6
 * Time: 下午 4:35
 * To change this template use File | Settings | File Templates.
 */
public class XGeosConfigDigesterUtils {
}
xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/digester-rules-3.0.dtd
New file
@@ -0,0 +1,244 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- $Id: digester-rules-3.0.dtd 1209995 2011-12-03 20:23:25Z simonetripodi $
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at
       http://www.apache.org/licenses/LICENSE-2.0
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<!--
        "Digester" component of the Commons Subproject
        DTD for the definition of Digester rules in XML.
        $Id: digester-rules-3.0.dtd 1209995 2011-12-03 20:23:25Z simonetripodi $
        Applications wishing to reference this DTD in their own documents
        should use the following DOCTYPE declaration:
        <!DOCTYPE digester-rules PUBLIC
         "-//Apache Commons //DTD digester-rules XML V1.0//EN"
         "http://commons.apache.org/digester/dtds/digester-rules-3.0.dtd">
-->
<!-- This document type defines an XML format for defining Digester rules.
     Digester is a framework for pattern-matching-based parsing of XML into
     Java objects. See http://commons.apache.org/digester/.  -->
<!ENTITY % rule-elements "bean-property-setter-rule | call-method-rule |
                   call-param-rule | object-param-rule | node-create-rule |
                   factory-create-rule | object-create-rule |
                   set-properties-rule | set-nested-properties-rule |
                   set-property-rule | set-top-rule |
                   set-next-rule | set-root-rule" >
<!-- digester-rules is the root element. -->
<!ELEMENT digester-rules (pattern | include | %rule-elements; )*>
<!ATTLIST digester-rules
    namespaceURI   CDATA #IMPLIED>
<!-- <pattern> defines a matching pattern, or part of a matching pattern. Any
     rule nested in a pattern element prepends its parent's to its pattern.
     Patterns may be recursively nested.
     Example:
       <pattern value="foo">
          <pattern value="bar">
            <object-create-rule pattern="baz" classname="Fubar" />
          </pattern>
       </pattern>
     The above sample fragment defines an ObjectCreateRule associated
     with the pattern "foo/bar/baz".
  Note that the use of pattern elements is optional; an alternative is for
  each rule element to contain a 'pattern' attribute.   -->
<!ELEMENT pattern (pattern | include | %rule-elements; )*>
<!ATTLIST pattern
    value CDATA #REQUIRED>
<!--
  <include> allows one set of digester rules to be included inside
  another. The 'path' attribute contains the URI of the document to
  include. Inclusion behaves as if the included rules document is
  'macro-expanded' within the outer document.
  Programmatically initialized rules can be included as well, via the
  'class' attribute. The 'class' attribute should contain the name
  of a class that implements
  org.apache.commons.digester.xmlrules.DigesterRulesSource.
-->
<!ELEMENT include EMPTY>
<!ATTLIST include
    url   CDATA #IMPLIED
    class CDATA #IMPLIED>
<!-- Each 'rule' element below corresponds to a concrete subclass
     of org.apache.framework.digester.Rule.
     Each 'rule' element has an optional 'pattern' attribute, which
     defines the pattern for that rule instance. If the rule element
     is nested inside one or more <pattern> elements, those patterns
     will be prepended to the pattern specified in the rule's 'pattern'
     attribute. -->
<!-- Bean Property Setter Rule -->
<!ELEMENT bean-property-setter-rule EMPTY>
<!ATTLIST bean-property-setter-rule
    pattern                   CDATA #IMPLIED
    propertyname              CDATA #IMPLIED
    propertynameFromAttribute CDATA #IMPLIED>
<!-- CallMethodRule
  -
  - Note that paramtypes is ignored unless paramcount is defined.
  -->
<!ELEMENT call-method-rule EMPTY>
<!ATTLIST call-method-rule
    pattern                    CDATA #IMPLIED
    targetoffset               CDATA #IMPLIED
    methodname                 CDATA #REQUIRED
    paramcount                 CDATA #IMPLIED
    paramtypes                 CDATA #IMPLIED
    usingElementBodyAsArgument CDATA #IMPLIED
    useExactMatch              CDATA #IMPLIED>
<!--
    CallParamRule
    attrname
        - set param from attribute value (cannot be combined with from-stack or
          stack-index)
    from-stack
        - select an object from the current digester stack to pass as the
          parameter value.
    stack-index
        - select an object from the current digester stack to pass as a
          parameter value. If this is defined then from-stack is implicitly
          true. If from-stack is defined but this is not defined then this
          has an implicit value of zero, ie the top object on the stack is
          passed as the parameter.
    -->
<!ELEMENT call-param-rule EMPTY>
<!ATTLIST call-param-rule
    pattern  CDATA #IMPLIED
    paramnumber CDATA #REQUIRED
    attrname CDATA #IMPLIED
    from-stack CDATA #IMPLIED
    stack-index CDATA #IMPLIED>
<!--
    ObjectParamRule
    attrname
        - Optional. This attribute is not normally specified. If it is provided,
          then this rule is executed *only* if the matched element has an attribute
          with this name.
    type
        - The type of the object to be passed to the target method.
          Mandatory.
    value
        - Initial value for the object. The BeanUtils converter module will
          be used to convert this to the type specified by the type attribute.
          Optional; if no value is provided then the converter will be invoked
          to convert NULL to the target type. For most (but not all) converters,
          NULL input results in NULL output.
    -->
<!ELEMENT object-param-rule EMPTY>
<!ATTLIST object-param-rule
    pattern  CDATA #IMPLIED
    paramnumber CDATA #REQUIRED
    attrname CDATA #IMPLIED
    type CDATA #REQUIRED
    value CDATA #IMPLIED>
<!--
    NodeCreateRule
    type
        - node type: either 'element' or 'fragment'. this is optional, default is 'element'
    -->
<!ELEMENT node-create-rule EMPTY>
<!ATTLIST node-create-rule
    pattern CDATA #IMPLIED
    type CDATA #IMPLIED>
<!--
    FactoryCreateRule
    ignore-exceptions - if this attribute is (ignore case) 'true' then any exceptions
                        thrown by the object create rule will be ignore.
                        This will allow processing to continue.
    -->
<!ELEMENT factory-create-rule EMPTY>
<!ATTLIST factory-create-rule
    pattern   CDATA #IMPLIED
    classname CDATA #REQUIRED
    attrname  CDATA #IMPLIED
    ignore-exceptions  CDATA #IMPLIED>
<!-- ObjectCreateRule -->
<!ELEMENT object-create-rule EMPTY>
<!ATTLIST object-create-rule
    pattern    CDATA #IMPLIED
    classname  CDATA #REQUIRED
    attrname   CDATA #IMPLIED
    paramtypes CDATA #IMPLIED>
<!-- SetPropertiesRule -->
<!ELEMENT set-properties-rule (alias)*>
<!ATTLIST set-properties-rule
    pattern   CDATA #IMPLIED>
<!-- SetNestedPropertiesRule -->
<!ELEMENT set-nested-properties-rule (alias)*>
<!ATTLIST set-nested-properties-rule
    pattern                       CDATA #IMPLIED
    allow-unknown-child-elements  CDATA #IMPLIED>
<!-- An alias is a custom attribute->property name mapping -->
<!ELEMENT alias EMPTY>
<!ATTLIST alias
 attr-name CDATA #REQUIRED
 prop-name CDATA #IMPLIED>
<!-- SetPropertyRule -->
<!ELEMENT set-property-rule EMPTY>
<!ATTLIST set-property-rule
    pattern   CDATA #IMPLIED
    name      CDATA #IMPLIED
    value     CDATA #IMPLIED>
<!-- SetTopRule -->
<!ELEMENT set-top-rule EMPTY>
<!ATTLIST set-top-rule
    pattern     CDATA #IMPLIED
    methodname  CDATA #REQUIRED
    paramtype   CDATA #IMPLIED
    exactMatch  CDATA #IMPLIED
    fireOnBegin CDATA #IMPLIED>
<!-- SetNextRule -->
<!ELEMENT set-next-rule EMPTY>
<!ATTLIST set-next-rule
    pattern     CDATA #IMPLIED
    methodname  CDATA #REQUIRED
    paramtype   CDATA #IMPLIED
    exactMatch  CDATA #IMPLIED
    fireOnBegin CDATA #IMPLIED>
<!-- SetRootRule -->
<!ELEMENT set-root-rule EMPTY>
<!ATTLIST set-root-rule
    pattern     CDATA #IMPLIED
    methodname  CDATA #REQUIRED
    paramtype   CDATA #IMPLIED
    exactMatch  CDATA #IMPLIED
    fireOnBegin CDATA #IMPLIED>
xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/geoserver/config/DefaultXGeosDataConfigRules.xml
xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/geoserver/config/digester-rules-3.0.dtd
New file
@@ -0,0 +1,244 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- $Id: digester-rules-3.0.dtd 1209995 2011-12-03 20:23:25Z simonetripodi $
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at
       http://www.apache.org/licenses/LICENSE-2.0
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<!--
        "Digester" component of the Commons Subproject
        DTD for the definition of Digester rules in XML.
        $Id: digester-rules-3.0.dtd 1209995 2011-12-03 20:23:25Z simonetripodi $
        Applications wishing to reference this DTD in their own documents
        should use the following DOCTYPE declaration:
        <!DOCTYPE digester-rules PUBLIC
         "-//Apache Commons //DTD digester-rules XML V1.0//EN"
         "http://commons.apache.org/digester/dtds/digester-rules-3.0.dtd">
-->
<!-- This document type defines an XML format for defining Digester rules.
     Digester is a framework for pattern-matching-based parsing of XML into
     Java objects. See http://commons.apache.org/digester/.  -->
<!ENTITY % rule-elements "bean-property-setter-rule | call-method-rule |
                   call-param-rule | object-param-rule | node-create-rule |
                   factory-create-rule | object-create-rule |
                   set-properties-rule | set-nested-properties-rule |
                   set-property-rule | set-top-rule |
                   set-next-rule | set-root-rule" >
<!-- digester-rules is the root element. -->
<!ELEMENT digester-rules (pattern | include | %rule-elements; )*>
<!ATTLIST digester-rules
    namespaceURI   CDATA #IMPLIED>
<!-- <pattern> defines a matching pattern, or part of a matching pattern. Any
     rule nested in a pattern element prepends its parent's to its pattern.
     Patterns may be recursively nested.
     Example:
       <pattern value="foo">
          <pattern value="bar">
            <object-create-rule pattern="baz" classname="Fubar" />
          </pattern>
       </pattern>
     The above sample fragment defines an ObjectCreateRule associated
     with the pattern "foo/bar/baz".
  Note that the use of pattern elements is optional; an alternative is for
  each rule element to contain a 'pattern' attribute.   -->
<!ELEMENT pattern (pattern | include | %rule-elements; )*>
<!ATTLIST pattern
    value CDATA #REQUIRED>
<!--
  <include> allows one set of digester rules to be included inside
  another. The 'path' attribute contains the URI of the document to
  include. Inclusion behaves as if the included rules document is
  'macro-expanded' within the outer document.
  Programmatically initialized rules can be included as well, via the
  'class' attribute. The 'class' attribute should contain the name
  of a class that implements
  org.apache.commons.digester.xmlrules.DigesterRulesSource.
-->
<!ELEMENT include EMPTY>
<!ATTLIST include
    url   CDATA #IMPLIED
    class CDATA #IMPLIED>
<!-- Each 'rule' element below corresponds to a concrete subclass
     of org.apache.framework.digester.Rule.
     Each 'rule' element has an optional 'pattern' attribute, which
     defines the pattern for that rule instance. If the rule element
     is nested inside one or more <pattern> elements, those patterns
     will be prepended to the pattern specified in the rule's 'pattern'
     attribute. -->
<!-- Bean Property Setter Rule -->
<!ELEMENT bean-property-setter-rule EMPTY>
<!ATTLIST bean-property-setter-rule
    pattern                   CDATA #IMPLIED
    propertyname              CDATA #IMPLIED
    propertynameFromAttribute CDATA #IMPLIED>
<!-- CallMethodRule
  -
  - Note that paramtypes is ignored unless paramcount is defined.
  -->
<!ELEMENT call-method-rule EMPTY>
<!ATTLIST call-method-rule
    pattern                    CDATA #IMPLIED
    targetoffset               CDATA #IMPLIED
    methodname                 CDATA #REQUIRED
    paramcount                 CDATA #IMPLIED
    paramtypes                 CDATA #IMPLIED
    usingElementBodyAsArgument CDATA #IMPLIED
    useExactMatch              CDATA #IMPLIED>
<!--
    CallParamRule
    attrname
        - set param from attribute value (cannot be combined with from-stack or
          stack-index)
    from-stack
        - select an object from the current digester stack to pass as the
          parameter value.
    stack-index
        - select an object from the current digester stack to pass as a
          parameter value. If this is defined then from-stack is implicitly
          true. If from-stack is defined but this is not defined then this
          has an implicit value of zero, ie the top object on the stack is
          passed as the parameter.
    -->
<!ELEMENT call-param-rule EMPTY>
<!ATTLIST call-param-rule
    pattern  CDATA #IMPLIED
    paramnumber CDATA #REQUIRED
    attrname CDATA #IMPLIED
    from-stack CDATA #IMPLIED
    stack-index CDATA #IMPLIED>
<!--
    ObjectParamRule
    attrname
        - Optional. This attribute is not normally specified. If it is provided,
          then this rule is executed *only* if the matched element has an attribute
          with this name.
    type
        - The type of the object to be passed to the target method.
          Mandatory.
    value
        - Initial value for the object. The BeanUtils converter module will
          be used to convert this to the type specified by the type attribute.
          Optional; if no value is provided then the converter will be invoked
          to convert NULL to the target type. For most (but not all) converters,
          NULL input results in NULL output.
    -->
<!ELEMENT object-param-rule EMPTY>
<!ATTLIST object-param-rule
    pattern  CDATA #IMPLIED
    paramnumber CDATA #REQUIRED
    attrname CDATA #IMPLIED
    type CDATA #REQUIRED
    value CDATA #IMPLIED>
<!--
    NodeCreateRule
    type
        - node type: either 'element' or 'fragment'. this is optional, default is 'element'
    -->
<!ELEMENT node-create-rule EMPTY>
<!ATTLIST node-create-rule
    pattern CDATA #IMPLIED
    type CDATA #IMPLIED>
<!--
    FactoryCreateRule
    ignore-exceptions - if this attribute is (ignore case) 'true' then any exceptions
                        thrown by the object create rule will be ignore.
                        This will allow processing to continue.
    -->
<!ELEMENT factory-create-rule EMPTY>
<!ATTLIST factory-create-rule
    pattern   CDATA #IMPLIED
    classname CDATA #REQUIRED
    attrname  CDATA #IMPLIED
    ignore-exceptions  CDATA #IMPLIED>
<!-- ObjectCreateRule -->
<!ELEMENT object-create-rule EMPTY>
<!ATTLIST object-create-rule
    pattern    CDATA #IMPLIED
    classname  CDATA #REQUIRED
    attrname   CDATA #IMPLIED
    paramtypes CDATA #IMPLIED>
<!-- SetPropertiesRule -->
<!ELEMENT set-properties-rule (alias)*>
<!ATTLIST set-properties-rule
    pattern   CDATA #IMPLIED>
<!-- SetNestedPropertiesRule -->
<!ELEMENT set-nested-properties-rule (alias)*>
<!ATTLIST set-nested-properties-rule
    pattern                       CDATA #IMPLIED
    allow-unknown-child-elements  CDATA #IMPLIED>
<!-- An alias is a custom attribute->property name mapping -->
<!ELEMENT alias EMPTY>
<!ATTLIST alias
 attr-name CDATA #REQUIRED
 prop-name CDATA #IMPLIED>
<!-- SetPropertyRule -->
<!ELEMENT set-property-rule EMPTY>
<!ATTLIST set-property-rule
    pattern   CDATA #IMPLIED
    name      CDATA #IMPLIED
    value     CDATA #IMPLIED>
<!-- SetTopRule -->
<!ELEMENT set-top-rule EMPTY>
<!ATTLIST set-top-rule
    pattern     CDATA #IMPLIED
    methodname  CDATA #REQUIRED
    paramtype   CDATA #IMPLIED
    exactMatch  CDATA #IMPLIED
    fireOnBegin CDATA #IMPLIED>
<!-- SetNextRule -->
<!ELEMENT set-next-rule EMPTY>
<!ATTLIST set-next-rule
    pattern     CDATA #IMPLIED
    methodname  CDATA #REQUIRED
    paramtype   CDATA #IMPLIED
    exactMatch  CDATA #IMPLIED
    fireOnBegin CDATA #IMPLIED>
<!-- SetRootRule -->
<!ELEMENT set-root-rule EMPTY>
<!ATTLIST set-root-rule
    pattern     CDATA #IMPLIED
    methodname  CDATA #REQUIRED
    paramtype   CDATA #IMPLIED
    exactMatch  CDATA #IMPLIED
    fireOnBegin CDATA #IMPLIED>
xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/geoserver/config/xgeosdataconfig.xml