3521488 : switch to java.util.ServiceLoader for ParserFactory implementations

single location for OntologyFormat classes so they can be discovered

implement OntologyStorerFactoryRegistry and change references to formats

move TurtleOntologyFormat that was missed before

move default ontology format

add slf4j-api and logging configuration to api and apibinding so that during tests, service loading failures are displayed

add missing compile scope dependencies that aren't being passed through by owlapi-apibinding with runtime dependency scopes

update assembly plugin and add metaInf-services descriptor handler to merge services files in distribution

make dlsyntax a runtime dependency of owlapi-apibinding

constrain to only catch Error's that jump out of the KRSS parser

add test for OWLOntologyStorerFactoryRegistry

add note in AbstractServiceLoader to print the number of loaded services to the log

remove unnecessary circular reference between OWLOntologyFormat and PrefixOWLOntologyFormat

as... methods are actually simpler done as casts, as are instanceof calls

add specific getKey method to OWLOntologyFormat

fix tests

close output stream

reduce logging

fix hashcode in DefaultOntologyFormat

fix registry test tearDown

check if test ontology loaded properly by checking its axiom count

this has been failing tests with obscure errors due to relative comparisons that assume the ontology always loads properly

lower debugging level

allow cases with only annotations

remove explicit classloader from serviceloader call as it causes tests to fail in my openjdk-7 install

remove tests and references to the static instance

fix RDF/XML and OWLXML bug where OWLXML was being used to parse RDF/XML without error due to the lack of ordering for parsers in the SPI implementation

lower debug level

OWLManager changes

add new OWLManager method to enable use of custom ontology storer registries

extend ParsableOWLOntologyFactory to allow custom parser registries to be used

avoid NullPointerException and return Collections.emptyList() instead

implement OWLReasonerFactoryRegistry

make ontology storer factory registry test immune to changes in the SPI dependencies by clearing the registry before each run

move new OBOOntologyFormat direct dependencies into owlapi-api module

fix ConcurrentMap logic in AbstractServiceLoader

use OWLOntologyManagerFactoryRegistry instead of OWLManager

OWLOntologyManagerFactoryRegistry is a service provider interface front to track OWLManagerFactory instances using META-INF/services property files which can in turn provide OWLManager instances.

fix message

note in OWLReasonerFactoryRegistry that static instance is not mandatory

add compareTo for OWLOntologyFormat based on key string compareTo

make formats backwards compatible for instanceof, equals, and compareTo

work on compatibility so new interfaces are geared towards o.s.o.formats.*

move OWLManager from apibinding to impl to match its dependencies

move OWLFunctionalSyntaxFactory from apibinding to functional

uses service provider interface now, so the previous hard requirement on OWLManager is not present

api module now a runtime dependency for apibinding, as the tests are compiled using the runtime scope

remove metainf-services dependency in apibinding as OWLManager is gone

add SPI for concrete subclasses of OWLOntologyFormat along with Registry

Factory classes are needed as OWLOntologyFormat instances are allowed to be mutable, and all uses of OWLOntologyFormat so far is using "new XYZOntologyFormat()"

add RioRDFOntologyFormat and NTriplesOntologyFormat

migrate RDFXMLOntologyFormat and TurtleOntologyFormat so they are backwards compatible and can be used with the rio storer and parser in future

reform AbstractServiceLoader.get to explicitly use .equals instead of either .equals or .hashcode based on the implementation

add debug logging for service loading

add IRIs to OWLProfiles and a registry so they can be fetched based on their IRI

add accessor to go directly to a single reasoner instead of going through get() that will always return a collection