blob: 6583ec8cf9f3d834deef6b4ff5bbd5b0ae0db405 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
* 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.
-->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
targetNamespace="http://org.apache.photoark"
name="photo-gallery-jcr">
<!-- Component responsible for providing Access Management for gallery/album -->
<component name="AccessManager">
<implementation.java class="org.apache.photark.jcr.security.authorization.JCRAccessManager"/>
<service name="AccessManager">
<interface.java interface="org.apache.photark.security.authorization.services.AccessManager"/>
<binding.sca name="local"/>
<!--<tuscany:binding.jsonrpc uri="/AccessManagerService"/>-->
</service>
<service name="JSONAccessManager">
<interface.java interface="org.apache.photark.security.authorization.services.JSONAccessManager"/>
<tuscany:binding.jsonrpc uri="/AccessManagerService"/>
</service>
<reference name="repositoryManager" target="RepositoryManager"/>
</component>
<!-- Facade component for Gallery -->
<component name="Gallery">
<implementation.java class="org.apache.photark.jcr.services.JCRGalleryImpl"/>
<property name="name">gallery</property>
<service name="Gallery">
<interface.java interface="org.apache.photark.services.gallery.Gallery"/>
<binding.sca name="local"/>
<tuscany:binding.jsonrpc uri="/GalleryService"/>
</service>
<reference name="repositoryManager" target="RepositoryManager"/>
<reference name="listeners" target="SearchService"/>
<reference name="accessmanager" target="AccessManager"/>
</component>
<!-- Component responsible for providing REST access to images -->
<component name="ImageServiceComponent">
<implementation.java class="org.apache.photark.jcr.services.JCRImageCollectionImpl"/>
<service name="ImageCollection">
<tuscany:binding.http uri="/gallery"/>
</service>
<reference name="repositoryManager" target="RepositoryManager"/>
</component>
<!-- Component responsible for providing REST access to Security Data -->
<component name="SecurityServiceComponent">
<implementation.java class="org.apache.photark.security.authorization.services.SecurityServiceImpl"/>
<service name="Servlet">
<tuscany:binding.http uri="/security"/>
</service>
<reference name="accessmanager" target="AccessManager">
<binding.sca name="local"/>
</reference>
<!--<reference name="accessmanager" target="AccessManager"/>-->
</component>
<!-- Component responsible for providing upload support for gallery/album -->
<component name="ImageUploadServiceComponent">
<implementation.java class="org.apache.photark.jcr.services.JCRImageUploadServiceImpl"/>
<service name="Servlet">
<tuscany:binding.http uri="/admin/upload"/>
</service>
<reference name="repositoryManager" target="RepositoryManager"/>
<reference name="gallery" target="Gallery">
<binding.sca name="local"/>
</reference>
<reference name="accessmanager" target="AccessManager"/>
</component>
<!-- Component responsible for providing JCR Management Support -->
<component name="RepositoryManager">
<implementation.java class="org.apache.photark.jcr.JCRRepositoryManager"/>
<property name="repositoryHome">photark</property>
</component>
<!-- Component responsible for providing OpenID Authentication for PhotArk -->
<component name="OpenIdAuthenticationServiceComponent">
<implementation.java class="org.apache.photark.security.authentication.services.OpenIDAuthenticationServiceImpl"/>
<service name="Servlet">
<tuscany:binding.http uri="/home/authenticate"/>
</service>
<reference name="accessmanager" target="AccessManager">
<binding.sca name="local"/>
</reference>
</component>
<!-- Component responsible for providing FORM Authentication for PhotArk -->
<component name="FormAuthenticationServiceComponent">
<implementation.java class="org.apache.photark.security.authentication.services.FormAuthenticationServiceImpl"/>
<service name="Servlet">
<tuscany:binding.http uri="/admin/authenticate"/>
</service>
<reference name="accessmanager" target="AccessManager">
<binding.sca name="local"/>
</reference>
</component>
<!-- Component responsible for providing logging out from the active user-->
<component name="LogoutAuthenticationServiceComponent">
<implementation.java class="org.apache.photark.security.authentication.services.LogoutServiceImpl"/>
<service name="Servlet">
<tuscany:binding.http uri="/logout"/>
</service>
<reference name="accessmanager" target="AccessManager">
<binding.sca name="local"/>
</reference>
</component>
<!-- Component responsible for indexing and searching images -->
<component name="SearchService">
<implementation.java class="org.apache.photark.search.services.impl.SearchServiceImpl"/>
<property name="indexDirectoryPath">search-index</property>
<service name="SearchService">
<interface.java interface="org.apache.photark.search.services.SearchService"/>
<binding.sca name="local"/>
<tuscany:binding.jsonrpc uri="/SearchService"/>
</service>
<reference name="accessmanager" target="AccessManager">
<binding.sca name="local"/>
</reference>
</component>
<component name="RemoteAlbumSubscriptionManager">
<implementation.java class="org.apache.photark.jcr.album.subscription.AlbumSubscriptionManager"/>
<service name="RemoteAlbumSubscription">
<interface.java interface="org.apache.photark.services.gallery.RemoteAlbumSubscription"/>
<binding.sca name="local"/>
<tuscany:binding.jsonrpc uri="/RemoteAlbumSubscriptionManager"/>
</service>
<reference name="repositoryManager" target="RepositoryManager"/>
<reference name="jcrRemoteGallery" target="RemoteGallery"/>
</component>
<component name="RemoteGallery">
<implementation.java class="org.apache.photark.jcr.services.JCRRemoteGalleryImpl"/>
<property name="name">gallery</property>
<service name="RemoteGallery">
<interface.java interface="org.apache.photark.services.gallery.RemoteGallery"/>
<binding.sca name="local"/>
<tuscany:binding.jsonrpc uri="/JCRRemoteGallery"/>
</service>
<reference name="repositoryManager" target="RepositoryManager"/>
<reference name="listeners" target="SearchService"/>
<reference name="accessmanager" target="AccessManager"/>
</component>
<component name="FaceRecognitionService">
<implementation.java class="org.apache.photark.face.services.FaceRecognitionServiceImpl"/>
<service name="FaceRecognitionService">
<interface.java interface="org.apache.photark.face.services.FaceRecognitionService"/>
<binding.sca name="local"/>
<tuscany:binding.jsonrpc uri="/FaceRecognitionService"/>
</service>
</component>
<component name="FacebookFriendFinder">
<implementation.java class="org.apache.photark.face.services.applications.facebook.FacebookFriendFinderImpl"/>
<service name="FacebookFriendFinder">
<interface.java interface="org.apache.photark.face.services.applications.facebook.FacebookFriendFinder"/>
<binding.sca name="local"/>
<tuscany:binding.jsonrpc uri="/FacebookFriendFinder"/>
</service>
<reference name="faceRecognitionService" target="FaceRecognitionService"/>
<reference name="accessmanager" target="AccessManager"/>
</component>
<component name="GenericFriendFinder">
<implementation.java class="org.apache.photark.face.services.applications.generic.GenericFriendFinderImpl"/>
<service name="GenericFriendFinder">
<interface.java interface="org.apache.photark.face.services.applications.generic.GenericFriendFinder"/>
<binding.sca name="local"/>
<tuscany:binding.jsonrpc uri="/GenericFriendFinder"/>
</service>
<reference name="faceRecognitionService" target="FaceRecognitionService"/>
<reference name="accessmanager" target="AccessManager"/>
</component>
</composite>