]> source.dussan.org Git - archiva.git/blob
53b445abbe4a5855d26e4d821e58e8a28be718aa
[archiva.git] /
1 <?xml version="1.0"?>
2
3 <!--
4   ~ Licensed to the Apache Software Foundation (ASF) under one
5   ~ or more contributor license agreements.  See the NOTICE file
6   ~ distributed with this work for additional information
7   ~ regarding copyright ownership.  The ASF licenses this file
8   ~ to you under the Apache License, Version 2.0 (the
9   ~ "License"); you may not use this file except in compliance
10   ~ with the License.  You may obtain a copy of the License at
11   ~
12   ~   http://www.apache.org/licenses/LICENSE-2.0
13   ~
14   ~ Unless required by applicable law or agreed to in writing,
15   ~ software distributed under the License is distributed on an
16   ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   ~ KIND, either express or implied.  See the License for the
18   ~ specific language governing permissions and limitations
19   ~ under the License.
20   -->
21 <beans xmlns="http://www.springframework.org/schema/beans"
22        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
23        xmlns:context="http://www.springframework.org/schema/context"
24        xmlns:jaxrs="http://cxf.apache.org/jaxrs"
25        xsi:schemaLocation="http://www.springframework.org/schema/beans
26            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
27            http://www.springframework.org/schema/context 
28            http://www.springframework.org/schema/context/spring-context-3.0.xsd
29            http://cxf.apache.org/jaxrs
30            http://cxf.apache.org/schemas/jaxrs.xsd" default-lazy-init="true">
31
32   <import resource="classpath:META-INF/cxf/cxf.xml"/>
33   <!--
34   <import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"/>
35   -->
36   <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
37
38   <context:annotation-config/>
39   <context:component-scan
40       base-package="org.apache.archiva.rest.services,org.apache.archiva.redback.rest.services"/>
41
42   <!-- CXF OpenApiFeature -->
43   <bean id="archivaOpenApiFeature" class="org.apache.cxf.jaxrs.openapi.OpenApiFeature">
44     <property name="scanKnownConfigLocations" value="false"/>
45     <property name="configLocation" value="archiva/openapi-configuration.yaml"/>
46     <property name="scan" value="false"/>
47     <property name="useContextBasedConfig" value="true"/>
48     <!-- <property name="scannerClass" value="io.swagger.v3.jaxrs2.integration.JaxrsApplicationScanner"/> -->
49   </bean>
50
51
52   <bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
53     <property name="mapper" ref="redbackJacksonJsonMapper"/>
54   </bean>
55
56   <bean id="v2.jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
57     <property name="mapper" ref="v2.redbackJacksonJsonMapper"/>
58   </bean>
59
60   <bean id="xmlProvider" class="com.fasterxml.jackson.jaxrs.xml.JacksonJaxbXMLProvider">
61     <property name="mapper" ref="redbackJacksonXMLMapper"/>
62   </bean>
63
64   <bean id="redbackJacksonJsonMapper" class="com.fasterxml.jackson.databind.ObjectMapper" />
65   <bean id="v2.redbackJacksonJsonMapper" class="com.fasterxml.jackson.databind.ObjectMapper" >
66   </bean>
67   <bean id="redbackJacksonXMLMapper" class="com.fasterxml.jackson.dataformat.xml.XmlMapper" />
68
69
70   <jaxrs:server name="archivaServices" address="/archivaServices" >
71
72     <jaxrs:providers>
73       <ref bean="jsonProvider" />
74       <ref bean="xmlProvider" />
75       <ref bean="authenticationInterceptor#rest"/>
76       <ref bean="permissionInterceptor#rest"/>
77       <ref bean="requestValidationInterceptor#rest" />
78       <ref bean="archivaRestServiceExceptionMapper"/>
79       <ref bean="threadLocalUserCleaner#rest" />
80     </jaxrs:providers>
81
82     <jaxrs:serviceBeans>
83       <ref bean="browseService#rest"/>
84       <ref bean="pingService#rest"/>
85       <ref bean="repositoriesService#rest"/>
86       <ref bean="managedRepositoriesService#rest"/>
87       <ref bean="remoteRepositoriesService#rest"/>
88       <ref bean="repositoryGroupService#rest"/>
89       <ref bean="proxyConnectorService#rest"/>
90       <ref bean="networkProxyService#rest"/>
91       <ref bean="archivaAdministrationService#default"/>
92       <ref bean="searchService#rest"/>
93       <ref bean="commonServices#rest"/>
94       <ref bean="pluginsService#rest"/>
95       <ref bean="systemStatusService#rest"/>
96       <ref bean="reportRepositoriesService#rest" />
97       <ref bean="mergeRepositoriesService#rest"/>
98       <ref bean="proxyConnectorRuleService#rest"/>
99       <ref bean="archivaRuntimeConfigurationService#rest"/>
100       <ref bean="redbackRuntimeConfigurationService#rest"/>
101     </jaxrs:serviceBeans>
102
103
104   </jaxrs:server>
105
106
107   <jaxrs:server name="v2.archiva" address="/v2/archiva" >
108
109     <jaxrs:providers>
110       <ref bean="v2.jsonProvider" />
111       <ref bean="bearerAuthInterceptor#rest"/>
112       <ref bean="permissionInterceptor#rest"/>
113       <ref bean="requestValidationInterceptor#rest" />
114       <ref bean="v2.archivaRestServiceExceptionMapper"/>
115       <ref bean="threadLocalUserCleaner#rest" />
116     </jaxrs:providers>
117
118     <jaxrs:serviceBeans>
119       <ref bean="v2.defaultSecurityConfigurationService" />
120       <ref bean="v2.repositoryGroupService#rest" />
121       <ref bean="v2.repositoryService#rest"/>
122     </jaxrs:serviceBeans>
123
124     <jaxrs:features>
125       <ref bean="archivaOpenApiFeature" />
126     </jaxrs:features>
127
128   </jaxrs:server>
129
130
131   <bean name="browse#versionMetadata" class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
132         init-method="initialize">
133     <property name="diskPersistent" value="false"/>
134     <property name="eternal" value="false"/>
135     <property name="maxElementsInMemory" value="1000"/>
136     <property name="memoryEvictionPolicy" value="LRU"/>
137     <property name="name" value="userPermissions"/>
138     <property name="timeToIdleSeconds" value="300"/>
139     <property name="timeToLiveSeconds" value="600"/>
140   </bean>
141
142 </beans>