You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by su...@apache.org on 2011/04/30 13:18:34 UTC

svn commit: r1098099 [1/5] - in /incubator/stanbol/trunk/cmsadapter: ./ core/ core/src/ core/src/main/ core/src/main/java/ core/src/main/java/org/ core/src/main/java/org/apache/ core/src/main/java/org/apache/stanbol/ core/src/main/java/org/apache/stanb...

Author: suat
Date: Sat Apr 30 11:18:30 2011
New Revision: 1098099

URL: http://svn.apache.org/viewvc?rev=1098099&view=rev
Log:
STANBOL-188: Migration of CMS Adapter component

Added:
    incubator/stanbol/trunk/cmsadapter/
    incubator/stanbol/trunk/cmsadapter/README.txt   (with props)
    incubator/stanbol/trunk/cmsadapter/core/
    incubator/stanbol/trunk/cmsadapter/core/pom.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/core/src/
    incubator/stanbol/trunk/cmsadapter/core/src/main/
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DChildObjectTypeImp.java
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectFactoryImp.java
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectImp.java
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectTypeImp.java
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DPropertyDefinitionImp.java
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DPropertyImp.java
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/DefaultNamingStrategy.java
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/MappingEngineImpl.java
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/
    incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/RepositoryAccessManagerImpl.java
    incubator/stanbol/trunk/cmsadapter/crx-rmi/
    incubator/stanbol/trunk/cmsadapter/crx-rmi/pom.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.jar   (with props)
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.pom.lastUpdated   (with props)
    incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/maven-metadata-local.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/jcr/
    incubator/stanbol/trunk/cmsadapter/jcr/pom.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/jcr/src/
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/ConceptBridgesProcesser.java
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/InstanceBridgesProcesser.java
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/JCRNodeTypeLifter.java
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/JCRProcessor.java
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/PropertyBridgesProcesser.java
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/SubsumptionBridgesProcesser.java
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/repository/
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/repository/JCRModelMapper.java
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/repository/JCRQueryRepresentation.java
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/repository/JCRRepositoryAccess.java
    incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/repository/QueryHelper.java
    incubator/stanbol/trunk/cmsadapter/launchers/
    incubator/stanbol/trunk/cmsadapter/launchers/lite/
    incubator/stanbol/trunk/cmsadapter/launchers/lite/pom.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/launchers/lite/src/
    incubator/stanbol/trunk/cmsadapter/launchers/lite/src/main/
    incubator/stanbol/trunk/cmsadapter/launchers/lite/src/main/bundles/
    incubator/stanbol/trunk/cmsadapter/launchers/lite/src/main/bundles/list.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/parent/
    incubator/stanbol/trunk/cmsadapter/parent/pom.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/parent/src/
    incubator/stanbol/trunk/cmsadapter/parent/src/main/
    incubator/stanbol/trunk/cmsadapter/pom.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/rest-client/
    incubator/stanbol/trunk/cmsadapter/rest-client/pom.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/rest-client/src/
    incubator/stanbol/trunk/cmsadapter/rest-client/src/main/
    incubator/stanbol/trunk/cmsadapter/rest-client/src/main/java/
    incubator/stanbol/trunk/cmsadapter/rest-client/src/main/java/org/
    incubator/stanbol/trunk/cmsadapter/rest-client/src/main/java/org/apache/
    incubator/stanbol/trunk/cmsadapter/rest-client/src/main/java/org/apache/stanbol/
    incubator/stanbol/trunk/cmsadapter/rest-client/src/main/java/org/apache/stanbol/cmsadapter/
    incubator/stanbol/trunk/cmsadapter/rest-client/src/main/java/org/apache/stanbol/cmsadapter/rest/
    incubator/stanbol/trunk/cmsadapter/rest-client/src/main/java/org/apache/stanbol/cmsadapter/rest/client/
    incubator/stanbol/trunk/cmsadapter/rest-client/src/main/java/org/apache/stanbol/cmsadapter/rest/client/CMSAdapterRESTClient.java
    incubator/stanbol/trunk/cmsadapter/rest-client/src/main/java/org/apache/stanbol/cmsadapter/rest/client/CMSAdapterRESTClientImpl.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/
    incubator/stanbol/trunk/cmsadapter/servicesapi/pom.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/helper/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/helper/CMSAdapterVocabulary.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/helper/MappingModelParser.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/helper/OntologyResourceHelper.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/internal/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/internal/ConceptBridgeProcessor.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/internal/InstanceBridgeProcessor.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/internal/PropertyBridgeProcessor.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/internal/SubsumptionBridgeProcessor.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/mapping/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/mapping/MappingEngine.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/mapping/NamingStrategy.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/AnnotationType.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/BridgeDefinitions.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/ConceptBridge.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/InstanceBridge.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/NameType.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/ObjectFactory.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/PropertyAnnotation.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/PropertyBridge.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/SubsumptionBridge.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/mapping/package-info.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/AnnotationType.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/CMSObject.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/CMSObjects.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/ChildObjectDefinition.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/ClassificationObjects.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/ConnectionInfo.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/ContentObjects.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/ObjectFactory.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/ObjectTypeDefinition.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/ObjectTypeDefinitions.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/PropType.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/Property.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/PropertyAnnotation.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/PropertyDefinition.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/PropertySemantics.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/decorated/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/decorated/DChildObjectType.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/decorated/DObject.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/decorated/DObjectAdapter.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/decorated/DObjectType.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/decorated/DProperty.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/decorated/DPropertyDefinition.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/model/web/package-info.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/repository/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/repository/RepositoryAccess.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/repository/RepositoryAccessException.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/java/org/apache/stanbol/cmsadapter/servicesapi/repository/RepositoryAccessManager.java
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/resources/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/resources/model/
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/resources/model/CMSObjectModel.xsd   (with props)
    incubator/stanbol/trunk/cmsadapter/servicesapi/src/main/resources/model/CR2OntologyMap.xsd
    incubator/stanbol/trunk/cmsadapter/web/
    incubator/stanbol/trunk/cmsadapter/web/pom.xml   (with props)
    incubator/stanbol/trunk/cmsadapter/web/src/
    incubator/stanbol/trunk/cmsadapter/web/src/main/
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/CMSAdapterWebFragment.java
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/JAXBProvider.java
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/BridgeDefinitionsResource.java
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/NotifyResource.java
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RootResource.java
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/utils/
    incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/utils/RestURIHelper.java   (with props)
    incubator/stanbol/trunk/cmsadapter/web/src/main/resources/
    incubator/stanbol/trunk/cmsadapter/web/src/main/resources/org/
    incubator/stanbol/trunk/cmsadapter/web/src/main/resources/org/apache/
    incubator/stanbol/trunk/cmsadapter/web/src/main/resources/org/apache/stanbol/
    incubator/stanbol/trunk/cmsadapter/web/src/main/resources/org/apache/stanbol/cmsadapter/
    incubator/stanbol/trunk/cmsadapter/web/src/main/resources/org/apache/stanbol/cmsadapter/web/
    incubator/stanbol/trunk/cmsadapter/web/src/main/resources/org/apache/stanbol/cmsadapter/web/templates/
    incubator/stanbol/trunk/cmsadapter/web/src/main/resources/org/apache/stanbol/cmsadapter/web/templates/imports/
    incubator/stanbol/trunk/cmsadapter/web/src/main/resources/org/apache/stanbol/cmsadapter/web/templates/imports/cmsadapterDescription.ftl

