Copied: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/RegistryLibraryImpl.java (from r1147966, incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryLibrary.java) URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/RegistryLibraryImpl.java?p2=incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/RegistryLibraryImpl.java&p1=incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryLibrary.java&r1=1147966&r2=1148469&rev=1148469&view=diff ============================================================================== --- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryLibrary.java (original) +++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/RegistryLibraryImpl.java Tue Jul 19 18:17:23 2011 @@ -1,64 +1,44 @@ /* -* Licensed to the Apache Software Foundation (ASF) under one or more -* contributor license agreements. See the NOTICE file distributed with -* this work for additional information regarding copyright ownership. -* The ASF licenses this file to You under the Apache License, Version 2.0 -* (the "License"); you may not use this file except in compliance with -* the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -package org.apache.stanbol.ontologymanager.ontonet.api.registry.models; - - -import java.util.ArrayList; - - -public class RegistryLibrary extends AbstractRegistryItem { - - private ArrayList<AbstractRegistryItem> children; - - public RegistryLibrary(String name) { - super(name); - children = new ArrayList<AbstractRegistryItem>(); - } - - public void addChild(AbstractRegistryItem child) { - children.add(child); - child.setParent(this); - } - - public void removeChild(RegistryItem child) { - children.remove(child); - child.setParent(null); - } - - public void removeChildren(){ - children = new ArrayList<AbstractRegistryItem>(); - } - public RegistryItem[] getChildren() { - return children - .toArray(new AbstractRegistryItem[children.size()]); - } - - public boolean hasChildren() { - return children.size() > 0; - } - - @Override - public boolean isLibrary() { - return true; - } - - @Override - public boolean isOntology() { - return false; - } + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.stanbol.ontologymanager.ontonet.impl.registry.model; + +import java.net.URISyntaxException; +import java.net.URL; + +import org.apache.stanbol.ontologymanager.ontonet.api.registry.models.Library; + +public class RegistryLibraryImpl extends AbstractRegistryItem implements Library { + + public RegistryLibraryImpl(String name) { + super(name); + } + + public RegistryLibraryImpl(String name, URL url) throws URISyntaxException { + super(name, url); + } + + @Override + public boolean isLibrary() { + return true; + } + + @Override + public boolean isOntology() { + return false; + } }
Copied: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/RegistryOntologyImpl.java (from r1147966, incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryOntology.java) URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/RegistryOntologyImpl.java?p2=incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/RegistryOntologyImpl.java&p1=incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryOntology.java&r1=1147966&r2=1148469&rev=1148469&view=diff ============================================================================== --- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/api/registry/models/RegistryOntology.java (original) +++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/java/org/apache/stanbol/ontologymanager/ontonet/impl/registry/model/RegistryOntologyImpl.java Tue Jul 19 18:17:23 2011 @@ -1,36 +1,50 @@ /* -* Licensed to the Apache Software Foundation (ASF) under one or more -* contributor license agreements. See the NOTICE file distributed with -* this work for additional information regarding copyright ownership. -* The ASF licenses this file to You under the Apache License, Version 2.0 -* (the "License"); you may not use this file except in compliance with -* the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -package org.apache.stanbol.ontologymanager.ontonet.api.registry.models; - - - -public class RegistryOntology extends AbstractRegistryItem { - - public RegistryOntology(String name) { - super(name); - } - - @Override - public boolean isLibrary() { - return false; - } - - @Override - public boolean isOntology() { - return true; - } + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.stanbol.ontologymanager.ontonet.impl.registry.model; + +import java.net.URISyntaxException; +import java.net.URL; + +import org.apache.stanbol.ontologymanager.ontonet.api.registry.models.RegistryOntology; +import org.semanticweb.owlapi.model.OWLOntology; + +public class RegistryOntologyImpl extends AbstractRegistryItem implements RegistryOntology { + + public RegistryOntologyImpl(String name) { + super(name); + } + + public RegistryOntologyImpl(String name, URL url) throws URISyntaxException { + super(name, url); + } + + @Override + public boolean isLibrary() { + return false; + } + + @Override + public boolean isOntology() { + return true; + } + + @Override + public OWLOntology asOWLOntology() { + // TODO Implement me! + return null; + } } Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/main/resources/OSGI-INF/metatype/metatype.properties URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=1148469&r1=1148468&r2=1148469&view=diff ============================================================================== --- incubator/stanbol/trunk/ontologymanager/ontonet/src/main/resources/OSGI-INF/metatype/metatype.properties (original) +++ incubator/stanbol/trunk/ontologymanager/ontonet/src/main/resources/OSGI-INF/metatype/metatype.properties Tue Jul 19 18:17:23 2011 @@ -36,4 +36,22 @@ org.apache.stanbol.ontologymanager.onton org.apache.stanbol.ontologymanager.ontonet.onconfig.description = The physical location of the ontology storing the configuration of the Stanbol ontology network. Can be an absolute URI or a file path (either absolute or relative to the bundle resource directory). org.apache.stanbol.ontologymanager.ontonet.ontologypaths.name = Ontology directories -org.apache.stanbol.ontologymanager.ontonet.ontologypaths.description = The local directories for ontology sources. \ No newline at end of file +org.apache.stanbol.ontologymanager.ontonet.ontologypaths.description = The local directories for ontology sources. + + +#=============================================================================== +#Properties defined by the Registry Manager +#=============================================================================== +org.apache.stanbol.ontologymanager.ontonet.impl.registry.RegistryManagerImpl.name = Apache Stanbol Ontology Registry Manager +org.apache.stanbol.ontologymanager.ontonet.impl.registry.RegistryManagerImpl.description = Manages the loading and indexing of ontology registries and libraries. + +org.apache.stanbol.ontologymanager.ontonet.registryCaching.name = Caching policy +org.apache.stanbol.ontologymanager.ontonet.registryCaching.description = Specifies if ontology caching should spread across all registries or maintained separate for each registry. +org.apache.stanbol.ontologymanager.ontonet.registryCaching.option.registry = Per Registry +org.apache.stanbol.ontologymanager.ontonet.registryCaching.option.all = All Registries + +org.apache.stanbol.ontologymanager.ontonet.registryLazy.name = Lazy ontology loading +org.apache.stanbol.ontologymanager.ontonet.registryLazy.description = If set, the ontologies referenced in a library will not be loaded until the library is requested. + +org.apache.stanbol.ontologymanager.ontonet.registryLocations.name = Registry locations +org.apache.stanbol.ontologymanager.ontonet.registryLocations.description = The physical URLs of the ontology registry OWL files. \ No newline at end of file Modified: incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/registry/TestOntologyLibrary.java URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/registry/TestOntologyLibrary.java?rev=1148469&r1=1148468&r2=1148469&view=diff ============================================================================== --- incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/registry/TestOntologyLibrary.java (original) +++ incubator/stanbol/trunk/ontologymanager/ontonet/src/test/java/org/apache/stanbol/ontologymanager/ontonet/registry/TestOntologyLibrary.java Tue Jul 19 18:17:23 2011 @@ -29,10 +29,10 @@ import org.apache.stanbol.ontologymanage import org.apache.stanbol.ontologymanager.ontonet.api.registry.io.LibrarySource; import org.apache.stanbol.ontologymanager.ontonet.api.registry.models.Registry; 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.impl.ONManagerConfigurationImpl; import org.apache.stanbol.ontologymanager.ontonet.impl.ONManagerImpl; -import org.apache.stanbol.ontologymanager.ontonet.impl.registry.model.impl.RegistryLoaderImpl; +import org.apache.stanbol.ontologymanager.ontonet.impl.registry.RegistryLoaderImpl; +import org.apache.stanbol.ontologymanager.ontonet.impl.registry.model.RegistryImpl; import org.junit.Before; import org.junit.Test; import org.semanticweb.owlapi.model.IRI; @@ -40,6 +40,10 @@ import org.semanticweb.owlapi.model.OWLI import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.util.AutoIRIMapper; +/** + * This class tests the correct loading of ontology libraries from an OWL repository. It also checks that + * ontologies referred to only by other libraries in the same repository are not loaded. + */ public class TestOntologyLibrary { private String registryResource = "/ontologies/registry/krestest.owl"; @@ -49,7 +53,7 @@ public class TestOntologyLibrary { private RegistryLoader loader; /** - * Reset the ontology network manager and registry loader. + * Reset the ontology network manager and registry loader before running each test. */ @Before public void setupTest() throws Exception { @@ -81,9 +85,9 @@ public class TestOntologyLibrary { } catch (Exception e) { return false; } - } else if (item.isLibrary() || item instanceof Registry) + } else if (item.isLibrary() || item instanceof RegistryImpl) // Inspect children - for (RegistryItem child : ((RegistryLibrary) item).getChildren()) { + for (RegistryItem child : ((RegistryItem) item).getChildren()) { result |= containsOntologyRecursive(child, ontologyId); if (result) break; } @@ -100,7 +104,7 @@ public class TestOntologyLibrary { @Test public void testLibraryLoad() throws Exception { IRI localTestRegistry = IRI.create(getClass().getResource(registryResource)); - RegistryLibrary lib = loader.loadLibraryEager(localTestRegistry, Locations.LIBRARY_TEST2); + Registry lib = loader.loadLibraryEager(localTestRegistry, Locations.LIBRARY_TEST2); assertTrue(lib.hasChildren()); // Should be in the library. boolean hasSituation = containsOntologyRecursive(lib, Locations.ODP_SITUATION); @@ -109,6 +113,12 @@ public class TestOntologyLibrary { assertTrue(hasSituation && !hasTypes); } + /** + * Tests the creation of an ontology input source from a single library. Because the test is run offline, + * import statements might be file URIs, so tests will not fail on this. + * + * @throws Exception + */ @Test public void testLibrarySourceCreation() throws Exception { IRI localTestRegistry = IRI.create(getClass().getResource(registryResource));
