You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by km...@apache.org on 2013/09/24 17:44:27 UTC

[7/8] git commit: KNOX-42: Changed Hive URLs.

KNOX-42: Changed Hive URLs.


Project: http://git-wip-us.apache.org/repos/asf/incubator-knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-knox/commit/e7e518e2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-knox/tree/e7e518e2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-knox/diff/e7e518e2

Branch: refs/heads/master
Commit: e7e518e2602ee87be63262474aa47be2ffdddd3f
Parents: e5484ea
Author: Kevin Minder <ke...@hortonworks.com>
Authored: Tue Sep 24 08:58:01 2013 -0400
Committer: Kevin Minder <ke...@hortonworks.com>
Committed: Tue Sep 24 11:44:16 2013 -0400

----------------------------------------------------------------------
 .../filter/rewrite/i18n/UrlRewriteMessages.java |   2 +-
 .../apache/hadoop/gateway/GatewayFilter.java    |   2 +
 .../apache/hadoop/gateway/GatewayMessages.java  |  12 +-
 .../gateway/dispatch/HttpClientDispatch.java    |  28 +++--
 .../hbase/HBaseDeploymentContributor.java       |   2 +-
 .../HBaseDeploymentContributor/rewrite.xml      |  13 +-
 .../hadoop/gateway/shell/hbase/HBase.java       |   2 +-
 .../hadoop/gateway/GatewayBasicFuncTest.java    |   2 +-
 .../gateway/util/urltemplate/Segment.java       | 118 ++++++++++---------
 .../gateway/util/urltemplate/MatcherTest.java   |  33 ++++++
 .../gateway/util/urltemplate/SegmentTest.java   |  10 +-
 11 files changed, 141 insertions(+), 83 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/i18n/UrlRewriteMessages.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/i18n/UrlRewriteMessages.java b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/i18n/UrlRewriteMessages.java