Added: incubator/stanbol/trunk/cmsadapter/README.txt
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/README.txt?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/README.txt (added)
+++ incubator/stanbol/trunk/cmsadapter/README.txt Sat Apr 30 11:18:30 2011
@@ -0,0 +1,134 @@
+Stanbol CMS Adapter
+==========================
+This component of STANBOL is designed for extracting the already available semantics in the content 
+models as an ontology and store it in knowledge base. The extraction process is realized by first lifting
+already existing node type and property definitions in the content managament system and then defining 
+bridges between content management system and knowledge base and processing them. There are 3 kinds of bridges 
+which are listed below. 
+
+•	Concept Bridge
+•	Instance Bridge
+•	Subsumption Bridge
+•	Property Bridge (not directly created)
+
+
+Concept Bridge: This bridge type is designed for creating a class hierarchy in the generated ontology from a node
+hierarchy in the content management system. The paths of the nodes should be specified in the bridge 
+definition. It is possible to define subsumption and property bridges within a concept bridge. A Subsumption
+bridge in a concept bridge creates parent/child relationship between the node specified in the bridge and
+another node that is referenced through a property which is also specified in the bridge. A property bridge
+within a concept bridge creates "disjointWith", "equivalentClass" relationships between the nodes.
+
+Example xml:
+<?xml version="1.0" encoding="UTF-8"?>
+<BridgeDefinitions xmlns="mapping.model.servicesapi.cmsadapter.stanbol.apache.org">
+  <ConceptBridge>
+    <Query>/TestDir/%</Query>
+    <SubsumptionBridge>
+      <PredicateName>subsumptionProperty</PredicateName>
+    </SubsumptionBridge>
+    <PropertyBridge>
+      <PredicateName>equiClass</PredicateName>
+      <PropertyAnnotation>
+        <Annotation>equivalentClass</Annotation>
+      </PropertyAnnotation>
+    </PropertyBridge>
+    <PropertyBridge>
+      <PredicateName>childClass</PredicateName>
+      <PropertyAnnotation>
+        <Annotation>subsumption</Annotation>
+      </PropertyAnnotation>
+    </PropertyBridge>
+    <PropertyBridge>
+      <PredicateName>disjointClass</PredicateName>
+      <PropertyAnnotation>
+        <Annotation>disjointWith</Annotation>
+      </PropertyAnnotation>
+    </PropertyBridge>
+  </ConceptBridge>
+</BridgeDefinitions>
+  
+First of all, this concept bridge will create a class hierarchy from the nodes under the path "/TestDir". Thanks to "%" 
+all nodes of subtree under TestDir node will be a separate class in the ontology. Also parent/child relations within them 
+will also be set. 
+
+This concept bridge includes a subsumption bridge inside. One or more parent/child relation will be created for each 
+processed node having "subsumptionProperty" property. Target classes will be created for the values of "subsumptionProperty".
+
+This concept bridge also includes three property bridges inside. Property bridges within a concept bridge are valid only if 
+they have one of the "equivalentClass", "disjointWith" or "subsumption" annotations. For property bridge having predicateName 
+"equiClass", an "equivalentClass" relationship will be formed between the node under "/TestDir" path and the node values of 
+"equiClass" property. To get the expected result, "equiClass" property should have a referencable type e.g "REFERENCE", "PATH"...
+
+ 
+Instance Bridge: This bridge type is designed for creating instances in the generated ontology from a node hierarchy in the 
+content management system. The paths of the nodes should be specified in the bridge definition. It is possible to define 
+property bridges within an instance bridge. A property bridge within an instance bridge creates assertions for the nodes that
+are specified in the bridge definition.
+
+Example xml:
+<?xml version="1.0" encoding="UTF-8"?>
+<BridgeDefinitions xmlns="mapping.model.servicesapi.cmsadapter.stanbol.apache.org">
+  <InstanceBridge>
+    <Query>/NewsArticles/%</Query>
+    <PropertyBridge>
+      <PredicateName>relatedItem</PredicateName>
+      <PropertyAnnotation>
+        <Annotation>symmetric</Annotation>
+      </PropertyAnnotation>
+    </PropertyBridge>
+    <PropertyBridge>
+      <PredicateName>categorizedBy</PredicateName>
+      <PropertyAnnotation>
+        <Annotation>instanceOf</Annotation>
+      </PropertyAnnotation>
+    </PropertyBridge>
+    <PropertyBridge>
+      <PredicateName>title</PredicateName>
+    </PropertyBridge>
+  </InstanceBridge>
+</BridgeDefinitions>
+
+First of all, this instance bridge will create individuals from the nodes under the path "/NewsArticles". Thanks to "%" 
+all nodes of subtree under NewsArticles node will be a separate individual in the ontology. 
+
+This instance bridge includes three property bridges inside. Valid annotations for property bridge within an instance bridge
+are "functional", "inverseFunctional", "symmetric", "transitive" and "instanceOf". According to the type of the property that
+is set within content management system, datatype or object property assertions will be set to created individual. If there is 
+any specified annotation, it will added to already lifted property in the ontology. 
+
+Thanks to property bridge having predicateName "categorizedBy", one or more type assertions will be added to the created
+individual. A class will be created in the ontology for each value of categorizedBy property.
+
+
+As subsumption and property bridges are explained indirectly, they are skipped. A last remark is that while it is possible to
+create separate definitions of concept, instance and subsumption bridges, property bridges can only be attached to a concept
+or instance bridge.
+ 
+
+
+Building CMS Adapter
+==========================
+
+* Checkout Apache Stanbol
+	$ svn co http://svn.apache.org/repos/asf/incubator/stanbol/trunk/
+* Build Stanbol [see] (http://svn.apache.org/repos/asf/incubator/stanbol/trunk/README.md)
+* Build Stanbol Ontology Manager - Store
+	$ cd trunk/ontologymanager/store
+	$ mvn install
+* Build Stanbol Commons Web Ontology
+	$ cd trunk/commons/web/ontology
+	$ mvn install
+* Go to CMS Adapter root (/stanbol/trunk/cmsadapter)
+	$ mvn install
+
+
+Run launcher:
+
+* Run full launcher 
+	$ cd  launchers/lite
+	$ java -jar -Xmx1g -XX:MaxPermSize=128m target/org.apache.stanbol.cmsadapter.launchers.lite-0.9-SNAPSHOT.jar
+
+
+Configuration
+==========================

Propchange: incubator/stanbol/trunk/cmsadapter/README.txt
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/stanbol/trunk/cmsadapter/core/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/pom.xml?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/pom.xml (added)
+++ incubator/stanbol/trunk/cmsadapter/core/pom.xml Sat Apr 30 11:18:30 2011
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.stanbol</groupId>
+		<artifactId>org.apache.stanbol.cmsadapter.parent</artifactId>
+		<version>0.9-SNAPSHOT</version>
+		<relativePath>../parent</relativePath>
+	</parent>
+
+	<groupId>org.apache.stanbol</groupId>
+	<artifactId>org.apache.stanbol.cmsadapter.core</artifactId>
+	<packaging>bundle</packaging>
+
+	<name>Apache Stanbol CMS Adapter Core Bundle</name>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<extensions>true</extensions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-scr-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.ontologymanager.store.rest.client</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.ontologymanager.store.api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.cmsadapter.servicesapi</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.cmsadapter.jcr</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>javax.jcr</groupId>
+			<artifactId>jcr</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.jackrabbit</groupId>
+			<artifactId>jackrabbit-jcr-rmi</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.scr.annotations</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>com.hp.hpl.jena</groupId>
+			<artifactId>jena</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>org.osgi.compendium</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>commons-lang</groupId>
+			<artifactId>commons-lang</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+		</dependency>
+	</dependencies>
+</project>
+

Propchange: incubator/stanbol/trunk/cmsadapter/core/pom.xml
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DChildObjectTypeImp.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DChildObjectTypeImp.java?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DChildObjectTypeImp.java (added)
+++ incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DChildObjectTypeImp.java Sat Apr 30 11:18:30 2011
@@ -0,0 +1,41 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ChildObjectDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectTypeDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DChildObjectType;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectAdapter;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectType;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccess;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
+
+public class DChildObjectTypeImp implements DChildObjectType {
+
+    private ChildObjectDefinition instance;
+    private DObjectAdapter factory;
+    private RepositoryAccess access;
+    private DObjectType allowedObjectDefinition = null;
+
+    public DChildObjectTypeImp(ChildObjectDefinition instance, DObjectAdapter factory, RepositoryAccess access) {
+        this.instance = instance;
+        this.factory = factory;
+        this.access = access;
+    }
+
+    @Override
+    public boolean isRequired() {
+        return instance.isRequired();
+    }
+
+    @Override
+    public DObjectType getAllowedObjectDefinitions() throws RepositoryAccessException {
+        ObjectTypeDefinition allowedDefinition = access.getAllowableTypeDef(instance, factory.getSession());
+        allowedObjectDefinition = factory.wrapAsDObjectType(allowedDefinition);
+        return allowedObjectDefinition;
+    }
+
+    @Override
+    public ChildObjectDefinition getInstance() {
+        return instance;
+    }
+
+}

Added: incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectFactoryImp.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectFactoryImp.java?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectFactoryImp.java (added)
+++ incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectFactoryImp.java Sat Apr 30 11:18:30 2011
@@ -0,0 +1,63 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ChildObjectDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ConnectionInfo;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectTypeDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.Property;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropertyDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DChildObjectType;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectAdapter;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectType;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DProperty;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DPropertyDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccess;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
+
+public class DObjectFactoryImp implements DObjectAdapter {
+
+    private RepositoryAccess access;
+    private Object session;
+
+    public DObjectFactoryImp(RepositoryAccess access, Object session) {
+        this.access = access;
+        this.session = session;
+    }
+    
+    public DObjectFactoryImp(RepositoryAccess access, ConnectionInfo connectionInfo) throws RepositoryAccessException {
+        this.access = access;
+        this.session = access.getSession(connectionInfo);
+    }
+
+    @Override
+    public DObject wrapAsDObject(CMSObject node) {
+        return new DObjectImp(node, this, access);
+    }
+
+    @Override
+    public DObjectType wrapAsDObjectType(ObjectTypeDefinition definition) {
+        return new DObjectTypeImp(definition, this, access);
+    }
+
+    @Override
+    public DPropertyDefinition wrapAsDPropertyDefinition(PropertyDefinition propertyDefinition) {
+        return new DPropertyDefinitionImp(propertyDefinition);
+    }
+
+    @Override
+    public DChildObjectType wrapAsDChildObjectType(ChildObjectDefinition childObjectDefinition) {
+        return new DChildObjectTypeImp(childObjectDefinition, this, access);
+    }
+
+    @Override
+    public DProperty wrapAsDProperty(Property property) {
+        return new DPropertyImp(property, this, access);
+    }
+
+    @Override
+    public Object getSession() {
+        return session;
+    }
+
+}

Added: incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectImp.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectImp.java?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectImp.java (added)
+++ incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectImp.java Sat Apr 30 11:18:30 2011
@@ -0,0 +1,109 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.Property;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectAdapter;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectType;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DProperty;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccess;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
+
+public class DObjectImp implements DObject {
+
+    private CMSObject instance;
+    private DObjectAdapter factory;
+    private RepositoryAccess access;
+    private List<DObject> children = null;
+    private List<DProperty> properties = null;
+    private DObject parent = null;
+    private DObjectType objectType = null;
+
+    public DObjectImp(CMSObject instance, DObjectAdapter factory, RepositoryAccess access) {
+        this.instance = instance;
+        this.factory = factory;
+        this.access = access;
+    }
+
+    @Override
+    public String getID() {
+        return instance.getUniqueRef();
+    }
+
+    @Override
+    public String getPath() {
+        return instance.getPath();
+    }
+
+    @Override
+    public String getName() {
+        return instance.getLocalname();
+    }
+
+    @Override
+    public String getNamespace() {
+        return instance.getNamespace();
+    }
+
+    @Override
+    public List<DObject> getChildren() throws RepositoryAccessException {
+        if (children != null) {
+            return children;
+        }
+
+        List<CMSObject> nodes = access.getChildren(instance, factory.getSession());
+
+        children = new ArrayList<DObject>(nodes.size());
+        for (CMSObject node : nodes) {
+            children.add(this.factory.wrapAsDObject(node));
+        }
+        return children;
+    }
+
+    @Override
+    public DObject getParent() throws RepositoryAccessException {
+        if (parent != null) {
+            return parent;
+        }
+
+        parent = factory.wrapAsDObject(access.getParentByNode(instance, factory.getSession()));
+
+        return parent;
+    }
+
+    @Override
+    public DObjectType getObjectType() throws RepositoryAccessException {
+        if (objectType != null) {
+            return this.objectType;
+        }
+
+        String typeRef = instance.getObjectTypeRef();
+        objectType = factory.wrapAsDObjectType(access.getObjectTypeDefinition(typeRef, factory.getSession()));
+        return objectType;
+    }
+
+    @Override
+    public List<DProperty> getProperties() throws RepositoryAccessException {
+        if (properties != null) {
+            return properties;
+        }
+
+        List<Property> props = access.getProperties(instance, factory.getSession());
+
+        properties = new ArrayList<DProperty>(props.size());
+
+        for (Property prop : props) {
+            properties.add(factory.wrapAsDProperty(prop));
+        }
+        return properties;
+    }
+
+    @Override
+    public CMSObject getInstance() {
+        return this.instance;
+    }
+
+}

Added: incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectTypeImp.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectTypeImp.java?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectTypeImp.java (added)
+++ incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DObjectTypeImp.java Sat Apr 30 11:18:30 2011
@@ -0,0 +1,108 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ChildObjectDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectTypeDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropertyDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DChildObjectType;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectAdapter;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectType;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DPropertyDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccess;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
+
+public class DObjectTypeImp implements DObjectType {
+
+	private ObjectTypeDefinition instance;
+	private DObjectAdapter factory;
+	private RepositoryAccess access;
+	private List<DPropertyDefinition> propertyDefinitions;
+	private List<DObjectType> parentDefinitions;
+	private List<DChildObjectType> childDefinitions;
+
+	public DObjectTypeImp(ObjectTypeDefinition instance,
+			DObjectAdapter factory, RepositoryAccess access) {
+		this.instance = instance;
+		this.factory = factory;
+		this.access = access;
+	}
+
+	@Override
+	public String getID() {
+		return instance.getUniqueRef();
+	}
+
+	@Override
+	public String getName() {
+		return instance.getLocalname();
+	}
+
+	@Override
+	public String getNamespace() {
+		return instance.getNamespace();
+	}
+
+	@Override
+	public List<DPropertyDefinition> getPropertyDefinitions()
+			throws RepositoryAccessException {
+		if (propertyDefinitions != null) {
+			return propertyDefinitions;
+		} else {
+			List<PropertyDefinition> propDefinitions = access
+					.getPropertyDefinitions(instance, factory.getSession());
+
+			propertyDefinitions = new ArrayList<DPropertyDefinition>(
+					propDefinitions.size());
+			for (PropertyDefinition propDefinition : propDefinitions) {
+				propertyDefinitions.add(factory
+						.wrapAsDPropertyDefinition(propDefinition));
+			}
+
+			return propertyDefinitions;
+		}
+	}
+
+	@Override
+	public List<DObjectType> getParentDefinitions()
+			throws RepositoryAccessException {
+		if (parentDefinitions != null) {
+			return parentDefinitions;
+		}
+
+		List<ObjectTypeDefinition> parDefinitions = access
+				.getParentTypeDefinitions(instance, factory.getSession());
+		propertyDefinitions = new ArrayList<DPropertyDefinition>(
+				parDefinitions.size());
+		for (ObjectTypeDefinition parentTypeRef : parDefinitions) {
+			parentDefinitions.add(factory.wrapAsDObjectType(parentTypeRef));
+		}
+
+		return parentDefinitions;
+	}
+
+	@Override
+	public List<DChildObjectType> getChildDefinitions()
+			throws RepositoryAccessException {
+		if (childDefinitions != null) {
+			return childDefinitions;
+		}
+
+		List<ChildObjectDefinition> childDefs = access
+				.getChildObjectTypeDefinitions(instance, factory.getSession());
+
+		childDefinitions = new ArrayList<DChildObjectType>(childDefs.size());
+		for (ChildObjectDefinition childDef : childDefs) {
+			childDefinitions.add(factory.wrapAsDChildObjectType(childDef));
+		}
+
+		return childDefinitions;
+	}
+
+	@Override
+	public ObjectTypeDefinition getInstance() {
+		return instance;
+	}
+
+}

Added: incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DPropertyDefinitionImp.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DPropertyDefinitionImp.java?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DPropertyDefinitionImp.java (added)
+++ incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DPropertyDefinitionImp.java Sat Apr 30 11:18:30 2011
@@ -0,0 +1,59 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+import java.math.BigInteger;
+import java.util.List;
+
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.AnnotationType;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropType;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropertyDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DPropertyDefinition;
+
+public class DPropertyDefinitionImp implements DPropertyDefinition {
+
+    private PropertyDefinition instance;
+
+    public DPropertyDefinitionImp(PropertyDefinition instance) {
+        this.instance = instance;
+    }
+
+    @Override
+    public String getUniqueRef() {
+        return instance.getUniqueRef();
+    }
+
+    @Override
+    public String getName() {
+        return instance.getLocalname();
+    }
+
+    @Override
+    public String getNamespace() {
+        return instance.getNamespace();
+    }
+
+    @Override
+    public AnnotationType getAnnotations() {
+        return instance.getAnnotation();
+    }
+
+    @Override
+    public BigInteger getCardinality() {
+        return instance.getCardinality();
+    }
+
+    @Override
+    public PropType getPropertyType() {
+        return instance.getPropertyType();
+    }
+
+    @Override
+    public List<String> getValueConstraints() {
+        return instance.getValueConstraint();
+    }
+
+    @Override
+    public PropertyDefinition getInstance() {
+        return instance;
+    }
+
+}

Added: incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DPropertyImp.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DPropertyImp.java?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DPropertyImp.java (added)
+++ incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/decorated/DPropertyImp.java Sat Apr 30 11:18:30 2011
@@ -0,0 +1,70 @@
+package org.apache.stanbol.cmsadapter.core.decorated;
+
+import java.util.List;
+
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropType;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.Property;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropertyDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectAdapter;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DProperty;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DPropertyDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccess;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
+
+public class DPropertyImp implements DProperty {
+
+    private Property instance;
+    private DObjectAdapter adapter;
+    private RepositoryAccess access;
+    private DObject sourceObject;
+    private DPropertyDefinition propertyDefinition;
+
+    public DPropertyImp(Property instance, DObjectAdapter adapter, RepositoryAccess access) {
+        this.instance = instance;
+        this.adapter = adapter;
+        this.access = access;
+    }
+
+    @Override
+    public PropType getType() {
+        return instance.getType();
+    }
+
+    @Override
+    public DPropertyDefinition getDefinition() throws RepositoryAccessException {
+        if (propertyDefinition != null) {
+            return propertyDefinition;
+        }
+
+        PropertyDefinition propDef = access.getPropertyDefinition(instance, adapter.getSession());
+
+        propertyDefinition = adapter.wrapAsDPropertyDefinition(propDef);
+        return propertyDefinition;
+
+    }
+
+    @Override
+    public DObject getSourceObject() throws RepositoryAccessException {
+        CMSObject source = access.getContainerObject(instance, adapter.getSession());
+        sourceObject = adapter.wrapAsDObject(source);
+        return sourceObject;
+    }
+
+    @Override
+    public List<String> getValue() {
+        return instance.getValue();
+    }
+
+    @Override
+    public Property getInstance() {
+        return instance;
+    }
+
+    @Override
+    public String getName() {
+        return this.getName();
+    }
+
+}

Added: incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/DefaultNamingStrategy.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/DefaultNamingStrategy.java?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/DefaultNamingStrategy.java (added)
+++ incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/DefaultNamingStrategy.java Sat Apr 30 11:18:30 2011
@@ -0,0 +1,234 @@
+package org.apache.stanbol.cmsadapter.core.mapping;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.lang.RandomStringUtils;
+import org.apache.stanbol.cmsadapter.servicesapi.helper.CMSAdapterVocabulary;
+import org.apache.stanbol.cmsadapter.servicesapi.helper.OntologyResourceHelper;
+import org.apache.stanbol.cmsadapter.servicesapi.mapping.NamingStrategy;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ObjectTypeDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.PropertyDefinition;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccess;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.rdf.model.RDFList;
+
+public class DefaultNamingStrategy implements NamingStrategy {
+    private static final Logger log = LoggerFactory.getLogger(DefaultNamingStrategy.class);
+
+    /**
+     * Used to separate any path segment
+     */
+    private static final String PATH_DELIMITER = "/";
+
+    private static final String TYPE_SEPARATOR = "-";
+    private static final String CLASS_DELIMITER = "class";
+    private static final String INDIVIDUAL_DELIMITER = "individual";
+    private static final String PROPERTY_DELIMITER = "prop";
+    private static final String OBJECT_PROPERTY_DELIMITER = "oprop";
+    private static final String DATA_PROPERTY_DELIMITER = "dprop";
+    private static final String UNION_CLASS_DELIMITER = "unions";
+
+    private RepositoryAccess repositoryAccess;
+    private Object session;
+    private OntModel processedModel;
+
+    public DefaultNamingStrategy(RepositoryAccess repositoryAccess, Object session, OntModel processedModel) {
+        this.repositoryAccess = repositoryAccess;
+        this.session = session;
+        this.processedModel = processedModel;
+    }
+
+    public DefaultNamingStrategy(RepositoryAccess repositoryAccess, OntModel processedModel) {
+        this.repositoryAccess = repositoryAccess;
+        this.session = null;
+        this.processedModel = processedModel;
+    }
+
+    @Override
+    public String getClassName(String ontologyURI, CMSObject cmsObject) {
+        List<String> candidateNames = Arrays.asList(new String[] {cmsObject.getLocalname(), cmsObject.getPath(),
+                                                                  cmsObject.getUniqueRef()});
+        return getAvailableResourceName(ontologyURI, candidateNames, CLASS_DELIMITER);
+    }
+
+    @Override
+    public String getClassName(String ontologyURI, ObjectTypeDefinition objectTypeDefinition) {
+        List<String> candidateNames = Arrays.asList(new String[] {objectTypeDefinition.getLocalname()});
+        return getAvailableResourceName(ontologyURI, candidateNames, CLASS_DELIMITER);
+    }
+
+    @Override
+    public String getClassName(String ontologyURI, String reference) {
+        List<String> candidateNames = Arrays.asList(new String[] {reference});
+        return getAvailableResourceName(ontologyURI, candidateNames, CLASS_DELIMITER);
+    }
+
+    @Override
+    public String getIndividualName(String ontologyURI, CMSObject cmsObject) {
+        List<String> candidateNames = Arrays.asList(new String[] {cmsObject.getLocalname(), cmsObject.getPath(),
+                                                                  cmsObject.getUniqueRef()});
+        return getAvailableResourceName(ontologyURI, candidateNames, INDIVIDUAL_DELIMITER);
+    }
+
+    @Override
+    public String getObjectPropertyName(String ontologyURI, PropertyDefinition propertyDefinition) {
+        List<String> candidateNames = Arrays.asList(new String[] {propertyDefinition.getLocalname(),
+                                                                  propertyDefinition.getUniqueRef()});
+        return getAvailableResourceName(ontologyURI, candidateNames, OBJECT_PROPERTY_DELIMITER);
+    }
+
+    @Override
+    public String getDataPropertyName(String ontologyURI, PropertyDefinition propertyDefinition) {
+        List<String> candidateNames = Arrays.asList(new String[] {propertyDefinition.getLocalname(),
+                                                                  propertyDefinition.getUniqueRef()});
+        return getAvailableResourceName(ontologyURI, candidateNames, DATA_PROPERTY_DELIMITER);
+    }
+
+    @Override
+    public String getUnionClassURI(String ontologyURI, RDFList list) {
+        List<String> candidateNames = Arrays.asList(new String[] {RandomStringUtils.randomAlphanumeric(4)});
+        return getAvailableResourceName(ontologyURI, candidateNames, UNION_CLASS_DELIMITER);
+    }
+
+    @Override
+    public String getIndividualName(String ontologyURI, String reference) {
+        List<String> candidateNames = Arrays.asList(new String[] {reference});
+        return getAvailableResourceName(ontologyURI, candidateNames, INDIVIDUAL_DELIMITER);
+    }
+
+    @Override
+    public String getPropertyName(String ontologyURI, String reference) {
+        List<String> candidateNames = Arrays.asList(new String[] {reference});
+        return getAvailableResourceName(ontologyURI, candidateNames, PROPERTY_DELIMITER);
+    }
+
+    @Override
+    public String getObjectPropertyName(String ontologyURI, String reference) {
+        List<String> candidateNames = Arrays.asList(new String[] {reference});
+        return getAvailableResourceName(ontologyURI, candidateNames, OBJECT_PROPERTY_DELIMITER);
+    }
+
+    @Override
+    public String getDataPropertyName(String ontologyURI, String reference) {
+        List<String> candidateNames = Arrays.asList(new String[] {reference});
+        return getAvailableResourceName(ontologyURI, candidateNames, DATA_PROPERTY_DELIMITER);
+    }
+
+    @Override
+    public void setRepositoryAccess(RepositoryAccess repositoryAccess) {
+        this.repositoryAccess = repositoryAccess;
+    }
+
+    @Override
+    public void setSession(Object session) {
+        this.session = session;
+    }
+
+    @Override
+    public void setOntModel(OntModel ontModel) {
+        this.processedModel = ontModel;
+    }
+
+    private String getAvailableResourceName(String ontologyURI,
+                                            List<String> candidates,
+                                            String resourceDelimiter) {
+        ResourceNameRepresentation nameRep;
+        StringBuilder sb;
+        String name;
+
+        for (String candidate : candidates) {
+            nameRep = getPrecedingBaseURI(candidate, ontologyURI);
+            sb = new StringBuilder(nameRep.getResourceBaseURI());
+            sb.append(resourceDelimiter).append(TYPE_SEPARATOR);
+            sb.append(nameRep.getResourceName());
+            name = sb.toString();
+
+            if (processedModel.getOntResource(name) == null) {
+                log.debug("Generated resource name {} from {}.", name, candidate);
+                return name;
+            }
+        }
+
+        log.warn("No suitable URI produced for candidates {}.", candidates);
+        return null;
+    }
+
+    private ResourceNameRepresentation getPrecedingBaseURI(String resourceName, String ontologyURI) {
+        ResourceNameRepresentation resourceNameRep = new ResourceNameRepresentation();
+
+        if (resourceName.contains(":")) {
+            String newURI;
+            String prefix = detectPrefix(resourceName);
+            resourceNameRep.setResourceName(resourceName);
+
+            // first try to resolve prefix through processed OntModel
+            newURI = processedModel.getNsPrefixURI(prefix);
+            if (newURI != null) {
+                resourceNameRep.setResourceBaseURI(OntologyResourceHelper.addResourceDelimiter(newURI));
+                return resourceNameRep;
+            }
+
+            // second try to resolve prefix through content repository itself
+            if (repositoryAccess != null && session != null) {
+                try {
+                    newURI = repositoryAccess.getNamespaceURI(prefix, session);
+                    if (newURI != null) {
+                        resourceNameRep.setResourceBaseURI(OntologyResourceHelper
+                                .addResourceDelimiter(newURI));
+                        return resourceNameRep;
+                    }
+                } catch (RepositoryAccessException e) {
+                    log.warn("Cannot access repository.", e);
+                }
+            }
+
+            // prefix still cannot be resolved, create a dummy URI
+            newURI = CMSAdapterVocabulary.DEFAULT_NS_URI + PATH_DELIMITER + prefix;
+            resourceNameRep.setResourceBaseURI(OntologyResourceHelper.addResourceDelimiter(newURI));
+            processedModel.setNsPrefix(prefix, newURI);
+
+            log.warn("Cannot find URI for prefix {}. Created dummy URI {}.", prefix, newURI);
+
+        } else {
+            resourceNameRep.setResourceName(resourceName);
+            resourceNameRep.setResourceBaseURI(OntologyResourceHelper.addResourceDelimiter(ontologyURI));
+        }
+        return resourceNameRep;
+    }
+
+    private String detectPrefix(String resourceName) {
+        int colonIndex = resourceName.lastIndexOf(":");
+        String prefix = "";
+        for (int i = colonIndex - 1; i >= 0 && resourceName.charAt(i) != '_'; i--) {
+            prefix = resourceName.charAt(i) + prefix;
+        }
+        return prefix;
+    }
+}
+
+class ResourceNameRepresentation {
+    private String resourceName;
+    private String resourceBaseURI;
+
+    public void setResourceName(String resourceName) {
+        this.resourceName = resourceName;
+    }
+
+    public String getResourceName() {
+        return this.resourceName;
+    }
+
+    public void setResourceBaseURI(String resourceBaseURI) {
+        this.resourceBaseURI = resourceBaseURI;
+    }
+
+    public String getResourceBaseURI() {
+        return this.resourceBaseURI;
+    }
+}

Added: incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/MappingEngineImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/MappingEngineImpl.java?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/MappingEngineImpl.java (added)
+++ incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/MappingEngineImpl.java Sat Apr 30 11:18:30 2011
@@ -0,0 +1,204 @@
+package org.apache.stanbol.cmsadapter.core.mapping;
+
+import java.io.ByteArrayOutputStream;
+import java.util.List;
+import java.util.Map;
+
+import javax.jcr.RepositoryException;
+
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.cmsadapter.core.decorated.DObjectFactoryImp;
+import org.apache.stanbol.cmsadapter.jcr.processor.ConceptBridgesProcesser;
+import org.apache.stanbol.cmsadapter.jcr.processor.InstanceBridgesProcesser;
+import org.apache.stanbol.cmsadapter.jcr.processor.JCRNodeTypeLifter;
+import org.apache.stanbol.cmsadapter.jcr.processor.SubsumptionBridgesProcesser;
+import org.apache.stanbol.cmsadapter.servicesapi.helper.OntologyResourceHelper;
+import org.apache.stanbol.cmsadapter.servicesapi.mapping.MappingEngine;
+import org.apache.stanbol.cmsadapter.servicesapi.mapping.NamingStrategy;
+import org.apache.stanbol.cmsadapter.servicesapi.model.mapping.BridgeDefinitions;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ConnectionInfo;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectAdapter;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccess;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessManager;
+import org.apache.stanbol.ontologymanager.store.rest.client.RestClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.ontology.OntModelSpec;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.RDFWriter;
+
+@Component(factory = "org.apache.stanbol.cmsadapter.servicesapi.mapping.MappingEngineFactory")
+@Service
+public class MappingEngineImpl implements MappingEngine {
+    private static final Logger logger = LoggerFactory.getLogger(MappingEngineImpl.class);
+
+    /*
+     * public static final String PROPERTY_ONTOLOGY_URI = "ontology.uri"; public static final String
+     * PROPERTY_CONNECTION_INFO = "connection.info";
+     * 
+     * @Property(name = PROPERTY_ONTOLOGY_URI) private String ontologyURI;
+     * 
+     * @Property(name = PROPERTY_CONNECTION_INFO) private ConnectionInfo connectionInfo;
+     */
+    @Reference
+    private RestClient storeClient;
+    @Reference
+    private RepositoryAccessManager accessManager;
+
+    private Object session;
+    private OntModel ontModel;
+    private String ontologyURI;
+    private BridgeDefinitions bridgeDefinitions;
+    private OntologyResourceHelper ontologyResourceHelper;
+    private DObjectAdapter adapter;
+    private NamingStrategy namingStrategy;
+
+    public MappingEngineImpl() {
+
+    }
+
+    @Activate
+    public void activate(final Map<?,?> properties) {
+
+    }
+
+    public Object getSession() {
+        return session;
+    }
+
+    public OntModel getOntModel() {
+        return ontModel;
+    }
+
+    public BridgeDefinitions getBridgeDefinitions() {
+        return bridgeDefinitions;
+    }
+
+    public OntologyResourceHelper getOntologyResourceHelper() {
+        return ontologyResourceHelper;
+    }
+
+    public String getOntologyURI() {
+        return ontologyURI;
+    }
+
+    @Override
+    public NamingStrategy getNamingStrategy() {
+        return namingStrategy;
+    }
+
+    @Override
+    public void mapCR(OntModel model, String ontologyURI, List<CMSObject> cmsObjects) throws RepositoryAccessException {
+        ConnectionInfo connectionInfo = OntologyResourceHelper.getConnectionInfo(model);
+        RepositoryAccess accessor = accessManager.getRepositoryAccessor(connectionInfo);
+        this.session = accessor.getSession(connectionInfo);
+        this.bridgeDefinitions = OntologyResourceHelper.getBridgeDefinitions(model);
+        this.ontologyURI = ontologyURI;
+        this.ontModel = model;
+        this.namingStrategy = new DefaultNamingStrategy(accessor, session, ontModel);
+        this.ontologyResourceHelper = new OntologyResourceHelper(this);
+        this.adapter = new DObjectFactoryImp(accessor, session);
+
+        long t1 = System.currentTimeMillis();
+        new ConceptBridgesProcesser(this).processUpdates(cmsObjects);
+
+        new SubsumptionBridgesProcesser(this).processUpdates(cmsObjects);
+
+        new InstanceBridgesProcesser(this).processUpdates(cmsObjects);
+        logger.debug("Total process time for ontology {} is {} ms", ontologyURI, System.currentTimeMillis()
+                                                                                 - t1);
+
+        try {
+            ByteArrayOutputStream bos = new ByteArrayOutputStream();
+            RDFWriter rdfWriter = ontModel.getWriter("RDF/XML");
+            rdfWriter.setProperty("xmlbase", ontologyURI);
+            rdfWriter.write(ontModel, bos, ontologyURI);
+            byte[] ontologyContentAsByteArray = bos.toByteArray();
+            String ontologyContentAsString = new String(ontologyContentAsByteArray);
+            storeClient.saveOntology(ontologyContentAsString, ontologyURI, "UTF-8");
+
+        } catch (Exception ex) {
+            logger.error("Exception occurred while saving the ontology");
+            logger.error(ex.getMessage());
+            // TODO return error message to flex side
+        }
+    }
+
+    @Override
+    public void mapCR(BridgeDefinitions bridges, ConnectionInfo connectionInfo, String ontologyURI) throws RepositoryAccessException {
+
+        RepositoryAccess accessor = accessManager.getRepositoryAccessor(connectionInfo);
+        this.session = accessor.getSession(connectionInfo);
+        this.bridgeDefinitions = bridges;
+        this.ontologyURI = ontologyURI;
+        this.ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM);
+        this.namingStrategy = new DefaultNamingStrategy(accessor, session, ontModel);
+        this.ontologyResourceHelper = new OntologyResourceHelper(this);
+        this.adapter = new DObjectFactoryImp(accessor, session);
+
+        long t1 = System.currentTimeMillis();
+        try {
+            new JCRNodeTypeLifter(this).lift();
+        } catch (RepositoryException e) {
+            logger.error("Lifting error", e);
+        }
+
+        // TODO Currently there are only JCR Processors
+        new ConceptBridgesProcesser(this).processBridges();
+
+        // Processing SubsumptionBridges
+        new SubsumptionBridgesProcesser(this).processBridges();
+
+        // Processing InstanceBridges
+        new InstanceBridgesProcesser(this).processBridges();
+
+        // save connection info
+        OntologyResourceHelper.saveConnectionInfo(connectionInfo, ontModel);
+        // save bridge definitions
+        // deserialize
+        OntologyResourceHelper.saveBridgeDefinitions(bridgeDefinitions, ontModel);
+
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+
+        logger.debug("Total process time for ontology {} is {} ms", ontologyURI, System.currentTimeMillis()
+                                                                                 - t1);
+
+        try {
+            RDFWriter rdfWriter = ontModel.getWriter("RDF/XML");
+            rdfWriter.setProperty("xmlbase", ontologyURI);
+            rdfWriter.write(ontModel, bos, ontologyURI);
+            byte[] ontologyContentAsByteArray = bos.toByteArray();
+            String ontologyContentAsString = new String(ontologyContentAsByteArray);
+            storeClient.saveOntology(ontologyContentAsString, ontologyURI, "UTF-8");
+
+        } catch (Exception ex) {
+            logger.error("Exception occurred while saving the ontology");
+            logger.error(ex.getMessage());
+            // TODO return error message to flex side
+        }
+
+    }
+
+    @Override
+    public void liftNodeTypes(ConnectionInfo connectionInfo, String ontologyURI) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public RepositoryAccessManager getRepositoryAccessManager() {
+        return accessManager;
+    }
+
+    @Override
+    public DObjectAdapter getDObjectAdapter() {
+        return adapter;
+    }
+}

