Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   * 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
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
 import static;
 import static org.osgi.framework.Constants.SERVICE_ID;
 import static org.osgi.framework.Constants.SERVICE_PID;
 import static org.osgi.service.component.ComponentConstants.COMPONENT_NAME;
 import java.util.List;
 import  org.osgi.framework.ServiceReference;

The AbstractServiceReferenceConfig may be used as a base class to define ServletConfig and FilterConfig instances from OSGi ServiceReference objects. The properties of this service reference are used as the initialization parameters of the configuration object.

The name of the servlet or filter may be retrieved from the service reference by calling the static getName(ServiceReference) method. This method looks for the following service reference properties, assuming the first non-null value found:

  1. sling.core.servletName - A service registration property which may be set to define an independent servlet name.
  2. - The name of the Declarative Services component if the OSGi service is registered using Declarative Services.
  3. - The Service PID of the service.
  4. - The ID of the service as set by the OSGi framework service registry. This property is guaranteed to always be set by the OSGi specification.

 public abstract class AbstractServiceReferenceConfig {

The list of property names checked by getName(ServiceReference)
     private static final String[] NAME_PROPERTIES = { ,

The ServletContext of this configuration object
     private ServletContext servletContext;

The ServiceReference providing the properties
     private ServiceReference reference;

The name of this configuration object
     private String name;

Sets up this base configuration object.

servletContext The ServletContext attached to this configuration.
reference The service reference providing the initialization parameter values.
name The name of this configuration.
See also:
     public AbstractServiceReferenceConfig(ServletContext servletContext,
             ServiceReference referenceString name) {
         this. = servletContext;
         this. = reference;
         this. = name;
     public String getInitParameter(String name) {
         Object prop = .getProperty(name);
         return (prop == null) ? null : String.valueOf(prop);
     public Enumeration<?> getInitParameterNames() {
         List<?> keys = Arrays.asList(.getPropertyKeys());
         return Collections.enumeration(keys);
    public ServletContext getServletContext() {
        return ;

Returns the name of this configuration object. Implementations may use this value to implement the ServletConfig.getServletName() or FilterConfig.getFilterName() methods.
    protected String getName() {
        return ;

Looks for a name value in the service reference properties. See the class comment at the top for the list of properties checked by this method.
    public static String getName(ServiceReference reference) {
        String servletName = null;
        for (int i = 0; i < .
            && (servletName == null || servletName.length() == 0); i++) {
            Object prop = reference.getProperty([i]);
            if (prop != null) {
                servletName = String.valueOf(prop);
        return servletName;
New to GrepCode? Check out our FAQ X