You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by to...@apache.org on 2004/05/27 23:04:42 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/broker/metadata MetadataManager.java

tomdz       2004/05/27 14:04:42

  Modified:    src/java/org/apache/ojb/broker/metadata MetadataManager.java
  Log:
  It is no longer required to provide an (empty) repository.xml; if no such file has been found, OJB starts now with empy descriptor and connection repositories
  Also loading is now lazy, i.e. only when OJB is first accessed
  
  Revision  Changes    Path
  1.17      +16 -13    db-ojb/src/java/org/apache/ojb/broker/metadata/MetadataManager.java
  
  Index: MetadataManager.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/metadata/MetadataManager.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- MetadataManager.java	4 Apr 2004 23:53:34 -0000	1.16
  +++ MetadataManager.java	27 May 2004 21:04:41 -0000	1.17
  @@ -22,6 +22,7 @@
   import org.apache.ojb.broker.util.logging.LoggerFactory;
   import org.apache.ojb.broker.PBKey;
   
  +import java.io.FileNotFoundException;
   import java.io.InputStream;
   import java.util.Hashtable;
   import java.util.Iterator;
  @@ -124,7 +125,7 @@
       private static final String MSG_STR = "* Can't find DescriptorRepository for current thread, use default one *";
   
       private static ThreadLocal threadedRepository = new ThreadLocal();
  -    private static MetadataManager singleton = new MetadataManager();
  +    private static MetadataManager singleton = null;
   
       private Hashtable metadataProfiles;
       private DescriptorRepository globalRepository;
  @@ -145,21 +146,18 @@
                   .getConfigurationFor(null)).getRepositoryFilename();
           try
           {
  -            globalRepository = new RepositoryPersistor().readDescriptorRepository(repository);
  +            globalRepository     = new RepositoryPersistor().readDescriptorRepository(repository);
  +            connectionRepository = new RepositoryPersistor().readConnectionRepository(repository);
           }
  -        catch (Exception e)
  +        catch (FileNotFoundException ex)
           {
  -            throw new MetadataException(
  -                    "Can not read repository class descriptor data, using repository: " + repository, e);
  +            globalRepository     = new DescriptorRepository();
  +            connectionRepository = new ConnectionRepository();
  +            log.info("No repository.xml file found, starting with empty metadata and connection configuration");
           }
  -        try
  +        catch (Exception ex)
           {
  -            connectionRepository = new RepositoryPersistor().readConnectionRepository(repository);
  -        }
  -        catch (Exception e)
  -        {
  -            throw new MetadataException(
  -                    "Can not read jdbc-connection-descriptor data, using repository: " + repository, e);
  +            throw new MetadataException("Could not read repository file" + repository, ex);
           }
           this.defaultPBKey = buildDefaultKey();
       }
  @@ -169,6 +167,11 @@
        */
       public static MetadataManager getInstance()
       {
  +        // lazy initialization
  +        if (singleton == null)
  +        {
  +            singleton = new MetadataManager();
  +        }
           return singleton;
       }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org