You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gi...@apache.org on 2002/12/17 01:03:46 UTC
cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/source XMLDBSource.java XMLDBSourceFactory.java
gianugo 2002/12/16 16:03:45
Modified: src/java/org/apache/cocoon/components/source
XMLDBSource.java XMLDBSourceFactory.java
Log:
Added optional "user" and "password" attributes to the XML:DB configuration
Revision Changes Path
1.11 +14 -3 xml-cocoon2/src/java/org/apache/cocoon/components/source/XMLDBSource.java
Index: XMLDBSource.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/source/XMLDBSource.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XMLDBSource.java 5 Dec 2002 10:17:29 -0000 1.10
+++ XMLDBSource.java 17 Dec 2002 00:03:45 -0000 1.11
@@ -54,6 +54,7 @@
import org.apache.avalon.framework.logger.Logger;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.ResourceNotFoundException;
+import org.apache.cocoon.components.source.helpers.SourceCredential;
import org.apache.cocoon.environment.Environment;
import org.apache.cocoon.xml.IncludeXMLConsumer;
import org.xml.sax.ContentHandler;
@@ -87,6 +88,12 @@
/** The requested URL */
protected String url;
+ /** The supplied user */
+ protected String user = null;
+
+ /** The supplied password */
+ protected String password;
+
/** The part of URL after # sign */
protected String query = null;
@@ -140,6 +147,7 @@
ComponentManager manager,
Logger logger,
String driver,
+ SourceCredential credential,
String url) {
super(environment, manager, logger);
@@ -147,6 +155,9 @@
this.driver = driver;
+ this.user = credential.getPrincipal();
+ this.password = credential.getPassword();
+
if ((start = url.indexOf('#')) != -1) {
this.url = url.substring(0, start);
this.query = url.substring(start + 1);
@@ -212,7 +223,7 @@
final String res = url.substring(url.lastIndexOf('/') + 1);
try {
- Collection collection = DatabaseManager.getCollection(col);
+ Collection collection = DatabaseManager.getCollection(col, user, password);
if (collection == null) {
throw new ResourceNotFoundException("Document " + url + " not found");
}
@@ -251,7 +262,7 @@
AttributesImpl attributes = new AttributesImpl();
try {
- Collection collection = DatabaseManager.getCollection(url);
+ Collection collection = DatabaseManager.getCollection(url, user, password);
if (collection == null) {
throw new ResourceNotFoundException("Collection " + url +
" not found");
1.8 +20 -4 xml-cocoon2/src/java/org/apache/cocoon/components/source/XMLDBSourceFactory.java
Index: XMLDBSourceFactory.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/source/XMLDBSourceFactory.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XMLDBSourceFactory.java 5 Dec 2002 10:17:29 -0000 1.7
+++ XMLDBSourceFactory.java 17 Dec 2002 00:03:45 -0000 1.8
@@ -56,7 +56,9 @@
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
+
import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.components.source.helpers.SourceCredential;
import org.apache.cocoon.environment.Environment;
import org.apache.cocoon.environment.Source;
@@ -81,12 +83,18 @@
/** The driver implementation class */
protected String driver;
- /** The driver implementation class */
+ /** The authentication info */
+ protected SourceCredential credential;
+
+ /** The Component Manager class */
protected ComponentManager m_manager;
/** A Map containing the driver list */
protected HashMap driverMap;
+ /** A Map containing the authentication credentials */
+ protected HashMap credentialMap;
+
/**
* Configure the instance.
*/
@@ -96,12 +104,19 @@
if (conf != null) {
driverMap = new HashMap();
+ credentialMap = new HashMap();
Configuration[] xmldbConfigs = conf.getChildren("driver");
for (int i = 0; i < xmldbConfigs.length; i++) {
+ SourceCredential credential = new SourceCredential(null, null);
+
driverMap.put(xmldbConfigs[i].getAttribute("type"),
- xmldbConfigs[i].getAttribute("class"));
+ xmldbConfigs[i].getAttribute("class"));
+
+ credential.setPrincipal(xmldbConfigs[i].getAttribute("user", null));
+ credential.setPassword(xmldbConfigs[i].getAttribute("password", null));
+ credentialMap.put(xmldbConfigs[i].getAttribute("type"), credential);
}
} else {
@@ -136,6 +151,7 @@
String type = location.substring(start, end);
driver = (String)driverMap.get(type);
+ credential = (SourceCredential)credentialMap.get(type);
if (driver == null) {
throw new ProcessingException("Unable to find a driver for the \"" +
@@ -143,7 +159,7 @@
}
return new XMLDBSource(environment, m_manager, this.getLogger(),
- driver, location);
+ driver, credential, location);
}
/**
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org