Here is a patchset for the acting directory of the cocoon_20_branch and HEAD.
These make the "file:" url  behave as expected for bringing in configuration files 
that live in a subsitemap.

It makes the configuration files much more useful.

Tim
? acting.diff
Index: AbstractComplementaryConfigurableAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/AbstractComplementaryConfigurableAction.java,v
retrieving revision 1.12
diff -u -r1.12 AbstractComplementaryConfigurableAction.java
--- AbstractComplementaryConfigurableAction.java        2001/10/11 07:28:15     1.12
+++ AbstractComplementaryConfigurableAction.java        2001/11/30 02:43:24
@@ -14,6 +14,8 @@
 import org.apache.cocoon.Constants;
 import org.apache.cocoon.components.source.SourceHandler;
 import org.apache.cocoon.environment.Source;
+import org.apache.cocoon.environment.SourceResolver;
+import org.apache.cocoon.environment.Environment;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -43,7 +45,7 @@
        boolean reloadable = Constants.DESCRIPTOR_RELOADABLE_DEFAULT;
        if (this.settings.containsKey("reloadable"))
            reloadable = Boolean.getBoolean((String) this.settings.get("reloadable"));
-       return this.getConfiguration(descriptor, reloadable);
+       return this.getConfiguration(descriptor, null, reloadable);
     }
 
     /**
@@ -52,7 +54,7 @@
      * this approach, we can limit the number of config files.
      * Also note that the configuration file does not have to be a file.
      */