Added: incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/RepositoryAccessManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/RepositoryAccessManagerImpl.java?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/RepositoryAccessManagerImpl.java (added)
+++ incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/repository/RepositoryAccessManagerImpl.java Sat Apr 30 11:18:30 2011
@@ -0,0 +1,75 @@
+package org.apache.stanbol.cmsadapter.core.repository;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.apache.felix.scr.annotations.ReferencePolicy;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.ConnectionInfo;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccess;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Component
+@Service
+public class RepositoryAccessManagerImpl implements RepositoryAccessManager {
+
+    @Reference(cardinality = ReferenceCardinality.MANDATORY_MULTIPLE, referenceInterface = RepositoryAccess.class, policy = ReferencePolicy.DYNAMIC, bind = "bindRepositoryAccess", unbind = "unbindRepositoryAccess")
+    private List<RepositoryAccess> accessors = new ArrayList<RepositoryAccess>();
+
+    private static final Logger logger = LoggerFactory.getLogger(RepositoryAccessManagerImpl.class);
+
+    @Override
+    public RepositoryAccess getRepositoryAccessor(ConnectionInfo connectionInfo) {
+        Iterator<RepositoryAccess> rai;
+        synchronized (accessors) {
+            rai = accessors.iterator();
+        }
+
+        while (rai.hasNext()) {
+            RepositoryAccess ra = rai.next();
+            if (ra.canRetrieve(connectionInfo)) {
+                return ra;
+            }
+        }
+
+        logger.warn("No suitable repository access implementation for connection type {} ",
+            connectionInfo.getConnectionType());
+        return null;
+    }
+
+    @Override
+    public RepositoryAccess getRepositoryAccess(Object session) {
+        Iterator<RepositoryAccess> rai;
+        synchronized (accessors) {
+            rai = accessors.iterator();
+        }
+
+        while (rai.hasNext()) {
+            RepositoryAccess ra = rai.next();
+            if (ra.canRetrieve(session)) {
+                return ra;
+            }
+        }
+
+        logger.warn("No suitable repository access implementation for session {} ", session);
+        return null;
+    }
+
+    protected void bindRepositoryAccess(RepositoryAccess repositoryAccess) {
+        synchronized (accessors) {
+            accessors.add(repositoryAccess);
+        }
+    }
+
+    protected void unbindRepositoryAccess(RepositoryAccess repositoryAccess) {
+        synchronized (repositoryAccess) {
+            accessors.remove(repositoryAccess);
+        }
+    }
+}

