blob: 082bf7b601dc2391155ea75d5eed9093688d9b71 [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.
-->
<blueprint xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
xmlns:cxf="http://cxf.apache.org/blueprint/core" xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd
http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd
http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">
<cm:property-placeholder persistent-id="org.apache.unomi.rest.segmentserviceendpoint"
update-strategy="reload">
</cm:property-placeholder>
<cxf:bus>
<cxf:features>
<cxf:logging/>
</cxf:features>
</cxf:bus>
<bean id="cors-filter" class="org.apache.cxf.rs.security.cors.CrossOriginResourceSharingFilter"/>
<bean id="jacksonMapper" class="org.apache.unomi.persistence.spi.CustomObjectMapper"/>
<bean id="jaxb-provider" class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
<argument index="0" ref="jacksonMapper" type="com.fasterxml.jackson.databind.ObjectMapper "/>
<argument index="1" type="com.fasterxml.jackson.jaxrs.cfg.Annotations[]">
<array>
<value>JACKSON</value>
<value>JAXB</value>
</array>
</argument>
</bean>
<bean id="jaas-filter" class="org.apache.cxf.jaxrs.security.JAASAuthenticationFilter">
<!-- Name of the JAAS Context -->
<property name="contextName" value="karaf"/>
<!-- Hint to the filter on how to have Principals representing users and roles separated
while initializing a SecurityContext -->
<property name="rolePrefix" value="ROLE_"/>
<property name="realmName" value="cxs"/>
<!-- Activate this if you want to force a redirect if auth is missing, by default it will trigger a 403 which
is usually preferred -->
<!--property name="redirectURI" value="/login.jsp"/-->
</bean>
<jaxrs:server address="/segments" id="restSegmentService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="segmentServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<jaxrs:server address="/userList" id="restUserListService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="userListServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<jaxrs:server address="/scoring" id="restScoringService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="scoringServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<jaxrs:server address="/definitions" id="restDefinitionsService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="definitionsServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<jaxrs:server address="/goals" id="restGoalsService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="goalsServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<jaxrs:server address="/campaigns" id="restCampaignsService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="campaignServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<jaxrs:server address="/rules" id="restRulesService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="rulesServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<jaxrs:server address="/profiles" id="restProfileService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="profileServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<jaxrs:server address="/cluster" id="restClusterService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="clusterServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<jaxrs:server address="/query" id="restQueryService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="queryServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<jaxrs:server address="/patches" id="restPatchService">
<jaxrs:providers>
<ref component-id="jaxb-provider"/>
<ref component-id="cors-filter"/>
<ref component-id="jaas-filter"/>
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref component-id="patchServiceEndPoint"/>
</jaxrs:serviceBeans>
</jaxrs:server>
<reference id="segmentService" interface="org.apache.unomi.api.services.SegmentService"/>
<reference id="userListService" interface="org.apache.unomi.api.services.UserListService"/>
<reference id="definitionsService" interface="org.apache.unomi.api.services.DefinitionsService"/>
<reference id="goalsService" interface="org.apache.unomi.api.services.GoalsService"/>
<reference id="rulesService" interface="org.apache.unomi.api.services.RulesService"/>
<reference id="profileService" interface="org.apache.unomi.api.services.ProfileService"/>
<reference id="clusterService" interface="org.apache.unomi.api.services.ClusterService"/>
<reference id="queryService" interface="org.apache.unomi.api.services.QueryService"/>
<reference id="eventService" interface="org.apache.unomi.api.services.EventService"/>
<reference id="patchService" interface="org.apache.unomi.api.services.PatchService"/>
<bean id="segmentServiceEndPoint" class="org.apache.unomi.rest.SegmentServiceEndPoint">
<property name="segmentService" ref="segmentService"/>
</bean>
<bean id="userListServiceEndPoint" class="org.apache.unomi.rest.UserListServiceEndPoint">
<property name="userListService" ref="userListService"/>
</bean>
<bean id="scoringServiceEndPoint" class="org.apache.unomi.rest.ScoringServiceEndPoint">
<property name="segmentService" ref="segmentService"/>
</bean>
<bean id="definitionsServiceEndPoint" class="org.apache.unomi.rest.DefinitionsServiceEndPoint">
<property name="definitionsService" ref="definitionsService"/>
<property name="localizationHelper" ref="localizationHelper"/>
</bean>
<bean id="goalsServiceEndPoint" class="org.apache.unomi.rest.GoalsServiceEndPoint">
<property name="goalsService" ref="goalsService"/>
</bean>
<bean id="campaignServiceEndPoint" class="org.apache.unomi.rest.CampaignsServiceEndPoint">
<property name="goalsService" ref="goalsService"/>
</bean>
<bean id="rulesServiceEndPoint" class="org.apache.unomi.rest.RulesServiceEndPoint">
<property name="rulesService" ref="rulesService"/>
</bean>
<bean id="profileServiceEndPoint" class="org.apache.unomi.rest.ProfileServiceEndPoint">
<property name="profileService" ref="profileService"/>
<property name="eventService" ref="eventService"/>
<property name="segmentService" ref="segmentService"/>
<property name="localizationHelper" ref="localizationHelper"/>
</bean>
<bean id="clusterServiceEndPoint" class="org.apache.unomi.rest.ClusterServiceEndPoint">
<property name="clusterService" ref="clusterService"/>
</bean>
<bean id="queryServiceEndPoint" class="org.apache.unomi.rest.QueryServiceEndPoint">
<property name="queryService" ref="queryService"/>
<property name="localizationHelper" ref="localizationHelper"/>
</bean>
<bean id="patchServiceEndPoint" class="org.apache.unomi.rest.PatchServiceEndPoint">
<property name="patchService" ref="patchService"/>
</bean>
<bean id="resourceBundleHelper" class="org.apache.unomi.rest.ResourceBundleHelper">
<property name="bundleContext" ref="blueprintBundleContext"/>
</bean>
<bean id="localizationHelper" class="org.apache.unomi.rest.LocalizationHelper">
<property name="bundleContext" ref="blueprintBundleContext"/>
<property name="resourceBundleHelper" ref="resourceBundleHelper"/>
</bean>
</blueprint>