-    protected Configuration getConfiguration(String descriptor, boolean reloadable) 
throws ConfigurationException {
+    protected Configuration getConfiguration(String descriptor, SourceResolver 
+resolver, boolean reloadable) throws ConfigurationException {
         ConfigurationHelper conf = null;
 
         if (descriptor == null) {
@@ -68,7 +70,7 @@
 
                 try {
                     sourceHandler = (SourceHandler) 
this.manager.lookup(SourceHandler.ROLE);
-                    resource = sourceHandler.getSource(null, descriptor);
+                    resource = sourceHandler.getSource((Environment)resolver, 
+descriptor);
 
                     if (conf == null || conf.lastModified < 
resource.getLastModified()) {
                         getLogger().debug("(Re)Loading " + descriptor);
Index: DatabaseAddAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseAddAction.java,v
retrieving revision 1.14
diff -u -r1.14 DatabaseAddAction.java
--- DatabaseAddAction.java      2001/10/25 18:00:11     1.14
+++ DatabaseAddAction.java      2001/11/30 02:43:24
@@ -56,7 +56,7 @@
        // read local parameter settings
         try {
             Configuration conf = 
-               this.getConfiguration(param.getParameter("descriptor", (String) 
this.settings.get("descriptor")), 
+               this.getConfiguration(param.getParameter("descriptor", (String) 
+this.settings.get("descriptor")), resolver, 
                                      
param.getParameterAsBoolean("reloadable",reloadable));
 
             datasource = this.getDataSource(conf);
Index: DatabaseAuthenticatorAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseAuthenticatorAction.java,v
retrieving revision 1.16
diff -u -r1.16 DatabaseAuthenticatorAction.java
--- DatabaseAuthenticatorAction.java    2001/10/25 19:32:58     1.16
+++ DatabaseAuthenticatorAction.java    2001/11/30 02:43:24
@@ -79,6 +79,7 @@
         try {
             Configuration conf = this.getConfiguration (
                     parameters.getParameter ("descriptor", (String) 
this.settings.get("descriptor")),
+            resolver,
             parameters.getParameterAsBoolean("reloadable",reloadable));
             boolean cs = true;
             String create_session = parameters.getParameter ("create-session",
Index: DatabaseDeleteAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseDeleteAction.java,v
retrieving revision 1.11
diff -u -r1.11 DatabaseDeleteAction.java
--- DatabaseDeleteAction.java   2001/10/11 07:28:15     1.11
+++ DatabaseDeleteAction.java   2001/11/30 02:43:24
@@ -54,7 +54,7 @@
        // read local parameter settings
         try {
             Configuration conf = 
-               this.getConfiguration(param.getParameter("descriptor", (String) 
this.settings.get("descriptor")), 
+               this.getConfiguration(param.getParameter("descriptor", (String) 
+this.settings.get("descriptor")), resolver, 
                                      
param.getParameterAsBoolean("reloadable",reloadable));
 
             String query = this.getDeleteQuery(conf);
Index: DatabaseSelectAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseSelectAction.java,v
retrieving revision 1.5
diff -u -r1.5 DatabaseSelectAction.java
--- DatabaseSelectAction.java   2001/10/11 07:28:15     1.5
+++ DatabaseSelectAction.java   2001/11/30 02:43:24
@@ -56,6 +56,7 @@
         try {
             Configuration conf = 
                 this.getConfiguration(param.getParameter("descriptor", (String) 
this.settings.get("descriptor")), 
+                                      resolver,
                                       
param.getParameterAsBoolean("reloadable",reloadable));
 
             Request request = (Request) objectModel.get(Constants.REQUEST_OBJECT);
Index: DatabaseUpdateAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseUpdateAction.java,v
retrieving revision 1.12
diff -u -r1.12 DatabaseUpdateAction.java
--- DatabaseUpdateAction.java   2001/10/11 07:28:15     1.12
+++ DatabaseUpdateAction.java   2001/11/30 02:43:24
@@ -51,7 +51,7 @@
        // read local parameter settings
         try {
             Configuration conf = 
-               this.getConfiguration(param.getParameter("descriptor", (String) 
this.settings.get("descriptor")), 
+               this.getConfiguration(param.getParameter("descriptor", (String) 
+this.settings.get("descriptor")), resolver,
                                      
param.getParameterAsBoolean("reloadable",reloadable));
 
             String query = this.getUpdateQuery(conf);
Index: FormValidatorAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/FormValidatorAction.java,v
retrieving revision 1.12
diff -u -r1.12 FormValidatorAction.java
--- FormValidatorAction.java    2001/10/11 07:28:15     1.12
+++ FormValidatorAction.java    2001/11/30 02:43:24
@@ -81,7 +81,7 @@
        // read local settings
         try {
             Configuration conf = this.getConfiguration (
-                    parameters.getParameter ("descriptor", (String) 
this.settings.get("descriptor")), 
+                    parameters.getParameter ("descriptor", (String) 
+this.settings.get("descriptor")), resolver, 
                    parameters.getParameterAsBoolean("reloadable", reloadable));
             String valstr = parameters.getParameter ("validate", (String) 
settings.get("validate",""));
             String valsetstr = parameters.getParameter ("validate-set", (String) 
settings.get("validate-set",""));
Index: SessionValidatorAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/SessionValidatorAction.java,v
retrieving revision 1.12
diff -u -r1.12 SessionValidatorAction.java
--- SessionValidatorAction.java 2001/10/11 07:28:16     1.12
+++ SessionValidatorAction.java 2001/11/30 02:43:25
@@ -83,7 +83,7 @@
 
         try {
             Configuration conf = this.getConfiguration (
-                    parameters.getParameter ("descriptor", (String) 
this.settings.get("descriptor")),
+                    parameters.getParameter ("descriptor", (String) 
+this.settings.get("descriptor")), resolver,
             parameters.getParameterAsBoolean("reloadable",reloadable));
 
             String valsetstr = parameters.getParameter ( "validate-set", (String) 
settings.get("validate-set") );
? acting.diff
Index: AbstractComplementaryConfigurableAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/AbstractComplementaryConfigurableAction.java,v
retrieving revision 1.3.2.9
diff -u -r1.3.2.9 AbstractComplementaryConfigurableAction.java
--- AbstractComplementaryConfigurableAction.java        2001/10/11 08:52:03     1.3.2.9
+++ AbstractComplementaryConfigurableAction.java        2001/11/30 02:12:39
@@ -14,6 +14,8 @@
 import org.apache.cocoon.Constants;
 import org.apache.cocoon.components.source.SourceHandler;
 import org.apache.cocoon.environment.Source;
+import org.apache.cocoon.environment.SourceResolver;
+import org.apache.cocoon.environment.Environment;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -43,7 +45,7 @@
        boolean reloadable = Constants.DESCRIPTOR_RELOADABLE_DEFAULT;
        if (this.settings.containsKey("reloadable"))
            reloadable = Boolean.getBoolean((String) this.settings.get("reloadable"));
-       return this.getConfiguration(descriptor, reloadable);
+       return this.getConfiguration(descriptor, null, reloadable);
     }
 
     /**
@@ -52,7 +54,7 @@
      * this approach, we can limit the number of config files.
      * Also note that the configuration file does not have to be a file.
      */
-    protected Configuration getConfiguration(String descriptor, boolean reloadable) 
throws ConfigurationException {
+    protected Configuration getConfiguration(String descriptor, SourceResolver 
+resolver, boolean reloadable) throws ConfigurationException {
         ConfigurationHelper conf = null;
 
         if (descriptor == null) {
@@ -68,7 +70,7 @@
 
                 try {
                     sourceHandler = (SourceHandler) 
this.manager.lookup(SourceHandler.ROLE);
-                    resource = sourceHandler.getSource(null, descriptor);
+                    resource = sourceHandler.getSource((Environment)resolver, 
+descriptor);
 
                     if (conf == null || conf.lastModified < 
resource.getLastModified()) {
                         getLogger().debug("(Re)Loading " + descriptor);
Index: DatabaseAddAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseAddAction.java,v
retrieving revision 1.6.2.9
diff -u -r1.6.2.9 DatabaseAddAction.java
--- DatabaseAddAction.java      2001/10/25 18:00:34     1.6.2.9
+++ DatabaseAddAction.java      2001/11/30 02:12:39
@@ -56,7 +56,7 @@
        // read local parameter settings
         try {
             Configuration conf = 
-               this.getConfiguration(param.getParameter("descriptor", (String) 
this.settings.get("descriptor")), 
+               this.getConfiguration(param.getParameter("descriptor", (String) 
+this.settings.get("descriptor")), resolver, 
                                      
param.getParameterAsBoolean("reloadable",reloadable));
 
             datasource = this.getDataSource(conf);
Index: DatabaseAuthenticatorAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseAuthenticatorAction.java,v
retrieving revision 1.3.2.12
diff -u -r1.3.2.12 DatabaseAuthenticatorAction.java
--- DatabaseAuthenticatorAction.java    2001/10/25 19:31:24     1.3.2.12
+++ DatabaseAuthenticatorAction.java    2001/11/30 02:12:39
@@ -78,7 +78,7 @@
         // read local settings
         try {
             Configuration conf = this.getConfiguration (
-                    parameters.getParameter ("descriptor", (String) 
this.settings.get("descriptor")),
+                    parameters.getParameter ("descriptor", (String) 
+this.settings.get("descriptor")), resolver,
                     parameters.getParameterAsBoolean("reloadable",reloadable));
             boolean cs = true;
             String create_session = parameters.getParameter ("create-session",
Index: DatabaseDeleteAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseDeleteAction.java,v
retrieving revision 1.3.2.9
diff -u -r1.3.2.9 DatabaseDeleteAction.java
--- DatabaseDeleteAction.java   2001/10/11 08:52:03     1.3.2.9
+++ DatabaseDeleteAction.java   2001/11/30 02:12:39
@@ -54,7 +54,7 @@
        // read local parameter settings
         try {
             Configuration conf = 
-               this.getConfiguration(param.getParameter("descriptor", (String) 
this.settings.get("descriptor")), 
+               this.getConfiguration(param.getParameter("descriptor", (String) 
+this.settings.get("descriptor")), resolver, 
                                      
param.getParameterAsBoolean("reloadable",reloadable));
 
             String query = this.getDeleteQuery(conf);
Index: DatabaseUpdateAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/DatabaseUpdateAction.java,v
retrieving revision 1.3.2.10
diff -u -r1.3.2.10 DatabaseUpdateAction.java
--- DatabaseUpdateAction.java   2001/10/11 08:52:03     1.3.2.10
+++ DatabaseUpdateAction.java   2001/11/30 02:12:39
@@ -51,7 +51,7 @@
        // read local parameter settings
         try {
             Configuration conf = 
-               this.getConfiguration(param.getParameter("descriptor", (String) 
this.settings.get("descriptor")), 
+               this.getConfiguration(param.getParameter("descriptor", (String) 
+this.settings.get("descriptor")), resolver,
                                      
param.getParameterAsBoolean("reloadable",reloadable));
 
             String query = this.getUpdateQuery(conf);
Index: FormValidatorAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/FormValidatorAction.java,v
retrieving revision 1.4.2.8
diff -u -r1.4.2.8 FormValidatorAction.java
--- FormValidatorAction.java    2001/10/11 08:52:03     1.4.2.8
+++ FormValidatorAction.java    2001/11/30 02:12:39
@@ -81,7 +81,7 @@
        // read local settings
         try {
             Configuration conf = this.getConfiguration (
-                    parameters.getParameter ("descriptor", (String) 
this.settings.get("descriptor")), 
+                    parameters.getParameter ("descriptor", (String) 
+this.settings.get("descriptor")), resolver, 
                    parameters.getParameterAsBoolean("reloadable", reloadable));
             String valstr = parameters.getParameter ("validate", (String) 
settings.get("validate",""));
             String valsetstr = parameters.getParameter ("validate-set", (String) 
settings.get("validate-set",""));
Index: SessionValidatorAction.java
===================================================================
RCS file: 
/home/cvspublic/xml-cocoon2/src/org/apache/cocoon/acting/SessionValidatorAction.java,v
retrieving revision 1.3.2.9
diff -u -r1.3.2.9 SessionValidatorAction.java
--- SessionValidatorAction.java 2001/10/11 08:52:03     1.3.2.9
+++ SessionValidatorAction.java 2001/11/30 02:12:39
@@ -83,7 +83,7 @@
 
         try {
             Configuration conf = this.getConfiguration (
-                    parameters.getParameter ("descriptor", (String) 
this.settings.get("descriptor")),
+                    parameters.getParameter ("descriptor", (String) 
+this.settings.get("descriptor")), resolver,
             parameters.getParameterAsBoolean("reloadable",reloadable));
 
             String valsetstr = parameters.getParameter ( "validate-set", (String) 
settings.get("validate-set") );

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to