Added: incubator/stanbol/trunk/cmsadapter/crx-rmi/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/crx-rmi/pom.xml?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/crx-rmi/pom.xml (added)
+++ incubator/stanbol/trunk/cmsadapter/crx-rmi/pom.xml Sat Apr 30 11:18:30 2011
@@ -0,0 +1,87 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<artifactId>org.apache.stanbol.cmsadapter.parent</artifactId>
+		<groupId>org.apache.stanbol</groupId>
+		<version>0.9-SNAPSHOT</version>
+		<relativePath>../parent</relativePath>
+	</parent>
+
+	<groupId>org.apache.stanbol</groupId>
+	<artifactId>crx-rmi</artifactId>
+	<packaging>bundle</packaging>
+	
+	<name>Apache Stanbol CMS Adapter CRX-RMI Fragment Bundle</name>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<extensions>true</extensions>
+				<configuration>
+					<instructions>
+						<Embed-Dependency>crx-rmi</Embed-Dependency>
+						<Import-Package>
+							!com.day.crx.io.*,
+							com.day.crx.rmi.client,
+							com.day.crx.rmi.remote,
+							com.day.crx.rmi.server,
+							!com.day.crx,
+							*
+                        </Import-Package>
+						<Export-Package>
+							com.day.crx.rmi.client,
+							com.day.crx.rmi.remote,
+							com.day.crx.rmi.server
+                        </Export-Package>
+                        <!-- FIXME Bundle symbolic name should be re-considered. -->
+						<Fragment-Host>org.apache.stanbol.org.apache.stanbol.cmsadapter.jcr</Fragment-Host>
+					</instructions>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-scr-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+		<dependency>
+			<groupId>com.day</groupId>
+			<artifactId>crx-rmi</artifactId>
+			<version>2.2.0</version>
+			<type>jar</type>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.jackrabbit</groupId>
+			<artifactId>jackrabbit-jcr-rmi</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.jackrabbit</groupId>
+			<artifactId>jackrabbit-jcr-commons</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+		</dependency>
+	</dependencies>
+
+	<repositories>
+		<repository>
+			<releases>
+				<updatePolicy>always</updatePolicy>
+			</releases>
+			<snapshots>
+				<updatePolicy>always</updatePolicy>
+			</snapshots>
+			<id>local-crx-repo</id>
+			<name>local-crx-repo</name>
+			<url>file://localhost/${project.basedir}/../crx-rmi/src/main/resources/local-maven-repository</url>
+		</repository>
+	</repositories>
+</project>

