/** * 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.hadoop.gateway.service.test.deploy; import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.gateway.deploy.DeploymentContext; import org.apache.hadoop.gateway.descriptor.FilterParamDescriptor; import org.apache.hadoop.gateway.descriptor.ResourceDescriptor; import org.apache.hadoop.gateway.jersey.JerseyServiceDeploymentContributorBase; import org.apache.hadoop.gateway.topology.Service; import java.util.ArrayList; import java.util.List; /** * */ public class ServiceTestDeploymentContributor extends JerseyServiceDeploymentContributorBase { private static final String PACKAGES_PARAM = "jersey.config.server.provider.packages"; /* (non-Javadoc) * @see org.apache.hadoop.gateway.deploy.ServiceDeploymentContributor#getRole() */ @Override public String getRole() { return "SERVICE-TEST"; } /* (non-Javadoc) * @see org.apache.hadoop.gateway.deploy.ServiceDeploymentContributor#getName() */ @Override public String getName() { return "service-test"; } /* (non-Javadoc) * @see org.apache.hadoop.gateway.jersey.JerseyServiceDeploymentContributorBase#getPackages() */ @Override protected String[] getPackages() { return new String[]{ "org.apache.hadoop.gateway.service.test" }; } /* (non-Javadoc) * @see org.apache.hadoop.gateway.jersey.JerseyServiceDeploymentContributorBase#getPatterns() */ @Override protected String[] getPatterns() { return new String[]{ "*/**?**", "/*" }; } @Override public void contributeService( DeploymentContext context, Service service ) throws Exception { String packages = StringUtils.join(getPackages(), ";"); for (String pattern : getPatterns()) { ResourceDescriptor resource = context.getGatewayDescriptor().addResource(); resource.role(service.getRole()); resource.pattern(pattern); addXForwardedFilter(context, service, resource); // addAuthenticationFilter(context, service, resource); // addIdentityAssertionFilter(context, service, resource); // addAuthorizationFilter(context, service, resource); // addRewriteFilter( context, service, resource, null ); List<FilterParamDescriptor> params = new ArrayList<FilterParamDescriptor>(); FilterParamDescriptor param = resource.createFilterParam(); param.name(PACKAGES_PARAM); param.value(packages); params.add(param); FilterParamDescriptor traceType = resource.createFilterParam(); traceType.name( "jersey.config.server.tracing" ); traceType.value( "ALL" ); params.add( traceType ); FilterParamDescriptor traceLevel = resource.createFilterParam(); traceLevel.name( "jersey.config.server.tracing.threshold" ); traceLevel.value( "VERBOSE" ); params.add( traceLevel ); context.contributeFilter( service, resource, "pivot", "jersey", params ); context.contributeFilter(service, resource, "pivot", "jersey", params); } } }