[Mulgara-svn] r479 - branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver

andrae at mulgara.org andrae at mulgara.org
Fri Oct 12 10:49:03 UTC 2007


Author: andrae
Date: 2007-10-12 05:49:02 -0500 (Fri, 12 Oct 2007)
New Revision: 479

Modified:
   branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/BasicDatabaseSessionUnitTest.java
   branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/BootstrapOperation.java
   branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/Database.java
   branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/DatabaseMetadataImpl.java
   branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/DatabaseOperationContext.java
   branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/XADatabaseSessionUnitTest.java
Log:
Passes all the basic tests - having trouble with the system-model.



Modified: branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/BasicDatabaseSessionUnitTest.java
===================================================================
--- branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/BasicDatabaseSessionUnitTest.java	2007-10-11 20:33:18 UTC (rev 478)
+++ branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/BasicDatabaseSessionUnitTest.java	2007-10-12 10:49:02 UTC (rev 479)
@@ -229,8 +229,8 @@
         URI systemModel = ((URIReferenceImpl)answer.getObject(0)).getURI();
         assertEquals("rdfdb", systemModel.getScheme());
         // Note: The Authority is a UUID and therefore non-deterministic
-        assertEquals("/_database", systemModel.getPath());
-        assertEquals("", systemModel.getFragment());
+        assertEquals("/", systemModel.getPath());
+        assertEquals(null, systemModel.getFragment());
         assertFalse(answer.next());
 
         // Compose the expected result of the query

Modified: branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/BootstrapOperation.java
===================================================================
--- branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/BootstrapOperation.java	2007-10-11 20:33:18 UTC (rev 478)
+++ branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/BootstrapOperation.java	2007-10-12 10:49:02 UTC (rev 479)
@@ -97,8 +97,8 @@
         new URIReferenceImpl(databaseMetadata.getBootstrapModelURI()));
     long rdfType = systemResolver.localizePersistent(
         new URIReferenceImpl(databaseMetadata.getRdfTypeURI()));
-    long serverURIType = systemResolver.localizePersistent(
-        new URIReferenceImpl(databaseMetadata.getServerURIType()));
+//    long serverURIType = systemResolver.localizePersistent(
+//        new URIReferenceImpl(databaseMetadata.getServerURIType()));
 
 //    URI serverURI = retrieveOrCreateServerURI(systemResolver, bootstrapModel, rdfType, serverURIType, metadata);
 //    databaseMetadata.setServerURI(serverURI); // Also sets the system-model-uri (appends a #)
@@ -133,10 +133,10 @@
     systemResolver.modifyModel(preModel,
         new SingletonStatements(preSubject, prePredicate, rdfType),
         true);
+//    systemResolver.modifyModel(preModel,
+//        new SingletonStatements(preSubject, prePredicate, serverURIType),
+//        true);
     systemResolver.modifyModel(preModel,
-        new SingletonStatements(preSubject, prePredicate, serverURIType),
-        true);
-    systemResolver.modifyModel(preModel,
         new SingletonStatements(preSubject, prePredicate, systemModel),
         true);
     systemResolver.modifyModel(preModel,

Modified: branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/Database.java
===================================================================
--- branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/Database.java	2007-10-11 20:33:18 UTC (rev 478)
+++ branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/Database.java	2007-10-12 10:49:02 UTC (rev 479)
@@ -902,7 +902,7 @@
 //    if (currentHost != null) {
 //      hostNames.add(currentHost.toLowerCase());
 //    }
-    return Collections.unmodifiableSet(hostNames);
+    return hostNames;
   }
 
 