Propchange: incubator/stanbol/trunk/cmsadapter/crx-rmi/pom.xml
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.jar
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.jar?rev=1098099&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.jar
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.pom.lastUpdated
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.pom.lastUpdated?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.pom.lastUpdated (added)
+++ incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.pom.lastUpdated Sat Apr 30 11:18:30 2011
@@ -0,0 +1,18 @@
+#NOTE: This is an internal implementation file, its format can be changed without prior notice.
+#Fri Mar 11 16:50:24 EET 2011
+file\://localhost//home/suat/Desktop/misc_files/srdc/IKS/codes/googleCodeRepo/iks-project/sandbox/ontogen/trunk/crx-rmi/../eu.iksproject.ontogen.parent/src/main/resources/local-maven-repository/.error=
+http\://download.java.net/maven/2/.lastUpdated=1299852527164
+http\://repository.apache.org/content/groups/snapshots-group/.error=
+http\://repository.apache.org/content/groups/snapshots-group/.lastUpdated=1299852526741
+http\://download.java.net/maven/2/.error=
+http\://repository.springsource.com/maven/bundles/external/.error=
+default-https\://maven.nuxeo.org/nexus/content/groups/public-snapshot/.lastUpdated=1299658738129
+file\://localhost//home/suat/Desktop/misc_files/srdc/IKS/codes/googleCodeRepo/iks-project/sandbox/ontogen/trunk/crx-rmi/../eu.iksproject.ontogen.parent/src/main/resources/local-maven-repository/.lastUpdated=1299854776003
+file\://localhost//home/suat/Desktop/misc_files/srdc/IKS/codes/googleCodeRepo/iks-project/sandbox/ontogen/trunk/crx-rmi/../crx-rmi/src/main/resources/local-maven-repository/.error=
+http\://repository.springsource.com/maven/bundles/external/.lastUpdated=1299852527587
+http\://repo1.maven.org/maven2/.lastUpdated=1299852528459
+http\://repo1.maven.org/maven2/.error=
+file\://localhost//home/suat/Desktop/misc_files/srdc/IKS/codes/googleCodeRepo/iks-project/sandbox/ontogen/trunk/crx-rmi/../crx-rmi/src/main/resources/local-maven-repository/.lastUpdated=1299855024881
+http\://repository.sonatype.org/content/groups/flexgroup/.error=
+https\://maven.nuxeo.org/nexus/content/groups/public-snapshot/.error=Could not transfer artifact com.day\:crx-rmi\:pom\:2.2.0 from maven.nuxeo.public-snapshot (https\://maven.nuxeo.org/nexus/content/groups/public-snapshot/)\: No response received after 60000
+http\://repository.sonatype.org/content/groups/flexgroup/.lastUpdated=1299852528103

