]> source.dussan.org Git - archiva.git/blob
6f5f1fc1fbf06471d5ef05bd48b6d953036ad6fe
[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   <import resource="classpath*:META-INF/cxf/cxf-servlet.xml"/>
34
35   <context:annotation-config/>
36   <context:component-scan
37       base-package="org.apache.archiva.rest.services,org.apache.archiva.redback.rest.services,org.apache.archiva.rest.v2"/>
38
39   <!-- CXF OpenApiFeature -->
40   <bean id="archivaOpenApiFeature" class="org.apache.cxf.jaxrs.openapi.OpenApiFeature">
41     <property name="scanKnownConfigLocations" value="false"/>
42     <property name="configLocation" value="archiva/openapi-configuration.yaml"/>
43     <property name="scan" value="false"/>
44     <property name="useContextBasedConfig" value="true"/>
45     <!-- <property name="scannerClass" value="io.swagger.v3.jaxrs2.integration.JaxrsApplicationScanner"/> -->
46   </bean>
47
48
49   <bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
50     <property name="mapper" ref="redbackJacksonJsonMapper"/>
51   </bean>
52
53   <bean id="v2.jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
54     <property name="mapper" ref="v2.redbackJacksonJsonMapper"/>
55   </bean>
56
57   <bean id="xmlProvider" class="com.fasterxml.jackson.jaxrs.xml.JacksonJaxbXMLProvider">
58     <property name="mapper" ref="redbackJacksonXMLMapper"/>
59   </bean>
60
61   <bean id="redbackJacksonJsonMapper" class="com.fasterxml.jackson.databind.ObjectMapper" />
62   <bean id="v2.redbackJacksonJsonMapper" class="com.fasterxml.jackson.databind.ObjectMapper" >
63   </bean>
64   <bean id="redbackJacksonXMLMapper" class="com.fasterxml.jackson.dataformat.xml.XmlMapper" />
65
66
67   <jaxrs:server name="archivaServices" address="/archivaServices" >
68
69     <jaxrs:providers>
70       <ref bean="jsonProvider" />
71       <ref bean="xmlProvider" />
72       <ref bean="authenticationInterceptor#rest"/>
73       <ref bean="permissionInterceptor#rest"/>
74       <ref bean="requestValidationInterceptor#rest" />
75       <ref bean="archivaRestServiceExceptionMapper"/>
76       <ref bean="threadLocalUserCleaner#rest" />
77     </jaxrs:providers>
78
79     <jaxrs:serviceBeans>
80       <ref bean="browseService#rest"/>
81       <ref bean="pingService#rest"/>
82       <ref bean="repositoriesService#rest"/>
83       <ref bean="managedRepositoriesService#rest"/>
84       <ref bean="remoteRepositoriesService#rest"/>
85       <ref bean="repositoryGroupService#rest"/>
86       <ref bean="proxyConnectorService#rest"/>
87       <ref bean="networkProxyService#rest"/>
88       <ref bean="archivaAdministrationService#default"/>
89       <ref bean="searchService#rest"/>
90       <ref bean="commonServices#rest"/>
91       <ref bean="pluginsService#rest"/>
92       <ref bean="systemStatusService#rest"/>
93       <ref bean="reportRepositoriesService#rest" />
94       <ref bean="mergeRepositoriesService#rest"/>
95       <ref bean="proxyConnectorRuleService#rest"/>
96       <ref bean="archivaRuntimeConfigurationService#rest"/>
97       <ref bean="redbackRuntimeConfigurationService#rest"/>
98     </jaxrs:serviceBeans>
99
100
101   </jaxrs:server>
102
103
104   <jaxrs:server name="v2.archiva" address="/v2/archiva" >
105
106     <jaxrs:providers>
107       <ref bean="v2.jsonProvider" />
108       <ref bean="bearerAuthInterceptor#rest"/>
109       <ref bean="permissionInterceptor#rest"/>
110       <ref bean="requestValidationInterceptor#rest" />
111       <ref bean="v2.archivaRestServiceExceptionMapper"/>
112       <ref bean="threadLocalUserCleaner#rest" />
113     </jaxrs:providers>
114
115     <jaxrs:serviceBeans>
116       <ref bean="v2.defaultSecurityConfigurationService" />
117       <ref bean="v2.repositoryGroupService#rest" />
118       <ref bean="v2.repositoryService#rest"/>
119       <ref bean="v2.managedMavenRepositoryService#rest"/>
120     </jaxrs:serviceBeans>
121
122     <jaxrs:features>
123       <ref bean="archivaOpenApiFeature" />
124     </jaxrs:features>
125
126   </jaxrs:server>
127
128
129   <bean name="browse#versionMetadata" class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
130         init-method="initialize">
131     <property name="diskPersistent" value="false"/>
132     <property name="eternal" value="false"/>
133     <property name="maxElementsInMemory" value="1000"/>
134     <property name="memoryEvictionPolicy" value="LRU"/>
135     <property name="name" value="userPermissions"/>
136     <property name="timeToIdleSeconds" value="300"/>
137     <property name="timeToLiveSeconds" value="600"/>
138   </bean>
139
140 </beans>