You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by al...@apache.org on 2011/06/21 19:13:16 UTC

svn commit: r1138099 - in /incubator/stanbol/trunk/ontologymanager/ontonet/src: main/java/org/apache/stanbol/ontologymanager/ontonet/api/ main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/ main/java/org/apache/stanbol/ontologymanager/on...

Author: alexdma
Date: Tue Jun 21 17:13:15 2011
New Revision: 1138099

URL: http://svn.apache.org/viewvc?rev=1138099&view=rev
Log:
STANBOL-178 :
- Local directory paths in ONManagerConfiguration are now parsed
- OWLOntologyManager Factory introduced as an interface
- Ontonet unit tests now now call non-deprecated constructors

Added:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OWLOntologyManagerFactory.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/conf/OntologyNetworkConfigurationUtils.java
      - copied, changed from r1138037, incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/conf/ConfigurationManagement.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OWLOntologyManagerFactoryImpl.java
      - copied, changed from r1138037, incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyManagerFactory.java
Removed:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/conf/ConfigurationManagement.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyManagerFactory.java
Modified:
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ONManager.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/Activator.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerConfigurationImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/impl/RegistryLoaderImpl.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestIndexing.java
    incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologyScope.java

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ONManager.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ONManager.java?rev=1138099&r1=1138098&r2=1138099&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ONManager.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ONManager.java Tue Jun 21 17:13:15 2011
@@ -7,106 +7,101 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.api.registry.RegistryLoader;
 import org.apache.stanbol.ontologymanager.ontonet.api.session.SessionManager;
 import org.apache.stanbol.ontologymanager.ontonet.impl.io.ClerezzaOntologyStorage;
-import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologyManagerFactory;
+import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OWLOntologyManagerFactoryImpl;
 import org.semanticweb.owlapi.model.OWLDataFactory;
 import org.semanticweb.owlapi.model.OWLOntologyAlreadyExistsException;
 import org.semanticweb.owlapi.model.OWLOntologyManager;
 
