View Javadoc
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  }