| /* |
| * 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 |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.felix.http.api; |
| |
| import java.util.Dictionary; |
| |
| import javax.servlet.Filter; |
| import javax.servlet.Servlet; |
| import javax.servlet.ServletException; |
| |
| import org.osgi.annotation.versioning.ProviderType; |
| import org.osgi.service.http.HttpContext; |
| import org.osgi.service.http.HttpService; |
| |
| /** |
| * The {@link ExtHttpService} allows other bundles in the OSGi environment to dynamically |
| * register resources, {@link Filter}s and {@link Servlet}s into the URI namespace of a |
| * HTTP service implementation. A bundle may later unregister its resources, {@link Filter}s |
| * or {@link Servlet}s. |
| * |
| * @see HttpContext |
| * @deprecated The HTTP Whiteboard Service should be used instead. |
| */ |
| @Deprecated |
| @ProviderType |
| public interface ExtHttpService extends HttpService |
| { |
| /** |
| * Allows for programmatic registration of a {@link Filter} instance. |
| * |
| * @param filter the {@link Filter} to register, cannot be <code>null</code>; |
| * @param pattern the filter pattern to register the for, cannot be <code>null</code> and |
| * should be a valid regular expression; |
| * @param initParams the initialization parameters passed to the given filter during its |
| * initialization, can be <code>null</code> in case no additional parameters should |
| * be provided; |
| * @param ranking defines the order in which filters are called. A higher ranking causes |
| * the filter to be placed earlier in the filter chain; |
| * @param context the optional {@link HttpContext} to associate with this filter, can be |
| * <code>null</code> in case a default context should be associated. |
| * @throws ServletException in case the registration failed, for example because the |
| * initialization failed or due any other problem; |
| * @throws IllegalArgumentException in case the given filter was <code>null</code>. |
| */ |
| void registerFilter(Filter filter, String pattern, Dictionary initParams, int ranking, HttpContext context) throws ServletException; |
| |
| /** |
| * Unregisters a previously registered {@link Filter}. |
| * <p> |
| * In case the given filter is not registered, this method is essentially a no-op. |
| * </p> |
| * |
| * @param filter the {@link Filter} to unregister, cannot be <code>null</code>. |
| */ |
| void unregisterFilter(Filter filter); |
| |
| /** |
| * Unregisters a previously registered {@link Servlet}. |
| * <p> |
| * In case the given servlet is not registered, this method is essentially a no-op. |
| * </p> |
| * |
| * @param servlet the {@link Servlet} to unregister, cannot be <code>null</code>. |
| */ |
| void unregisterServlet(Servlet servlet); |
| } |