-
 /**
- * A KReS Ontology Network Manager.
+ * An Ontology Network Manager holds all references and tools for creating, modifying and deleting the logical
+ * realms that store Web Ontologies, as well as offer facilities for handling the ontologies contained
+ * therein.
  * 
  * @author andrea.nuzzolese
  * 
  */
 public interface ONManager {
-    
-    public OntologyManagerFactory getOntologyManagerFactory();
 
-	/**
-	 * Returns the default object that automatically indexes ontologies as they
-	 * are loaded within scopes.
-	 * 
-	 * @return the default ontology index.
-	 */
-	public OntologyIndex getOntologyIndex();
-
-	/**
-	 * Returns the ontology scope factory that was created along with the
-	 * manager context.
-	 * 
-	 * @return the default ontology scope factory
-	 */
-	public OntologyScopeFactory getOntologyScopeFactory();
-
-	/**
-	 * Returns the ontology space factory that was created along with the
-	 * manager context.
-	 * 
-	 * @return the default ontology space factory.
-	 */
-	public OntologySpaceFactory getOntologySpaceFactory();
-
-	/**
-	 * Returns the default ontology storage system for this KReS instance.
-	 * 
-	 * @return the default ontology store.
-	 */
-
-
-	public ClerezzaOntologyStorage getOntologyStore();
-
-	/**
-	 * Returns an OWL Ontology Manager that is never cleared of its ontologies,
-	 * so it can be used for caching ontologies without having to reload them
-	 * using other managers. It is sufficient to catch
-	 * {@link OWLOntologyAlreadyExistsException}s and obtain the ontology with
-	 * that same ID from this manager.
-	 * 
-	 * @return the OWL Ontology Manager used for caching ontologies.
-	 */
-	public OWLOntologyManager getOwlCacheManager();
-
-	/**
-	 * Returns a factory object that can be used for obtaining OWL API objects.
-	 * 
-	 * @return the default OWL data factory
-	 */
-	public OWLDataFactory getOwlFactory();
-
-	/**
-	 * Returns the default ontology registry loader.
-	 * 
-	 * @return the default ontology registry loader.
-	 */
-	public RegistryLoader getRegistryLoader();
-
-	/**
-	 * Returns the unique ontology scope registry for this context.
-	 * 
-	 * @return the ontology scope registry.
-	 */
-	public ScopeRegistry getScopeRegistry();
-
-	/**
-	 * Returns the unique KReS session manager for this context.
-	 * 
-	 * @return the KreS session manager.
-	 */
-	public SessionManager getSessionManager();
-
-	/**
-	 * Returns the list of IRIs that identify scopes that should be activated on
-	 * startup, <i>if they exist</i>.
-	 * 
-	 * @return the list of scope IDs to activate.
-	 */
-	public String[] getUrisToActivate();
-	
-	/**
-	 * Returns the String that represent the namespace used by KReS for its ontologies
-	 * 
-	 * @return the namespace of KReS.
-	 */
-	public String getKReSNamespace();
+    public OWLOntologyManagerFactoryImpl getOntologyManagerFactory();
+
+    /**
+     * Returns the default object that automatically indexes ontologies as they are loaded within scopes.
+     * 
+     * @return the default ontology index.
+     */
+    public OntologyIndex getOntologyIndex();
+
+    /**
+     * Returns the ontology scope factory that was created along with the manager context.
+     * 
+     * @return the default ontology scope factory
+     */
+    public OntologyScopeFactory getOntologyScopeFactory();
+
+    /**
+     * Returns the ontology space factory that was created along with the manager context.
+     * 
+     * @return the default ontology space factory.
+     */
+    public OntologySpaceFactory getOntologySpaceFactory();
+
+    /**
+     * Returns the default ontology storage system for this KReS instance.
+     * 
+     * @return the default ontology store.
+     */
+
+    public ClerezzaOntologyStorage getOntologyStore();
+
+    /**
+     * Returns an OWL Ontology Manager that is never cleared of its ontologies, so it can be used for caching
+     * ontologies without having to reload them using other managers. It is sufficient to catch
+     * {@link OWLOntologyAlreadyExistsException}s and obtain the ontology with that same ID from this manager.
+     * 
+     * @return the OWL Ontology Manager used for caching ontologies.
+     */
+    public OWLOntologyManager getOwlCacheManager();
+
+    /**
+     * Returns a factory object that can be used for obtaining OWL API objects.
+     * 
+     * @return the default OWL data factory
+     */
+    public OWLDataFactory getOwlFactory();
+
+    /**
+     * Returns the default ontology registry loader.
+     * 
+     * @return the default ontology registry loader.
+     */
+    public RegistryLoader getRegistryLoader();
+
+    /**
+     * Returns the unique ontology scope registry for this context.
+     * 
+     * @return the ontology scope registry.
+     */
+    public ScopeRegistry getScopeRegistry();
+
+    /**
+     * Returns the unique KReS session manager for this context.
+     * 
+     * @return the KreS session manager.
+     */
+    public SessionManager getSessionManager();
+
+    /**
+     * Returns the list of IRIs that identify scopes that should be activated on startup, <i>if they
+     * exist</i>.
+     * 
+     * @return the list of scope IDs to activate.
+     */
+    public String[] getUrisToActivate();
+
+    /**
+     * Returns the String that represent the namespace used by KReS for its ontologies
+     * 
+     * @return the namespace of KReS.
+     */
+    public String getKReSNamespace();
 }

Added: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OWLOntologyManagerFactory.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OWLOntologyManagerFactory.java?rev=1138099&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OWLOntologyManagerFactory.java (added)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/ontology/OWLOntologyManagerFactory.java Tue Jun 21 17:13:15 2011
@@ -0,0 +1,35 @@
+package org.apache.stanbol.ontologymanager.ontonet.api.ontology;
+
+import java.util.List;
+
+import org.semanticweb.owlapi.model.OWLOntologyIRIMapper;
+import org.semanticweb.owlapi.model.OWLOntologyManager;
+
+/**
+ * Generates new instances of {@link OWLOntologyManager} with optional offline support already enabled for
+ * each of them.
+ * 
+ * @author alessandro
+ * 
+ */
+public interface OWLOntologyManagerFactory {
+
+    /**
+     * Returns the list of local IRI mappers that are automatically bound to a newly created
+     * {@link OWLOntologyManager} if set to support offline mode. The IRI mappers are typically applied in
+     * order, therefore mappers at the end of the list may supersede those at its beginning.
+     * 
+     * @return the list of local IRI mappers, in the order they are applied.
+     */
+    List<OWLOntologyIRIMapper> getLocalIRIMapperList();
+
+    /**
+     * Creates a new instance of {@link OWLOntologyManager}, with optional offline support.
+     * 
+     * @param withOfflineSupport
+     *            if true, the local IRI mappers obtained by calling {@link #getLocalIRIMapperList()} will be
+     *            applied to the new ontology manager.
+     * @return a new OWL ontology manager.
+     */
+    OWLOntologyManager createOntologyManager(boolean withOfflineSupport);
+}