index 215e54c..1af7974 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/i18n/UrlRewriteMessages.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/hadoop/gateway/filter/rewrite/i18n/UrlRewriteMessages.java
@@ -79,7 +79,7 @@ public interface UrlRewriteMessages {
   @Message( level = MessageLevel.ERROR, text = "Failed to rewrite URL: {0}, direction: {1}, rule: {2}" )
   void failedToRewriteUrlDueToException( Template inputUri, UrlRewriter.Direction direction, String ruleName, @StackTrace(level = MessageLevel.DEBUG) Exception exception );
 
-  @Message( level = MessageLevel.DEBUG, text = "No rule matching URL: {0}, direction: {1}" )
+  @Message( level = MessageLevel.TRACE, text = "No rule matching URL: {0}, direction: {1}" )
   void noRuleMatchingUrl( Template inputUri, UrlRewriter.Direction direction );
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayFilter.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayFilter.java b/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayFilter.java
index 17ef5b9..87dd8f2 100644
--- a/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayFilter.java
+++ b/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayFilter.java
@@ -89,6 +89,8 @@ public class GatewayFilter implements Filter {
       throw new ServletException( e );
     }
 
+    LOG.receivedRequest( httpRequest.getMethod(), pathTemplate );
+
     servletRequest.setAttribute( AbstractGatewayFilter.SOURCE_REQUEST_URL_ATTRIBUTE_NAME, pathTemplate );
 
     Matcher<Chain>.Match match = chains.match( pathTemplate );

http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayMessages.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayMessages.java b/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayMessages.java
index 82f4b57..be755ad 100644
--- a/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayMessages.java
+++ b/gateway-server/src/main/java/org/apache/hadoop/gateway/GatewayMessages.java
@@ -23,6 +23,7 @@ import org.apache.hadoop.gateway.i18n.messages.MessageLevel;
 import org.apache.hadoop.gateway.i18n.messages.Messages;
 import org.apache.hadoop.gateway.i18n.messages.StackTrace;
 import org.apache.hadoop.gateway.services.security.KeystoreServiceException;
+import org.apache.hadoop.gateway.util.urltemplate.Template;
 
 import java.io.File;
 import java.net.URI;
@@ -143,7 +144,10 @@ public interface GatewayMessages {
   @Message( level = MessageLevel.INFO, text = "Credential store found for the cluster: {0} - no need to create one." )
   void credentialStoreForClusterFoundNotCreating(String clusterName);
 
-  @Message( level = MessageLevel.DEBUG, text = "Dispatching request: {0} {1}" )
+  @Message( level = MessageLevel.INFO, text = "Received request: {0} {1}" )
+  void receivedRequest( String method, Template uri );
+
+  @Message( level = MessageLevel.INFO, text = "Dispatch request: {0} {1}" )
   void dispatchRequest( String method, URI uri );
   
   @Message( level = MessageLevel.WARN, text = "Connection exception dispatching request: {0} {1}" )
@@ -260,9 +264,12 @@ public interface GatewayMessages {
   @Message( level = MessageLevel.ERROR, text = "Failed Knox->Hadoop SPNegotiation authentication for URL: {0}" )
   void failedSPNegoAuthn(String uri);
 
-  @Message( level = MessageLevel.DEBUG, text = "Dispatch response status: {0}" )
+  @Message( level = MessageLevel.INFO, text = "Dispatch response status: {0}" )
   void dispatchResponseStatusCode(int statusCode);
 
+  @Message( level = MessageLevel.INFO, text = "Dispatch response status: {0}, Location: {1}" )
+  void dispatchResponseCreatedStatusCode( int statusCode, String location );
+
   @Message( level = MessageLevel.ERROR, text = "Failed to decrypt cipher text for cluster {0}: due to inability to retrieve the password." )
   void failedToDecryptCipherForClusterNullPassword(String clusterName);
 
@@ -280,4 +287,5 @@ public interface GatewayMessages {
 
   @Message( level = MessageLevel.ERROR, text = "Failed to generate alias for cluster: {0} {1}." )
   void failedToGenerateAliasForCluster(String clusterName, KeystoreServiceException e);
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-server/src/main/java/org/apache/hadoop/gateway/dispatch/HttpClientDispatch.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/hadoop/gateway/dispatch/HttpClientDispatch.java b/gateway-server/src/main/java/org/apache/hadoop/gateway/dispatch/HttpClientDispatch.java
index 1cd0a51..4ef336a 100644
--- a/gateway-server/src/main/java/org/apache/hadoop/gateway/dispatch/HttpClientDispatch.java
+++ b/gateway-server/src/main/java/org/apache/hadoop/gateway/dispatch/HttpClientDispatch.java
@@ -17,15 +17,6 @@
  */
 package org.apache.hadoop.gateway.dispatch;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.security.Principal;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.apache.hadoop.gateway.GatewayMessages;
 import org.apache.hadoop.gateway.GatewayResources;
 import org.apache.hadoop.gateway.config.GatewayConfig;
@@ -35,7 +26,6 @@ import org.apache.http.Header;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
-import org.apache.http.auth.Credentials;
 import org.apache.http.client.ClientProtocolException;
 import org.apache.http.client.methods.HttpDelete;
 import org.apache.http.client.methods.HttpGet;
@@ -49,6 +39,13 @@ import org.apache.http.entity.InputStreamEntity;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.message.BasicHeader;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+
 /**
  *
  */
@@ -98,7 +95,16 @@ public class HttpClientDispatch extends AbstractGatewayDispatch {
     } finally {
       if (inboundResponse != null) {
         int statusCode = inboundResponse.getStatusLine().getStatusCode();
-        LOG.dispatchResponseStatusCode( statusCode );
+        if( statusCode != 201 ) {
+          LOG.dispatchResponseStatusCode( statusCode );
+        } else {
+          Header location = inboundResponse.getFirstHeader( "Location" );
+          if( location == null ) {
+            LOG.dispatchResponseStatusCode( statusCode );
+          } else {
+            LOG.dispatchResponseCreatedStatusCode( statusCode, location.getValue() );
+          }
+        }
       }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-service-hbase/src/main/java/org/apache/hadoop/gateway/hbase/HBaseDeploymentContributor.java
----------------------------------------------------------------------
diff --git a/gateway-service-hbase/src/main/java/org/apache/hadoop/gateway/hbase/HBaseDeploymentContributor.java b/gateway-service-hbase/src/main/java/org/apache/hadoop/gateway/hbase/HBaseDeploymentContributor.java
index 4dc6a49..7cc9dc7 100644
--- a/gateway-service-hbase/src/main/java/org/apache/hadoop/gateway/hbase/HBaseDeploymentContributor.java
+++ b/gateway-service-hbase/src/main/java/org/apache/hadoop/gateway/hbase/HBaseDeploymentContributor.java
@@ -36,7 +36,7 @@ import java.util.List;
 public class HBaseDeploymentContributor extends ServiceDeploymentContributorBase {
 
   private static final String RULES_RESOURCE = HBaseDeploymentContributor.class.getName().replace( '.', '/' ) + "/rewrite.xml";
-  private static final String EXTERNAL_PATH = "/hbase/api/v1";
+  private static final String EXTERNAL_PATH = "/hbase";
   private static final String CLUSTER_URL_FUNCTION = "{gateway.url}";
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-service-hbase/src/main/resources/org/apache/hadoop/gateway/hbase/HBaseDeploymentContributor/rewrite.xml
----------------------------------------------------------------------
diff --git a/gateway-service-hbase/src/main/resources/org/apache/hadoop/gateway/hbase/HBaseDeploymentContributor/rewrite.xml b/gateway-service-hbase/src/main/resources/org/apache/hadoop/gateway/hbase/HBaseDeploymentContributor/rewrite.xml
index ef88bcb..1a1236f 100644
--- a/gateway-service-hbase/src/main/resources/org/apache/hadoop/gateway/hbase/HBaseDeploymentContributor/rewrite.xml
+++ b/gateway-service-hbase/src/main/resources/org/apache/hadoop/gateway/hbase/HBaseDeploymentContributor/rewrite.xml
@@ -16,19 +16,22 @@
 -->
 <rules>
 
-    <rule dir="IN" name="STARGATE/stargate/root/inbound" pattern="*://*:*/**/hbase/api/v1/?{**}">
+    <rule dir="IN" name="STARGATE/stargate/root/inbound" pattern="*://*:*/**/hbase/?{**}">
         <rewrite template="{$serviceUrl[STARGATE]}/?{**}"/>
     </rule>
-    <rule dir="IN" name="STARGATE/stargate/path/inbound" pattern="*://*:*/**/hbase/api/v1/{**}?{**}">
-        <rewrite template="{$serviceUrl[STARGATE]}/{**}?{**}"/>
+
+    <rule dir="IN" name="STARGATE/stargate/path/inbound" pattern="*://*:*/**/hbase/{path=**}?{**}">
+        <rewrite template="{$serviceUrl[STARGATE]}/{path=**}?{**}"/>
     </rule>
+
     <rule name="STARGATE/stargate/location/outbound">
         <match pattern="*://*:*/{path=**}?{**}"/>
-        <rewrite template="{gateway.url}/hbase/api/v1/{path}?{**}"/>
+        <rewrite template="{gateway.url}/hbase/{path=**}?{**}"/>
     </rule>
+
     <rule name="STARGATE/stargate/address/outbound">
         <match pattern="{host}:{port}"/>
-        <rewrite template="{gateway.url}/hbase/region?host={host}?port={port}"/>
+        <rewrite template="{gateway.url}/hbase-region?host={host}?port={port}"/>
         <encrypt-query/>
     </rule>
 

http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/HBase.java
----------------------------------------------------------------------
diff --git a/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/HBase.java b/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/HBase.java
index a86d055..09f3e7e 100644
--- a/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/HBase.java
+++ b/gateway-shell/src/main/java/org/apache/hadoop/gateway/shell/hbase/HBase.java
@@ -21,7 +21,7 @@ import org.apache.hadoop.gateway.shell.hbase.table.Table;
 
 public class HBase {
 
-  public static final String SERVICE_PATH = "/hbase/api/v1";
+  public static final String SERVICE_PATH = "/hbase";
 
   private Hadoop session;
 

http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-test/src/test/java/org/apache/hadoop/gateway/GatewayBasicFuncTest.java
----------------------------------------------------------------------
diff --git a/gateway-test/src/test/java/org/apache/hadoop/gateway/GatewayBasicFuncTest.java b/gateway-test/src/test/java/org/apache/hadoop/gateway/GatewayBasicFuncTest.java
index 77f70e2..32f1a30 100644
--- a/gateway-test/src/test/java/org/apache/hadoop/gateway/GatewayBasicFuncTest.java
+++ b/gateway-test/src/test/java/org/apache/hadoop/gateway/GatewayBasicFuncTest.java
@@ -122,7 +122,7 @@ public class GatewayBasicFuncTest {
     driver.setupService( "WEBHCAT", "http://" + TEST_HOST + ":50111/templeton", "/cluster/templeton", USE_MOCK_SERVICES );
     driver.setupService( "OOZIE", "http://" + TEST_HOST + ":11000/oozie", "/cluster/oozie/api", USE_MOCK_SERVICES );
     driver.setupService( "HIVE", "http://" + TEST_HOST + ":10000", "/cluster/hive/api/v1", USE_MOCK_SERVICES );
-    driver.setupService( "STARGATE", "http://" + TEST_HOST + ":60080", "/cluster/hbase/api/v1", USE_MOCK_SERVICES );
+    driver.setupService( "STARGATE", "http://" + TEST_HOST + ":60080", "/cluster/hbase", USE_MOCK_SERVICES );
     driver.setupService( "NAMENODE", "hdfs://" + TEST_HOST + ":8020", null, USE_MOCK_SERVICES );
     driver.setupService( "JOBTRACKER", "thrift://" + TEST_HOST + ":8021", null, USE_MOCK_SERVICES );
     driver.setupGateway( config, "cluster", createTopology(), USE_GATEWAY );

http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-util-urltemplate/src/main/java/org/apache/hadoop/gateway/util/urltemplate/Segment.java
----------------------------------------------------------------------
diff --git a/gateway-util-urltemplate/src/main/java/org/apache/hadoop/gateway/util/urltemplate/Segment.java b/gateway-util-urltemplate/src/main/java/org/apache/hadoop/gateway/util/urltemplate/Segment.java
index 8f5412b..462011f 100644
--- a/gateway-util-urltemplate/src/main/java/org/apache/hadoop/gateway/util/urltemplate/Segment.java
+++ b/gateway-util-urltemplate/src/main/java/org/apache/hadoop/gateway/util/urltemplate/Segment.java
@@ -158,15 +158,18 @@ abstract class Segment {
       if( matches ) {
         switch( this.getType() ) {
           case( STATIC ):
-            matches = matchThisStatic( that );
+            matches = this.pattern.equals( that.pattern );
+            //matches = matchThisStatic( that ); // See: MatcherTest.testWildcardCharacterInInputTemplate
             break;
           case( DEFAULT ):
           case( STAR ):
           case( GLOB ):
-            matches = matchThisWildcard( that );
+            matches = true;
+            //matches = matchThisWildcard( that ); // See: MatcherTest.testWildcardCharacterInInputTemplate
             break;
           case( REGEX ):
-            matches = matchThisRegex( that );
+            matches = this.regex.matcher( that.pattern ).matches();
+            //matches = matchThisRegex( that ); // See: MatcherTest.testWildcardCharacterInInputTemplate
             break;
           default:
             matches = false;
@@ -175,59 +178,62 @@ abstract class Segment {
       return matches;
     }
 
-    private boolean matchThisStatic( Value that ) {
-      boolean matches = false;
-      switch( that.getType() ) {
-        case( STATIC ):
-          matches = this.pattern.equals( that.pattern );
-          break;
-        case( DEFAULT ):
-        case( STAR ):
-        case( GLOB ):
-          matches = true;
-          break;
-        case( REGEX ):
-          matches = that.regex.matcher( this.pattern ).matches();
-          break;
-      }
-      return matches;
-    }
-
-    private boolean matchThisWildcard( Value that ) {
-      boolean matches = false;
-      switch( that.getType() ) {
-        case( STATIC ):
-          matches = true;
-          break;
-        case( DEFAULT ):
-        case( STAR ):
-        case( GLOB ):
-          matches = true;
-          break;
-        case( REGEX ):
-          matches = true;
-          break;
-      }
-      return matches;
-    }
-
-    private boolean matchThisRegex( Value that ) {
-      boolean matches = false;
-      switch( that.getType() ) {
-        case( STATIC ):
-          matches = this.regex.matcher( that.pattern ).matches();
-          break;
-        case( DEFAULT ):
-        case( STAR ):
-        case( GLOB ):
-          matches = true;
-          break;
-        case( REGEX ):
-          matches =  this.pattern.equals( that.pattern );
-          break;
-      }
-      return matches;
-    }
+// See: MatcherTest.testWildcardCharacterInInputTemplate
+//    private boolean matchThisStatic( Value that ) {
+//      boolean matches = false;
+//      switch( that.getType() ) {
+//        case( STATIC ):
+//          matches = this.pattern.equals( that.pattern );
+//          break;
+//        case( DEFAULT ):
+//        case( STAR ):
+//        case( GLOB ):
+//          matches = true;
+//          break;
+//        case( REGEX ):
+//          matches = that.regex.matcher( this.pattern ).matches();
+//          break;
+//      }
+//      return matches;
+//    }
+
+// See: MatcherTest.testWildcardCharacterInInputTemplate
+//    private boolean matchThisWildcard( Value that ) {
+//      boolean matches = false;
+//      switch( that.getType() ) {
+//        case( STATIC ):
+//          matches = true;
+//          break;
+//        case( DEFAULT ):
+//        case( STAR ):
+//        case( GLOB ):
+//          matches = true;
+//          break;
+//        case( REGEX ):
+//          matches = true;
+//          break;
+//      }
+//      return matches;
+//    }
+
+// See: MatcherTest.testWildcardCharacterInInputTemplate
+//    private boolean matchThisRegex( Value that ) {
+//      boolean matches = false;
+//      switch( that.getType() ) {
+//        case( STATIC ):
+//          matches = this.regex.matcher( that.pattern ).matches();
+//          break;
+//        case( DEFAULT ):
+//        case( STAR ):
+//        case( GLOB ):
+//          matches = true;
+//          break;
+//        case( REGEX ):
+//          matches =  this.pattern.equals( that.pattern );
+//          break;
+//      }
+//      return matches;
+//    }
 
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-util-urltemplate/src/test/java/org/apache/hadoop/gateway/util/urltemplate/MatcherTest.java
----------------------------------------------------------------------
diff --git a/gateway-util-urltemplate/src/test/java/org/apache/hadoop/gateway/util/urltemplate/MatcherTest.java b/gateway-util-urltemplate/src/test/java/org/apache/hadoop/gateway/util/urltemplate/MatcherTest.java
index 1a600a3..03dcb19 100644
--- a/gateway-util-urltemplate/src/test/java/org/apache/hadoop/gateway/util/urltemplate/MatcherTest.java
+++ b/gateway-util-urltemplate/src/test/java/org/apache/hadoop/gateway/util/urltemplate/MatcherTest.java
@@ -53,6 +53,39 @@ public class MatcherTest {
   }
 
   @Test
+  public void testWildcardCharacterInInputTemplate() throws URISyntaxException {
+    Matcher<String> matcher;
+    Template patternTemplate, inputTemplate;
+    Matcher<String>.Match match;
+
+    // First verify that if .../test_table/test_row/family1... works.
+    matcher = new Matcher<String>();
+    inputTemplate = Parser.parse( "https://localhost:8443/gateway/sandbox/hbase/test_table/test_row/family1:row2_col1,family2/0,9223372036854775807?v=1" );
+    patternTemplate = Parser.parse( "*://*:*/**/webhdfs/{version}/{path=**}?{**}" );
+    matcher.add( patternTemplate, "webhdfs" );
+    match = matcher.match( inputTemplate );
+    assertThat( match, nullValue() );
+
+    // Then reproduce the issue with .../test_table/*/family1..
+    matcher = new Matcher<String>();
+    inputTemplate = Parser.parse( "https://localhost:8443/gateway/sandbox/hbase/test_table/*/family1:row2_col1,family2/0,9223372036854775807?v=1" );
+    patternTemplate = Parser.parse( "*://*:*/**/webhdfs/{version}/{path=**}?{**}" );
+    matcher.add( patternTemplate, "webhdfs" );
+    match = matcher.match( inputTemplate );
+    assertThat( match, nullValue() );
+
+    // Reproduce the issue where the wrong match was picked when there was a "*" in the input URL template.
+    matcher = new Matcher<String>();
+    inputTemplate = Parser.parse( "https://localhost:8443/gateway/sandbox/hbase/test_table/*/family1:row2_col1,family2/0,9223372036854775807?v=1" );
+    patternTemplate = Parser.parse( "*://*:*/**/webhdfs/{version}/{path=**}?{**}" );
+    matcher.add( patternTemplate, "webhdfs" );
+    patternTemplate = Parser.parse( "*://*:*/**/hbase/{path=**}?{**}" );
+    matcher.add( patternTemplate, "hbase" );
+    match = matcher.match( inputTemplate );
+    assertThat( match.getValue(), is( "hbase" ) );
+  }
+
+  @Test
   public void testRootPathMatching() throws Exception {
     Matcher<String> matcher;
     Template patternTemplate, inputTemplate;

http://git-wip-us.apache.org/repos/asf/incubator-knox/blob/e7e518e2/gateway-util-urltemplate/src/test/java/org/apache/hadoop/gateway/util/urltemplate/SegmentTest.java
----------------------------------------------------------------------
diff --git a/gateway-util-urltemplate/src/test/java/org/apache/hadoop/gateway/util/urltemplate/SegmentTest.java b/gateway-util-urltemplate/src/test/java/org/apache/hadoop/gateway/util/urltemplate/SegmentTest.java
index 4f14197..a563181 100644
--- a/gateway-util-urltemplate/src/test/java/org/apache/hadoop/gateway/util/urltemplate/SegmentTest.java
+++ b/gateway-util-urltemplate/src/test/java/org/apache/hadoop/gateway/util/urltemplate/SegmentTest.java
@@ -59,24 +59,24 @@ public class SegmentTest {
 
     TestSegment s3 = new TestSegment( "p", "*" );
     assertThat( s3.matches( s1 ), equalTo( true ) );
-    assertThat( s1.matches( s3 ), equalTo( true ) );
+    assertThat( s1.matches( s3 ), equalTo( false ) ); // Because wildecards no longer supported in "that" segment.
 
     TestSegment s4 = new TestSegment( "p", "**" );
     assertThat( s4.matches( s1 ), equalTo( true ) );
-    assertThat( s1.matches( s4 ), equalTo( true ) );
+    assertThat( s1.matches( s4 ), equalTo( false ) ); // Because wildecards no longer supported in "that" segment.
 
     TestSegment s5 = new TestSegment( "p", "*.ext" );
     TestSegment s6 = new TestSegment( "p", "file.ext" );
     assertThat( s5.matches( s5 ), equalTo( true ) );
     assertThat( s5.matches( s6 ), equalTo( true ) );
-    assertThat( s6.matches( s5 ), equalTo( true ) );
+    assertThat( s6.matches( s5 ), equalTo( false ) ); // Because wildecards no longer supported in "that" segment.
 
     assertThat( s3.matches( s4 ), equalTo( true ) );
     assertThat( s4.matches( s3 ), equalTo( true ) );
     assertThat( s3.matches( s5 ), equalTo( true ) );
-    assertThat( s5.matches( s3 ), equalTo( true ) );
+    assertThat( s5.matches( s3 ), equalTo( false ) ); // Because wildecards no longer supported in "that" segment.
     assertThat( s4.matches( s5 ), equalTo( true ) );
-    assertThat( s5.matches( s4 ), equalTo( true ) );
+    assertThat( s5.matches( s4 ), equalTo( false ) ); // Because wildecards no longer supported in "that" segment.
 
 //    InvalidSegment s7 = new InvalidSegment( "p", "v", Integer.MAX_VALUE );
 //    InvalidSegment s8 = new InvalidSegment( "p", "v", Integer.MAX_VALUE-1 );