Propchange: incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/2.2.0/crx-rmi-2.2.0.pom.lastUpdated
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/maven-metadata-local.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/maven-metadata-local.xml?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/maven-metadata-local.xml (added)
+++ incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/maven-metadata-local.xml Sat Apr 30 11:18:30 2011
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>com.day</groupId>
+  <artifactId>crx-rmi</artifactId>
+  <version>2.2.0</version>
+  <versioning>
+    <versions>
+      <version>2.2.0</version>
+    </versions>
+    <lastUpdated>20110308154602</lastUpdated>
+  </versioning>
+</metadata>

Propchange: incubator/stanbol/trunk/cmsadapter/crx-rmi/src/main/resources/local-maven-repository/com/day/crx-rmi/maven-metadata-local.xml
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/stanbol/trunk/cmsadapter/jcr/pom.xml
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/jcr/pom.xml?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/jcr/pom.xml (added)
+++ incubator/stanbol/trunk/cmsadapter/jcr/pom.xml Sat Apr 30 11:18:30 2011
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.stanbol</groupId>
+		<artifactId>org.apache.stanbol.cmsadapter.parent</artifactId>
+		<version>0.9-SNAPSHOT</version>
+		<relativePath>../parent</relativePath>
+	</parent>
+
+	<groupId>org.apache.stanbol</groupId>
+	<artifactId>org.apache.stanbol.cmsadapter.jcr</artifactId>
+	<packaging>bundle</packaging>
+
+	<name>Apache Stanbol CMS Adapter JCR Bundle</name>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<extensions>true</extensions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-scr-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.stanbol</groupId>
+			<artifactId>org.apache.stanbol.cmsadapter.servicesapi</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.scr.annotations</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.jackrabbit</groupId>
+			<artifactId>jackrabbit-jcr-rmi</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>javax.jcr</groupId>
+			<artifactId>jcr</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-simple</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>com.hp.hpl.jena</groupId>
+			<artifactId>jena</artifactId>
+		</dependency>
+	</dependencies>
+
+</project>
+

