diff --git a/cadc-access-control/build.gradle b/cadc-access-control/build.gradle index ede8363c28484fb52497ac550722e94f078c9e86..ee3e1a0c1bee6c67a385fac84e4bb09af5abe170 100644 --- a/cadc-access-control/build.gradle +++ b/cadc-access-control/build.gradle @@ -15,7 +15,7 @@ sourceCompatibility = 1.7 group = 'org.opencadc' -version = '1.1.2' +version = '1.1.3' mainClassName = 'ca.nrc.cadc.ac.client.Main' diff --git a/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java b/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java index 16265fbfbd6bca861a4710138a0413c20df8d914..68a87acd53e6edc2c59ddfaced6b0813dae0b324 100644 --- a/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java +++ b/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java @@ -83,7 +83,6 @@ public class GroupURI private static Logger log = Logger.getLogger(GroupURI.class); private URI uri; - private String name; /** * Attempts to create a URI using the specified uri. @@ -99,8 +98,6 @@ public class GroupURI throw new IllegalArgumentException("Null URI"); } - this.uri = uri; - // Ensure the scheme is correct if (uri.getScheme() == null) { @@ -117,13 +114,9 @@ public class GroupURI throw new IllegalArgumentException("Missing authority and/or path."); } - log.debug("URI: " + uri); - log.debug(" scheme: " + uri.getScheme()); - log.debug(" authority: " + uri.getAuthority()); - log.debug(" path: " + uri.getPath()); - String fragment = uri.getFragment(); String query = uri.getQuery(); + String name = null; if (query == null) { if (fragment != null) @@ -144,6 +137,9 @@ public class GroupURI } name = query; } + + this.uri = URI.create( + uri.getScheme() + "://" + uri.getAuthority() + uri.getPath() + "?" + name); } /** @@ -156,16 +152,16 @@ public class GroupURI } @Override - public boolean equals(Object rhs) + public boolean equals(Object other) { - if (rhs == null) + if (other == null) return false; - if (this == rhs) + if (this == other) return true; - if (rhs instanceof GroupURI) + if (other instanceof GroupURI) { - GroupURI vu = (GroupURI) rhs; - return uri.toString().equals(vu.uri.toString()); + GroupURI otherURI = (GroupURI) other; + return uri.equals(otherURI.getURI()); } return false; } @@ -180,16 +176,6 @@ public class GroupURI return uri; } - /** - * Returns the decoded authority component of the URI. - * - * @return authority of the URI, or null if the authority is undefined. - */ - public String getAuthority() - { - return uri.getAuthority(); - } - /** * Returns the decoded fragment component of the URI. * @@ -197,18 +183,18 @@ public class GroupURI */ public String getName() { - return name; + return uri.getQuery(); } public URI getServiceID() { - String serviceID = uri.getScheme() + + String serviceIDString = uri.getScheme() + "://" + uri.getAuthority() + uri.getPath(); try { - return new URI(serviceID); + return new URI(serviceIDString); } catch (URISyntaxException e) { @@ -220,7 +206,7 @@ public class GroupURI @Override public String toString() { - return getServiceID() + "?" + name; + return uri.toString(); } } diff --git a/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java b/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java index 423f7df9f070bf2d8771c67a31bdb40e3adf28f0..db202c749558b9fa17c202d7d667894105840280 100644 --- a/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java +++ b/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java @@ -18,6 +18,18 @@ public class GroupURITest Log4jInit.setLevel("ca.nrc.cadc.ac", Level.DEBUG); } + @Test + public void testEquals() + { + GroupURI uri1 = new GroupURI("ivo://example.org/gms?name"); + GroupURI uri2 = new GroupURI("ivo://example.org/gms?name"); + Assert.assertTrue(uri1.equals(uri2)); + + uri1 = new GroupURI("ivo://example.org/gms?name"); + uri2 = new GroupURI("ivo://example.org/gms#name"); + Assert.assertTrue(uri1.equals(uri2)); + } + @Test public void testMalformed() { @@ -46,7 +58,6 @@ public class GroupURITest { GroupURI g = new GroupURI("ivo://my.authority/gms?name"); Assert.assertEquals("ivo", g.getURI().getScheme()); - Assert.assertEquals("my.authority", g.getAuthority()); Assert.assertEquals("/gms", g.getURI().getPath()); Assert.assertEquals("name", g.getName()); Assert.assertEquals("ivo://my.authority/gms", g.getServiceID().toString()); @@ -65,7 +76,6 @@ public class GroupURITest { GroupURI g = new GroupURI("ivo://my.authority/gms#name"); Assert.assertEquals("ivo", g.getURI().getScheme()); - Assert.assertEquals("my.authority", g.getAuthority()); Assert.assertEquals("/gms", g.getURI().getPath()); Assert.assertEquals("name", g.getName()); Assert.assertEquals("ivo://my.authority/gms", g.getServiceID().toString());