You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by vg...@apache.org on 2003/12/14 19:02:15 UTC

cvs commit: xml-xindice/java/src/org/apache/xindice/client/xmldb DatabaseImpl.java

vgritsenko    2003/12/14 10:02:15

  Modified:    .        status.xml
               java/src/org/apache/xindice/client/xmldb/embed
                        DatabaseImpl.java
               java/src/org/apache/xindice/client/xmldb DatabaseImpl.java
  Log:
  Properties PROP_XINDICE_CONFIGURATION, PROP_XINDICE_DB_HOME for
  embed driver can now be passed when driver is instantiated by
  org.apache.xindice.client.xmldb.DatabaseImpl
  
  Revision  Changes    Path
  1.18      +5 -0      xml-xindice/status.xml
  
  Index: status.xml
  ===================================================================
  RCS file: /home/cvs/xml-xindice/status.xml,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- status.xml	13 Dec 2003 03:22:42 -0000	1.17
  +++ status.xml	14 Dec 2003 18:02:14 -0000	1.18
  @@ -61,6 +61,11 @@
           <!-- Add new releases here -->
           <release version="1.1-dev" date="December 11 2003">
               <action dev="VG" type="update">
  +                Properties PROP_XINDICE_CONFIGURATION, PROP_XINDICE_DB_HOME for
  +                embed driver can now be passed when driver is instantiated by
  +                org.apache.xindice.client.xmldb.DatabaseImpl
  +            </action>
  +            <action dev="VG" type="update">
                   Upgrade libraries: Xerces to version 2.6.0, Xalan to version 2.5.2.
               </action>
               <action dev="VG" type="fix" fixes-bug="21765">
  
  
  
  1.21      +53 -5     xml-xindice/java/src/org/apache/xindice/client/xmldb/embed/DatabaseImpl.java
  
  Index: DatabaseImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xindice/java/src/org/apache/xindice/client/xmldb/embed/DatabaseImpl.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- DatabaseImpl.java	19 Aug 2003 21:08:27 -0000	1.20
  +++ DatabaseImpl.java	14 Dec 2003 18:02:14 -0000	1.21
  @@ -108,13 +108,40 @@
        * Creates new <code>DatabaseImpl</code> instance. The configuration is
        * loaded from the file defined in the PROP_XINDICE_CONFIGURATION system
        * variable.
  +     */
  +    public DatabaseImpl() throws IOException, XindiceException {
  +        init();
  +    }
  +
  +    /**
  +     * Create a new DatabaseImpl object with a copy of the properties
  +     * from the DatabaseImpl parameter.
  +     *
  +     * This allows to pass properties such as PROP_XINDICE_CONFIGURATION
  +     * to this instance. Usually this is done by instantiating not this
  +     * class, but <code>org.apache.xindice.client.xmldb.DatabaseImpl</code>,
  +     * set all the necessary parameters, and then get a collection.
  +     *
  +     * @param config from which the initial parameters for this
  +     *        DatabaseImpl object are copied.
  +     */
  +    public DatabaseImpl(CommonConfigurable config) throws IOException, XindiceException {
  +        super(config);
  +        init();
  +    }
  +
  +    /**
  +     * Init this database instance.
        *
        * This is only a temporarly solution since the question of a new init
        * method is raised in the xmldb:api group. Another solution could be to
        * use the Configurable interface and only create the database when the
        * getCollection method is called.
  +     *
  +     * @throws IOException
  +     * @throws XindiceException
        */
  -    public DatabaseImpl() throws IOException, XindiceException {
  +    private void init() throws IOException, XindiceException {
           Configuration config = loadConfiguration();
   
           this.database = Database.getDatabase(config);
  @@ -131,7 +158,18 @@
       protected Configuration loadConfiguration() throws IOException, XindiceException  {
           Configuration config;
           String configDir = null;
  -        String configFile = System.getProperty(Xindice.PROP_XINDICE_CONFIGURATION);
  +
  +        String configFile = null;
  +        try {
  +            // Try configuration first
  +            configFile = getProperty(Xindice.PROP_XINDICE_CONFIGURATION);
  +        } catch (XMLDBException ignored) {
  +        }
  +        if (configFile == null) {
  +            // Fallback to system property
  +            configFile = System.getProperty(Xindice.PROP_XINDICE_CONFIGURATION);
  +        }
  +
           if (configFile != null && !configFile.equals("")) {
               if (log.isInfoEnabled()) {
                   log.info("Specified configuration file: '" + configFile + "'");
  @@ -153,7 +191,17 @@
           String dbRoot = config.getAttribute(Database.DBROOT, Database.DBROOT_DEFAULT);
           if (!new File(dbRoot).isAbsolute()) {
               // Let's see if the property was specified.
  -            String home = System.getProperty(Xindice.PROP_XINDICE_DB_HOME);
  +            String home = null;
  +            try {
  +                // Try configuration first
  +                home = getProperty(Xindice.PROP_XINDICE_DB_HOME);
  +            } catch (XMLDBException ignored) {
  +            }
  +            if (home == null) {
  +                // Fallback to system property
  +                home = System.getProperty(Xindice.PROP_XINDICE_DB_HOME);
  +            }
  +
               if (home != null) {
                   dbRoot = new File(home + File.separator + dbRoot).getCanonicalPath();
               } else if (configDir != null) {
  
  
  
  1.23      +4 -5      xml-xindice/java/src/org/apache/xindice/client/xmldb/DatabaseImpl.java
  
  Index: DatabaseImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xindice/java/src/org/apache/xindice/client/xmldb/DatabaseImpl.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- DatabaseImpl.java	13 Aug 2003 03:10:54 -0000	1.22
  +++ DatabaseImpl.java	14 Dec 2003 18:02:14 -0000	1.23
  @@ -156,7 +156,6 @@
       public org.xmldb.api.base.Collection getCollection(String uri, String username, String password) throws XMLDBException {
   
           createDriver(uri);
  -
           return driver.getCollection(uri, username, password);
       }
   
  @@ -191,7 +190,7 @@
        */
       public boolean acceptsURI(String uri) throws XMLDBException {
           if (uri != null && uri.length() > 0 && knownPrefix(uri)) {
  -            // ensure the driver is initialised
  +            // Ensure the driver is initialised
               createDriver(uri);
               return driver.acceptsURI(uri);
           }
  @@ -214,7 +213,7 @@
                        */
                       driver = new org.apache.xindice.client.xmldb.xmlrpc.DatabaseImpl(this);
                   } else if (uri.startsWith(EMBED_URI)) {
  -                    driver = new org.apache.xindice.client.xmldb.embed.DatabaseImpl();
  +                    driver = new org.apache.xindice.client.xmldb.embed.DatabaseImpl(this);
                   } else if (uri.startsWith(MANAGED_URI)) {
                       driver = new ManagedDatabaseImpl();
                   }