Propchange: incubator/stanbol/trunk/cmsadapter/jcr/pom.xml
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/ConceptBridgesProcesser.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/ConceptBridgesProcesser.java?rev=1098099&view=auto
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/ConceptBridgesProcesser.java (added)
+++ incubator/stanbol/trunk/cmsadapter/jcr/src/main/java/org/apache/stanbol/cmsadapter/jcr/processor/ConceptBridgesProcesser.java Sat Apr 30 11:18:30 2011
@@ -0,0 +1,101 @@
+package org.apache.stanbol.cmsadapter.jcr.processor;
+
+import java.util.List;
+
+import org.apache.stanbol.cmsadapter.servicesapi.helper.MappingModelParser;
+import org.apache.stanbol.cmsadapter.servicesapi.mapping.MappingEngine;
+import org.apache.stanbol.cmsadapter.servicesapi.model.mapping.BridgeDefinitions;
+import org.apache.stanbol.cmsadapter.servicesapi.model.mapping.ConceptBridge;
+import org.apache.stanbol.cmsadapter.servicesapi.model.mapping.PropertyBridge;
+import org.apache.stanbol.cmsadapter.servicesapi.model.mapping.SubsumptionBridge;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.CMSObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObject;
+import org.apache.stanbol.cmsadapter.servicesapi.model.web.decorated.DObjectAdapter;
+import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.hp.hpl.jena.ontology.OntClass;
+
+public class ConceptBridgesProcesser extends JCRProcessor {
+
+    private static final Logger logger = LoggerFactory.getLogger(ConceptBridgesProcesser.class);
+
+    public ConceptBridgesProcesser(MappingEngine mappingEngine) {
+        super(mappingEngine);
+    }
+
+    public void processUpdates(List<CMSObject> cmsObjects) {
+        BridgeDefinitions bridgeDefinitions = engine.getBridgeDefinitions();
+        DObjectAdapter adapter = engine.getDObjectAdapter();
+        List<ConceptBridge> conceptBridges = MappingModelParser.getConceptBridges(bridgeDefinitions);
+
+        for (ConceptBridge bridge : conceptBridges) {
+            try {
+                boolean subsumptionExists = bridge.getQuery().endsWith("/%");
+                for (CMSObject cmsObject : cmsObjects) {
+                    if (matches(cmsObject.getPath(), bridge.getQuery())) {
+                        processConceptBridge(engine, subsumptionExists, adapter.wrapAsDObject(cmsObject),
+                            bridge);
+                    }
+                }
+            } catch (RepositoryAccessException e) {
+                logger.warn("Can not process one of the bridges", e);
+            }
+        }
+    }
+
+    public void processBridges() {
+
+        BridgeDefinitions bridgeDefinitions = engine.getBridgeDefinitions();
+        DObjectAdapter adapter = engine.getDObjectAdapter();
+        List<ConceptBridge> conceptBridges = MappingModelParser.getConceptBridges(bridgeDefinitions);
+
+        for (ConceptBridge bridge : conceptBridges) {
+            try {
+                List<CMSObject> cmsObjects = this.accessor.getNodeByPath(bridge.getQuery(), session);
+                boolean subsumptionExists = bridge.getQuery().endsWith("/%");
+                for (CMSObject classificationObject : cmsObjects) {
+                    processConceptBridge(engine, subsumptionExists,
+                        adapter.wrapAsDObject(classificationObject), bridge);
+                }
+            } catch (RepositoryAccessException e) {
+                logger.warn("Can not process one of the bridges", e);
+            }
+        }
+    }
+
+    public void processConceptBridge(MappingEngine mappingEngine,
+                                     boolean subsumptionExists,
+                                     DObject cmsObject,
+                                     ConceptBridge conceptBridge) throws RepositoryAccessException {
+
+        OntClass c = ontologyResourceHelper.createOntClassByCMSObject(cmsObject.getInstance());
+
+        if (subsumptionExists) {
+            // if the processed node is located in sublevels add it as a subclass to parent
+            DObject parentObject = cmsObject.getParent();
+            if (parentObject != null) {
+                OntClass parentClass = ontologyResourceHelper.createOntClassByCMSObject(parentObject
+                        .getInstance());
+                parentClass.addSubClass(c);
+            }
+        }
+
+        // If SubsumptionBridgeExists....
+        List<SubsumptionBridge> subsumptionBridgeList = conceptBridge.getSubsumptionBridge();
+        SubsumptionBridgesProcesser sbp = new SubsumptionBridgesProcesser(mappingEngine);
+        for (SubsumptionBridge bridge : subsumptionBridgeList) {
+            // create subsumptionrelationships....
+            sbp.processSubsumptionBridge(c, bridge, cmsObject);
+        }
+
+        // If PropertyBridges Exist.....
+        List<PropertyBridge> propertyBridgeList = conceptBridge.getPropertyBridge();
+        PropertyBridgesProcesser pbp = new PropertyBridgesProcesser(mappingEngine);
+        for (PropertyBridge bridge : propertyBridgeList) {
+            // create subsumptionrelationships....
+            pbp.processConceptPropertyBridge(c, bridge, cmsObject);
+        }
+    }
+}