knox-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kmin...@apache.org
Subject [1/5] knox git commit: KNOX-620: Jenkins Knox-master-verify failing since #725 due to JDK version issues. Renabled remainder of func tests.
Date Mon, 09 Nov 2015 21:10:49 GMT
Repository: knox
Updated Branches:
  refs/heads/master 2bb8d1e0d -> 56cedc0ae


http://git-wip-us.apache.org/repos/asf/knox/blob/56cedc0a/gateway-test/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryFuncTest.java
----------------------------------------------------------------------
diff --git a/gateway-test/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryFuncTest.java
b/gateway-test/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryFuncTest.java
index 1e5a59a..a23e675 100644
--- a/gateway-test/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryFuncTest.java
+++ b/gateway-test/src/test/java/org/apache/hadoop/gateway/deploy/DeploymentFactoryFuncTest.java
@@ -70,464 +70,464 @@ import static org.junit.Assert.fail;
 
 public class DeploymentFactoryFuncTest {
 
-//  private static final long SHORT_TIMEOUT = 1000L;
-//  private static final long MEDIUM_TIMEOUT = 10 * SHORT_TIMEOUT;
-//  private static final long LONG_TIMEOUT = 10 * MEDIUM_TIMEOUT;
-//
-//  @Test( timeout = SHORT_TIMEOUT )
-//  public void testGenericProviderDeploymentContributor() throws ParserConfigurationException,
SAXException, IOException, TransformerException {
-//    LOG_ENTER();
-//    GatewayConfig config = new GatewayTestConfig();
-//    File targetDir = new File( System.getProperty( "user.dir" ), "target" );
-//    File gatewayDir = new File( targetDir, "gateway-home-" + UUID.randomUUID() );
-//    gatewayDir.mkdirs();
-//
-//    ((GatewayTestConfig) config).setGatewayHomeDir( gatewayDir.getAbsolutePath() );
-//
-//    File deployDir = new File( config.getGatewayDeploymentDir() );
-//    deployDir.mkdirs();
-//
-////    ((GatewayTestConfig) config).setDeploymentDir( "clusters" );
-//
-//    addStacksDir(config, targetDir);
-//    DefaultGatewayServices srvcs = new DefaultGatewayServices();
-//    Map<String,String> options = new HashMap<String,String>();
-//    options.put("persist-master", "false");
-//    options.put("master", "password");
-//    try {
-//      DeploymentFactory.setGatewayServices(srvcs);
-//      srvcs.init(config, options);
-//    } catch (ServiceLifecycleException e) {
-//      e.printStackTrace(); // I18N not required.
-//    }
-//
-//    Topology topology = new Topology();
-//    topology.setName( "test-cluster" );
-//    Service service = new Service();
-//    service.setRole( "WEBHDFS" );
-//    service.addUrl( "http://localhost:50070/test-service-url" );
-//    topology.addService( service );
-//
-//    Provider provider = new Provider();
-//    provider.setRole( "authentication" );
-//    provider.setName( "generic" );
-//    provider.setEnabled( true );
-//    Param param = new Param();
-//    param.setName( "filter" );
-//    param.setValue( "org.opensource.ExistingFilter" );
-//    provider.addParam( param );
-//    param = new Param();
-//    param.setName( "test-param-name" );
-//    param.setValue( "test-param-value" );
-//    provider.addParam( param );
-//    topology.addProvider( provider );
-//
-//    WebArchive war = DeploymentFactory.createDeployment( config, topology );
-//
-//    Document gateway = parse( war.get( "WEB-INF/gateway.xml" ).getAsset().openStream()
);
-//    //dump( gateway );
-//
-//    //by default the first filter will be the X-Forwarded header filter
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[1]/role", equalTo( "xforwardedheaders"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[1]/name", equalTo( "XForwardedHeaderFilter"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[1]/class", equalTo( "org.apache.hadoop.gateway.filter.XForwardedHeaderFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/role", equalTo( "authentication"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/name", equalTo( "generic"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/class", equalTo( "org.opensource.ExistingFilter"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/param[1]/name", equalTo(
"test-param-name" ) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/param[1]/value", equalTo(
"test-param-value" ) ) );
-//    LOG_EXIT();
-//  }
-//
-//  @Test( timeout = LONG_TIMEOUT )
-//  public void testInvalidGenericProviderDeploymentContributor() throws ParserConfigurationException,
SAXException, IOException, TransformerException {
-//    LOG_ENTER();
-//    GatewayConfig config = new GatewayTestConfig();
-//    File targetDir = new File( System.getProperty( "user.dir" ), "target" );
-//    File gatewayDir = new File( targetDir, "gateway-home-" + UUID.randomUUID() );
-//    gatewayDir.mkdirs();
-//    ((GatewayTestConfig) config).setGatewayHomeDir( gatewayDir.getAbsolutePath() );
-//    File deployDir = new File( config.getGatewayDeploymentDir() );
-//    deployDir.mkdirs();
-//    addStacksDir(config, targetDir);
-//
-//    DefaultGatewayServices srvcs = new DefaultGatewayServices();
-//    Map<String,String> options = new HashMap<String,String>();
-//    options.put("persist-master", "false");
-//    options.put("master", "password");
-//    try {
-//      DeploymentFactory.setGatewayServices(srvcs);
-//      srvcs.init(config, options);
-//    } catch (ServiceLifecycleException e) {
-//      e.printStackTrace(); // I18N not required.
-//    }
-//
-//    Topology topology = new Topology();
-//    topology.setName( "test-cluster" );
-//    Service service = new Service();
-//    service.setRole( "WEBHDFS" );
-//    service.addUrl( "http://localhost:50070/test-service-url" );
-//    topology.addService( service );
-//
-//    Provider provider = new Provider();
-//    provider.setRole( "authentication" );
-//    provider.setName( "generic" );
-//    provider.setEnabled( true );
-//    Param param; // = new ProviderParam();
-//    // Missing filter param.
-//    //param.setName( "filter" );
-//    //param.setValue( "org.opensource.ExistingFilter" );
-//    //provider.addParam( param );
-//    param = new Param();
-//    param.setName( "test-param-name" );
-//    param.setValue( "test-param-value" );
-//    provider.addParam( param );
-//    topology.addProvider( provider );
-//
-//    Enumeration<Appender> appenders = NoOpAppender.setUp();
-//    try {
-//      DeploymentFactory.createDeployment( config, topology );
-//      fail( "Should have throws IllegalArgumentException" );
-//    } catch ( DeploymentException e ) {
-//      // Expected.
-//    } finally {
-//      NoOpAppender.tearDown( appenders );
-//    }
-//    LOG_EXIT();
-//  }
-//
-//  @Test( timeout = MEDIUM_TIMEOUT )
-//  public void testSimpleTopology() throws IOException, SAXException, ParserConfigurationException,
URISyntaxException {
-//    LOG_ENTER();
-//    GatewayConfig config = new GatewayTestConfig();
-//    //Testing without x-forwarded headers filter
-//    ((GatewayTestConfig)config).setXForwardedEnabled(false);
-//    File targetDir = new File( System.getProperty( "user.dir" ), "target" );
-//    File gatewayDir = new File( targetDir, "gateway-home-" + UUID.randomUUID() );
-//    gatewayDir.mkdirs();
-//    ((GatewayTestConfig) config).setGatewayHomeDir( gatewayDir.getAbsolutePath() );
-//    File deployDir = new File( config.getGatewayDeploymentDir() );
-//    deployDir.mkdirs();
-//    addStacksDir(config, targetDir);
-//
-//    DefaultGatewayServices srvcs = new DefaultGatewayServices();
-//    Map<String,String> options = new HashMap<String,String>();
-//    options.put("persist-master", "false");
-//    options.put("master", "password");
-//    try {
-//      DeploymentFactory.setGatewayServices(srvcs);
-//      srvcs.init(config, options);
-//    } catch (ServiceLifecycleException e) {
-//      e.printStackTrace(); // I18N not required.
-//    }
-//
-//    Topology topology = new Topology();
-//    topology.setName( "test-cluster" );
-//    Service service = new Service();
-//    service.setRole( "WEBHDFS" );
-//    service.addUrl( "http://localhost:50070/webhdfs" );
-//    topology.addService( service );
-//    Provider provider = new Provider();
-//    provider.setRole( "authentication" );
-//    provider.setName( "ShiroProvider" );
-//    provider.setEnabled( true );
-//    Param param = new Param();
-//    param.setName( "contextConfigLocation" );
-//    param.setValue( "classpath:app-context-security.xml" );
-//    provider.addParam( param );
-//    topology.addProvider( provider );
-//    Provider asserter = new Provider();
-//    asserter.setRole( "identity-assertion" );
-//    asserter.setName("Default");
-//    asserter.setEnabled( true );
-//    topology.addProvider( asserter );
-//    Provider authorizer = new Provider();
-//    authorizer.setRole( "authorization" );
-//    authorizer.setName("AclsAuthz");
-//    authorizer.setEnabled( true );
-//    topology.addProvider( authorizer );
-//
-//    WebArchive war = DeploymentFactory.createDeployment( config, topology );
-////    File dir = new File( System.getProperty( "user.dir" ) );
-////    File file = war.as( ExplodedExporter.class ).exportExploded( dir, "test-cluster.war"
);
-//
-//    Document web = parse( war.get( "WEB-INF/web.xml" ).getAsset().openStream() );
-//    assertThat( web, hasXPath( "/web-app/servlet/servlet-name", equalTo( "test-cluster"
) ) );
-//    assertThat( web, hasXPath( "/web-app/servlet/servlet-class", equalTo( "org.apache.hadoop.gateway.GatewayServlet"
) ) );
-//    assertThat( web, hasXPath( "/web-app/servlet/init-param/param-name", equalTo( "gatewayDescriptorLocation"
) ) );
-//    assertThat( web, hasXPath( "/web-app/servlet/init-param/param-value", equalTo( "gateway.xml"
) ) );
-//    assertThat( web, hasXPath( "/web-app/servlet-mapping/servlet-name", equalTo( "test-cluster"
) ) );
-//    assertThat( web, hasXPath( "/web-app/servlet-mapping/url-pattern", equalTo( "/*" )
) );
-//
-//    Document gateway = parse( war.get( "WEB-INF/gateway.xml" ).getAsset().openStream()
);
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/pattern", equalTo( "/webhdfs/v1/?**"
) ) );
-//    //assertThat( gateway, hasXPath( "/gateway/resource[1]/target", equalTo( "http://localhost:50070/webhdfs/v1/?{**}"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[1]/role", equalTo( "authentication"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[1]/class", equalTo( "org.apache.hadoop.gateway.filter.ResponseCookieFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/role", equalTo( "authentication"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/class", equalTo( "org.apache.shiro.web.servlet.ShiroFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[3]/role", equalTo( "authentication"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[3]/class", equalTo( "org.apache.hadoop.gateway.filter.ShiroSubjectIdentityAdapter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[4]/role", equalTo( "rewrite"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[4]/class", equalTo( "org.apache.hadoop.gateway.filter.rewrite.api.UrlRewriteServletFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[5]/role", equalTo( "identity-assertion"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[5]/class", equalTo( "org.apache.hadoop.gateway.identityasserter.filter.IdentityAsserterFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/role", equalTo( "authorization"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/name", equalTo( "AclsAuthz"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/class", equalTo( "org.apache.hadoop.gateway.filter.AclsAuthorizationFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[7]/role", equalTo( "dispatch"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[7]/name", equalTo( "webhdfs"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[7]/class", equalTo( "org.apache.hadoop.gateway.dispatch.GatewayDispatchFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/pattern", equalTo( "/webhdfs/v1/**?**"
) ) );
-//    //assertThat( gateway, hasXPath( "/gateway/resource[2]/target", equalTo( "http://localhost:50070/webhdfs/v1/{path=**}?{**}"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[1]/role", equalTo( "authentication"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[1]/class", equalTo( "org.apache.hadoop.gateway.filter.ResponseCookieFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[2]/role", equalTo( "authentication"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[2]/class", equalTo( "org.apache.shiro.web.servlet.ShiroFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[3]/role", equalTo( "authentication"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[3]/class", equalTo( "org.apache.hadoop.gateway.filter.ShiroSubjectIdentityAdapter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[4]/role", equalTo( "rewrite"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[4]/class", equalTo( "org.apache.hadoop.gateway.filter.rewrite.api.UrlRewriteServletFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[5]/role", equalTo( "identity-assertion"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[5]/class", equalTo( "org.apache.hadoop.gateway.identityasserter.filter.IdentityAsserterFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/role", equalTo( "authorization"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/name", equalTo( "AclsAuthz"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/class", equalTo( "org.apache.hadoop.gateway.filter.AclsAuthorizationFilter"
) ) );
-//
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[7]/role", equalTo( "dispatch"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[7]/name", equalTo( "webhdfs"
) ) );
-//    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[7]/class", equalTo( "org.apache.hadoop.gateway.dispatch.GatewayDispatchFilter"
) ) );
-//
-//    LOG_EXIT();
-//  }
-//
-//
-//   @Test( timeout = LONG_TIMEOUT )
-//   public void testWebXmlGeneration() throws IOException, SAXException, ParserConfigurationException,
URISyntaxException {
-//      LOG_ENTER();
-//      GatewayConfig config = new GatewayTestConfig();
-//      File targetDir = new File(System.getProperty("user.dir"), "target");
-//      File gatewayDir = new File(targetDir, "gateway-home-" + UUID.randomUUID());
-//      gatewayDir.mkdirs();
-//      ((GatewayTestConfig) config).setGatewayHomeDir(gatewayDir.getAbsolutePath());
-//      File deployDir = new File(config.getGatewayDeploymentDir());
-//      deployDir.mkdirs();
-//
-//      DefaultGatewayServices srvcs = new DefaultGatewayServices();
-//      Map<String, String> options = new HashMap<String, String>();
-//      options.put("persist-master", "false");
-//      options.put("master", "password");
-//      try {
-//         DeploymentFactory.setGatewayServices(srvcs);
-//         srvcs.init(config, options);
-//      } catch (ServiceLifecycleException e) {
-//         e.printStackTrace(); // I18N not required.
-//      }
-//
-//      Topology topology = new Topology();
-//      topology.setName("test-cluster");
-//      Service service = new Service();
-//      service.setRole("WEBHDFS");
-//      service.addUrl("http://localhost:50070/webhdfs");
-//      topology.addService(service);
-//      Provider provider = new Provider();
-//      provider.setRole("authentication");
-//      provider.setName("ShiroProvider");
-//      provider.setEnabled(true);
-//      Param param = new Param();
-//      param.setName("contextConfigLocation");
-//      param.setValue("classpath:app-context-security.xml");
-//      provider.addParam(param);
-//      topology.addProvider(provider);
-//      Provider asserter = new Provider();
-//      asserter.setRole("identity-assertion");
-//      asserter.setName("Default");
-//      asserter.setEnabled(true);
-//      topology.addProvider(asserter);
-//      Provider authorizer = new Provider();
-//      authorizer.setRole("authorization");
-//      authorizer.setName("AclsAuthz");
-//      authorizer.setEnabled(true);
-//      topology.addProvider(authorizer);
-//      Provider ha = new Provider();
-//      ha.setRole("ha");
-//      ha.setName("HaProvider");
-//      ha.setEnabled(true);
-//      topology.addProvider(ha);
-//
-//      for (int i = 0; i < 100; i++) {
-//         createAndTestDeployment(config, topology);
-//      }
-//      LOG_EXIT();
-//   }
-//
-//   private void createAndTestDeployment(GatewayConfig config, Topology topology) throws
IOException, SAXException, ParserConfigurationException {
-//
-//      WebArchive war = DeploymentFactory.createDeployment(config, topology);
-////      File dir = new File( System.getProperty( "user.dir" ) );
-////      File file = war.as( ExplodedExporter.class ).exportExploded( dir, "test-cluster.war"
);
-//
-//      Document web = parse(war.get("WEB-INF/web.xml").getAsset().openStream());
-//      assertThat(web, hasXPath("/web-app/servlet/servlet-class", equalTo("org.apache.hadoop.gateway.GatewayServlet")));
-//      assertThat(web, hasXPath("/web-app/servlet/init-param/param-name", equalTo("gatewayDescriptorLocation")));
-//      assertThat(web, hasXPath("/web-app/servlet/init-param/param-value", equalTo("gateway.xml")));
-//      assertThat(web, hasXPath("/web-app/servlet-mapping/servlet-name", equalTo("test-cluster")));
-//      assertThat(web, hasXPath("/web-app/servlet-mapping/url-pattern", equalTo("/*")));
-//      //testing the order of listener classes generated
-//      assertThat(web, hasXPath("/web-app/listener[2]/listener-class", equalTo("org.apache.hadoop.gateway.services.GatewayServicesContextListener")));
-//      assertThat(web, hasXPath("/web-app/listener[3]/listener-class", equalTo("org.apache.hadoop.gateway.ha.provider.HaServletContextListener")));
-//      assertThat(web, hasXPath("/web-app/listener[4]/listener-class", equalTo("org.apache.hadoop.gateway.filter.rewrite.api.UrlRewriteServletContextListener")));
-//   }
-//
-//  @Test( timeout = MEDIUM_TIMEOUT )
-//  public void testDeploymentWithServiceParams() throws Exception {
-//    LOG_ENTER();
-//    GatewayConfig config = new GatewayTestConfig();
-//    File targetDir = new File(System.getProperty("user.dir"), "target");
-//    File gatewayDir = new File(targetDir, "gateway-home-" + UUID.randomUUID());
-//    gatewayDir.mkdirs();
-//    ((GatewayTestConfig) config).setGatewayHomeDir(gatewayDir.getAbsolutePath());
-//    File deployDir = new File(config.getGatewayDeploymentDir());
-//    deployDir.mkdirs();
-//    addStacksDir(config, targetDir);
-//
-//    DefaultGatewayServices srvcs = new DefaultGatewayServices();
-//    Map<String, String> options = new HashMap<String, String>();
-//    options.put("persist-master", "false");
-//    options.put("master", "password");
-//    try {
-//      DeploymentFactory.setGatewayServices(srvcs);
-//      srvcs.init(config, options);
-//    } catch (ServiceLifecycleException e) {
-//      e.printStackTrace(); // I18N not required.
-//    }
-//
-//    Service service;
-//    Param param;
-//    Topology topology = new Topology();
-//    topology.setName( "test-cluster" );
-//
-//    service = new Service();
-//    service.setRole( "HIVE" );
-//    service.setUrls( Arrays.asList( new String[]{ "http://hive-host:50001/" } ) );
-//    param = new Param();
-//    param.setName( "someparam" );
-//    param.setValue( "somevalue" );
-//    service.addParam( param );
-//    topology.addService( service );
-//
-//    service = new Service();
-//    service.setRole( "WEBHBASE" );
-//    service.setUrls( Arrays.asList( new String[]{ "http://hbase-host:50002/" } ) );
-//    param = new Param();
-//    param.setName( "replayBufferSize" );
-//    param.setValue( "33" );
-//    service.addParam( param );
-//    topology.addService( service );
-//
-//    service = new Service();
-//    service.setRole( "OOZIE" );
-//    service.setUrls( Arrays.asList( new String[]{ "http://hbase-host:50003/" } ) );
-//    param = new Param();
-//    param.setName( "otherparam" );
-//    param.setValue( "65" );
-//    service.addParam( param );
-//    topology.addService( service );
-//
-//    WebArchive war = DeploymentFactory.createDeployment( config, topology );
-//    Document doc = parse( war.get( "WEB-INF/gateway.xml" ).getAsset().openStream() );
-////    dump( doc );
-//
-//    Node resourceNode, filterNode, paramNode;
-//    String value;
-//
-//    resourceNode = node( doc, "gateway/resource[role/text()='HIVE']" );
-//    assertThat( resourceNode, is(not(nullValue())));
-//    filterNode = node( resourceNode, "filter[role/text()='dispatch']" );
-//    assertThat( filterNode, is(not(nullValue())));
-//    paramNode = node( filterNode, "param[name/text()='someparam']" );
-//    value = value( paramNode, "value/text()" );
-//    assertThat( value, is( "somevalue" ) ) ;
-//
-//    resourceNode = node( doc, "gateway/resource[role/text()='WEBHBASE']" );
-//    assertThat( resourceNode, is(not(nullValue())));
-//    filterNode = node( resourceNode, "filter[role/text()='dispatch']" );
-//    assertThat( filterNode, is(not(nullValue())));
-//    paramNode = node( filterNode, "param[name/text()='replayBufferSize']" );
-//    value = value( paramNode, "value/text()" );
-//    assertThat( value, is( "33" ) ) ;
-//
-//    resourceNode = node( doc, "gateway/resource[role/text()='OOZIE']" );
-//    assertThat( resourceNode, is(not(nullValue())));
-//    filterNode = node( resourceNode, "filter[role/text()='dispatch']" );
-//    assertThat( filterNode, is(not(nullValue())));
-//    paramNode = node( filterNode, "param[name/text()='otherparam']" );
-//    value = value( paramNode, "value/text()" );
-//    assertThat( value, is( "65" ) ) ;
-//
-//    FileUtils.deleteQuietly( deployDir );
-//
-//    LOG_EXIT();
-//  }
-//
-//  private Document parse( InputStream stream ) throws IOException, SAXException, ParserConfigurationException
{
-//    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-//    DocumentBuilder builder = factory.newDocumentBuilder();
-//    InputSource source = new InputSource( stream );
-//    return builder.parse( source );
-//  }
-//
-//  private void addStacksDir(GatewayConfig config, File targetDir) {
-//    File stacksDir = new File( config.getGatewayServicesDir() );
-//    stacksDir.mkdirs();
-//    //TODO: [sumit] This is a hack for now, need to find a better way to locate the source
resources for 'stacks' to be tested
-//    String pathToStacksSource = "gateway-service-definitions/src/main/resources/services";
-//    File stacksSourceDir = new File( targetDir.getParent(), pathToStacksSource);
-//    if (!stacksSourceDir.exists()) {
-//      stacksSourceDir = new File( targetDir.getParentFile().getParent(), pathToStacksSource);
-//    }
-//    if (stacksSourceDir.exists()) {
-//      try {
-//        FileUtils.copyDirectoryToDirectory(stacksSourceDir, stacksDir);
-//      } catch ( IOException e) {
-//        fail(e.getMessage());
-//      }
-//    }
-//
-//  }
-//
-//  private void dump( Document document ) throws TransformerException {
-//    Transformer transformer = TransformerFactory.newInstance().newTransformer();
-//    transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
-//    StreamResult result = new StreamResult( new StringWriter() );
-//    DOMSource source = new DOMSource( document );
-//    transformer.transform( source, result );
-//    String xmlString = result.getWriter().toString();
-//    System.out.println( xmlString );
-//  }
-//
-//  private Node node( Node scope, String expression ) throws XPathExpressionException {
-//    return (Node)XPathFactory.newInstance().newXPath().compile( expression ).evaluate(
scope, XPathConstants.NODE );
-//  }
-//
-//  private String value( Node scope, String expression ) throws XPathExpressionException
{
-//    return XPathFactory.newInstance().newXPath().compile( expression ).evaluate( scope
);
-//  }
+  private static final long SHORT_TIMEOUT = 1000L;
+  private static final long MEDIUM_TIMEOUT = 10 * SHORT_TIMEOUT;
+  private static final long LONG_TIMEOUT = 10 * MEDIUM_TIMEOUT;
+
+  @Test( timeout = SHORT_TIMEOUT )
+  public void testGenericProviderDeploymentContributor() throws ParserConfigurationException,
SAXException, IOException, TransformerException {
+    LOG_ENTER();
+    GatewayConfig config = new GatewayTestConfig();
+    File targetDir = new File( System.getProperty( "user.dir" ), "target" );
+    File gatewayDir = new File( targetDir, "gateway-home-" + UUID.randomUUID() );
+    gatewayDir.mkdirs();
+
+    ((GatewayTestConfig) config).setGatewayHomeDir( gatewayDir.getAbsolutePath() );
+
+    File deployDir = new File( config.getGatewayDeploymentDir() );
+    deployDir.mkdirs();
+
+//    ((GatewayTestConfig) config).setDeploymentDir( "clusters" );
+
+    addStacksDir(config, targetDir);
+    DefaultGatewayServices srvcs = new DefaultGatewayServices();
+    Map<String,String> options = new HashMap<String,String>();
+    options.put("persist-master", "false");
+    options.put("master", "password");
+    try {
+      DeploymentFactory.setGatewayServices(srvcs);
+      srvcs.init(config, options);
+    } catch (ServiceLifecycleException e) {
+      e.printStackTrace(); // I18N not required.
+    }
+
+    Topology topology = new Topology();
+    topology.setName( "test-cluster" );
+    Service service = new Service();
+    service.setRole( "WEBHDFS" );
+    service.addUrl( "http://localhost:50070/test-service-url" );
+    topology.addService( service );
+
+    Provider provider = new Provider();
+    provider.setRole( "authentication" );
+    provider.setName( "generic" );
+    provider.setEnabled( true );
+    Param param = new Param();
+    param.setName( "filter" );
+    param.setValue( "org.opensource.ExistingFilter" );
+    provider.addParam( param );
+    param = new Param();
+    param.setName( "test-param-name" );
+    param.setValue( "test-param-value" );
+    provider.addParam( param );
+    topology.addProvider( provider );
+
+    WebArchive war = DeploymentFactory.createDeployment( config, topology );
+
+    Document gateway = parse( war.get( "WEB-INF/gateway.xml" ).getAsset().openStream() );
+    //dump( gateway );
+
+    //by default the first filter will be the X-Forwarded header filter
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[1]/role", equalTo( "xforwardedheaders"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[1]/name", equalTo( "XForwardedHeaderFilter"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[1]/class", equalTo( "org.apache.hadoop.gateway.filter.XForwardedHeaderFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/role", equalTo( "authentication"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/name", equalTo( "generic"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/class", equalTo( "org.opensource.ExistingFilter"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/param[1]/name", equalTo(
"test-param-name" ) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/param[1]/value", equalTo(
"test-param-value" ) ) );
+    LOG_EXIT();
+  }
+
+  @Test( timeout = LONG_TIMEOUT )
+  public void testInvalidGenericProviderDeploymentContributor() throws ParserConfigurationException,
SAXException, IOException, TransformerException {
+    LOG_ENTER();
+    GatewayConfig config = new GatewayTestConfig();
+    File targetDir = new File( System.getProperty( "user.dir" ), "target" );
+    File gatewayDir = new File( targetDir, "gateway-home-" + UUID.randomUUID() );
+    gatewayDir.mkdirs();
+    ((GatewayTestConfig) config).setGatewayHomeDir( gatewayDir.getAbsolutePath() );
+    File deployDir = new File( config.getGatewayDeploymentDir() );
+    deployDir.mkdirs();
+    addStacksDir(config, targetDir);
+
+    DefaultGatewayServices srvcs = new DefaultGatewayServices();
+    Map<String,String> options = new HashMap<String,String>();
+    options.put("persist-master", "false");
+    options.put("master", "password");
+    try {
+      DeploymentFactory.setGatewayServices(srvcs);
+      srvcs.init(config, options);
+    } catch (ServiceLifecycleException e) {
+      e.printStackTrace(); // I18N not required.
+    }
+
+    Topology topology = new Topology();
+    topology.setName( "test-cluster" );
+    Service service = new Service();
+    service.setRole( "WEBHDFS" );
+    service.addUrl( "http://localhost:50070/test-service-url" );
+    topology.addService( service );
+
+    Provider provider = new Provider();
+    provider.setRole( "authentication" );
+    provider.setName( "generic" );
+    provider.setEnabled( true );
+    Param param; // = new ProviderParam();
+    // Missing filter param.
+    //param.setName( "filter" );
+    //param.setValue( "org.opensource.ExistingFilter" );
+    //provider.addParam( param );
+    param = new Param();
+    param.setName( "test-param-name" );
+    param.setValue( "test-param-value" );
+    provider.addParam( param );
+    topology.addProvider( provider );
+
+    Enumeration<Appender> appenders = NoOpAppender.setUp();
+    try {
+      DeploymentFactory.createDeployment( config, topology );
+      fail( "Should have throws IllegalArgumentException" );
+    } catch ( DeploymentException e ) {
+      // Expected.
+    } finally {
+      NoOpAppender.tearDown( appenders );
+    }
+    LOG_EXIT();
+  }
+
+  @Test( timeout = MEDIUM_TIMEOUT )
+  public void testSimpleTopology() throws IOException, SAXException, ParserConfigurationException,
URISyntaxException {
+    LOG_ENTER();
+    GatewayConfig config = new GatewayTestConfig();
+    //Testing without x-forwarded headers filter
+    ((GatewayTestConfig)config).setXForwardedEnabled(false);
+    File targetDir = new File( System.getProperty( "user.dir" ), "target" );
+    File gatewayDir = new File( targetDir, "gateway-home-" + UUID.randomUUID() );
+    gatewayDir.mkdirs();
+    ((GatewayTestConfig) config).setGatewayHomeDir( gatewayDir.getAbsolutePath() );
+    File deployDir = new File( config.getGatewayDeploymentDir() );
+    deployDir.mkdirs();
+    addStacksDir(config, targetDir);
+
+    DefaultGatewayServices srvcs = new DefaultGatewayServices();
+    Map<String,String> options = new HashMap<String,String>();
+    options.put("persist-master", "false");
+    options.put("master", "password");
+    try {
+      DeploymentFactory.setGatewayServices(srvcs);
+      srvcs.init(config, options);
+    } catch (ServiceLifecycleException e) {
+      e.printStackTrace(); // I18N not required.
+    }
+
+    Topology topology = new Topology();
+    topology.setName( "test-cluster" );
+    Service service = new Service();
+    service.setRole( "WEBHDFS" );
+    service.addUrl( "http://localhost:50070/webhdfs" );
+    topology.addService( service );
+    Provider provider = new Provider();
+    provider.setRole( "authentication" );
+    provider.setName( "ShiroProvider" );
+    provider.setEnabled( true );
+    Param param = new Param();
+    param.setName( "contextConfigLocation" );
+    param.setValue( "classpath:app-context-security.xml" );
+    provider.addParam( param );
+    topology.addProvider( provider );
+    Provider asserter = new Provider();
+    asserter.setRole( "identity-assertion" );
+    asserter.setName("Default");
+    asserter.setEnabled( true );
+    topology.addProvider( asserter );
+    Provider authorizer = new Provider();
+    authorizer.setRole( "authorization" );
+    authorizer.setName("AclsAuthz");
+    authorizer.setEnabled( true );
+    topology.addProvider( authorizer );
+
+    WebArchive war = DeploymentFactory.createDeployment( config, topology );
+//    File dir = new File( System.getProperty( "user.dir" ) );
+//    File file = war.as( ExplodedExporter.class ).exportExploded( dir, "test-cluster.war"
);
+
+    Document web = parse( war.get( "WEB-INF/web.xml" ).getAsset().openStream() );
+    assertThat( web, hasXPath( "/web-app/servlet/servlet-name", equalTo( "test-cluster" )
) );
+    assertThat( web, hasXPath( "/web-app/servlet/servlet-class", equalTo( "org.apache.hadoop.gateway.GatewayServlet"
) ) );
+    assertThat( web, hasXPath( "/web-app/servlet/init-param/param-name", equalTo( "gatewayDescriptorLocation"
) ) );
+    assertThat( web, hasXPath( "/web-app/servlet/init-param/param-value", equalTo( "gateway.xml"
) ) );
+    assertThat( web, hasXPath( "/web-app/servlet-mapping/servlet-name", equalTo( "test-cluster"
) ) );
+    assertThat( web, hasXPath( "/web-app/servlet-mapping/url-pattern", equalTo( "/*" ) )
);
+
+    Document gateway = parse( war.get( "WEB-INF/gateway.xml" ).getAsset().openStream() );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/pattern", equalTo( "/webhdfs/v1/?**"
) ) );
+    //assertThat( gateway, hasXPath( "/gateway/resource[1]/target", equalTo( "http://localhost:50070/webhdfs/v1/?{**}"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[1]/role", equalTo( "authentication"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[1]/class", equalTo( "org.apache.hadoop.gateway.filter.ResponseCookieFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/role", equalTo( "authentication"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[2]/class", equalTo( "org.apache.shiro.web.servlet.ShiroFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[3]/role", equalTo( "authentication"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[3]/class", equalTo( "org.apache.hadoop.gateway.filter.ShiroSubjectIdentityAdapter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[4]/role", equalTo( "rewrite"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[4]/class", equalTo( "org.apache.hadoop.gateway.filter.rewrite.api.UrlRewriteServletFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[5]/role", equalTo( "identity-assertion"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[5]/class", equalTo( "org.apache.hadoop.gateway.identityasserter.filter.IdentityAsserterFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/role", equalTo( "authorization"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/name", equalTo( "AclsAuthz"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/class", equalTo( "org.apache.hadoop.gateway.filter.AclsAuthorizationFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[7]/role", equalTo( "dispatch"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[7]/name", equalTo( "webhdfs"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[7]/class", equalTo( "org.apache.hadoop.gateway.dispatch.GatewayDispatchFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/pattern", equalTo( "/webhdfs/v1/**?**"
) ) );
+    //assertThat( gateway, hasXPath( "/gateway/resource[2]/target", equalTo( "http://localhost:50070/webhdfs/v1/{path=**}?{**}"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[1]/role", equalTo( "authentication"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[1]/class", equalTo( "org.apache.hadoop.gateway.filter.ResponseCookieFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[2]/role", equalTo( "authentication"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[2]/class", equalTo( "org.apache.shiro.web.servlet.ShiroFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[3]/role", equalTo( "authentication"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[3]/class", equalTo( "org.apache.hadoop.gateway.filter.ShiroSubjectIdentityAdapter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[4]/role", equalTo( "rewrite"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[4]/class", equalTo( "org.apache.hadoop.gateway.filter.rewrite.api.UrlRewriteServletFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[5]/role", equalTo( "identity-assertion"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[5]/class", equalTo( "org.apache.hadoop.gateway.identityasserter.filter.IdentityAsserterFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/role", equalTo( "authorization"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/name", equalTo( "AclsAuthz"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[1]/filter[6]/class", equalTo( "org.apache.hadoop.gateway.filter.AclsAuthorizationFilter"
) ) );
+
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[7]/role", equalTo( "dispatch"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[7]/name", equalTo( "webhdfs"
) ) );
+    assertThat( gateway, hasXPath( "/gateway/resource[2]/filter[7]/class", equalTo( "org.apache.hadoop.gateway.dispatch.GatewayDispatchFilter"
) ) );
+
+    LOG_EXIT();
+  }
+
+
+   @Test( timeout = LONG_TIMEOUT )
+   public void testWebXmlGeneration() throws IOException, SAXException, ParserConfigurationException,
URISyntaxException {
+      LOG_ENTER();
+      GatewayConfig config = new GatewayTestConfig();
+      File targetDir = new File(System.getProperty("user.dir"), "target");
+      File gatewayDir = new File(targetDir, "gateway-home-" + UUID.randomUUID());
+      gatewayDir.mkdirs();
+      ((GatewayTestConfig) config).setGatewayHomeDir(gatewayDir.getAbsolutePath());
+      File deployDir = new File(config.getGatewayDeploymentDir());
+      deployDir.mkdirs();
+
+      DefaultGatewayServices srvcs = new DefaultGatewayServices();
+      Map<String, String> options = new HashMap<String, String>();
+      options.put("persist-master", "false");
+      options.put("master", "password");
+      try {
+         DeploymentFactory.setGatewayServices(srvcs);
+         srvcs.init(config, options);
+      } catch (ServiceLifecycleException e) {
+         e.printStackTrace(); // I18N not required.
+      }
+
+      Topology topology = new Topology();
+      topology.setName("test-cluster");
+      Service service = new Service();
+      service.setRole("WEBHDFS");
+      service.addUrl("http://localhost:50070/webhdfs");
+      topology.addService(service);
+      Provider provider = new Provider();
+      provider.setRole("authentication");
+      provider.setName("ShiroProvider");
+      provider.setEnabled(true);
+      Param param = new Param();
+      param.setName("contextConfigLocation");
+      param.setValue("classpath:app-context-security.xml");
+      provider.addParam(param);
+      topology.addProvider(provider);
+      Provider asserter = new Provider();
+      asserter.setRole("identity-assertion");
+      asserter.setName("Default");
+      asserter.setEnabled(true);
+      topology.addProvider(asserter);
+      Provider authorizer = new Provider();
+      authorizer.setRole("authorization");
+      authorizer.setName("AclsAuthz");
+      authorizer.setEnabled(true);
+      topology.addProvider(authorizer);
+      Provider ha = new Provider();
+      ha.setRole("ha");
+      ha.setName("HaProvider");
+      ha.setEnabled(true);
+      topology.addProvider(ha);
+
+      for (int i = 0; i < 100; i++) {
+         createAndTestDeployment(config, topology);
+      }
+      LOG_EXIT();
+   }
+
+   private void createAndTestDeployment(GatewayConfig config, Topology topology) throws IOException,
SAXException, ParserConfigurationException {
+
+      WebArchive war = DeploymentFactory.createDeployment(config, topology);
+//      File dir = new File( System.getProperty( "user.dir" ) );
+//      File file = war.as( ExplodedExporter.class ).exportExploded( dir, "test-cluster.war"
);
+
+      Document web = parse(war.get("WEB-INF/web.xml").getAsset().openStream());
+      assertThat(web, hasXPath("/web-app/servlet/servlet-class", equalTo("org.apache.hadoop.gateway.GatewayServlet")));
+      assertThat(web, hasXPath("/web-app/servlet/init-param/param-name", equalTo("gatewayDescriptorLocation")));
+      assertThat(web, hasXPath("/web-app/servlet/init-param/param-value", equalTo("gateway.xml")));
+      assertThat(web, hasXPath("/web-app/servlet-mapping/servlet-name", equalTo("test-cluster")));
+      assertThat(web, hasXPath("/web-app/servlet-mapping/url-pattern", equalTo("/*")));
+      //testing the order of listener classes generated
+      assertThat(web, hasXPath("/web-app/listener[2]/listener-class", equalTo("org.apache.hadoop.gateway.services.GatewayServicesContextListener")));
+      assertThat(web, hasXPath("/web-app/listener[3]/listener-class", equalTo("org.apache.hadoop.gateway.ha.provider.HaServletContextListener")));
+      assertThat(web, hasXPath("/web-app/listener[4]/listener-class", equalTo("org.apache.hadoop.gateway.filter.rewrite.api.UrlRewriteServletContextListener")));
+   }
+
+  @Test( timeout = MEDIUM_TIMEOUT )
+  public void testDeploymentWithServiceParams() throws Exception {
+    LOG_ENTER();
+    GatewayConfig config = new GatewayTestConfig();
+    File targetDir = new File(System.getProperty("user.dir"), "target");
+    File gatewayDir = new File(targetDir, "gateway-home-" + UUID.randomUUID());
+    gatewayDir.mkdirs();
+    ((GatewayTestConfig) config).setGatewayHomeDir(gatewayDir.getAbsolutePath());
+    File deployDir = new File(config.getGatewayDeploymentDir());
+    deployDir.mkdirs();
+    addStacksDir(config, targetDir);
+
+    DefaultGatewayServices srvcs = new DefaultGatewayServices();
+    Map<String, String> options = new HashMap<String, String>();
+    options.put("persist-master", "false");
+    options.put("master", "password");
+    try {
+      DeploymentFactory.setGatewayServices(srvcs);
+      srvcs.init(config, options);
+    } catch (ServiceLifecycleException e) {
+      e.printStackTrace(); // I18N not required.
+    }
+
+    Service service;
+    Param param;
+    Topology topology = new Topology();
+    topology.setName( "test-cluster" );
+
+    service = new Service();
+    service.setRole( "HIVE" );
+    service.setUrls( Arrays.asList( new String[]{ "http://hive-host:50001/" } ) );
+    param = new Param();
+    param.setName( "someparam" );
+    param.setValue( "somevalue" );
+    service.addParam( param );
+    topology.addService( service );
+
+    service = new Service();
+    service.setRole( "WEBHBASE" );
+    service.setUrls( Arrays.asList( new String[]{ "http://hbase-host:50002/" } ) );
+    param = new Param();
+    param.setName( "replayBufferSize" );
+    param.setValue( "33" );
+    service.addParam( param );
+    topology.addService( service );
+
+    service = new Service();
+    service.setRole( "OOZIE" );
+    service.setUrls( Arrays.asList( new String[]{ "http://hbase-host:50003/" } ) );
+    param = new Param();
+    param.setName( "otherparam" );
+    param.setValue( "65" );
+    service.addParam( param );
+    topology.addService( service );
+
+    WebArchive war = DeploymentFactory.createDeployment( config, topology );
+    Document doc = parse( war.get( "WEB-INF/gateway.xml" ).getAsset().openStream() );
+//    dump( doc );
+
+    Node resourceNode, filterNode, paramNode;
+    String value;
+
+    resourceNode = node( doc, "gateway/resource[role/text()='HIVE']" );
+    assertThat( resourceNode, is(not(nullValue())));
+    filterNode = node( resourceNode, "filter[role/text()='dispatch']" );
+    assertThat( filterNode, is(not(nullValue())));
+    paramNode = node( filterNode, "param[name/text()='someparam']" );
+    value = value( paramNode, "value/text()" );
+    assertThat( value, is( "somevalue" ) ) ;
+
+    resourceNode = node( doc, "gateway/resource[role/text()='WEBHBASE']" );
+    assertThat( resourceNode, is(not(nullValue())));
+    filterNode = node( resourceNode, "filter[role/text()='dispatch']" );
+    assertThat( filterNode, is(not(nullValue())));
+    paramNode = node( filterNode, "param[name/text()='replayBufferSize']" );
+    value = value( paramNode, "value/text()" );
+    assertThat( value, is( "33" ) ) ;
+
+    resourceNode = node( doc, "gateway/resource[role/text()='OOZIE']" );
+    assertThat( resourceNode, is(not(nullValue())));
+    filterNode = node( resourceNode, "filter[role/text()='dispatch']" );
+    assertThat( filterNode, is(not(nullValue())));
+    paramNode = node( filterNode, "param[name/text()='otherparam']" );
+    value = value( paramNode, "value/text()" );
+    assertThat( value, is( "65" ) ) ;
+
+    FileUtils.deleteQuietly( deployDir );
+
+    LOG_EXIT();
+  }
+
+  private Document parse( InputStream stream ) throws IOException, SAXException, ParserConfigurationException
{
+    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+    DocumentBuilder builder = factory.newDocumentBuilder();
+    InputSource source = new InputSource( stream );
+    return builder.parse( source );
+  }
+
+  private void addStacksDir(GatewayConfig config, File targetDir) {
+    File stacksDir = new File( config.getGatewayServicesDir() );
+    stacksDir.mkdirs();
+    //TODO: [sumit] This is a hack for now, need to find a better way to locate the source
resources for 'stacks' to be tested
+    String pathToStacksSource = "gateway-service-definitions/src/main/resources/services";
+    File stacksSourceDir = new File( targetDir.getParent(), pathToStacksSource);
+    if (!stacksSourceDir.exists()) {
+      stacksSourceDir = new File( targetDir.getParentFile().getParent(), pathToStacksSource);
+    }
+    if (stacksSourceDir.exists()) {
+      try {
+        FileUtils.copyDirectoryToDirectory(stacksSourceDir, stacksDir);
+      } catch ( IOException e) {
+        fail(e.getMessage());
+      }
+    }
+
+  }
+
+  private void dump( Document document ) throws TransformerException {
+    Transformer transformer = TransformerFactory.newInstance().newTransformer();
+    transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
+    StreamResult result = new StreamResult( new StringWriter() );
+    DOMSource source = new DOMSource( document );
+    transformer.transform( source, result );
+    String xmlString = result.getWriter().toString();
+    System.out.println( xmlString );
+  }
+
+  private Node node( Node scope, String expression ) throws XPathExpressionException {
+    return (Node)XPathFactory.newInstance().newXPath().compile( expression ).evaluate( scope,
XPathConstants.NODE );
+  }
+
+  private String value( Node scope, String expression ) throws XPathExpressionException {
+    return XPathFactory.newInstance().newXPath().compile( expression ).evaluate( scope );
+  }
 
 }


Mime
View raw message