1 /*
2 * #%L
3 * wcm.io
4 * %%
5 * Copyright (C) 2015 wcm.io
6 * %%
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * #L%
19 */
20 package io.wcm.caravan.jaxrs.publisher;
21
22 import org.osgi.annotation.versioning.ConsumerType;
23
24 /**
25 * Marker interface that is implemented by all JAX-RS services and providers
26 * that are also OSGi components.
27 */
28 //CHECKSTYLE:OFF
29 @ConsumerType
30 public interface JaxRsComponent {
31 //CHECKSTYLE:ON
32
33 /**
34 * OSGi property name that marks JaxRS components to be registered globally to all JAX-RS applications.
35 * The property value has to be set to "true".
36 * Such components have to be marked as "serviceFactory" as well to ensure bundle scope.
37 */
38 String PROPERTY_GLOBAL_COMPONENT = "caravan.jaxrs.global";
39
40 }