Modified: branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/DatabaseMetadataImpl.java
===================================================================
--- branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/DatabaseMetadataImpl.java	2007-10-11 20:33:18 UTC (rev 478)
+++ branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/DatabaseMetadataImpl.java	2007-10-12 10:49:02 UTC (rev 479)
@@ -106,14 +106,12 @@
   DatabaseMetadataImpl(URI uri, Set hostnameAliases, URI securityDomainURI)
   {
     logger.debug("Instantiating with uri=" + uri + " hostnameAliases=" + hostnameAliases +
-        " securityDomainURI=" + securityDomainURI + " systemModelTypeURI=" + systemModelTypeURI);
+        " securityDomainURI=" + securityDomainURI);
     // Validate parameters.
     if (uri == null) {
       throw new IllegalArgumentException("uri null");
     } else if (hostnameAliases == null) {
       throw new IllegalArgumentException("hostnameAliases null");
-    } else if (systemModelTypeURI == null) {
-      throw new IllegalArgumentException("systemModelTypeURI null");
     }
 
     this.uri = uri;
@@ -123,13 +121,16 @@
     // Set server name from the path part of the server URI.
     String[] names = extractNameAndOrgId(uri);
     this.serverName = names[0];
+    logger.debug("Setting servername: " + names[0]);
     this.orgId = names[1];
+    logger.debug("Setting orgId: " + names[1]);
     try {
       serverURI = new URI("rdfdb", this.serverName + "~" + this.orgId, null, null, null);
     } catch (URISyntaxException eu) {
       throw new IllegalArgumentException("Unable to obtain serverURI from databaseURI: " + uri, eu);
     }
     systemModelURI = serverURI.resolve("/");
+    logger.debug("systemModelURI = " + systemModelURI);
   }
 
 
@@ -178,31 +179,55 @@
     final String DEFAULT_SERVER_NAME = "no_server_name";
     final String DEFAULT_ORG_ID = "no.organisation.id";
 