Copied: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/conf/OntologyNetworkConfigurationUtils.java (from r1138037, incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/conf/ConfigurationManagement.java)
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/conf/OntologyNetworkConfigurationUtils.java?p2=incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/conf/OntologyNetworkConfigurationUtils.java&p1=incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/conf/ConfigurationManagement.java&r1=1138037&r2=1138099&rev=1138099&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/conf/ConfigurationManagement.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/conf/OntologyNetworkConfigurationUtils.java Tue Jun 21 17:13:15 2011
@@ -54,7 +54,7 @@ import org.semanticweb.owlapi.model.OWLO
  * @author alessandro
  * @author enridaga
  */
-public class ConfigurationManagement {
+public class OntologyNetworkConfigurationUtils {
 
 	private static OWLDataFactory _df = OWLManager.getOWLDataFactory();
 

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/Activator.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/Activator.java?rev=1138099&r1=1138098&r2=1138099&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/Activator.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/Activator.java Tue Jun 21 17:13:15 2011
@@ -17,40 +17,14 @@ public class Activator implements Bundle
     @Override
     public void start(BundleContext context) throws Exception {
 
-        // context.addBundleListener(new BundleListener() {
-        //
-        // @Override
-        // public void bundleChanged(BundleEvent event) {
-        // System.err.println("BundleEvent has fired");
-        //
-        // }
-        // });
-        // context.addFrameworkListener(new FrameworkListener() {
-        //
-        // @Override
-        // public void frameworkEvent(FrameworkEvent event) {
-        // System.err.println("FrameworkEvent has fired");
-        //
-        // }
-        // });
-        // context.addServiceListener(new ServiceListener() {
-        //
-        // @Override
-        // public void serviceChanged(ServiceEvent event) {
-        // System.err.println("ServiceEvent has fired");
-        //
-        // }
-        // });
         // context.getBundle().getLocation();
         // Instantiate the static context for the KReS ONM
 
         Logger log = LoggerFactory.getLogger(this.getClass());
         log.debug("KReS :: Instantiating ONM static context...");
 
-        // if (ONManager.get() != null) {
-        // log.debug("KReS :: ONM static context instantiated.");
         log.info("KReS :: Ontology Network Manager set up.");
-        // }
+
     }
 
     @Override

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerConfigurationImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerConfigurationImpl.java?rev=1138099&r1=1138098&r2=1138099&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerConfigurationImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerConfigurationImpl.java Tue Jun 21 17:13:15 2011
@@ -38,7 +38,7 @@ public class ONManagerConfigurationImpl 
     /**
      * TODO how do you use array initializers in Property annotations without causing compile errors?
      */
-    @Property(name = ONManagerConfiguration.ONTOLOGY_PATHS, value = {".", "ontologies"})
+    @Property(name = ONManagerConfiguration.ONTOLOGY_PATHS, value = {".", "/ontologies"})
     private String[] ontologyDirs;
 
     @Property(name = ONManagerConfiguration.ID, value = _ID_DEFAULT)
@@ -51,7 +51,7 @@ public class ONManagerConfigurationImpl 
      * This default constructor is <b>only</b> intended to be used by the OSGI environment with Service
      * Component Runtime support.
      * <p>
-     * DO NOT USE to manually create instances - the ReengineerManagerImpl instances do need to be configured!
+     * DO NOT USE to manually create instances - the ONManagerConfigurationImpl instances do need to be configured!
      * YOU NEED TO USE {@link #ONManagerConfigurationImpl(Dictionary)} or its overloads, to parse the
      * configuration and then initialise the rule store if running outside an OSGI environment.
      */
@@ -82,7 +82,7 @@ public class ONManagerConfigurationImpl 
         ontonetID = (String) configuration.get(ONManagerConfiguration.ID);
         if (ontonetID == null) ontonetID = _ID_DEFAULT;
         ontologyDirs = (String[]) configuration.get(ONManagerConfiguration.ONTOLOGY_PATHS);
-        if (ontologyDirs == null) ontologyDirs = new String[] {".", "ontologies"};
+        if (ontologyDirs == null) ontologyDirs = new String[] {".", "/ontologies"};
         ontonetNS = (String) configuration.get(ONManagerConfiguration.ONTOLOGY_NETWORK_NS);
         if (ontonetNS == null) ontonetNS = _ONTOLOGY_NETWORK_NS_DEFAULT;
         configPath = (String) configuration.get(ONManagerConfiguration.CONFIG_ONTOLOGY_PATH);

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java?rev=1138099&r1=1138098&r2=1138099&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ONManagerImpl.java Tue Jun 21 17:13:15 2011
@@ -4,7 +4,9 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
+import java.util.ArrayList;
 import java.util.Dictionary;
+import java.util.List;
 
 import org.apache.clerezza.rdf.core.access.TcManager;
 import org.apache.clerezza.rdf.core.access.WeightedTcProvider;
@@ -34,12 +36,12 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.ScopeRegistry;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.UnmodifiableOntologySpaceException;
 import org.apache.stanbol.ontologymanager.ontonet.api.session.SessionManager;
-import org.apache.stanbol.ontologymanager.ontonet.conf.ConfigurationManagement;
 import org.apache.stanbol.ontologymanager.ontonet.conf.OfflineConfiguration;
+import org.apache.stanbol.ontologymanager.ontonet.conf.OntologyNetworkConfigurationUtils;
 import org.apache.stanbol.ontologymanager.ontonet.impl.io.ClerezzaOntologyStorage;
 import org.apache.stanbol.ontologymanager.ontonet.impl.io.InMemoryOntologyStorage;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologyIndexImpl;
-import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologyManagerFactory;
+import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OWLOntologyManagerFactoryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologyScopeFactoryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologySpaceFactoryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.ScopeRegistryImpl;
@@ -195,7 +197,7 @@ public class ONManagerImpl implements ON
 
     private OntologyIndex oIndex;
 
-    private OntologyManagerFactory omgrFactory;
+    private OWLOntologyManagerFactoryImpl omgrFactory;
 
     private OntologyScopeFactory ontologyScopeFactory;
 
@@ -238,30 +240,37 @@ public class ONManagerImpl implements ON
     public ONManagerImpl() {
         super();
 
-        OfflineConfiguration conf = new OfflineConfiguration();
-        try {
-            URI uri = ONManagerImpl.this.getClass().getResource("/ontologies").toURI();
-            conf.addDirectory(new File(uri));
-        } catch (Exception e3) {
-            log.warn("Could not add ontology resource /ontologies.");
-        }
-        omgrFactory = new OntologyManagerFactory(conf);
-
-        owlFactory = OWLManager.getOWLDataFactory();
-        owlCacheManager = omgrFactory.createOntologyManager(true);
-
-        // These depend on one another
-        scopeRegistry = new ScopeRegistryImpl();
-        oIndex = new OntologyIndexImpl(this);
-
-        // Defer the call to the bindResources() method to the activator.
+//        OfflineConfiguration conf = new OfflineConfiguration();
+//        try {
+//            URI uri = ONManagerImpl.this.getClass().getResource("/ontologies").toURI();
+//            conf.addDirectory(new File(uri));
+//        } catch (Exception e3) {
+//            log.warn("Could not add ontology resource /ontologies.");
+//        }
+//        List<String> dirs = new ArrayList<String>();
+//        try {
+//            dirs = config.getOntologySourceDirectories();
+//        } catch (NullPointerException ex) {
+//            // Ok, go empty
+//        }
+        
+//        omgrFactory = new OntologyManagerFactory(dirs);
+//
+//        owlFactory = OWLManager.getOWLDataFactory();
+//        owlCacheManager = omgrFactory.createOntologyManager(true);
+//
+//        // These depend on one another
+//        scopeRegistry = new ScopeRegistryImpl();
+//        oIndex = new OntologyIndexImpl(this);
+//
+//        // Defer the call to the bindResources() method to the activator.
     }
 
     /**
      * @deprecated use
      *             {@link #ONManagerImpl(TcManager, WeightedTcProvider, ONManagerConfiguration, Dictionary)}
-     *             instead. Note that if the deprecated method is used instead, it will copy the Dictionary
-     *             context to a new {@link ONManagerConfiguration} object.
+     *             instead. Note that if the deprecated method is used instead, its effect will be to copy the
+     *             Dictionary context to a new {@link ONManagerConfiguration} object.
      * @param tcm
      * @param wtcp
      * @param configuration
@@ -273,7 +282,7 @@ public class ONManagerImpl implements ON
     }
 
     /**
-     * To be invoked by non-OSGi environments.
+     * Constructor to be invoked by non-OSGi environments.
      * 
      * @param tcm
      * @param wtcp
@@ -324,17 +333,38 @@ public class ONManagerImpl implements ON
         } else {
             log.info("id: {}", config.getID());
         }
+        
+        
+        List<String> dirs = new ArrayList<String>();
+        try {
+            dirs = config.getOntologySourceDirectories();
+        } catch (NullPointerException ex) {
+            // Ok, go empty
+        }
+        
+        omgrFactory = new OWLOntologyManagerFactoryImpl(dirs);
 
-         // Local directories first
-//          try {
-//          URI uri = ONManagerImpl.this.getClass().getResource("/ontologies").toURI();
-//          OfflineConfiguration.add(new File(uri));
-//          } catch (URISyntaxException e3) {
-//          log.warn("Could not add ontology resource.", e3);
-//          } catch (NullPointerException e3) {
-//          log.warn("Could not add ontology resource.", e3);
-//          }
+        owlFactory = OWLManager.getOWLDataFactory();
+        owlCacheManager = omgrFactory.createOntologyManager(true);
+
+        // These depend on one another
+        scopeRegistry = new ScopeRegistryImpl();
+        oIndex = new OntologyIndexImpl(this);
+
+        // Defer the call to the bindResources() method to the activator.
+
+        // Get local directories
         
+        // Local directories first
+        // try {
+        // URI uri = ONManagerImpl.this.getClass().getResource("/ontologies").toURI();
+        // OfflineConfiguration.add(new File(uri));
+        // } catch (URISyntaxException e3) {
+        // log.warn("Could not add ontology resource.", e3);
+        // } catch (NullPointerException e3) {
+        // log.warn("Could not add ontology resource.", e3);
+        // }
+
         // // if (storage == null) storage = new OntologyStorage(this.tcm, this.wtcp);
 
         bindResources(this.tcm, this.wtcp);
@@ -443,10 +473,10 @@ public class ONManagerImpl implements ON
             /**
              * We create and register the scopes before activating
              */
-            for (String scopeIRI : ConfigurationManagement.getScopes(configOntology)) {
+            for (String scopeIRI : OntologyNetworkConfigurationUtils.getScopes(configOntology)) {
 
-                String[] cores = ConfigurationManagement.getCoreOntologies(configOntology, scopeIRI);
-                String[] customs = ConfigurationManagement.getCustomOntologies(configOntology, scopeIRI);
+                String[] cores = OntologyNetworkConfigurationUtils.getCoreOntologies(configOntology, scopeIRI);
+                String[] customs = OntologyNetworkConfigurationUtils.getCustomOntologies(configOntology, scopeIRI);
 
                 // "Be a man. Use printf"
                 log.debug("KReS :: Scope " + scopeIRI);
@@ -489,7 +519,7 @@ public class ONManagerImpl implements ON
             /**
              * Try to get activation policies
              */
-            toActivate = ConfigurationManagement.getScopesToActivate(configOntology);
+            toActivate = OntologyNetworkConfigurationUtils.getScopesToActivate(configOntology);
 
             for (String scopeID : toActivate) {
                 try {
@@ -546,7 +576,7 @@ public class ONManagerImpl implements ON
         return oIndex;
     }
 
-    public OntologyManagerFactory getOntologyManagerFactory() {
+    public OWLOntologyManagerFactoryImpl getOntologyManagerFactory() {
         return omgrFactory;
     }
 

Copied: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OWLOntologyManagerFactoryImpl.java (from r1138037, incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyManagerFactory.java)
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OWLOntologyManagerFactoryImpl.java?p2=incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OWLOntologyManagerFactoryImpl.java&p1=incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyManagerFactory.java&r1=1138037&r2=1138099&rev=1138099&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologyManagerFactory.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OWLOntologyManagerFactoryImpl.java Tue Jun 21 17:13:15 2011
@@ -1,48 +1,76 @@
 package org.apache.stanbol.ontologymanager.ontonet.impl.ontology;
 
 import java.io.File;
-import java.util.Iterator;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
 
-import org.apache.stanbol.ontologymanager.ontonet.conf.OfflineConfiguration;
+import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OWLOntologyManagerFactory;
 import org.semanticweb.owlapi.apibinding.OWLManager;
 import org.semanticweb.owlapi.model.OWLOntologyIRIMapper;
 import org.semanticweb.owlapi.model.OWLOntologyManager;
 import org.semanticweb.owlapi.util.AutoIRIMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * FIXME: decide on this class either implementing an interface or providing static methods.
  * 
  * @author alessandro
- *
+ * 
  */
-public class OntologyManagerFactory {
+public class OWLOntologyManagerFactoryImpl implements OWLOntologyManagerFactory {
 
-    private OfflineConfiguration config;
+    private List<OWLOntologyIRIMapper> iriMappers;
 
-    private OWLOntologyIRIMapper[] iriMappers = new OWLOntologyIRIMapper[0];
+    private Logger log = LoggerFactory.getLogger(getClass());
 
-    public OntologyManagerFactory() {
+    public OWLOntologyManagerFactoryImpl() {
         this(null);
     }
 
-    public OntologyManagerFactory(OfflineConfiguration config) {
-        this.config = config;
-        if (this.config != null) {
-            // Create IRI mappers to reuse for all ontology managers.
-            iriMappers = new OWLOntologyIRIMapper[this.config.getDirectories().size()];
-            Iterator<File> it = this.config.getDirectories().iterator();
-            int j = 0;
-            while (it.hasNext()) {
-                iriMappers[j++] = new AutoIRIMapper(it.next(), true);
+    /**
+     * 
+     * @param dirs
+     */
+    public OWLOntologyManagerFactoryImpl(List<String> dirs) {
+
+        if (dirs != null) {
+            iriMappers = new ArrayList<OWLOntologyIRIMapper>(dirs.size());
+            for (String path : dirs) {
+                File dir = null;
+                if (path.startsWith("/")) {
+                    try {
+                        dir = new File(getClass().getResource(path).toURI());
+                    } catch (URISyntaxException e) {
+                        // Don't give up. It could still an absolute path.
+                    }
+                } else try {
+                    dir = new File(path);
+                } catch (Exception e1) {
+                    try {
+                        dir = new File(URI.create(path));
+                    } catch (Exception e2) {
+                        log.warn("Unable to obtain a path for {}", dir, e2);
+                    }
+                }
+                if (dir != null && dir.isDirectory()) iriMappers.add(new AutoIRIMapper(dir, true));
             }
         }
     }
 
+    @Override
     public OWLOntologyManager createOntologyManager(boolean withOfflineSupport) {
         OWLOntologyManager mgr = OWLManager.createOWLOntologyManager();
-        if (withOfflineSupport) for (OWLOntologyIRIMapper mapper : iriMappers)
+        if (withOfflineSupport) for (OWLOntologyIRIMapper mapper : getLocalIRIMapperList())
             mgr.addIRIMapper(mapper);
         return mgr;
     }
 
+    @Override
+    public List<OWLOntologyIRIMapper> getLocalIRIMapperList() {
+        return iriMappers;
+    }
+
 }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java?rev=1138099&r1=1138098&r2=1138099&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/ontology/OntologySpaceFactoryImpl.java Tue Jun 21 17:13:15 2011
@@ -33,9 +33,9 @@ public class OntologySpaceFactoryImpl im
      */
     protected ClerezzaOntologyStorage storage;
     
-    protected OntologyManagerFactory mgrFactory;
+    protected OWLOntologyManagerFactoryImpl mgrFactory;
 
-    public OntologySpaceFactoryImpl(ScopeRegistry registry, ClerezzaOntologyStorage storage, OntologyManagerFactory mgrFactory) {
+    public OntologySpaceFactoryImpl(ScopeRegistry registry, ClerezzaOntologyStorage storage, OWLOntologyManagerFactoryImpl mgrFactory) {
         this.registry = registry;
         this.storage = storage;
         this.mgrFactory = mgrFactory;

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/impl/RegistryLoaderImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/impl/RegistryLoaderImpl.java?rev=1138099&r1=1138098&r2=1138099&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/impl/RegistryLoaderImpl.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/impl/RegistryLoaderImpl.java Tue Jun 21 17:13:15 2011
@@ -23,7 +23,7 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.api.registry.models.RegistryItem;
 import org.apache.stanbol.ontologymanager.ontonet.api.registry.models.RegistryLibrary;
 import org.apache.stanbol.ontologymanager.ontonet.api.registry.models.RegistryOntology;
-import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologyManagerFactory;
+import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OWLOntologyManagerFactoryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.registry.cache.ODPRegistryCacheException;
 import org.apache.stanbol.ontologymanager.ontonet.impl.registry.cache.ODPRegistryCacheManager;
 import org.apache.stanbol.ontologymanager.ontonet.impl.registry.cache.URIUnresolvableException;
@@ -205,7 +205,7 @@ public class RegistryLoaderImpl implemen
     }
 
     private OWLOntology getOntologyForRegistryLocationNoCached(URI location) {
-        OntologyManagerFactory factory = onm.getOntologyManagerFactory();
+        OWLOntologyManagerFactoryImpl factory = onm.getOntologyManagerFactory();
         IRI iri = IRI.create(location);
         try {
             if (factory != null) return factory.createOntologyManager(true).loadOntologyFromOntologyDocument(

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestIndexing.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestIndexing.java?rev=1138099&r1=1138098&r2=1138099&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestIndexing.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestIndexing.java Tue Jun 21 17:13:15 2011
@@ -8,12 +8,14 @@ import java.util.Hashtable;
 
 import org.apache.stanbol.ontologymanager.ontonet.api.DuplicateIDException;
 import org.apache.stanbol.ontologymanager.ontonet.api.ONManager;
+import org.apache.stanbol.ontologymanager.ontonet.api.ONManagerConfiguration;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.OntologyInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.io.ParentPathInputSource;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyIndex;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologyScope;
 import org.apache.stanbol.ontologymanager.ontonet.api.ontology.OntologySpace;
 import org.apache.stanbol.ontologymanager.ontonet.api.registry.io.OntologyRegistryIRISource;
+import org.apache.stanbol.ontologymanager.ontonet.impl.ONManagerConfigurationImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ONManagerImpl;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -28,13 +30,12 @@ public class TestIndexing {
 
     private static OWLOntologyManager mgr;
 
-    private static IRI semionXmlIri = IRI.create("http://www.ontologydesignpatterns.org/ont/iks/oxml.owl"),
-            communitiesCpIri = IRI.create("http://www.ontologydesignpatterns.org/cp/owl/communities.owl"),
-            topicCpIri = IRI.create("http://www.ontologydesignpatterns.org/cp/owl/topic.owl"), objrole = IRI
-                    .create("http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl"), scopeIri = IRI
-                    .create("http://fise.iks-project.eu/TestIndexing"),
-            // submissionsIri = IRI
-            // .create("http://www.ontologydesignpatterns.org/registry/submissions.owl"),
+    private static IRI communitiesCpIri = IRI
+            .create("http://www.ontologydesignpatterns.org/cp/owl/communities.owl"), objrole = IRI
+            .create("http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl"), scopeIri = IRI
+            .create("http://fise.iks-project.eu/TestIndexing"),
+    // submissionsIri = IRI
+    // .create("http://www.ontologydesignpatterns.org/registry/submissions.owl"),
             testRegistryIri = IRI.create("http://www.ontologydesignpatterns.org/registry/krestest.owl");
 
     private static OntologyScope scope = null;
@@ -42,13 +43,16 @@ public class TestIndexing {
     @BeforeClass
     public static void setup() {
         // An ONManagerImpl with no store and default settings
-        onm = new ONManagerImpl(null, null, new Hashtable<String,Object>());
+        ONManagerConfiguration conf = new ONManagerConfigurationImpl(new Hashtable<String,Object>());
+        onm = new ONManagerImpl(null, null, conf, new Hashtable<String,Object>());
         mgr = onm.getOntologyManagerFactory().createOntologyManager(true);
 
         // Since it is registered, this scope must be unique, or subsequent
         // tests will fail on duplicate ID exceptions!
         scopeIri = IRI.create("http://fise.iks-project.eu/TestIndexing");
         IRI coreroot = IRI.create(scopeIri + "/core/root.owl");
+        
+        @SuppressWarnings("unused")
         OWLOntology oParent = null;
         try {
             oParent = mgr.createOntology(coreroot);
@@ -63,12 +67,12 @@ public class TestIndexing {
                 scopeIri,
                 new OntologyRegistryIRISource(testRegistryIri, onm.getOwlCacheManager(), onm
                         .getRegistryLoader(), null
-//                 new RootOntologySource(oParent
+                // new RootOntologySource(oParent
                 ));
-            
+
             for (OWLOntology o : scope.getCustomSpace().getOntologies())
-                System.out.println("SCOPONE "+o.getOntologyID());
-            
+                System.out.println("SCOPONE " + o.getOntologyID());
+
             onm.getScopeRegistry().registerScope(scope);
         } catch (DuplicateIDException e) {
             // Uncomment if annotated with @BeforeClass instead of @Before ,
@@ -87,8 +91,8 @@ public class TestIndexing {
         File f = new File(url.toURI());
         assertNotNull(f);
         OntologyInputSource commSrc = new ParentPathInputSource(f);
-        
-        OntologySpace cust = scope.getCustomSpace();     
+
+        OntologySpace cust = scope.getCustomSpace();
         cust.addOntology(commSrc);
 
         assertTrue(index.isOntologyLoaded(communitiesCpIri));
@@ -108,11 +112,11 @@ public class TestIndexing {
         OWLOntology oObjRole = mgr.loadOntology(objrole);
         assertNotNull(oObjRole);
         // Compare it against the one indexed.
-        // FIXME reinstate these checks
-//        OntologyIndex index = onm.getOntologyIndex();
-//        assertNotNull(index.getOntology(objrole));
-//        // assertSame() would fail.
-//        assertEquals(index.getOntology(objrole), oObjRole);
+//         FIXME reinstate these checks
+        // OntologyIndex index = onm.getOntologyIndex();
+        // assertNotNull(index.getOntology(objrole));
+        // // assertSame() would fail.
+        // assertEquals(index.getOntology(objrole), oObjRole);
     }
 
     @Test
@@ -123,8 +127,8 @@ public class TestIndexing {
         IRI objrole = IRI.create("http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl");
 
         // FIXME reinstate these checks
-//        assertTrue(index.isOntologyLoaded(coreroot));
-//        assertTrue(index.isOntologyLoaded(objrole));
+        // assertTrue(index.isOntologyLoaded(coreroot));
+        // assertTrue(index.isOntologyLoaded(objrole));
         // TODO : find a way to index anonymous ontologies
         assertTrue(!index.isOntologyLoaded(dne));
     }

Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologyScope.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologyScope.java?rev=1138099&r1=1138098&r2=1138099&view=diff
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologyScope.java (original)
+++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/ontology/TestOntologyScope.java Tue Jun 21 17:13:15 2011
@@ -18,7 +18,7 @@ import org.apache.stanbol.ontologymanage
 import org.apache.stanbol.ontologymanager.ontonet.impl.ONManagerImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.CoreOntologySpaceImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.CustomOntologySpaceImpl;
-import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologyManagerFactory;
+import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OWLOntologyManagerFactoryImpl;
 import org.apache.stanbol.ontologymanager.ontonet.impl.ontology.OntologyScopeFactoryImpl;
 import org.junit.Before;
 import org.junit.BeforeClass;