Automatically change : to :// in domain node config uri to make it easier to type

git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@808939 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
antelder 2009-08-28 16:12:44 +00:00
parent ee2e094cf6
commit 5477f3d8a1
2 changed files with 37 additions and 1 deletions

View file

@ -115,7 +115,7 @@ public class DomainNode {
}
protected void parseConfigURI(String configURI) {
URI uri = URI.create(configURI);
URI uri = URI.create(fixScheme(configURI));
String dn = uri.getHost();
if (dn == null || dn.length() < 1) {
dn = DEFAULT_DOMAIN_NAME;
@ -136,4 +136,19 @@ public class DomainNode {
}
}
}
/**
* I keep typing the scheme part with just a colon instead of colon slash slash
* which URI doesn't parse properly which irritates me so fix it up here
*/
private String fixScheme(String uri) {
int i = uri.indexOf(":");
if (i > -1 && uri.charAt(i+1) != '/') {
uri = uri.replaceFirst(":", ":/");
}
if (i > -1 && uri.charAt(i+2) != '/') {
uri = uri.replaceFirst(":/", "://");
}
return uri;
}
}

View file

@ -39,4 +39,25 @@ public class ConfigTestCase{
assertEquals("y", domain.getConfigAttributes().getAttributes().get("p2"));
}
@Test
public void testConfig1() throws Exception {
DomainNode domain = new DomainNode("foo:someDomain:1234?p1=x&p2=y");
assertEquals(4, domain.getConfigAttributes().getAttributes().size());
assertEquals("someDomain", domain.getDomainName());
assertEquals("foo", domain.getConfigAttributes().getAttributes().get("domainScheme"));
assertEquals("someDomain", domain.getConfigAttributes().getAttributes().get("domainName"));
assertEquals("x", domain.getConfigAttributes().getAttributes().get("p1"));
assertEquals("y", domain.getConfigAttributes().getAttributes().get("p2"));
}
@Test
public void testConfig2() throws Exception {
DomainNode domain = new DomainNode("foo:/someDomain:1234?p1=x&p2=y");
assertEquals(4, domain.getConfigAttributes().getAttributes().size());
assertEquals("someDomain", domain.getDomainName());
assertEquals("foo", domain.getConfigAttributes().getAttributes().get("domainScheme"));
assertEquals("someDomain", domain.getConfigAttributes().getAttributes().get("domainName"));
assertEquals("x", domain.getConfigAttributes().getAttributes().get("p1"));
assertEquals("y", domain.getConfigAttributes().getAttributes().get("p2"));
}
}