-    if (serverURI.getPath() != null && !serverURI.getPath().equals("")) {
+    final String scheme = serverURI.getScheme();
+    final String auth = serverURI.getAuthority();
+    final String path = serverURI.getPath();
+
+    if (scheme.equals("local")) {
+      logger.debug("local serverURI scheme: " + serverURI);
+      if (auth != null && !auth.equals("") && path != null && !path.equals("")) {
+        return new String[] { path.replaceAll("/", ""), auth.replaceAll("/", "") };
+      } else if (auth != null && !auth.equals("")) {
+        return new String[] { auth.replaceAll("/", ""), "" };
+      } else if (path != null && !path.equals("")) {
+        return new String[] { path.replaceAll("/", ""), "" };
+      } else {
+        return new String[] { DEFAULT_SERVER_NAME, "" };
+      }
+    }
+
+    if (scheme.equals("rdfdb")) {
+      logger.debug("rdfdb serverURI scheme: " + serverURI);
+      String[] result = auth.split("~");
+      if (result.length != 2) {
+        throw new IllegalArgumentException("Invalid rdfdb serverURI: " + serverURI);
+      }
+      return result;
+    }
+
+    if (path != null && !path.equals("")) {
       logger.debug("serverURI.path not null/empty: " + serverURI.getPath());
-      return new String[] {
-          serverURI.getPath().replaceAll("/", ""),
-          invertAuthority(serverURI.getAuthority())
-      };
-    } else if (serverURI.getScheme().equals("local")) {
-      logger.debug("serverURI.scheme not null/empty: " + serverURI.getScheme());
-      if (serverURI.getAuthority() != null && !serverURI.getAuthority().equals("")) {
-        logger.debug("serverURI.authority not null/empty: " + serverURI.getAuthority());
+      if (auth == null || auth.equals("")) {
         return new String[] {
-          serverURI.getAuthority(),
-          DEFAULT_ORG_ID
+            path.replaceAll("/", ""),
+            invertAuthority(auth)
         };
+      } else {
+        return new String[] {
+            path.replaceAll("/", ""),
+            DEFAULT_ORG_ID
+        };
       }
-      if (serverURI.getSchemeSpecificPart() != null && !serverURI.getSchemeSpecificPart().equals("")) {
-        logger.debug("serverURI.ssp not null/empty: " + serverURI.getSchemeSpecificPart());
+    } else {
+      if (auth != null && !auth.equals("")) {
         return new String[] {
-          serverURI.getSchemeSpecificPart(),
-          DEFAULT_ORG_ID
+            DEFAULT_SERVER_NAME,
+            auth
         };
+      } else {
+        throw new IllegalArgumentException("Invalid traditional serverURI: " + serverURI);
       }
     }
-
-    return new String[] { DEFAULT_SERVER_NAME, DEFAULT_ORG_ID };
   }
 
   /**

Modified: branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/DatabaseOperationContext.java
===================================================================
--- branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/DatabaseOperationContext.java	2007-10-11 20:33:18 UTC (rev 478)
+++ branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/DatabaseOperationContext.java	2007-10-12 10:49:02 UTC (rev 479)
@@ -838,13 +838,7 @@
     }
 
     if ("local".equals(modelURL.getScheme())) {
-      if ((modelURL.getAuthority() != null && metadata.getOrganisationId().equals(modelURL.getAuthority())) ||
-          (modelURL.getPath() != null && ("/" + metadata.getServerName()).equals(modelURL.getPath()))) {
-        return true;
-      } else {
-        throw new QueryException("local scheme URL: " + modelURL +
-            " doesn't match server-name: " + metadata.getServerName());
-      }
+      return checkLocalURL(modelURL);
     }
 
     if (modelURL.getScheme() != null && modelURL.getScheme().equals("rdfdb")) {
@@ -879,4 +873,40 @@
 
     return false;
   }
+
+  /**
+   * Returns true if valid local url, otherwise throws an appropriately
+   * informative QueryException.
+   */
+  boolean checkLocalURL(URI url) throws QueryException {
+    String auth = url.getAuthority();
+    auth = auth != null ? auth.replaceAll("/", "") : null;
+    String path = url.getPath();
+    path = path != null ? path.replaceAll("/", "") : null;
+    String orgid = metadata.getOrganisationId();
+    String sname = metadata.getServerName();
+    logger.debug("auth = " + auth + "; path = " + path + "; orgid = " + orgid + "; sname = " + sname);
+
+    if ((auth == null || auth.equals("")) && (path == null || path.equals(""))) {
+      throw new QueryException("local scheme url( " + url + ") without authority or path");
+    } else if (path == null || path.equals("")) {
+      if (auth.equals(sname)) {
+        return true; // local://serverName#model
+      } else {
+        throw new QueryException("local scheme url( " + url + ") with no path and authority != " + sname);
+      }
+    } else if (auth == null || auth.equals("")) {
+      if (path.equals(sname)) {
+        return true; // local:///serverName#model
+      } else {
+        throw new QueryException("local scheme url( " + url + ") with no authority and path != " + sname);
+      }
+    } else {
+      if (auth.equals(orgid) && path.equals(sname)) {
+        return true; // local://org.id/serverName#model
+      } else {
+        throw new QueryException("local scheme url( " + url + ") with auth != " + orgid + " and path != " + sname);
+      }
+    }
+  }
 }

Modified: branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/XADatabaseSessionUnitTest.java
===================================================================
--- branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/XADatabaseSessionUnitTest.java	2007-10-11 20:33:18 UTC (rev 478)
+++ branches/mgr-58/src/jar/resolver/java/org/mulgara/resolver/XADatabaseSessionUnitTest.java	2007-10-12 10:49:02 UTC (rev 479)
@@ -211,14 +211,14 @@
                  new String[] { "org.mulgara.resolver.store.StatementStoreResolverFactory" },
                  "(query V0 (| V0 V4 V2))",
                  "M11",
-                 "(result _node87 _node88)",
+                 "(result _node85 _node86)",
                  "testSubjectVarObjModelPrimitive"),
 
     parser.parse("testModel",
                  new String[] { "org.mulgara.resolver.store.StatementStoreResolverFactory" },
                  "(query V0 (| V0 V4 V7))",
                  "M11",
-                 "(result _node87)",
+                 "(result _node85)",
                  "testSubjectLitObjModelPrimitive"),
 
     parser.parse("testModel",




More information about the Mulgara-svn mailing list