This list is closed, nobody may subscribe to it.
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(139) |
Aug
(94) |
Sep
(232) |
Oct
(143) |
Nov
(138) |
Dec
(55) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(127) |
Feb
(90) |
Mar
(101) |
Apr
(74) |
May
(148) |
Jun
(241) |
Jul
(169) |
Aug
(121) |
Sep
(157) |
Oct
(199) |
Nov
(281) |
Dec
(75) |
2012 |
Jan
(107) |
Feb
(122) |
Mar
(184) |
Apr
(73) |
May
(14) |
Jun
(49) |
Jul
(26) |
Aug
(103) |
Sep
(133) |
Oct
(61) |
Nov
(51) |
Dec
(55) |
2013 |
Jan
(59) |
Feb
(72) |
Mar
(99) |
Apr
(62) |
May
(92) |
Jun
(19) |
Jul
(31) |
Aug
(138) |
Sep
(47) |
Oct
(83) |
Nov
(95) |
Dec
(111) |
2014 |
Jan
(125) |
Feb
(60) |
Mar
(119) |
Apr
(136) |
May
(270) |
Jun
(83) |
Jul
(88) |
Aug
(30) |
Sep
(47) |
Oct
(27) |
Nov
(23) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
(4) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <mar...@us...> - 2013-09-12 17:08:07
|
Revision: 7401 http://bigdata.svn.sourceforge.net/bigdata/?rev=7401&view=rev Author: martyncutcher Date: 2013-09-12 17:07:59 +0000 (Thu, 12 Sep 2013) Log Message: ----------- Amend HALogNexus to add an accessor increment pattern to guard against file removal - initially used by DumpLogDigest. And amend DumpLogDigest to access all joined services to determine the union of the range of halogs to test. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/ha/halog/HALogWriter.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/DumpLogDigests.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HALogNexus.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/ha/halog/HALogWriter.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/ha/halog/HALogWriter.java 2013-09-12 17:03:57 UTC (rev 7400) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/ha/halog/HALogWriter.java 2013-09-12 17:07:59 UTC (rev 7401) @@ -563,7 +563,7 @@ /** * Close the file (does not flush). - */ + */ private void close() throws IOException { // Note: caller owns m_stateLock! try { if (m_state != null) { @@ -611,7 +611,7 @@ * * @see <a href="https://sourceforge.net/apps/trac/bigdata/ticket/695"> * HAJournalServer reports "follower" but is in SeekConsensus and is - * not participating in commits\xA7</a> + * not participating in commits</a> */ private void remove() throws IOException { @@ -817,8 +817,8 @@ // One less reader/writer. --m_accessors; if (m_accessors == 0) { - if (haLog.isDebugEnabled()) - haLog.debug("Closing file"); + if (haLog.isInfoEnabled()) + haLog.info("Closing file", new StackInfoReport()); /* * Note: Close the RandomAccessFile rather than the * FileChannel. Potential fix for leaking open file @@ -938,7 +938,7 @@ // Note: Must be synchronized for visibility and atomicity! synchronized (m_state) { - m_state.m_accessors++; + m_state.m_accessors++; } @@ -1051,7 +1051,7 @@ */ synchronized(m_state) { - if(m_state.m_accessors == 0) { + if (m_state.m_accessors == 0) { /** * TODO This is a bit of a hack. The problem is that @@ -1070,9 +1070,9 @@ } - m_state.close(); + m_state.close(); + } } - } } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/DumpLogDigests.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/DumpLogDigests.java 2013-09-12 17:03:57 UTC (rev 7400) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/DumpLogDigests.java 2013-09-12 17:07:59 UTC (rev 7401) @@ -118,99 +118,146 @@ return dump(serviceRoot, DEFAULT_BATCH, DEFAULT_SERVICE_THREADS); } - public Iterator<ServiceLogs> dump(final String serviceRoot, final int batchSize, final int serviceThreads) throws IOException, ExecutionException { - try { - // wait for zk services to register! - Thread.sleep(1000); - - List<HAGlue> services = services(serviceRoot); - - if (services.isEmpty()) - throw new IllegalArgumentException("No services found for " + serviceRoot); - - // Start by grabbing a nominal service to pin the logs - final HAGlue pinner = services.get(0); - - final LogDigestParams params = pinner.submit(new PinLogs(), false).get(); - - if (log.isInfoEnabled()) - log.info("Pinning startCC: " + params.startCC + ", endCC: " + params.endCC + ", last snapshot: " + params.snapshotCC); - - /** - * Now access serviceIDs so that we can use discovery to gain HAGlue interface. - * - * Submit all requests for concurrent processing, then add results - */ - List<Future<List<HALogInfo>>> results = new ArrayList<Future<List<HALogInfo>>>(); - long batchStart = params.startCC; - long batchEnd = batchStart + batchSize - 1; - int tasks = 0; - while (true) { - if (batchEnd > params.endCC) - batchEnd = params.endCC; - - if (log.isInfoEnabled()) - log.info("Running batch start: " + batchStart + ", end: " + batchEnd + " across " + services); - - for (final HAGlue glue : services) { - - results.add(glue.submit(new GetLogInfo(batchStart, batchEnd, serviceThreads), false)); - - tasks++; - } - - if (batchEnd == params.endCC) - break; - - batchStart += batchSize; - batchEnd += batchSize; - } - - final ArrayList<ServiceLogWait> logs = new ArrayList<ServiceLogWait>(); - for (int t = 0; t < tasks; t++) { - final int s = t % services.size(); - logs.add(new ServiceLogWait(services.get(s).getServiceUUID().toString(), results.get(t), s, services.size())); - } - - // now submit task to release the pinning transaction and wait for it to complete - pinner.submit(new UnpinLogs(params.tx), false).get(); - - // return an Iterator blocking on the Future value of the next source item before - // creating a return value - return new Iterator<ServiceLogs>() { - final Iterator<ServiceLogWait> src = logs.iterator(); - - @Override - public boolean hasNext() { - return src.hasNext(); - } + public Iterator<ServiceLogs> dump(final String serviceRoot, + final int batchSize, final int serviceThreads) throws IOException, + ExecutionException { + try { + // wait for zk services to register should no longer be necessary + // Thread.sleep(1000); - @Override - public ServiceLogs next() { - final ServiceLogWait data = src.next(); + // retrieve a list of joined services + List<HAGlue> services = services(serviceRoot); + + if (services.isEmpty()) + throw new IllegalArgumentException("No services found for " + + serviceRoot); + + // Retrieve a LogDigestParmas for each service with a PinLogs task + // Retrieve in sequential order and use a try finally pattern to + // invoke UnpinLogs for everything that was pinned. + // + // Note that the new accessor pattern is used to increment the + // access count in GetLogInfo so this ensures that while concurrent + // digest tasks are running the logs will not be removed. + final ArrayList<HAGlue> pinners = new ArrayList<HAGlue>(); + try { + + long startCC = -1; + long endCC = -1; + + for (HAGlue pinner : services) { + final LogDigestParams params = pinner.submit(new PinLogs(), + false).get(); + + if (log.isInfoEnabled()) + log.info("Pinning startCC: " + params.startCC + ", endCC: " + + params.endCC + ", last snapshot: " + + params.snapshotCC); - try { - // This will block on the future.get() - return new ServiceLogs(data.service, data.waitlogInfos.get(), data.item, data.batch); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } catch (ExecutionException e) { - throw new RuntimeException(e); + if (params.startCC != -1) { // there are logs available + if (startCC == -1 || startCC > params.startCC){ + startCC = params.startCC; + } + if (endCC < params.endCC){ + endCC = params.endCC; + } } + + // only added if PinLogs is successful + pinners.add(pinner); // add as pinner to be unpinned later } + + /** + * Now access serviceIDs so that we can use discovery to gain + * HAGlue interface. + * + * Submit all requests for concurrent processing, then add + * results + */ + List<Future<List<HALogInfo>>> results = new ArrayList<Future<List<HALogInfo>>>(); + long batchStart = startCC; + long batchEnd = batchStart + batchSize - 1; + int tasks = 0; + while (true) { + if (batchEnd > endCC) + batchEnd = endCC; - @Override - public void remove() { - throw new UnsupportedOperationException(); + if (log.isInfoEnabled()) + log.info("Running batch start: " + batchStart + + ", end: " + batchEnd + " across " + services); + + for (final HAGlue glue : services) { + + results.add(glue.submit(new GetLogInfo(batchStart, + batchEnd, serviceThreads), false)); + + tasks++; + } + + if (batchEnd == endCC) + break; + + batchStart += batchSize; + batchEnd += batchSize; } - }; - + + final ArrayList<ServiceLogWait> logs = new ArrayList<ServiceLogWait>(); + for (int t = 0; t < tasks; t++) { + final int s = t % services.size(); + logs.add(new ServiceLogWait(services.get(s) + .getServiceUUID().toString(), results.get(t), s, + services.size())); + } + + // return an Iterator blocking on the Future value of the next + // source item before + // creating a return value + return new Iterator<ServiceLogs>() { + final Iterator<ServiceLogWait> src = logs.iterator(); + + @Override + public boolean hasNext() { + return src.hasNext(); + } + + @Override + public ServiceLogs next() { + final ServiceLogWait data = src.next(); + + try { + // This will block on the future.get() + return new ServiceLogs(data.service, + data.waitlogInfos.get(), data.item, + data.batch); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } catch (ExecutionException e) { + throw new RuntimeException(e); + } + } + + @Override + public void remove() { + throw new UnsupportedOperationException(); + } + }; + + } finally { + for (final HAGlue pinner : pinners) { + try { + pinner.submit(new UnpinLogs(), false); + } catch (Throwable t) { + log.error("Problem submitting UnpinLogs", t); + } + } + + } } catch (InterruptedException e) { throw new RuntimeException(e); } catch (KeeperException e) { throw new RuntimeException(e); } - } + } /** * LogDigestParams with PinLogs and UnpinLogs tasks ensure that @@ -226,13 +273,11 @@ */ @SuppressWarnings("serial") static public class LogDigestParams implements Serializable { - final public long tx; final public long startCC; final public long endCC; final public long snapshotCC; - LogDigestParams(final long tx, final long startCC, final long endCC, long sscc) { - this.tx = tx; + LogDigestParams(final long startCC, final long endCC, long sscc) { this.startCC = startCC; this.endCC = endCC; this.snapshotCC = sscc; @@ -246,10 +291,6 @@ public LogDigestParams call() throws Exception { final HAJournal ha = (HAJournal) this.getIndexManager(); - final ITransactionService ts = ha.getTransactionService(); - final long relTime = ts.getReleaseTime(); - final long tx = ts.newTx(relTime+1); - final HALogNexus nexus = ha.getHALogNexus(); Iterator<IHALogRecord> logs = nexus.getHALogs(); final long startCC; @@ -264,28 +305,23 @@ final ISnapshotRecord rec = ssmgr.getNewestSnapshot(); final long sscc = rec != null ? rec.getCommitCounter() : -1; + nexus.addAccessor(); + // return new LogDigestParams(tx, startCC-3, endCC+3); // try asking for more logs than available - return new LogDigestParams(tx, startCC, endCC, sscc); + return new LogDigestParams(startCC, endCC, sscc); } } @SuppressWarnings("serial") static class UnpinLogs extends IndexManagerCallable<Void> { - long tx; - - UnpinLogs(long tx) { - this.tx = tx; - } - - @Override + + @Override public Void call() throws Exception { final HAJournal ha = (HAJournal) this.getIndexManager(); - final ITransactionService ts = ha.getTransactionService(); + ha.getHALogNexus().releaseAccessor(); - ts.abort(tx); - return null; } @@ -322,66 +358,70 @@ HAJournal ha = (HAJournal) this.getIndexManager(); final HALogNexus nexus = ha.getHALogNexus(); - nexus.protectDigest(startCC); + nexus.addAccessor(); try { - long openCC = nexus.getCommitCounter(); - log.warn("Open Commit Counter: " + openCC + ", startCC: " + startCC + ", endCC: " + endCC); - - /** - * Submit each computation as task to pooled executor service - say maximum of - * five threads - */ - final ThreadPoolExecutor es = (ThreadPoolExecutor) Executors - .newFixedThreadPool(serviceThreads); + long openCC = nexus.getCommitCounter(); + log.warn("Open Commit Counter: " + openCC + ", startCC: " + + startCC + ", endCC: " + endCC); - final List<Future<Void>> results = new ArrayList<Future<Void>>(); - - for (long cc = startCC; cc <= endCC; cc++) { - final long cur = cc; - - final Future<Void> res = es.submit(new Callable<Void>() { - @Override - public Void call() throws Exception { - try { - final File file = nexus.getHALogFile(cur); - - log.warn("Found log file: " + file.getName()); - - // compute file digest - final IHALogReader r = nexus.getReader(cur); - - final MessageDigest digest = MessageDigest.getInstance("MD5"); - - r.computeDigest(digest); - - infos.add(new HALogInfo(cur, r.isLive(), digest.digest())); - } catch (FileNotFoundException fnf) { - // permitted - infos.add(new HALogInfo(cur, false, null /*digest*/)); - } catch (Throwable t) { - log.warn("Unexpected error", t); - - // FIXME: what to do here? - infos.add(new HALogInfo(cur, false, "ERROR".getBytes())); + /** + * Submit each computation as task to pooled executor service - + * say maximum of five threads + */ + final ThreadPoolExecutor es = (ThreadPoolExecutor) Executors + .newFixedThreadPool(serviceThreads); + + final List<Future<Void>> results = new ArrayList<Future<Void>>(); + + for (long cc = startCC; cc <= endCC; cc++) { + final long cur = cc; + + final Future<Void> res = es.submit(new Callable<Void>() { + @Override + public Void call() throws Exception { + try { + final File file = nexus.getHALogFile(cur); + + log.warn("Found log file: " + file.getName()); + + // compute file digest + final IHALogReader r = nexus.getReader(cur); + + final MessageDigest digest = MessageDigest + .getInstance("MD5"); + + r.computeDigest(digest); + + infos.add(new HALogInfo(cur, r.isLive(), digest + .digest())); + } catch (FileNotFoundException fnf) { + // permitted + infos.add(new HALogInfo(cur, false, null /* digest */)); + } catch (Throwable t) { + log.warn("Unexpected error", t); + + // FIXME: what to do here? + infos.add(new HALogInfo(cur, false, "ERROR" + .getBytes())); + } + + return null; } - - return null; - } - - }); - - results.add(res); - } - - for (Future<Void> res : results) { - res.get(); - } - - es.shutdown(); - - return new ArrayList<HALogInfo>(infos); + + }); + + results.add(res); + } + + for (Future<Void> res : results) { + res.get(); + } + + es.shutdown(); + + return new ArrayList<HALogInfo>(infos); } finally { - nexus.releaseProtectDigest(); + nexus.releaseAccessor(); } } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java 2013-09-12 17:03:57 UTC (rev 7400) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HAJournalServer.java 2013-09-12 17:07:59 UTC (rev 7401) @@ -3696,7 +3696,7 @@ }); // runWithBarrierLock() if (haLog.isInfoEnabled()) - haLog.info("TRANSITION", new RuntimeException()); + haLog.info("TRANSITION", new StackInfoReport()); // Transition to RunMet. enterRunState(new RunMetTask(token, leaderId)); Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HALogNexus.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HALogNexus.java 2013-09-12 17:03:57 UTC (rev 7400) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HALogNexus.java 2013-09-12 17:07:59 UTC (rev 7401) @@ -32,6 +32,7 @@ import java.nio.ByteBuffer; import java.util.Arrays; import java.util.Iterator; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -120,7 +121,7 @@ * Set to protect log files against deletion while a digest is * computed. This is checked by deleteHALogs. */ - private final AtomicLong digestLog = new AtomicLong(-1L); + private final AtomicInteger logAccessors = new AtomicInteger(); /** * Filter visits all HALog files <strong>except</strong> the current HALog @@ -819,15 +820,21 @@ * Protects logs from removal while a digest is being computed * @param earliestDigest */ - void protectDigest(final long earliestDigest) { - digestLog.set(earliestDigest); + void addAccessor() { + if (logAccessors.incrementAndGet() == 1) { + if (log.isInfoEnabled()) + log.info("Access protection added"); + } } /** * Releases current protection against log removal */ - void releaseProtectDigest() { - digestLog.set(-1L); + void releaseAccessor() { + if (logAccessors.decrementAndGet() == 0) { + if (log.isInfoEnabled()) + log.info("Access protection removed"); + } } /** @@ -848,19 +855,13 @@ final Iterator<IHALogRecord> itr = getHALogs(); - while(itr.hasNext()) { + while(itr.hasNext() && logAccessors.get() == 0) { final IHALogRecord r = itr.next(); final long closingCommitCounter = r.getCommitCounter(); - final boolean deleteFile; - if (closingCommitCounter < earliestRetainedSnapshotCommitCounter) { - // now check if protected by the digestLog field (set to -1 if not active) - deleteFile = digestLog.get() == -1 || closingCommitCounter < digestLog.get(); - } else { - deleteFile = false; - } + final boolean deleteFile = closingCommitCounter < earliestRetainedSnapshotCommitCounter; if (!deleteFile) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2013-09-12 17:04:03
|
Revision: 7400 http://bigdata.svn.sourceforge.net/bigdata/?rev=7400&view=rev Author: martyncutcher Date: 2013-09-12 17:03:57 +0000 (Thu, 12 Sep 2013) Log Message: ----------- Change test teardown to better ensure a clean tidy of the test directories - removing HALog files, snapshots and journals. This will be more important as we extend service kill tests which previously would have resulted in potentially large numbers of files remaining. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/AbstractHA3JournalServerTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3JournalServer.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/AbstractHA3JournalServerTestCase.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/AbstractHA3JournalServerTestCase.java 2013-09-12 16:09:56 UTC (rev 7399) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/AbstractHA3JournalServerTestCase.java 2013-09-12 17:03:57 UTC (rev 7400) @@ -406,15 +406,15 @@ leaderListener = null; } - if (serverA != null && !serverA.equals(leader)) { + if (leader == null || !leader.equals(serverA)) { destroyA(); } - if (serverB != null && !serverB.equals(leader)) { + if (leader == null || !leader.equals(serverB)) { destroyB(); } - if (serverC != null && !serverC.equals(leader)) { + if (leader == null || !leader.equals(serverC)) { destroyC(); } @@ -676,8 +676,11 @@ protected void safeDestroy(final HAGlue haGlue, final File serviceDir, final ServiceListener serviceListener) { - if (haGlue == null) + if (haGlue == null) { + tidyServiceDirectory(serviceDir); // ensure empty + return; + } try { @@ -724,11 +727,29 @@ } } + + // try and ensure serviceDir is tidied in any event + // Remove *.jnl, HALog/*, snapshot/* + log.warn("Need to clear directory explicitly: " + serviceDir.getAbsolutePath()); + tidyServiceDirectory(serviceDir); } } - + + private void tidyServiceDirectory(final File serviceDir) { + if (serviceDir == null || !serviceDir.exists()) + return; + + for (File file : serviceDir.listFiles()) { + final String name = file.getName(); + + if (name.endsWith(".jnl") || name.equals("snapshot") || name.equals("HALog")) { + recursiveDelete(file); + } + } + } + /** * Some signals understood by Java. * @@ -827,6 +848,12 @@ serverC = null; serviceListenerC = null; } + + protected void kill(final HAGlue service) throws IOException { + final int pid = ((HAGlueTest) service).getPID(); + + trySignal(SignalEnum.KILL, pid); + } /** * NOTE: This relies on equals() being valid for Proxies which isn't @@ -1582,6 +1609,7 @@ } }); + return haGlue; } catch (Throwable t) { Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3JournalServer.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3JournalServer.java 2013-09-12 16:09:56 UTC (rev 7399) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3JournalServer.java 2013-09-12 17:03:57 UTC (rev 7400) @@ -1426,6 +1426,96 @@ } + public void testQuorumABC_killC() throws Exception { + + // Start 2 services. + final HAGlue serverA = startA(); + final HAGlue serverB = startB(); + + // Wait for a quorum meet. + final long token = quorum.awaitQuorum(awaitQuorumTimeout, + TimeUnit.MILLISECONDS); + +// // Verify KB exists. +// awaitKBExists(serverA); + + /* + * Note: The quorum was not fully met at the last 2-phase commit. + * Instead, 2 services participated in the 2-phase commit and the third + * service resynchronized when it came up and then went through a local + * commit. Therefore, the HALog files should exist on all nodes. + */ + + // Current commit point. + final long lastCommitCounter = 1; + + // Await initial commit point (KB create). + awaitCommitCounter(lastCommitCounter, serverA, serverB); + + /* + * Verify that HALog files were generated and are available for commit + * point ONE (1) on the services joined with the met quorum. + */ + assertHALogDigestsEquals(1L/* firstCommitCounter */, + lastCommitCounter, new HAGlue[] { serverA, serverB }); + + // Verify binary equality of (A,B) journals. + assertDigestsEquals(new HAGlue[] { serverA, serverB }); + + // Start 3rd service. + final HAGlue serverC = startC(); + + // Wait until the quorum is fully met. The token should not change. + assertEquals(token, awaitFullyMetQuorum()); + + // The commit counter has not changed. + assertEquals( + lastCommitCounter, + serverA.getRootBlock( + new HARootBlockRequest(null/* storeUUID */)) + .getRootBlock().getCommitCounter()); + + // HALog files now exist on ALL services. + assertHALogDigestsEquals(1L/* firstCommitCounter */, lastCommitCounter, + new HAGlue[] { serverA, serverB, serverC }); + + // Verify binary equality of ALL journals. + assertDigestsEquals(new HAGlue[] { serverA, serverB, serverC }); + + /* + * Now go through a commit point with a fully met quorum. The HALog + * files should be purged at that commit point. + */ + simpleTransaction(); + + // Current commit point. + final long lastCommitCounter2 = serverA + .getRootBlock(new HARootBlockRequest(null/* storeUUID */)) + .getRootBlock().getCommitCounter(); + + // There are TWO (2) commit points. + assertEquals(2L, lastCommitCounter2); + + // Verify binary equality of ALL journals. + assertDigestsEquals(new HAGlue[] { serverA, serverB, serverC }); + + // Verify no HALog files since fully met quorum @ commit. + assertHALogNotFound(0L/* firstCommitCounter */, lastCommitCounter, + new HAGlue[] { serverA, serverB, serverC }); + + // Now kill C - this will leave some file detritus + kill(serverC); + + // wait around to let the kill play out by waiting for [A, B] pipeline + awaitPipeline(new HAGlue[] {serverA, serverB}); + + // assert quorum remains met + assertTrue(quorum.isQuorumMet()); + + // ...and with original token + assertTrue(token == quorum.token()); + } + /** * Test quorum breaks and reforms when original leader fails * @@ -1463,6 +1553,42 @@ } /** + * Test quorum breaks and reforms when original leader fails + * + * @throws Exception + */ + public void testQuorumBreaksABC_killLeader() throws Exception { + + // Start 3 services in sequence + final ABC startup = new ABC(true/*sequential*/); + + // Wait for a quorum meet. + final long token = awaitMetQuorum(); + +// // Verify KB exists. +// awaitKBExists(startup.serverA); + + // Verify A is the leader. + assertEquals(startup.serverA, quorum.getClient().getLeader(token)); + + // Verify A is fully up. + awaitNSSAndHAReady(startup.serverA); + + // Now kill leader! + kill(startup.serverA); + + // Check that quorum meets around the remaining 2 services. + final long token2 = awaitNextQuorumMeet(token); + + // Verify that we have a new leader for the quorum. + final HAGlue leader = quorum.getClient().getLeader(token2); + + assertTrue(leader.equals(startup.serverB) + || leader.equals(startup.serverC)); + + } + + /** * Having observed stochastic failures, here is a stress test * to try and generate a more deterministic failure. * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-12 16:10:02
|
Revision: 7399 http://bigdata.svn.sourceforge.net/bigdata/?rev=7399&view=rev Author: thompsonbry Date: 2013-09-12 16:09:56 +0000 (Thu, 12 Sep 2013) Log Message: ----------- removed unmappable character for UTF8 Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASOptions.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASOptions.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASOptions.java 2013-09-12 16:02:04 UTC (rev 7398) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASOptions.java 2013-09-12 16:09:56 UTC (rev 7399) @@ -68,7 +68,7 @@ /** * Return non-<code>null</code> iff there is a single link type to be - * visited. This corresponds to a view of the graph as a sparse\xCAconnectivity + * visited. This corresponds to a view of the graph as sparse connectivity * matrix. The {@link IGASEngine} can optimize traversal patterns using the * <code>POS</code> index. * <p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-12 16:02:13
|
Revision: 7398 http://bigdata.svn.sourceforge.net/bigdata/?rev=7398&view=rev Author: thompsonbry Date: 2013-09-12 16:02:04 +0000 (Thu, 12 Sep 2013) Log Message: ----------- Decoupled the Apache2 module for the GAS Engine. I had to duplicate two classes (DeamonThreadFactory and Sesame2BigdataIterator). There is currently a problem running ant for the bigdata-gas module under eclipse. In part, this may have to do with the path to the smallGraph.ttl file but it also appears to be confounded with the JDK6/JDK7 external executable configurations in exclipse. See #629 (Graph mining API) Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/build.xml branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASEngine.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASStats.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASEngine.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/STScheduler.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedArray.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedIntArray.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/util/GASUtil.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java Added Paths: ----------- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/lib/ctc-striterators-0.1.0.jar branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/lib/slf4j-api-1.6.1.jar branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/lib/slf4j-log4j12-1.6.1.jar branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/DaemonThreadFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/Sesame2BigdataIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/TLScheduler.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/TLScheduler2.java Removed Paths: ------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java Property Changed: ---------------- branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/ Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/build.xml =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/build.xml 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/build.xml 2013-09-12 16:02:04 UTC (rev 7398) @@ -12,8 +12,10 @@ <pathelement location="${build.dir}/classes" /> <pathelement location="${build.dir}/test" /> <fileset dir="${build.lib.dir}"> - <include name="junit*.jar" /> - <include name="log4j*.jar" /> +<!-- <include name="junit*.jar" /> + <include name="log4j*.jar" /> + <include name="ctc-striterators*.jar" /> + <include name="openrdf*.jar" /> --> </fileset> </path> @@ -74,7 +76,7 @@ </jar> </target> - <target name="test" depends="compile"> + <target name="test" depends="clean, compile"> <javac destdir="${build.dir}/test" debug="${javac.debug}" debuglevel="${javac.debuglevel}" verbose="${javac.verbose}" encoding="${javac.encoding}"> <classpath refid="test.classpath" /> <src path="${bigdata-gas.dir}/src/test" /> @@ -93,7 +95,7 @@ <!-- ant -DtestName=com.bigdata.cache.TestAll junit --> <test name="${testName}" todir="${test.results.dir}" if="testName" /> <!-- Test suites to run when -DtestName is not set --> - <test name="com.bigdata.gas.TestAll" todir="${test.results.dir}" unless="testName" /> + <test name="com.bigdata.rdf.graph.TestAll" todir="${test.results.dir}" unless="testName" /> </junit> <!-- Generate an HTML report. --> <junitreport todir="${build.dir}"> Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/lib/ctc-striterators-0.1.0.jar =================================================================== (Binary files differ) Property changes on: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/lib/ctc-striterators-0.1.0.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/lib/slf4j-api-1.6.1.jar =================================================================== (Binary files differ) Property changes on: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/lib/slf4j-api-1.6.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/lib/slf4j-log4j12-1.6.1.jar =================================================================== (Binary files differ) Property changes on: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/lib/slf4j-log4j12-1.6.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/DaemonThreadFactory.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/DaemonThreadFactory.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/DaemonThreadFactory.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -0,0 +1,115 @@ +/** + +Copyright (C) SYSTAP, LLC 2006-2007. All rights reserved. + +Contact: + SYSTAP, LLC + 4501 Tower Road + Greensboro, NC 27410 + lic...@bi... + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ +package com.bigdata.rdf.graph.impl; + +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; + +/** + * A thread factory that configures the thread as a daemon thread. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + * @version $Id: DaemonThreadFactory.java 5824 2011-12-29 20:52:02Z thompsonbry $ + */ +/* + * Note: This is a clone of the same-named class in the bigdata module. The + * clone exists to have it under the Apache 2 license requiring the creation of + * a bigdata-commons module. + */ +class DaemonThreadFactory implements ThreadFactory { + + final private ThreadFactory delegate; + final private String basename; // MAY be null. + private int counter = 0; // used iff basename was given. + + private static ThreadFactory _default = new DaemonThreadFactory(); + + /** + * Returns an instance based on {@link Executors#defaultThreadFactory()} + * that configures the thread for daemon mode. + */ + final public static ThreadFactory defaultThreadFactory() { + + return _default; + + } + + /** + * Uses {@link Executors#defaultThreadFactory()} as the delegate. + */ + public DaemonThreadFactory() { + + this( Executors.defaultThreadFactory(), null/*basename*/ ); + + } + + public DaemonThreadFactory(String basename) { + + this(Executors.defaultThreadFactory(), basename); + + } + + /** + * Uses the specified delegate {@link ThreadFactory}. + * + * @param delegate + * The delegate thread factory that is responsible for creating + * the threads. + * @param basename + * Optional prefix that will be used to assign names to the + * generated threads. + */ + public DaemonThreadFactory(final ThreadFactory delegate, + final String basename) { + + if (delegate == null) + throw new IllegalArgumentException(); + + this.delegate = delegate; + + this.basename = basename; + + } + + public Thread newThread(final Runnable r) { + + final Thread t = delegate.newThread( r ); + + if (basename != null) { + + counter++; + + t.setName(basename + counter); + + } + + t.setDaemon(true); + +// System.err.println("new thread: "+t.getName()+", id="+t.getId()); + + return t; + + } + +} Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASEngine.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASEngine.java 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASEngine.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -37,7 +37,6 @@ import com.bigdata.rdf.graph.IStaticFrontier; import com.bigdata.rdf.graph.impl.frontier.StaticFrontier2; import com.bigdata.rdf.graph.impl.scheduler.CHMScheduler; -import com.bigdata.util.concurrent.DaemonThreadFactory; /** * {@link IGASEngine} for dynamic activation of vertices. This implementation Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASStats.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASStats.java 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASStats.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -16,8 +16,8 @@ package com.bigdata.rdf.graph.impl; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; -import com.bigdata.counters.CAT; import com.bigdata.rdf.graph.IGASStats; import com.bigdata.rdf.graph.util.GASUtil; @@ -28,10 +28,10 @@ */ public class GASStats implements IGASStats { - private final CAT nrounds = new CAT(); - private final CAT frontierSize = new CAT(); - private final CAT nedges = new CAT(); - private final CAT elapsedNanos = new CAT(); + private final AtomicLong nrounds = new AtomicLong(); + private final AtomicLong frontierSize = new AtomicLong(); + private final AtomicLong nedges = new AtomicLong(); + private final AtomicLong elapsedNanos = new AtomicLong(); /* (non-Javadoc) * @see com.bigdata.rdf.graph.impl.IFOO#add(long, long, long) @@ -40,13 +40,13 @@ public void add(final long frontierSize, final long nedges, final long elapsedNanos) { - this.nrounds.increment(); + this.nrounds.incrementAndGet(); - this.frontierSize.add(frontierSize); + this.frontierSize.addAndGet(frontierSize); - this.nedges.add(nedges); + this.nedges.addAndGet(nedges); - this.elapsedNanos.add(elapsedNanos); + this.elapsedNanos.addAndGet(elapsedNanos); } @@ -56,13 +56,13 @@ @Override public void add(final IGASStats o) { - nrounds.add(o.getNRounds()); + nrounds.addAndGet(o.getNRounds()); - frontierSize.add(o.getFrontierSize()); + frontierSize.addAndGet(o.getFrontierSize()); - nedges.add(o.getNEdges()); + nedges.addAndGet(o.getNEdges()); - elapsedNanos.add(o.getElapsedNanos()); + elapsedNanos.addAndGet(o.getElapsedNanos()); } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASEngine.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASEngine.java 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASEngine.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -35,7 +35,6 @@ import com.bigdata.rdf.graph.IGraphAccessor; import com.bigdata.rdf.graph.impl.GASEngine; import com.bigdata.rdf.graph.impl.util.VertexDistribution; -import com.bigdata.rdf.sail.Sesame2BigdataIterator; import cutthecrap.utils.striterators.EmptyIterator; import cutthecrap.utils.striterators.IStriterator; Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/Sesame2BigdataIterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/Sesame2BigdataIterator.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/Sesame2BigdataIterator.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -0,0 +1,119 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +/* + * Created on Sep 4, 2008 + */ + +package com.bigdata.rdf.graph.impl.sail; + +import java.util.NoSuchElementException; + +import info.aduna.iteration.CloseableIteration; + +import cutthecrap.utils.striterators.ICloseableIterator; + +/** + * Class aligns a Sesame 2 {@link CloseableIteration} with a bigdata + * {@link ICloseableIterator}. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + * @version $Id: Bigdata2SesameIteration.java 2265 2009-10-26 12:51:06Z + * thompsonbry $ + * @param <T> + * The generic type of the visited elements. + * @param <E> + * The generic type of the exceptions thrown by the Sesame 2 + * {@link CloseableIteration}. + */ +/* + * Note: This is a clone of the same-named class in the bigdata-rdf module. The + * clone exists to have it under the Apache 2 license without going through a + * large relayering of the dependencies. + */ +class Sesame2BigdataIterator<T, E extends Exception> implements + ICloseableIterator<T> { + + private final CloseableIteration<? extends T,E> src; + + private volatile boolean open = true; + + public Sesame2BigdataIterator(final CloseableIteration<? extends T,E> src) { + + if (src == null) + throw new IllegalArgumentException(); + + this.src = src; + + } + + public void close() { + + if (open) { + open = false; + try { + src.close(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + } + + public boolean hasNext() { + + try { + + if (open && src.hasNext()) + return true; + + close(); + + return false; + + } catch(Exception e) { + throw new RuntimeException(e); + } + + } + + public T next() { + + if (!hasNext()) { + throw new NoSuchElementException(); + } + + try { + return src.next(); + } catch(Exception e) { + throw new RuntimeException(e); + } + + } + + public void remove() { + + if(!open) + throw new IllegalStateException(); + + try { + src.remove(); + } catch(Exception e) { + throw new RuntimeException(e); + } + + } + +} Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/STScheduler.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/STScheduler.java 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/STScheduler.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -33,8 +33,8 @@ /** * The scheduled vertices. - */// Note: package private. Exposed to TLScheduler. - /*private*/ final Set<Value> vertices; + */ + private final Set<Value> vertices; private final boolean sortFrontier; public STScheduler(final GASEngine gasEngine) { @@ -44,6 +44,24 @@ } + /** + * The #of vertices in the frontier. + */ + public int size() { + + return vertices.size(); + + } + + /** + * The backing collection. + */ + public Set<Value> getVertices() { + + return vertices; + + } + @Override public void schedule(final Value v) { Deleted: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -1,275 +0,0 @@ -/** - Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -package com.bigdata.rdf.graph.impl.scheduler; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.concurrent.Callable; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; - -import org.openrdf.model.Value; - -import com.bigdata.rdf.graph.IGASScheduler; -import com.bigdata.rdf.graph.IGASSchedulerImpl; -import com.bigdata.rdf.graph.IStaticFrontier; -import com.bigdata.rdf.graph.impl.GASEngine; -import com.bigdata.rdf.graph.impl.bd.MergeSortIterator; -import com.bigdata.rdf.graph.impl.util.GASImplUtil; -import com.bigdata.rdf.graph.impl.util.IArraySlice; -import com.bigdata.rdf.graph.impl.util.ManagedArray; -import com.bigdata.rdf.graph.util.GASUtil; - -/** - * This scheduler uses thread-local buffers ({@link LinkedHashSet}) to track the - * distinct vertices scheduled by each execution thread. After the computation - * round, those per-thread segments of the frontier are combined into a single - * global, compact, and ordered frontier. To maximize the parallel activity, the - * per-thread frontiers are sorted using N threads (one per segment). Finally, - * the frontier segments are combined using a {@link MergeSortIterator} - this - * is a sequential step with a linear cost in the size of the frontier. - * - * @author <a href="mailto:tho...@us...">Bryan Thompson</a> - * - * TODO Discard if dominated by {@link TLScheduler2}. - */ -public class TLScheduler implements IGASSchedulerImpl { - - /** - * Class bundles a reusable, extensible array for sorting the thread-local - * frontier. - * - * @author <a href="mailto:tho...@us...">Bryan - * Thompson</a> - */ - private static class MySTScheduler extends STScheduler { - - /** - * This is used to sort the thread-local frontier (that is, the frontier - * for a single thread). The backing array will grow as necessary and is - * reused in each round. - * <P> - * Note: The schedule (for each thread) is using a set - see the - * {@link STScheduler} base class. This means that the schedule (for - * each thread) is compact, but not ordered. We need to use (and re-use) - * an array to order that compact per-thread schedule. The compact - * per-thread schedules are then combined into a single compact frontier - * for the new round. - */ - private final ManagedArray<Value> tmp; - - public MySTScheduler(final GASEngine gasEngine) { - - super(gasEngine); - - tmp = new ManagedArray<Value>(Value.class, 64); - - } - - } // class MySTScheduler - - private final GASEngine gasEngine; - private final int nthreads; - private final ConcurrentHashMap<Long/* threadId */, MySTScheduler> map; - - public TLScheduler(final GASEngine gasEngine) { - - this.gasEngine = gasEngine; - - this.nthreads = gasEngine.getNThreads(); - - this.map = new ConcurrentHashMap<Long, MySTScheduler>( - nthreads/* initialCapacity */, .75f/* loadFactor */, nthreads); - - } - - private IGASScheduler threadLocalScheduler() { - - final Long id = Thread.currentThread().getId(); - - MySTScheduler s = map.get(id); - - if (s == null) { - - final IGASScheduler old = map.putIfAbsent(id, s = new MySTScheduler( - gasEngine)); - - if (old != null) { - - /* - * We should not have a key collision since this is based on the - * threadId. - */ - - throw new AssertionError(); - - } - - } - - return s; - - } - - @Override - public void schedule(final Value v) { - - threadLocalScheduler().schedule(v); - - } - - @Override - public void clear() { - - /* - * Clear the per-thread maps, but do not discard. They will be reused in - * the next round. - * - * Note: This is a big cost. Simply clearing [map] results in much less - * time and less GC. - */ -// for (STScheduler s : map.values()) { -// -// s.clear(); -// -// } - map.clear(); - } - - @Override - public void compactFrontier(final IStaticFrontier frontier) { - - /* - * Extract a sorted, compact frontier from each thread local frontier. - */ - @SuppressWarnings("unchecked") - final IArraySlice<Value>[] frontiers = new IArraySlice[nthreads]; - - int nsources = 0; - int nvertices = 0; - { - final List<Callable<IArraySlice<Value>>> tasks = new ArrayList<Callable<IArraySlice<Value>>>( - nthreads); - - for (MySTScheduler s : map.values()) { - final MySTScheduler t = s; - tasks.add(new Callable<IArraySlice<Value>>() { - @Override - public IArraySlice<Value> call() throws Exception { - return GASImplUtil.compactAndSort(t.vertices, t.tmp); - } - }); - - } - // invokeAll() - futures will be done() before it returns. - final List<Future<IArraySlice<Value>>> futures; - try { - futures = gasEngine.getGASThreadPool().invokeAll(tasks); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - - for (Future<IArraySlice<Value>> f : futures) { - - try { - final IArraySlice<Value> b = frontiers[nsources] = f.get(); - nvertices += b.len(); - nsources++; - } catch (InterruptedException e) { - throw new RuntimeException(e); - } catch (ExecutionException e) { - throw new RuntimeException(e); - } - - } - } - - if (nvertices == 0) { - - /* - * The new frontier is empty. - */ - - frontier.resetFrontier(0/* minCapacity */, false/* sortFrontier */, - GASUtil.EMPTY_VERTICES_ITERATOR); - - return; - - } - - if (nsources > nthreads) { - - /* - * nsources could be LT nthreads if we have a very small frontier, - * but it should never be GTE nthreads. - */ - - throw new AssertionError("nsources=" + nsources + ", nthreads=" - + nthreads); - - } - - /* - * Now merge sort those arrays and populate the new frontier. - */ - mergeSortSourcesAndSetFrontier(nsources, nvertices, frontiers, frontier); - - } - - /** - * Now merge sort the ordered frontier segments and populate the new - * frontier. - * - * @param nsources - * The #of frontier segments. - * @param nvertices - * The total #of vertice across those segments (may double-count - * across segments). - * @param frontiers - * The ordered, compact frontier segments - * @param frontier - * The new frontier to be populated. - */ - private void mergeSortSourcesAndSetFrontier(final int nsources, - final int nvertices, final IArraySlice<Value>[] frontiers, - final IStaticFrontier frontier) { - - // wrap Values[] as Iterators. - @SuppressWarnings("unchecked") - final Iterator<Value>[] itrs = new Iterator[nsources]; - - for (int i = 0; i < nsources; i++) { - - itrs[i] = frontiers[i].iterator(); - - } - - // merge sort of those iterators. - final Iterator<Value> itr = new MergeSortIterator(itrs); - - /* - * Note: The merge iterator visits the vertices in the natural order and - * does not need to be sorted. - */ - frontier.resetFrontier(nvertices/* minCapacity */, - false/* sortFrontier */, itr); - - } - -} \ No newline at end of file Deleted: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -1,306 +0,0 @@ -/** - Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -package com.bigdata.rdf.graph.impl.scheduler; - -import java.util.ArrayList; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.concurrent.Callable; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; - -import org.apache.log4j.Logger; -import org.openrdf.model.Value; - -import com.bigdata.rdf.graph.IGASScheduler; -import com.bigdata.rdf.graph.IGASSchedulerImpl; -import com.bigdata.rdf.graph.IStaticFrontier; -import com.bigdata.rdf.graph.impl.GASEngine; -import com.bigdata.rdf.graph.impl.bd.MergeSortIterator; -import com.bigdata.rdf.graph.impl.frontier.StaticFrontier2; -import com.bigdata.rdf.graph.impl.util.GASImplUtil; -import com.bigdata.rdf.graph.impl.util.IArraySlice; -import com.bigdata.rdf.graph.impl.util.ManagedArray; -import com.bigdata.rdf.graph.util.GASUtil; - -/** - * This scheduler uses thread-local buffers ({@link LinkedHashSet}) to track the - * distinct vertices scheduled by each execution thread. After the computation - * round, those per-thread segments of the frontier are combined into a single - * global, compact, and ordered frontier. To maximize the parallel activity, the - * per-thread frontiers are sorted using N threads (one per segment). Finally, - * the frontier segments are combined using a {@link MergeSortIterator} - this - * is a sequential step with a linear cost in the size of the frontier. - * - * @author <a href="mailto:tho...@us...">Bryan Thompson</a> - */ -public class TLScheduler2 implements IGASSchedulerImpl { - - private static final Logger log = Logger.getLogger(TLScheduler2.class); - - /** - * Class bundles a reusable, extensible array for sorting the thread-local - * frontier. - * - * @author <a href="mailto:tho...@us...">Bryan - * Thompson</a> - */ - private static class MySTScheduler extends STScheduler { - - /** - * This is used to sort the thread-local frontier (that is, the frontier - * for a single thread). The backing array will grow as necessary and is - * reused in each round. - * <P> - * Note: The schedule (for each thread) is using a set - see the - * {@link STScheduler} base class. This means that the schedule (for - * each thread) is compact, but not ordered. We need to use (and re-use) - * an array to order that compact per-thread schedule. The compact - * per-thread schedules are then combined into a single compact frontier - * for the new round. - */ - private final ManagedArray<Value> tmp; - - public MySTScheduler(final GASEngine gasEngine) { - - super(gasEngine); - - tmp = new ManagedArray<Value>(Value.class, 64); - - } - - } // class MySTScheduler - - private final GASEngine gasEngine; - private final int nthreads; - private final ConcurrentHashMap<Long/* threadId */, MySTScheduler> map; - - public TLScheduler2(final GASEngine gasEngine) { - - this.gasEngine = gasEngine; - - this.nthreads = gasEngine.getNThreads(); - - this.map = new ConcurrentHashMap<Long, MySTScheduler>( - nthreads/* initialCapacity */, .75f/* loadFactor */, nthreads); - - } - - private IGASScheduler threadLocalScheduler() { - - final Long id = Thread.currentThread().getId(); - - MySTScheduler s = map.get(id); - - if (s == null) { - - final IGASScheduler old = map.putIfAbsent(id, s = new MySTScheduler( - gasEngine)); - - if (old != null) { - - /* - * We should not have a key collision since this is based on the - * threadId. - */ - - throw new AssertionError(); - - } - - } - - return s; - - } - - @Override - public void schedule(final Value v) { - - threadLocalScheduler().schedule(v); - - } - - @Override - public void clear() { - - /* - * Clear the per-thread maps, but do not discard. They will be reused in - * the next round. - * - * Note: This is a big cost. Simply clearing [map] results in much less - * time and less GC. - */ -// for (STScheduler s : map.values()) { -// -// s.clear(); -// -// } - map.clear(); - } - - @Override - public void compactFrontier(final IStaticFrontier frontier) { - - /* - * Figure out the #of sources and the #of vertices across those sources. - * - * This also computes the cumulative offsets into the new frontier for - * the different per-thread segments. - */ - final int[] off = new int[nthreads]; // zero for 1st thread. - final int nsources; - final int nvertices; - { - int ns = 0, nv = 0; - for (MySTScheduler s : map.values()) { - final MySTScheduler t = s; - final int sz = t.vertices.size(); - off[ns] = nv; // starting index. - ns++; - nv += sz; - } - nsources = ns; - nvertices = nv; - } - - if (nsources > nthreads) { - - /* - * nsources could be LT nthreads if we have a very small frontier, - * but it should never be GTE nthreads. - */ - - throw new AssertionError("nsources=" + nsources + ", nthreads=" - + nthreads); - - } - - if (nvertices == 0) { - - /* - * The new frontier is empty. - */ - - frontier.resetFrontier(0/* minCapacity */, false/* sortFrontier */, - GASUtil.EMPTY_VERTICES_ITERATOR); - - return; - - } - - /* - * Parallel copy of the per-thread frontiers onto the new frontier. - * - * Note: This DOES NOT produce a compact frontier! The code that maps - * the gather/reduce operations over the frontier will eliminate - * duplicate work. - */ - - // TODO Requires a specific class to work! API! - final StaticFrontier2 f2 = (StaticFrontier2) frontier; - { - - // ensure sufficient capacity! - f2.resetAndEnsureCapacity(nvertices); - f2.setCompact(false); // NOT COMPACT! - - final List<Callable<Void>> tasks = new ArrayList<Callable<Void>>( - nsources); - - int i = 0; - for (MySTScheduler s : map.values()) { // TODO Paranoia suggests to put these into an [] so we know that we have the same traversal order as above. That might not be guaranteed. - final MySTScheduler t = s; - final int index = i++; - tasks.add(new Callable<Void>() { - @Override - public Void call() throws Exception { - final IArraySlice<Value> orderedSegment = GASImplUtil - .compactAndSort(t.vertices, t.tmp); - f2.copyIntoResetFrontier(off[index], orderedSegment); - return (Void) null; - } - }); - } - - // invokeAll() - futures will be done() before it returns. - final List<Future<Void>> futures; - try { - futures = gasEngine.getGASThreadPool().invokeAll(tasks); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - - for (Future<Void> f : futures) { - - try { - f.get(); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } catch (ExecutionException e) { - throw new RuntimeException(e); - } - - } - } - if (log.isInfoEnabled()) - log.info("Done: " + this.getClass().getCanonicalName() - + ",frontier=" + frontier); -// /* -// * Now merge sort those arrays and populate the new frontier. -// */ -// mergeSortSourcesAndSetFrontier(nsources, nvertices, frontiers, frontier); - - } - -// /** -// * Now merge sort the ordered frontier segments and populate the new -// * frontier. -// * -// * @param nsources -// * The #of frontier segments. -// * @param nvertices -// * The total #of vertice across those segments (may double-count -// * across segments). -// * @param frontiers -// * The ordered, compact frontier segments -// * @param frontier -// * The new frontier to be populated. -// */ -// private void mergeSortSourcesAndSetFrontier(final int nsources, -// final int nvertices, final IArraySlice<Value>[] frontiers, -// final IStaticFrontier frontier) { -// -// // wrap Values[] as Iterators. -// @SuppressWarnings("unchecked") -// final Iterator<Value>[] itrs = new Iterator[nsources]; -// -// for (int i = 0; i < nsources; i++) { -// -// itrs[i] = frontiers[i].iterator(); -// -// } -// -// // merge sort of those iterators. -// final Iterator<Value> itr = new MergeSortIterator(itrs); -// -// frontier.resetFrontier(nvertices/* minCapacity */, true/* ordered */, -// itr); -// -// } - -} \ No newline at end of file Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedArray.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedArray.java 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedArray.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -19,8 +19,6 @@ import org.apache.log4j.Logger; -import com.bigdata.io.ByteArrayBuffer; - import cutthecrap.utils.striterators.ArrayIterator; /** @@ -337,8 +335,8 @@ } /** - * A slice of the outer {@link ByteArrayBuffer}. The slice will always - * reflect the backing {@link #array()} for the instance of the outer class. + * A slice of the outer {@link ManagedArray}. The slice will always reflect + * the backing {@link #array()} for the instance of the outer class. * * @author <a href="mailto:tho...@us...">Bryan * Thompson</a> Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedIntArray.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedIntArray.java 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedIntArray.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -17,8 +17,6 @@ import org.apache.log4j.Logger; -import com.bigdata.io.ByteArrayBuffer; - /** * A view on a mutable int[] that may be extended. * <p> @@ -283,8 +281,8 @@ } /** - * A slice of the outer {@link ByteArrayBuffer}. The slice will always - * reflect the backing {@link #array()} for the instance of the outer class. + * A slice of the outer {@link ManagedArray}. The slice will always reflect + * the backing {@link #array()} for the instance of the outer class. * * @author <a href="mailto:tho...@us...">Bryan * Thompson</a> Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/util/GASUtil.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/util/GASUtil.java 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/util/GASUtil.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -18,6 +18,7 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -228,8 +229,8 @@ } else { - throw new IOException("Could not locate resource: " - + resource); + throw new FileNotFoundException( + "Could not locate resource: " + resource); } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java 2013-09-12 15:58:40 UTC (rev 7397) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -15,6 +15,8 @@ */ package com.bigdata.rdf.graph.impl.sail; +import java.io.FileNotFoundException; + import org.openrdf.model.URI; import org.openrdf.model.vocabulary.RDF; import org.openrdf.sail.Sail; @@ -69,13 +71,20 @@ /** * The data file. */ - static private final String smallGraph = "bigdata-gas/src/test/com/bigdata/rdf/graph/data/smallGraph.ttl"; + static private final String smallGraph1 = "bigdata-gas/src/test/com/bigdata/rdf/graph/data/smallGraph.ttl"; + static private final String smallGraph2 = "src/test/com/bigdata/rdf/graph/data/smallGraph.ttl"; private final URI rdfType, foafKnows, foafPerson, mike, bryan, martyn; public SmallGraphProblem() throws Exception { - getGraphFixture().loadGraph(smallGraph); + try { + // in eclipse with bigdata as the root dir. + getGraphFixture().loadGraph(smallGraph1); + } catch (FileNotFoundException ex) { + // from the ant build file with bigdata-gas as the root dir. + getGraphFixture().loadGraph(smallGraph2); + } final Sail sail = getGraphFixture().getSail(); Copied: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/TLScheduler.java (from rev 7382, branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java) =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/TLScheduler.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/TLScheduler.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -0,0 +1,275 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +package com.bigdata.rdf.graph.impl.bd; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.concurrent.Callable; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; + +import org.openrdf.model.Value; + +import com.bigdata.rdf.graph.IGASScheduler; +import com.bigdata.rdf.graph.IGASSchedulerImpl; +import com.bigdata.rdf.graph.IStaticFrontier; +import com.bigdata.rdf.graph.impl.GASEngine; +import com.bigdata.rdf.graph.impl.scheduler.STScheduler; +import com.bigdata.rdf.graph.impl.util.GASImplUtil; +import com.bigdata.rdf.graph.impl.util.IArraySlice; +import com.bigdata.rdf.graph.impl.util.ManagedArray; +import com.bigdata.rdf.graph.util.GASUtil; + +/** + * This scheduler uses thread-local buffers ({@link LinkedHashSet}) to track the + * distinct vertices scheduled by each execution thread. After the computation + * round, those per-thread segments of the frontier are combined into a single + * global, compact, and ordered frontier. To maximize the parallel activity, the + * per-thread frontiers are sorted using N threads (one per segment). Finally, + * the frontier segments are combined using a {@link MergeSortIterator} - this + * is a sequential step with a linear cost in the size of the frontier. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + * + * TODO Discard if dominated by {@link TLScheduler2}. + */ +public class TLScheduler implements IGASSchedulerImpl { + + /** + * Class bundles a reusable, extensible array for sorting the thread-local + * frontier. + * + * @author <a href="mailto:tho...@us...">Bryan + * Thompson</a> + */ + private static class MySTScheduler extends STScheduler { + + /** + * This is used to sort the thread-local frontier (that is, the frontier + * for a single thread). The backing array will grow as necessary and is + * reused in each round. + * <P> + * Note: The schedule (for each thread) is using a set - see the + * {@link STScheduler} base class. This means that the schedule (for + * each thread) is compact, but not ordered. We need to use (and re-use) + * an array to order that compact per-thread schedule. The compact + * per-thread schedules are then combined into a single compact frontier + * for the new round. + */ + private final ManagedArray<Value> tmp; + + public MySTScheduler(final GASEngine gasEngine) { + + super(gasEngine); + + tmp = new ManagedArray<Value>(Value.class, 64); + + } + + } // class MySTScheduler + + private final GASEngine gasEngine; + private final int nthreads; + private final ConcurrentHashMap<Long/* threadId */, MySTScheduler> map; + + public TLScheduler(final GASEngine gasEngine) { + + this.gasEngine = gasEngine; + + this.nthreads = gasEngine.getNThreads(); + + this.map = new ConcurrentHashMap<Long, MySTScheduler>( + nthreads/* initialCapacity */, .75f/* loadFactor */, nthreads); + + } + + private IGASScheduler threadLocalScheduler() { + + final Long id = Thread.currentThread().getId(); + + MySTScheduler s = map.get(id); + + if (s == null) { + + final IGASScheduler old = map.putIfAbsent(id, s = new MySTScheduler( + gasEngine)); + + if (old != null) { + + /* + * We should not have a key collision since this is based on the + * threadId. + */ + + throw new AssertionError(); + + } + + } + + return s; + + } + + @Override + public void schedule(final Value v) { + + threadLocalScheduler().schedule(v); + + } + + @Override + public void clear() { + + /* + * Clear the per-thread maps, but do not discard. They will be reused in + * the next round. + * + * Note: This is a big cost. Simply clearing [map] results in much less + * time and less GC. + */ +// for (STScheduler s : map.values()) { +// +// s.clear(); +// +// } + map.clear(); + } + + @Override + public void compactFrontier(final IStaticFrontier frontier) { + + /* + * Extract a sorted, compact frontier from each thread local frontier. + */ + @SuppressWarnings("unchecked") + final IArraySlice<Value>[] frontiers = new IArraySlice[nthreads]; + + int nsources = 0; + int nvertices = 0; + { + final List<Callable<IArraySlice<Value>>> tasks = new ArrayList<Callable<IArraySlice<Value>>>( + nthreads); + + for (MySTScheduler s : map.values()) { + final MySTScheduler t = s; + tasks.add(new Callable<IArraySlice<Value>>() { + @Override + public IArraySlice<Value> call() throws Exception { + return GASImplUtil.compactAndSort(t.getVertices(), t.tmp); + } + }); + + } + // invokeAll() - futures will be done() before it returns. + final List<Future<IArraySlice<Value>>> futures; + try { + futures = gasEngine.getGASThreadPool().invokeAll(tasks); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + for (Future<IArraySlice<Value>> f : futures) { + + try { + final IArraySlice<Value> b = frontiers[nsources] = f.get(); + nvertices += b.len(); + nsources++; + } catch (InterruptedException e) { + throw new RuntimeException(e); + } catch (ExecutionException e) { + throw new RuntimeException(e); + } + + } + } + + if (nvertices == 0) { + + /* + * The new frontier is empty. + */ + + frontier.resetFrontier(0/* minCapacity */, false/* sortFrontier */, + GASUtil.EMPTY_VERTICES_ITERATOR); + + return; + + } + + if (nsources > nthreads) { + + /* + * nsources could be LT nthreads if we have a very small frontier, + * but it should never be GTE nthreads. + */ + + throw new AssertionError("nsources=" + nsources + ", nthreads=" + + nthreads); + + } + + /* + * Now merge sort those arrays and populate the new frontier. + */ + mergeSortSourcesAndSetFrontier(nsources, nvertices, frontiers, frontier); + + } + + /** + * Now merge sort the ordered frontier segments and populate the new + * frontier. + * + * @param nsources + * The #of frontier segments. + * @param nvertices + * The total #of vertice across those segments (may double-count + * across segments). + * @param frontiers + * The ordered, compact frontier segments + * @param frontier + * The new frontier to be populated. + */ + private void mergeSortSourcesAndSetFrontier(final int nsources, + final int nvertices, final IArraySlice<Value>[] frontiers, + final IStaticFrontier frontier) { + + // wrap Values[] as Iterators. + @SuppressWarnings("unchecked") + final Iterator<Value>[] itrs = new Iterator[nsources]; + + for (int i = 0; i < nsources; i++) { + + itrs[i] = frontiers[i].iterator(); + + } + + // merge sort of those iterators. + final Iterator<Value> itr = new MergeSortIterator(itrs); + + /* + * Note: The merge iterator visits the vertices in the natural order and + * does not need to be sorted. + */ + frontier.resetFrontier(nvertices/* minCapacity */, + false/* sortFrontier */, itr); + + } + +} \ No newline at end of file Copied: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/TLScheduler2.java (from rev 7382, branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java) =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/TLScheduler2.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/TLScheduler2.java 2013-09-12 16:02:04 UTC (rev 7398) @@ -0,0 +1,306 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +package com.bigdata.rdf.graph.impl.bd; + +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.concurrent.Callable; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; + +import org.apache.log4j.Logger; +import org.openrdf.model.Value; + +import com.bigdata.rdf.graph.IGASScheduler; +import com.bigdata.rdf.graph.IGASSchedulerImpl; +import com.bigdata.rdf.graph.IStaticFrontier; +import com.bigdata.rdf.graph.impl.GASEngine; +import com.bigdata.rdf.graph.impl.frontier.StaticFrontier2; +import com.bigdata.rdf.graph.impl.scheduler.STScheduler; +import com.bigdata.rdf.graph.impl.util.GASImplUtil; +import com.bigdata.rdf.graph.impl.util.IArraySlice; +import com.bigdata.rdf.graph.impl.util.ManagedArray; +import com.bigdata.rdf.graph.util.GASUtil; + +/** + * This scheduler uses thread-local buffers ({@link LinkedHashSet}) to track the + * distinct vertices scheduled by each execution thread. After the computation + * round, those per-thread segments of the frontier are combined into a single + * global, compact, and ordered frontier. To maximize the parallel activity, the + * per-thread frontiers are sorted using N threads (one per segment). Finally, + * the frontier segments are combined using a {@link MergeSortIterator} - this + * is a sequential step with a linear cost in the size of the frontier. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + */ +public class TLScheduler2 implements IGASSchedulerImpl { + + private static final Logger log = Logger.getLogger(TLScheduler2.class); + + /** + * Class bundles a reusable, extensible array for sorting the thread-local + * frontier. + * + * @author <a href="mailto:tho...@us...">Bryan + * Thompson</a> + */ + private static class MySTScheduler extends STScheduler { + + /** + * This is used to sort the thread-local frontier (that is, the frontier + * for a single thread). The backing array will grow as necessary and is + * reused in each round. + * <P> + * Note: The schedule (for each thread) is using a set - see the + * {@link STScheduler} base class. This means that the schedule (for + * each thread) is compact, but not ordered. We need to use (and re-use) + * an array to order that compact per-thread schedule. The compact + * per-thread schedules are then combined into a single compact frontier + * for the new round. + */ + private final ManagedArray<Value> tmp; + + public MySTScheduler(final GASEngine gasEngine) { + + super(gasEngine); + + tmp = new ManagedArray<Value>(Value.class, 64); + + } + + } // class MySTScheduler + + private final GASEngine gasEngine; + private final int nthreads; + private final ConcurrentHashMap<Long/* threadId */, MySTScheduler> map; + + public TLScheduler2(final GASEngine gasEngine) { + + this.gasEngine = gasEngine; + + this.nthreads = gasEngine.getNThreads(); + + this.map = new ConcurrentHashMap<Long, MySTScheduler>( + nthreads/* initialCapacity */, .75f/* loadFactor */, nthreads); + + } + + private IGASScheduler threadLocalScheduler() { + + final Long id = Thread.currentThread().getId(); + + MySTScheduler s = map.get(id); + + if (s == null) { + + final IGASScheduler old = map.putIfAbsent(id, s = new MySTScheduler( + gasEngine)); + + if (old != null) { + + /* + * We should not have a key collision since this is based on the + * threadId. + */ + + throw new AssertionError(); + + } + + } + + return s; + + } + + @Override + public void schedule(final Value v) { + + threadLocalScheduler().schedule(v); + + } + + @Override + public void clear() { + + /* + * Clear the per-thread maps, but do not discard. They will be reused in + * the next round. + * + * Note: This is a big cost. Simply clearing [map] results in much less + * time and less GC. + */ +// for (STScheduler s : map.values()) { +// +// s.clear(); +// +// } + map.clear(); + } + + @Override + public void compactFrontier(final IStaticFrontier frontier) { + + /* + * Figure out the #of sources and the #of vertices across those sources. + * + * This also computes the cumulative offsets into the new frontier for + * the different per-thread segments. + */ + final int[] off = new int[nthreads]; // zero for 1st thread. + final int nsources; + final int nvertices; + { + int ns = 0, nv = 0; + for (MySTScheduler s : map.values()) { + final MySTScheduler t = s; + final int sz = t.size(); + off[ns] = nv; // starting index. + ns++; + nv += sz; + } + nsources = ns; + nvertices = nv; + } + + if (nsources > nthreads) { + + /* + * nsources could be LT nthreads if we have a very small frontier, + * but it should never be GTE nthreads. + */ + + throw new AssertionError("nsources=" + nsources + ", nthreads=" + + nthreads); + + } + + if (nvertices == 0) { + + /* + * The new frontier is empty. + */ + + frontier.resetFrontier(0/* minCapacity */, false/* sortFrontier */, + GASUtil.EMPTY_VERTICES_ITERATOR); + + return; + + } + + /* + * Parallel copy of the per-thread frontiers onto the new frontier. + * + * Note: This DOES NOT produce a compact frontier! The code that maps + * the gather/reduce operations over the frontier will eliminate + * duplicate work. + */ + + // TODO Requires a specific class to work! API! + final StaticFrontier2 f2 = (StaticFrontier2) frontier; + { + + // ensure sufficient capacity! + f2.resetAndEnsureCapacity(nvertices); + f2.setCompact(false); // NOT COMPACT! + + final List<Callable<Void>> tasks = new ArrayList<Callable<Void>>( + nsources); + + int i = 0; + for (MySTScheduler s : map.values()) { // TODO Paranoia suggests to put these into an [] so we know that we have the same trav... [truncated message content] |
From: <tho...@us...> - 2013-09-12 15:58:47
|
Revision: 7397 http://bigdata.svn.sourceforge.net/bigdata/?rev=7397&view=rev Author: thompsonbry Date: 2013-09-12 15:58:40 +0000 (Thu, 12 Sep 2013) Log Message: ----------- Created a bigdata-commons module. This module is currently empty. We should move some of the common classes into here and then remove them from the other modules. The main classes that are getting duplicated are DaemonThreadFactory and CAT. However, we could actually move much more into this commons package. Added Paths: ----------- branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/LEGAL/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/LEGAL/apache-license-2_0.txt branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/NOTICE branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/build.properties branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/build.xml branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/lib/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/src/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/src/java/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/src/java/com/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/src/java/com/bigdata/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/src/java/com/bigdata/commons/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/src/test/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/src/test/com/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/src/test/com/bigdata/ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/src/test/com/bigdata/commons/ Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/LEGAL/apache-license-2_0.txt =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/LEGAL/apache-license-2_0.txt (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/LEGAL/apache-license-2_0.txt 2013-09-12 15:58:40 UTC (rev 7397) @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/NOTICE =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/NOTICE (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/NOTICE 2013-09-12 15:58:40 UTC (rev 7397) @@ -0,0 +1,18 @@ + + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +---- +This product includes software developed by The Apache Software Foundation (http://www.apache.org/). +License: http://www.apache.org/licenses/LICENSE-2.0 Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/build.properties =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/build.properties (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/build.properties 2013-09-12 15:58:40 UTC (rev 7397) @@ -0,0 +1,50 @@ +# The root of the checked out svn source. This assumes that you have checked +# out the trunk so that all modules were automatically checked out and are in +# direct subdirectories of the directory containing this properties file and +# the ant build.xml file. +bigdata-commons.dir=. +# Where the generated files will be written. +# build.dir/classes [compiled classes and misc resources for classpath] +# build.dir/docs [generated documentation]. +# build.dir/docs/api [generated javadoc]. +# build.dir/lib [bundled libraries copied here for easier deployment] +# build.dir/src [source code copied here for releases] +build.dir=ant-build + +## +# javac options +## + +# debug=on|off +javac.debug=on +# debuglevel=lines,vars,source (or any combination thereof). +javac.debuglevel=lines,vars,source +javac.verbose=off +#javac.target=1.6 +#javac.source=1.6 +javac.encoding=Cp1252 + +# Where to find the library dependencies (junit) +build.lib.dir=lib + +# Where the write the output from the unit tests. +test.results.dir=${build.dir}/test-results + +## +# Properties for creating a release. +## + +# Where the releases will be written. +release.dir=ant-release + +# The build version. +build.ver=0.1.0 + +# Set true to do a snapshot build. This changes the value of ${version} to +# include the date. +#snapshot=true +snapshot= + +# Javadoc build may be disabled using this property. The javadoc target will +# not be executed unless this property is defined (its value does not matter). +javadoc= Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/build.xml =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/build.xml (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-commons/build.xml 2013-09-12 15:58:40 UTC (rev 7397) @@ -0,0 +1,161 @@ +<project name="bigdata-commons" default="all" basedir="."> + + <property file="build.properties" /> + + <path id="build.classpath"> + <fileset dir="${build.lib.dir}"> + <include name="**/*.jar" /> + </fileset> + </path> + + <path id="test.classpath"> + <pathelement location="${build.dir}/classes" /> + <pathelement location="${build.dir}/test" /> + <fileset dir="${build.lib.dir}"> + <include name="junit*.jar" /> + <include name="log4j*.jar" /> + </fileset> + </path> + + <path id="runtime.classpath"> + <pathelement location="${build.dir}/classes" /> + <path refid="build.classpath" /> + </path> + + <target name="clean" description="cleans everything in [build.dir], but not the releases."> + <delete dir="${build.dir}" /> + </target> + + <target name="prepare"> + <!-- setup ${version} for regular or snapshot. --> + <tstamp> + <format property="today" pattern="ddMMyy" locale="en,US" /> + </tstamp> + <condition property="version" + value="bigdata-commons-${build.ver}-${today}" + else="bigdata-commons-${build.ver}"> + <istrue value="${snapshot}" /> + </condition> + <!--<echo message="today=${today}"/>--> + <echo message="version=${version}" /> + <!-- create directories. --> + <mkdir dir="${build.dir}" /> + <mkdir dir="${build.dir}/classes" /> + <mkdir dir="${build.dir}/docs" /> + <mkdir dir="${build.dir}/lib" /> + <mkdir dir="${build.dir}/test" /> + <mkdir dir="${build.dir}/test-results" /> + </target> + + <target name="compile" depends="prepare"> + <mkdir dir="${build.dir}" /> + <javac destdir="${build.dir}/classes" classpathref="build.classpath" debug="${javac.debug}" debuglevel="${javac.debuglevel}" verbose="${javac.verbose}" encoding="${javac.encoding}"> + <!-- note: must also specify -bootclasspath and -extdirs when cross-compiling --> + <!-- target="${javac.target}" source="${javac.source}" --> + <src path="${bigdata-commons.dir}/src/java" /> + <!-- Do not include the unit tests @todo conditionally include? + <src path="${bigdata-commons.dir}/src/test"/> + --> + </javac> + <!-- copy resources. --> + <copy toDir="${build.dir}/classes"> + <fileset dir="${bigdata-commons.dir}/src/java"> + <exclude name="**/*.java" /> + <exclude name="**/package.html" /> + </fileset> + </copy> + </target> + + <target name="jar" depends="compile" description="Generates the jar."> + <jar destfile="${build.dir}/${version}.jar"> + <fileset dir="${build.dir}/classes" /> + <manifest> + </manifest> + </jar> + </target> + + <target name="test" depends="clean, compile"> + <javac destdir="${build.dir}/test" debug="${javac.debug}" debuglevel="${javac.debuglevel}" verbose="${javac.verbose}" encoding="${javac.encoding}"> + <classpath refid="test.classpath" /> + <src path="${bigdata-commons.dir}/src/test" /> + </javac> + <!-- copy resources. --> + <copy toDir="${build.dir}/test"> + <fileset dir="${bigdata-commons.dir}/src/test"> + <exclude name="**/*.java" /> + </fileset> + </copy> + <junit printsummary="on" haltonfailure="yes" fork="no" dir="${classes.dir}" timeout="60000"> + <classpath refid="test.classpath" /> + <formatter type="xml" /> + <!-- Individual test suite to run when -DtestName is set --> + <!-- to the fully-qualified name of the test suite --> + <!-- ant -DtestName=com.bigdata.cache.TestAll junit --> + <test name="${testName}" todir="${test.results.dir}" if="testName" /> + <!-- Test suites to run when -DtestName is not set --> + <test name="cutthecrap.utils.striterators.TestAll" todir="${test.results.dir}" unless="testName" /> + </junit> + <!-- Generate an HTML report. --> + <junitreport todir="${build.dir}"> + <fileset dir="${test.results.dir}"> + <include name="TEST-*.xml" /> + </fileset> + <report format="frames" todir="${test.results.dir}/report" /> + </junitreport> + </target> + + <target name="javadoc" depends="prepare" if="javadoc"> + <mkdir dir="${build.dir}/docs/api" /> + <!-- overview="....overview.html" --> + <javadoc destdir="${build.dir}/docs/api" defaultexcludes="yes" author="true" version="true" use="true" windowtitle="bigdata-commons" classpathref="build.classpath"> + <arg value="-J-Xmx1000m" /> + <packageset dir="${bigdata-commons.dir}/src/java" /> + <doctitle> + <![CDATA[<h1>bigdata-commons</h1>]]></doctitle> + <bottom> + <![CDATA[ +<i> + + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved.<p> + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at<p> + + http://www.apache.org/licenses/LICENSE-2.0<p> + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License.<p> + + <hr> + This product includes software developed by The Apache Software Foundation (http://www.apache.org/). + License: http://www.apache.org/licenses/LICENSE-2.0 +</i>]]></bottom> + <!--tag name="FIXME" scope="all" description="FIXME:"/--> + <link href="http://java.sun.com/j2se/1.5.0/docs/api/" /> + </javadoc> + </target> + + <target name="release" depends="prepare" + description="Create complete source tar file."> + <tar destfile="${bigdata-commons.dir}/DIST.${version}.tgz" compression="gzip"> + <tarfileset dir="${bigdata-commons.dir}" prefix="${version}"> + <include name="build.properties" /> + <include name="build.xml" /> + <include name="NOTICE" /> + <include name="**/LEGAL/*" /> + <include name="src/**" /> + <exclude name="classes/**" /> + <exclude name="ant-build/**" /> + <exclude name="lib/**" /> + </tarfileset> + </tar> + </target> + + <target name="all" depends="clean, test, jar, javadoc, release" + description="clean, test, jar, javadoc, release" /> + +</project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-12 13:54:05
|
Revision: 7396 http://bigdata.svn.sourceforge.net/bigdata/?rev=7396&view=rev Author: thompsonbry Date: 2013-09-12 13:53:51 +0000 (Thu, 12 Sep 2013) Log Message: ----------- Fix for #741 (ctc-stiterators module must be independent, Apache 2 license). Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/BOpContext.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/BOpUtility.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/NamedSolutionSetRefUtility.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/ConditionalRoutingOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/CopyOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/EndOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/AbstractSubqueryOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/HTreeNamedSubqueryOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/JVMNamedSubqueryOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/ServiceCallJoin.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/SubqueryOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/AbstractRunningQuery.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/ChunkedRunningQuery.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/IChunkAccessor.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/IRunningQuery.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/LocalChunkMessage.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/QueryResultIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/EmptyChunkMessage.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/NIOChunkMessage.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/ThickChunkMessage.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HTreeHashJoinUtility.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HashIndexOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HashJoinOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/IDistinctFilter.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/IHashJoinUtility.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/JVMDistinctFilter.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/JVMHashJoinUtility.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/NestedLoopJoinOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/PipelineJoin.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/SolutionSetHashJoinOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/joinGraph/rto/JoinGraph.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/mutation/InsertOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ArbitraryLengthPathOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ZeroLengthPathOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/DropOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/HTreeDistinctBindingSetsOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/ISolutionSet.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/JVMDistinctBindingSetsOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/MemoryGroupByOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/MemorySortOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/PipelinedAggregationOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/ProjectionOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/SliceOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/SolutionSetStream.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/AbstractBTree.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/EntryScanIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/ISimpleIndexAccess.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/htree/AbstractHTree.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/AccessPath.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/BlockingBuffer.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/ChunkConsumerIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/EmptyCloseableIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/IAsynchronousIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/IBindingSetAccessPath.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/IMultiSourceCloseableIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/MultiSourceSequentialCloseableIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/ThickCloseableIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/WrappedAsynchronousIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/rule/eval/ProgramTask.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/service/ndx/ClientIndexView.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/service/proxy/RemoteAsynchronousIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/stream/Stream.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/AbstractChunkedResolverator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/Appender.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/ChunkedArraysIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/ChunkedResolvingIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/ChunkedWrappedIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/Chunkerator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/ClosableEmptyIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/ClosableSingleItemIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/CloseableIteratorWrapper.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/Dechunkerator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/Filter.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/IChunkedIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/IStriterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/MergeFilter.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/PushbackIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/Resolver.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/Striterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/ap/TestPredicateAccessPath.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/bset/TestConditionalRoutingOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/bset/TestCopyBindingSets.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/engine/AbstractQueryEngineTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/engine/TestQueryEngine.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/engine/TestQueryEngine_Slice.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/engine/TestQueryEngine_SortOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/fed/TestRemoteAccessPath.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/join/AbstractHashJoinUtilityTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/bop/join/HashIndexOpTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/relation/accesspath/TestThickCloseableIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/java/com/bigdata/gom/gpo/GPO.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/java/com/bigdata/gom/gpo/LinkSet.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/java/com/bigdata/gom/om/IObjectManager.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/java/com/bigdata/gom/om/NanoSparqlObjectManager.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/java/com/bigdata/gom/om/ObjectManager.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/java/com/bigdata/gom/om/ObjectMgrModel.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/samples/com/bigdata/gom/samples/Example1.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/samples/com/bigdata/gom/samples/Example2.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gom/src/test/com/bigdata/gom/Example1.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/bop/rdf/filter/NativeDistinctFilter.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/bop/rdf/join/ChunkedMaterializationIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/bop/rdf/join/ChunkedMaterializationOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/bop/rdf/join/DataSetJoin.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/bop/rdf/join/InlineMaterializeOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/bop/rdf/update/AbstractAddRemoveStatementsOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/changesets/InferenceChangeLogReporter.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/inf/BackchainTypeResourceIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/encoder/SolutionSetStreamDecoder.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/encoder/SolutionSetStreamEncoder.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/SolutionSetStatserator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/AST2BOpUpdate.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/ASTConstructIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/ASTEvalHelper.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/DGExpander.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/SampleServiceFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/SearchInSearchServiceFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/SearchServiceFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/SliceServiceFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/ValuesServiceFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/service/RemoteServiceCallImpl.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/service/ServiceCall.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/ssets/ISolutionSetManager.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/ssets/SolutionSetManager.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/spo/DistinctSPOIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPORelation.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/AbstractTripleStore.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataStatementIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataValueIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/TripleStoreUtility.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/bop/rdf/joinGraph/AbstractJoinGraphTestCase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestFullTextIndex.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestSubjectCentricFullTextIndex.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestMatch.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/rules/TestModelsEqual.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/service/BigdataNativeMockServiceFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/service/OpenrdfNativeMockServiceFactory.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/ssets/TestSolutionSetManager.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/spo/TestSPOKeyOrder.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/Bigdata2Sesame2BindingSetIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/Bigdata2SesameIteration.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/RunningQueryCloseableIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/Sesame2BigdataIterator.java branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestSids.java branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilter.java branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/src/java/cutthecrap/utils/striterators/SingleValueIterator.java branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Striterator.java Added Paths: ----------- branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/LEGAL/apache-license-2_0.txt branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/LEGAL/junit-license.html branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/LEGAL/log4j-license.txt branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/NOTICE branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/build.properties branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/build.xml branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/lib/ branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/lib/junit-3.8.1.jar branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/lib/junit-ext-1.1-b3-dev.jar branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/lib/log4j-1.2.15.jar branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ICloseable.java branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ICloseableIterator.java Removed Paths: ------------- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/ICloseable.java branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/striterator/ICloseableIterator.java Property Changed: ---------------- branches/BIGDATA_RELEASE_1_3_0/ctc-striterators/ Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/BOpContext.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/BOpContext.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/BOpContext.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -61,8 +61,9 @@ import com.bigdata.striterator.Chunkerator; import com.bigdata.striterator.CloseableIteratorWrapper; import com.bigdata.striterator.IChunkedIterator; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * The evaluation context for the operator (NOT serializable). * Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/BOpUtility.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/BOpUtility.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/BOpUtility.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -49,11 +49,11 @@ import com.bigdata.rdf.sparql.ast.IGroupMemberNode; import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.striterator.CloseableIteratorWrapper; -import com.bigdata.striterator.ICloseableIterator; import cutthecrap.utils.striterators.EmptyIterator; import cutthecrap.utils.striterators.Expander; import cutthecrap.utils.striterators.Filter; +import cutthecrap.utils.striterators.ICloseableIterator; import cutthecrap.utils.striterators.SingleValueIterator; import cutthecrap.utils.striterators.Striterator; Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/NamedSolutionSetRefUtility.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/NamedSolutionSetRefUtility.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/NamedSolutionSetRefUtility.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -42,8 +42,9 @@ import com.bigdata.rdf.sparql.ast.ssets.ISolutionSetManager; import com.bigdata.rdf.store.AbstractTripleStore; import com.bigdata.striterator.Chunkerator; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Utility class for {@link INamedSolutionSetRef}s. * Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/ConditionalRoutingOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/ConditionalRoutingOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/ConditionalRoutingOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -40,8 +40,9 @@ import com.bigdata.bop.PipelineOp; import com.bigdata.bop.engine.BOpStats; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * An operator for conditional routing of binding sets in a pipeline. The * operator will copy binding sets either to the default sink (if a condition is Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/CopyOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/CopyOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/CopyOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -43,8 +43,9 @@ import com.bigdata.bop.engine.IChunkAccessor; import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.relation.accesspath.ThickAsynchronousIterator; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * This operator copies its source to its sink(s). Specializations exist which are * used to feed the the initial set of intermediate results into a pipeline ( Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/EndOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/EndOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/bset/EndOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -11,8 +11,9 @@ import com.bigdata.bop.PipelineOp; import com.bigdata.bop.solutions.SliceOp; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * A operator which may be used at the end of query pipelines when there is a * requirement to marshal solutions back to the query controller but no Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/AbstractSubqueryOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/AbstractSubqueryOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/AbstractSubqueryOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -44,9 +44,10 @@ import com.bigdata.bop.bset.Tee; import com.bigdata.bop.engine.IRunningQuery; import com.bigdata.bop.engine.QueryEngine; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.concurrent.LatchedExecutor; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Executes each of the operands as a subquery. The operands are evaluated in * the order given and with the annotated parallelism. Each subquery is run as a Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/HTreeNamedSubqueryOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/HTreeNamedSubqueryOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/HTreeNamedSubqueryOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -53,8 +53,8 @@ import com.bigdata.bop.join.JoinTypeEnum; import com.bigdata.bop.join.NamedSolutionSetStats; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; import cutthecrap.utils.striterators.SingleValueIterator; /** Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/JVMNamedSubqueryOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/JVMNamedSubqueryOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/JVMNamedSubqueryOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -53,8 +53,8 @@ import com.bigdata.bop.join.JoinTypeEnum; import com.bigdata.bop.join.NamedSolutionSetStats; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; import cutthecrap.utils.striterators.SingleValueIterator; /** Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/ServiceCallJoin.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/ServiceCallJoin.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/ServiceCallJoin.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -69,10 +69,10 @@ import com.bigdata.relation.accesspath.IBuffer; import com.bigdata.relation.accesspath.UnsyncLocalOutputBuffer; import com.bigdata.striterator.ChunkedArrayIterator; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.InnerCause; import com.bigdata.util.concurrent.LatchedExecutor; +import cutthecrap.utils.striterators.ICloseableIterator; import cutthecrap.utils.striterators.SingleValueIterator; /** Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/SubqueryOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/SubqueryOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/controller/SubqueryOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -53,8 +53,9 @@ import com.bigdata.rdf.internal.impl.literal.XSDBooleanIV; import com.bigdata.rdf.model.BigdataLiteral; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Pipelined join with subquery. * <p> Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/AbstractRunningQuery.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/AbstractRunningQuery.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/AbstractRunningQuery.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -67,11 +67,12 @@ import com.bigdata.rwstore.sector.IMemoryManager; import com.bigdata.rwstore.sector.MemoryManager; import com.bigdata.service.IBigdataFederation; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.InnerCause; import com.bigdata.util.concurrent.Haltable; import com.bigdata.util.concurrent.IHaltable; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Abstract base class for various {@link IRunningQuery} implementations. The * purpose of this class is to isolate aspects common to different designs for Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/ChunkedRunningQuery.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/ChunkedRunningQuery.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/ChunkedRunningQuery.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -62,10 +62,11 @@ import com.bigdata.relation.accesspath.MultiSourceSequentialCloseableIterator; import com.bigdata.rwstore.sector.IMemoryManager; import com.bigdata.service.IBigdataFederation; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.concurrent.Memoizer; import com.sun.jini.thread.Executor; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * {@link IRunningQuery} implementation based on the assignment of * {@link IChunkMessage}(s) to an operator task. Operators (other than those Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/IChunkAccessor.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/IChunkAccessor.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/IChunkAccessor.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -33,8 +33,9 @@ import com.bigdata.bop.IBindingSet; import com.bigdata.relation.accesspath.BlockingBuffer; import com.bigdata.striterator.IChunkedIterator; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * API providing a variety of ways to access chunks of data (data are typically * elements or binding sets). Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/IRunningQuery.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/IRunningQuery.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/IRunningQuery.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -38,9 +38,10 @@ import com.bigdata.btree.ILocalBTreeView; import com.bigdata.journal.IIndexManager; import com.bigdata.service.IBigdataFederation; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.concurrent.IHaltable; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Non-Remote interface exposing a limited set of the state of an executing * query. Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/LocalChunkMessage.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/LocalChunkMessage.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/LocalChunkMessage.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -7,8 +7,9 @@ import com.bigdata.bop.IBindingSet; import com.bigdata.bop.fed.FederatedRunningQuery; import com.bigdata.relation.accesspath.ThickCloseableIterator; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * A chunk of intermediate results which are ready to be consumed by some * {@link BOp} in a specific query. Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/QueryResultIterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/QueryResultIterator.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/engine/QueryResultIterator.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -2,7 +2,7 @@ import java.util.concurrent.atomic.AtomicBoolean; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; /** * Delegate pattern cancels the {@link IRunningQuery} when the iterator is Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/EmptyChunkMessage.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/EmptyChunkMessage.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/EmptyChunkMessage.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -35,9 +35,10 @@ import com.bigdata.bop.engine.IChunkMessage; import com.bigdata.bop.engine.IQueryClient; import com.bigdata.relation.accesspath.EmptyCloseableIterator; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * An empty {@link IChunkMessage}. This is used to kick off the optional last * evaluation phase for an operator. Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/NIOChunkMessage.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/NIOChunkMessage.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/NIOChunkMessage.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -49,8 +49,9 @@ import com.bigdata.rdf.internal.encoder.IVSolutionSetEncoder; import com.bigdata.service.ManagedResourceService; import com.bigdata.service.ResourceService; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * An {@link IChunkMessage} where the payload is made available to the receiving * service using an NIO transfer against the sender's {@link ResourceService}. Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/ThickChunkMessage.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/ThickChunkMessage.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/fed/ThickChunkMessage.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -48,8 +48,9 @@ import com.bigdata.rdf.internal.encoder.IVSolutionSetEncoder; import com.bigdata.relation.accesspath.EmptyCloseableIterator; import com.bigdata.relation.accesspath.ThickCloseableIterator; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * A thick version of this interface in which the chunk is sent inline with the * RMI message. Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HTreeHashJoinUtility.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HTreeHashJoinUtility.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HTreeHashJoinUtility.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -77,10 +77,10 @@ import com.bigdata.rwstore.sector.MemStore; import com.bigdata.striterator.Chunkerator; import com.bigdata.striterator.Dechunkerator; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.InnerCause; import cutthecrap.utils.striterators.Expander; +import cutthecrap.utils.striterators.ICloseableIterator; import cutthecrap.utils.striterators.IStriterator; import cutthecrap.utils.striterators.Resolver; import cutthecrap.utils.striterators.SingleValueIterator; Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HashIndexOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HashIndexOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HashIndexOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -47,8 +47,9 @@ import com.bigdata.htree.HTree; import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.relation.accesspath.UnsyncLocalOutputBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Operator builds a hash index from the source solutions. Once all source * solutions have been indexed, the source solutions are output on the default Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HashJoinOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HashJoinOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/HashJoinOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -51,8 +51,9 @@ import com.bigdata.relation.accesspath.IBindingSetAccessPath; import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.relation.accesspath.UnsyncLocalOutputBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Abstract base class for both JVM and native memory hash join against an * {@link IAccessPath}. The source solutions from the pipeline are buffered on a Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/IDistinctFilter.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/IDistinctFilter.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/IDistinctFilter.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -30,8 +30,9 @@ import com.bigdata.bop.IVariable; import com.bigdata.bop.engine.BOpStats; import com.bigdata.relation.accesspath.IBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * A "DISTINCT" filter for {@link IBindingSet}s. * Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/IHashJoinUtility.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/IHashJoinUtility.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/IHashJoinUtility.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -33,9 +33,10 @@ import com.bigdata.bop.engine.BOpStats; import com.bigdata.htree.HTree; import com.bigdata.relation.accesspath.IBuffer; -import com.bigdata.striterator.ICloseableIterator; import com.ibm.icu.util.BytesTrie.Iterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Interface for hash index build and hash join operations. * Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/JVMDistinctFilter.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/JVMDistinctFilter.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/JVMDistinctFilter.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -37,8 +37,9 @@ import com.bigdata.bop.bindingSet.ListBindingSet; import com.bigdata.bop.engine.BOpStats; import com.bigdata.relation.accesspath.IBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Utility class for imposing a DISTINCT filter on {@link IBindingSet}. This * class is thread-safe. It is based on a {@link ConcurrentHashMap}. Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/JVMHashJoinUtility.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/JVMHashJoinUtility.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/JVMHashJoinUtility.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -55,10 +55,10 @@ import com.bigdata.rdf.internal.impl.literal.XSDBooleanIV; import com.bigdata.relation.accesspath.BufferClosedException; import com.bigdata.relation.accesspath.IBuffer; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.InnerCause; import cutthecrap.utils.striterators.Expander; +import cutthecrap.utils.striterators.ICloseableIterator; import cutthecrap.utils.striterators.IStriterator; import cutthecrap.utils.striterators.Resolver; import cutthecrap.utils.striterators.Striterator; Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/NestedLoopJoinOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/NestedLoopJoinOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/NestedLoopJoinOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -44,8 +44,9 @@ import com.bigdata.bop.engine.BOpStats; import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.relation.accesspath.UnsyncLocalOutputBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * This operator performs a nested loop join for solutions. Intermediate * solutions read from the pipeline are joined against a scan of some other Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/PipelineJoin.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/PipelineJoin.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/PipelineJoin.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -77,11 +77,12 @@ import com.bigdata.relation.rule.eval.ISolution; import com.bigdata.service.DataService; import com.bigdata.striterator.IChunkedOrderedIterator; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.striterator.IKeyOrder; import com.bigdata.util.concurrent.Haltable; import com.bigdata.util.concurrent.LatchedExecutor; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Pipelined join operator for online (selective) queries. The pipeline join * accepts chunks of binding sets from its operand, combines each binding set in Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/SolutionSetHashJoinOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/SolutionSetHashJoinOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/join/SolutionSetHashJoinOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -52,8 +52,9 @@ import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.relation.accesspath.UnsyncLocalOutputBuffer; import com.bigdata.striterator.Dechunkerator; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Operator joins a solution set modeled as a hash index into the pipeline. The * solution set may be modeled by an {@link HTree} or a JVM {@link HashMap}. Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/joinGraph/rto/JoinGraph.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/joinGraph/rto/JoinGraph.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/joinGraph/rto/JoinGraph.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -48,9 +48,10 @@ import com.bigdata.bop.engine.QueryEngine; import com.bigdata.bop.joinGraph.PartitionedJoinGroup; import com.bigdata.relation.accesspath.BufferClosedException; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.concurrent.Haltable; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * A join graph with annotations for estimated cardinality and other details in * support of runtime query optimization. A join graph is a collection of Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/mutation/InsertOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/mutation/InsertOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/mutation/InsertOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -48,9 +48,10 @@ import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.service.DataService; import com.bigdata.service.IBigdataFederation; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.striterator.IKeyOrder; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * This operator writes elements constructed from binding sets and an orders * list of variables and constants on an index. Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ArbitraryLengthPathOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ArbitraryLengthPathOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ArbitraryLengthPathOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -50,8 +50,9 @@ import com.bigdata.bop.engine.AbstractRunningQuery; import com.bigdata.bop.engine.IRunningQuery; import com.bigdata.bop.engine.QueryEngine; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Pipeline join incoming bindings against a special kind of subquery that * represents an arbitrary length path between a single input variable and a Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ZeroLengthPathOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ZeroLengthPathOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ZeroLengthPathOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -40,8 +40,9 @@ import com.bigdata.bop.NV; import com.bigdata.bop.PipelineOp; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * An attempt to solve the zero length path problem with its own operator. * Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/DropOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/DropOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/DropOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -39,8 +39,9 @@ import com.bigdata.bop.PipelineOp; import com.bigdata.bop.engine.BOpStats; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Operator drops the identified variables from the solutions * Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/HTreeDistinctBindingSetsOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/HTreeDistinctBindingSetsOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/HTreeDistinctBindingSetsOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -21,8 +21,9 @@ import com.bigdata.rdf.internal.IV; import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.relation.accesspath.UnsyncLocalOutputBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * A pipelined DISTINCT operator based on the persistence capable {@link HTree} * suitable for very large solution sets. Only the variables which are used to Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/ISolutionSet.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/ISolutionSet.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/ISolutionSet.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -35,8 +35,9 @@ import com.bigdata.relation.accesspath.AccessPath; import com.bigdata.relation.accesspath.IAccessPath; import com.bigdata.stream.Stream; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Interface for durable solution sets. * Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/JVMDistinctBindingSetsOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/JVMDistinctBindingSetsOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/JVMDistinctBindingSetsOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -42,8 +42,9 @@ import com.bigdata.bop.join.JVMHashJoinUtility; import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.relation.accesspath.UnsyncLocalOutputBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * A pipelined DISTINCT operator based on a hash table. * <p> Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/MemoryGroupByOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/MemoryGroupByOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/MemoryGroupByOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -55,9 +55,10 @@ import com.bigdata.htree.HTree; import com.bigdata.rdf.error.SparqlTypeErrorException; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.InnerCause; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * An in-memory at-once generalized aggregation operator. * Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/MemorySortOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/MemorySortOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/MemorySortOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -21,8 +21,9 @@ import com.bigdata.rdf.error.SparqlTypeErrorException; import com.bigdata.rdf.internal.IV; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * An in-memory merge sort for binding sets. The operator is pipelined. Each * time it runs, it evaluates the value expressions on which the ordering will Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/PipelinedAggregationOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/PipelinedAggregationOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/PipelinedAggregationOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -27,9 +27,10 @@ import com.bigdata.bop.engine.BOpStats; import com.bigdata.rdf.error.SparqlTypeErrorException; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.InnerCause; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * A pipelined aggregation operator based on an in memory hash table associating * with per-group state for each aggregate expression (it can also handle the Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/ProjectionOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/ProjectionOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/ProjectionOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -40,8 +40,9 @@ import com.bigdata.bop.engine.BOpStats; import com.bigdata.bop.join.JoinAnnotations; import com.bigdata.relation.accesspath.IBlockingBuffer; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Operator projects only the identified variables. * Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/SliceOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/SliceOp.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/SliceOp.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -43,8 +43,9 @@ import com.bigdata.relation.accesspath.IBlockingBuffer; import com.bigdata.relation.accesspath.UnsynchronizedArrayBuffer; import com.bigdata.service.IBigdataFederation; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * An operator which imposes an offset/limit on a binding set pipeline. * <p> Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/SolutionSetStream.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/SolutionSetStream.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/solutions/SolutionSetStream.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -51,10 +51,10 @@ import com.bigdata.rdf.sparql.ast.ISolutionSetStats; import com.bigdata.stream.Stream; import com.bigdata.striterator.Chunkerator; -import com.bigdata.striterator.ICloseableIterator; import cutthecrap.utils.striterators.ArrayIterator; import cutthecrap.utils.striterators.Expander; +import cutthecrap.utils.striterators.ICloseableIterator; import cutthecrap.utils.striterators.Striterator; /** Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/AbstractBTree.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/AbstractBTree.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/AbstractBTree.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -86,10 +86,10 @@ import com.bigdata.resources.OverflowManager; import com.bigdata.service.DataService; import com.bigdata.service.Split; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.concurrent.Computable; import com.bigdata.util.concurrent.Memoizer; +import cutthecrap.utils.striterators.ICloseableIterator; import cutthecrap.utils.striterators.IFilter; /** Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/EntryScanIterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/EntryScanIterator.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/EntryScanIterator.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -26,7 +26,7 @@ */ package com.bigdata.btree; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; /** * Iterator visits index entries (dereferencing visited tuples to the Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/ISimpleIndexAccess.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/ISimpleIndexAccess.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/ISimpleIndexAccess.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -27,8 +27,9 @@ package com.bigdata.btree; import com.bigdata.rawstore.IRawStore; -import com.bigdata.striterator.ICloseableIterator; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * Generic data access methods defined for all persistence capable data * structures. Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/htree/AbstractHTree.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/htree/AbstractHTree.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/htree/AbstractHTree.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -45,11 +45,11 @@ import com.bigdata.rawstore.IRawStore; import com.bigdata.resources.IndexManager; import com.bigdata.service.DataService; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.concurrent.Computable; import com.bigdata.util.concurrent.Memoizer; import cutthecrap.utils.striterators.Filter; +import cutthecrap.utils.striterators.ICloseableIterator; import cutthecrap.utils.striterators.Resolver; import cutthecrap.utils.striterators.Striterator; Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/AccessPath.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/AccessPath.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/AccessPath.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -83,10 +83,10 @@ import com.bigdata.striterator.EmptyChunkedIterator; import com.bigdata.striterator.IChunkedIterator; import com.bigdata.striterator.IChunkedOrderedIterator; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.striterator.IKeyOrder; import cutthecrap.utils.striterators.FilterBase; +import cutthecrap.utils.striterators.ICloseableIterator; import cutthecrap.utils.striterators.IFilter; import cutthecrap.utils.striterators.NOPFilter; import cutthecrap.utils.striterators.Striterator; Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/BlockingBuffer.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/BlockingBuffer.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/BlockingBuffer.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -50,9 +50,10 @@ import com.bigdata.rdf.store.BigdataStatementIteratorImpl; import com.bigdata.relation.rule.IQueryOptions; import com.bigdata.relation.rule.IRule; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.util.InnerCause; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * <p> * A buffer that will block when it is full. You write elements on the buffer Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/ChunkConsumerIterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/ChunkConsumerIterator.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/ChunkConsumerIterator.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -6,9 +6,10 @@ import org.apache.log4j.Logger; import com.bigdata.striterator.IChunkedOrderedIterator; -import com.bigdata.striterator.ICloseableIterator; import com.bigdata.striterator.IKeyOrder; +import cutthecrap.utils.striterators.ICloseableIterator; + /** * A class that aligns a buffer of <code>E[]</code>s (a buffer of chunks) with * an {@link IChunkedOrderedIterator}. Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/EmptyCloseableIterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/EmptyCloseableIterator.java 2013-09-12 12:35:35 UTC (rev 7395) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/EmptyCloseableIterator.java 2013-09-12 13:53:51 UTC (rev 7396) @@ -29,7 +29,7 @@ import java.util.NoSuchElementException; ... [truncated message content] |
From: <tho...@us...> - 2013-09-12 12:35:42
|
Revision: 7395 http://bigdata.svn.sourceforge.net/bigdata/?rev=7395&view=rev Author: thompsonbry Date: 2013-09-12 12:35:35 +0000 (Thu, 12 Sep 2013) Log Message: ----------- Javadoc on AccessPath.MAX_FULLY_BUFFERED_READ_LIMIT See #606 Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/AccessPath.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/AccessPath.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/AccessPath.java 2013-09-11 14:23:53 UTC (rev 7394) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/relation/accesspath/AccessPath.java 2013-09-12 12:35:35 UTC (rev 7395) @@ -193,7 +193,12 @@ * limit. * * FIXME Array limits in truth maintenance code. This should probably be - * close to the branching factor or chunk capacity. + * close to the branching factor or chunk capacity. It has been temporarily + * raised to a very large value in order to support truth maintenance where + * the code assumes access to the fully buffered result. That change needs + * to be examined for an impact on query performance. It is effectively + * forcing all access path reads to be fully buffered rather than using an + * asynchronous iterator pattern. * * @see <a href="https://sourceforge.net/apps/trac/bigdata/ticket/606"> * Array limits in truth maintenance code. </a> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-11 14:24:00
|
Revision: 7394 http://bigdata.svn.sourceforge.net/bigdata/?rev=7394&view=rev Author: thompsonbry Date: 2013-09-11 14:23:53 +0000 (Wed, 11 Sep 2013) Log Message: ----------- modified to allow runs against the SAIL or bigdata backends. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/gas/build.xml Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/gas/build.xml =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/gas/build.xml 2013-09-10 15:31:04 UTC (rev 7393) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-perf/gas/build.xml 2013-09-11 14:23:53 UTC (rev 7394) @@ -28,8 +28,8 @@ </target> <target name="run-gas-engine" - description="Run a GAS Engine performance test."> - <java classname="com.bigdata.rdf.graph.impl.GASRunner" + description="Run a Bigdata GAS Engine performance test."> + <java classname="com.bigdata.rdf.graph.impl.bd.BigdataGASRunner" fork="true" failonerror="true" > <arg line="-bufferMode ${bufferMode} -namespace ${namespace} -seed ${seed} -nsamples ${nsamples} -nthreads ${nthreads} ${scheduler} ${load} com.bigdata.rdf.graph.analytics.${analytic} ${journalPropertyFile}" /> @@ -41,4 +41,17 @@ </java> </target> + <target name="run-sail-gas-engine" + description="Run a SAIL GAS Engine performance test."> + <java classname="com.bigdata.rdf.graph.impl.sail.SAILGASRunner" + fork="true" failonerror="true" + > + <arg line="-seed ${seed} -nsamples ${nsamples} -nthreads ${nthreads} ${scheduler} ${load} com.bigdata.rdf.graph.analytics.${analytic} ${journalPropertyFile}" /> + <jvmarg line="${jvmArgs}" /> + <classpath> + <path refid="runtime.classpath" /> + </classpath> + </java> + </target> + </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-10 15:31:13
|
Revision: 7393 http://bigdata.svn.sourceforge.net/bigdata/?rev=7393&view=rev Author: thompsonbry Date: 2013-09-10 15:31:04 +0000 (Tue, 10 Sep 2013) Log Message: ----------- Refactored the GASRunner into a base class and derived a BigdataGASRunner and a SAILGASRunner from it. Initial performance with the memory sail does not look very good. About 1/2 of the throughput that we observe with bigdata. I am going to try this on a machine with more RAM and see how that helps. See #629 (Graph mining API) Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASProgram.java Added Paths: ----------- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASRunner.java branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/GASRunnerBase.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASRunner.java Removed Paths: ------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/GASRunner.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASProgram.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASProgram.java 2013-09-10 13:55:55 UTC (rev 7392) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASProgram.java 2013-09-10 15:31:04 UTC (rev 7393) @@ -32,6 +32,7 @@ * the generic type for the per-edge state, but that is not always * true. The SUM type is scoped to the GATHER + SUM operation (NOT * the computation). + * * @author <a href="mailto:tho...@us...">Bryan Thompson</a> */ public interface IGASProgram<VS, ES, ST> extends IGASOptions<VS, ES, ST> { Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASRunner.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASRunner.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASRunner.java 2013-09-10 15:31:04 UTC (rev 7393) @@ -0,0 +1,181 @@ +package com.bigdata.rdf.graph.impl.sail; + +import java.util.concurrent.atomic.AtomicInteger; + +import org.apache.log4j.Logger; +import org.openrdf.model.Resource; +import org.openrdf.sail.Sail; +import org.openrdf.sail.SailConnection; +import org.openrdf.sail.SailException; +import org.openrdf.sail.memory.MemoryStore; + +import com.bigdata.rdf.graph.IGASEngine; +import com.bigdata.rdf.graph.IGraphAccessor; +import com.bigdata.rdf.graph.impl.sail.SAILGASEngine.SAILGraphAccessor; +import com.bigdata.rdf.graph.impl.util.GASRunnerBase; +import com.bigdata.rdf.graph.util.GASUtil; + +/** + * Class for running GAS performance tests against the SAIL. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + */ +public class SAILGASRunner<VS, ES, ST> extends GASRunnerBase<VS, ES, ST> { + + private static final Logger log = Logger.getLogger(SAILGASRunner.class); + + public SAILGASRunner(String[] args) throws ClassNotFoundException { + super(args); + } + + protected class SAILOptionData extends GASRunnerBase<VS, ES, ST>.OptionData { + + private Sail sail = null; + + private SailConnection cxn = null; + + @Override + public void init() throws Exception { + + super.init(); + + sail = new MemoryStore(); + + sail.initialize(); + + cxn = sail.getConnection(); + + } + + @Override + public void shutdown() { + + if (cxn != null) { + + try { + + cxn.close(); + + } catch (SailException e) { + + log.error(e, e); + + } finally { + + cxn = null; + + } + + } + + if (sail != null) { + + try { + + sail.shutDown(); + + } catch (SailException e) { + + log.error(e,e); + + } finally { + + sail = null; + + } + + } + + } + @Override + public boolean handleArg(final AtomicInteger i, final String[] args) { + if (super.handleArg(i, args)) { + return true; + } +// final String arg = args[i.get()]; +// if (arg.equals("-bufferMode")) { +// final String s = args[i.incrementAndGet()]; +// bufferModeOverride = BufferMode.valueOf(s); +// } else if (arg.equals("-namespace")) { +// final String s = args[i.incrementAndGet()]; +// namespaceOverride = s; +// } else { +// return false; +// } + return false; + } + + @Override + public void report(final StringBuilder sb) { + // NOP + } + + } // class SAILOptionData + + @Override + protected SAILOptionData newOptionData() { + + return new SAILOptionData(); + + } + + @Override + protected IGASEngine newGASEngine() { + + return new SAILGASEngine(getOptionData().nthreads); + + } + + @Override + protected void loadFiles() throws Exception { + + final SAILOptionData opt = getOptionData(); + final String[] resources = opt.loadSet.toArray(new String[0]); + + boolean ok = false; + SailConnection cxn = null; + try { + cxn = opt.cxn; + new GASUtil().loadGraph(cxn, null/* fallback */, resources); + cxn.commit(); + ok = true; + } finally { + if (cxn != null) { + if (!ok) + cxn.rollback(); + // Note: using the same connection, so don't close here. +// cxn.close(); + } + } + + } + + @SuppressWarnings("unchecked") + @Override + protected SAILOptionData getOptionData() { + + return (SAILOptionData) super.getOptionData(); + + } + + @Override + protected IGraphAccessor newGraphAccessor() { + + return new SAILGraphAccessor(getOptionData().cxn, + false/* includeInferred */, new Resource[0]/* defaultContext */); + + } + + /** + * Performance testing harness. + * + * @see #GASRunner(String[]) + */ + @SuppressWarnings("rawtypes") + public static void main(final String[] args) throws Exception { + + new SAILGASRunner(args).call(); + + } + +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/GASRunnerBase.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/GASRunnerBase.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/GASRunnerBase.java 2013-09-10 15:31:04 UTC (rev 7393) @@ -0,0 +1,464 @@ +package com.bigdata.rdf.graph.impl.util; + +import java.lang.reflect.Constructor; +import java.util.LinkedHashSet; +import java.util.Random; +import java.util.concurrent.Callable; +import java.util.concurrent.atomic.AtomicInteger; + +import org.apache.log4j.Logger; +import org.openrdf.model.Value; + +import com.bigdata.rdf.graph.IGASContext; +import com.bigdata.rdf.graph.IGASEngine; +import com.bigdata.rdf.graph.IGASProgram; +import com.bigdata.rdf.graph.IGASScheduler; +import com.bigdata.rdf.graph.IGASSchedulerImpl; +import com.bigdata.rdf.graph.IGASState; +import com.bigdata.rdf.graph.IGASStats; +import com.bigdata.rdf.graph.IGraphAccessor; +import com.bigdata.rdf.graph.impl.GASEngine; +import com.bigdata.rdf.graph.impl.GASState; +import com.bigdata.rdf.graph.impl.GASStats; + +/** + * Base class for running performance tests. + * + * @param <VS> + * The generic type for the per-vertex state. This is scoped to the + * computation of the {@link IGASProgram}. + * @param <ES> + * The generic type for the per-edge state. This is scoped to the + * computation of the {@link IGASProgram}. + * @param <ST> + * The generic type for the SUM. This is often directly related to + * the generic type for the per-edge state, but that is not always + * true. The SUM type is scoped to the GATHER + SUM operation (NOT + * the computation). + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + * + * TODO Do we need a different driver if the algorithm always visits all + * vertices? For such algorithms, we just run them once per graph + * (unless the graph is dynamic). + */ +//* @param <GE> +//* The generic type for the {@link IGASEngine}. +//* @param <BE> +//* The generic type for the backend implementation. + +public abstract class GASRunnerBase<VS, ES, ST> implements + Callable<IGASStats> { + + private static final Logger log = Logger.getLogger(GASRunnerBase.class); + + /** + * Configured options for the {@link GASRunner}. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + */ + protected class OptionData { + /** + * The seed used for the random number generator (default {@value #seed} + * ). + */ + public long seed = 217L; + /** + * Random number generated used for sampling the starting vertices. Set + * by #init(). + */ + public Random r = null; + /** + * The #of random starting vertices to use. + */ + public int nsamples = 100; + /** + * The #of threads to use for GATHER and SCATTER operators. + */ + public int nthreads = 4; + /** + * The analytic class to be executed. + */ + public Class<IGASProgram<VS, ES, ST>> analyticClass; + /** + * The {@link IGASSchedulerImpl} class to use. + * + * TODO Override or always? If always, then where to get the default? + */ + public Class<IGASSchedulerImpl> schedulerClassOverride; + + /** Set of files to load (may be empty). */ + public final LinkedHashSet<String> loadSet = new LinkedHashSet<String>(); + + /** The name of the implementation specific configuration file. */ + public String propertyFile; + + protected OptionData() { + + } + + /** + * Initialize any resources, including the connection to the backend. + */ + public void init() throws Exception { + + // Setup the random number generator. + this.r = new Random(seed); + + r = new Random(seed); + + } + + /** + * Shutdown any resources, including the connection to the backend. + * <p> + * Note: This method must be safe. It may be called if {@link #init()} + * fails. It may be called more than once. + */ + public void shutdown() { + + } + + /** + * Return <code>true</code>iff one or more arguments can be parsed + * starting at the specified index. + * + * @param i + * The index into the arguments. + * @param args + * The arguments. + * @return <code>true</code> iff any arguments were recognized. + */ + public boolean handleArg(final AtomicInteger i, final String[] args) { + + return false; + + } + + /** + * Print the optional message on stderr, print the usage information on + * stderr, and then force the program to exit with the given status code. + * + * @param status + * The status code. + * @param msg + * The optional message + */ + public void usage(final int status, final String msg) { + + if (msg != null) { + + System.err.println(msg); + + } + + System.err.println("[options] analyticClass propertyFile"); + + System.exit(status); + + } + + /** + * Extension hook for reporting at the end of the test run. + * + * @param sb A buffer into which more information may be appended. + */ + public void report(final StringBuilder sb) { + + // NOP + + } + + } // class OptionData + + /** + * The configuration metadata for the run. + */ + private final OptionData opt; + + /** + * Factory for the {@link OptionData}. + */ + abstract protected OptionData newOptionData(); + + /** + * The {@link OptionData} for the run. + */ + protected OptionData getOptionData() { + + return opt; + + } + + /** + * Factory for the {@link IGASEngine}. + */ + abstract protected IGASEngine newGASEngine(); + + /** + * Load files into the backend if they can not be assumed to already exist + * (a typical pattern is that files are loaded into an empty KB instance, + * but not loaded into a pre-existing one). + * + * @throws Exception + */ + abstract protected void loadFiles() throws Exception; + + /** + * Run a GAS analytic against some data set. + * + * @param args + * USAGE:<br/> + * <code>(options) analyticClass propertyFile</code> + * <p> + * <i>Where:</i> + * <dl> + * <dt>propertyFile</dt> + * <dd>The implementation specific property file or other type of + * configuration file.</dd> + * </dl> + * and <i>options</i> are any of: + * <dl> + * <dt>-nthreads</dt> + * <dd>The #of threads which will be used for GATHER and SCATTER + * operations.</dd> + * <dt>-nsamples</dt> + * <dd>The #of random sample starting vertices that will be + * selected. The algorithm will be run ONCE for EACH sampled + * vertex.</dd> + * <dt>-seed</dt> + * <dd>The seed for the random number generator (default is + * <code>217L</code>).</dd> + * <dt>-schedulerClass</dt> + * <dd>Override the default {@link IGASScheduler}. Class must + * implement {@link IGASSchedulerImpl}.</dd> + * <dt>-load</dt> + * <dd>Loads the named resource IFF the KB is empty (or does not + * exist) at the time this utility is executed. This option may + * appear multiple times. The resources will be searched for as + * URLs, on the CLASSPATH, and in the file system.</dd> + * </p> + * @throws ClassNotFoundException + */ + public GASRunnerBase(final String[] args) throws ClassNotFoundException { + + final OptionData opt = newOptionData(); + + /* + * Handle all arguments starting with "-". These should appear before + * any non-option arguments to the program. + */ + final AtomicInteger i = new AtomicInteger(0); + while (i.get() < args.length) { + final String arg = args[i.get()]; + if (arg.startsWith("-")) { + if (arg.equals("-seed")) { + opt.seed = Long.valueOf(args[i.incrementAndGet()]); + } else if (arg.equals("-nsamples")) { + final String s = args[i.incrementAndGet()]; + opt.nsamples = Integer.valueOf(s); + if (opt.nsamples <= 0) { + opt.usage(1/* status */, + "-nsamples must be positive, not: " + s); + } + } else if (arg.equals("-nthreads")) { + final String s = args[i.incrementAndGet()]; + opt.nthreads = Integer.valueOf(s); + if (opt.nthreads < 0) { + opt.usage(1/* status */, + "-nthreads must be non-negative, not: " + s); + } + } else if (arg.equals("-schedulerClass")) { + final String s = args[i.incrementAndGet()]; + opt.schedulerClassOverride = (Class<IGASSchedulerImpl>) Class.forName(s); + } else if (arg.equals("-load")) { + final String s = args[i.incrementAndGet()]; + opt.loadSet.add(s); + } else { + if (!opt.handleArg(i, args)) { + opt.usage(1/* status */, "Unknown argument: " + arg); + } + } + } else { + break; + } + i.incrementAndGet(); + } + + /* + * Check for the remaining (required) argument(s). + */ + final int nremaining = args.length - i.get(); + if (nremaining != 2) { + /* + * There are either too many or too few arguments remaining. + */ + opt.usage(1/* status */, nremaining < 1 ? "Too few arguments." + : "Too many arguments"); + } + + /* + * The analytic to be executed. + */ + { + + final String s = args[i.getAndIncrement()]; + + opt.analyticClass = (Class<IGASProgram<VS, ES, ST>>) Class + .forName(s); + + } + + /* + * Property file. + */ + opt.propertyFile = args[i.getAndIncrement()]; + + this.opt = opt; // assign options. + + } + + /** + * Return the object used to access the as-configured graph. + */ + abstract protected IGraphAccessor newGraphAccessor(); + + /** + * Return an instance of the {@link IGASProgram} to be evaluated. + */ + protected IGASProgram<VS, ES, ST> newGASProgram() { + + final Class<IGASProgram<VS, ES, ST>> cls = (Class<IGASProgram<VS, ES, ST>>)opt.analyticClass; + + try { + + final Constructor<IGASProgram<VS, ES, ST>> ctor = cls + .getConstructor(new Class[] {}); + + final IGASProgram<VS, ES, ST> gasProgram = ctor + .newInstance(new Object[] {}); + + return gasProgram; + + } catch (Exception e) { + + throw new RuntimeException(e); + + } + + } + + /** + * Run the test. + * <p> + * This provides a safe pattern for either loading data into a temporary + * journal, which is then destroyed, or using an exiting journal and + * optionally loading in some data set. When we load the data the journal is + * destroyed afterwards and when the journal is pre-existing and we neither + * load the data nor destroy the journal. This has to do with the effective + * BufferMode (if transient) and whether the file is specified and whether a + * temporary file is created (CREATE_TEMP_FILE). If we do our own file + * create if the effective buffer mode is non-transient, then we can get all + * this information. + */ + @Override + final public IGASStats call() throws Exception { + + try { + + // initialize backend / connection to backend. + opt.init(); + + // Load data sets + loadFiles(); + + // Run GAS program. + return runAnalytic(); + + } finally { + + // Shutdown backend / connection to backend. + opt.shutdown(); + + } + + } + + /** + * Run the analytic. + * + * @return The performance statistics for the run. + * + * @throws Exception + */ + final protected IGASStats runAnalytic() throws Exception { + + final IGASEngine gasEngine = newGASEngine(); + + try { + + if (opt.schedulerClassOverride != null) { + + ((GASEngine) gasEngine) + .setSchedulerClass(opt.schedulerClassOverride); + + } + + final IGASProgram<VS, ES, ST> gasProgram = newGASProgram(); + + final IGraphAccessor graphAccessor = newGraphAccessor(); + + final IGASContext<VS, ES, ST> gasContext = gasEngine.newGASContext( + graphAccessor, gasProgram); + + final IGASState<VS, ES, ST> gasState = gasContext.getGASState(); + + final VertexDistribution dist = graphAccessor.getDistribution(opt.r); + + final Value[] samples = dist.getWeightedSample(opt.nsamples); + + final IGASStats total = new GASStats(); + + for (int i = 0; i < samples.length; i++) { + + final Value startingVertex = samples[i]; + + gasState.init(startingVertex); + + final IGASStats stats = (IGASStats) gasContext.call(); + + total.add(stats); + + if (log.isInfoEnabled()) { + log.info("Run complete: vertex[" + i + "] of " + + samples.length + " : startingVertex=" + + startingVertex + ", stats(sample)=" + stats); + } + + } + + // Total over all sampled vertices. + final StringBuilder sb = new StringBuilder(); + sb.append("TOTAL"); + sb.append(": analytic=" + gasProgram.getClass().getSimpleName()); + sb.append(", nseed=" + opt.seed); + sb.append(", nsamples=" + opt.nsamples); + sb.append(", nthreads=" + opt.nthreads); + sb.append(", scheduler=" + ((GASState<VS, ES, ST>)gasState).getScheduler().getClass().getSimpleName()); + sb.append(", gasEngine=" + gasEngine.getClass().getSimpleName()); + opt.report(sb); // extension hook. + // performance results. + sb.append(", stats(total)=" + total); + System.out.println(sb); + + return total; + + } finally { + + gasEngine.shutdownNow(); + + } + + } + +} Copied: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASRunner.java (from rev 7382, branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/GASRunner.java) =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASRunner.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASRunner.java 2013-09-10 15:31:04 UTC (rev 7393) @@ -0,0 +1,544 @@ +package com.bigdata.rdf.graph.impl.bd; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.lang.reflect.Constructor; +import java.util.Properties; +import java.util.concurrent.atomic.AtomicInteger; + +import org.apache.log4j.Logger; +import org.openrdf.sail.SailConnection; + +import com.bigdata.Banner; +import com.bigdata.journal.BufferMode; +import com.bigdata.journal.ITx; +import com.bigdata.journal.Journal; +import com.bigdata.rdf.graph.IGASProgram; +import com.bigdata.rdf.graph.IGraphAccessor; +import com.bigdata.rdf.graph.impl.bd.BigdataGASEngine.BigdataGraphAccessor; +import com.bigdata.rdf.graph.impl.util.GASRunnerBase; +import com.bigdata.rdf.graph.util.GASUtil; +import com.bigdata.rdf.sail.BigdataSail; +import com.bigdata.rdf.store.AbstractTripleStore; + +/** + * Base class for running performance tests against the bigdata backend. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + */ +public class BigdataGASRunner<VS, ES, ST> extends GASRunnerBase<VS, ES, ST> { + + private static final Logger log = Logger.getLogger(BigdataGASRunner.class); + + /** + * Configured options for the {@link GASRunner}. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + */ + protected class BigdataOptionData extends + GASRunnerBase<VS, ES, ST>.OptionData { + + /** + * The {@link BufferMode} to use. + */ + private BufferMode bufferModeOverride = null; // override only. + + /** + * The namespace of the bigdata KB instance. + */ + private String namespaceOverride = "kb"; + + /** + * The as-configured {@link Properties} for the {@link Journal}. + */ + private Properties properties; + + /** + * The effective KB name. This is set by consulting + * {@link #namespaceOverride} and the as configured {@link #properties}. + */ + private String namespace; + + /** + * The backend. + * + * TODO Could start NSS and use SPARQL UPDATE "LOAD" to load the data. + * That exposes the SPARQL end point for other purposes during the test. + * Is this useful? It could also let us run the GASEngine on a remote + * service (submit a callable to an HA server or define a REST API for + * submitting these GAS algorithms). + */ + private Journal jnl; + + /** + * <code>true</code> iff the backend is temporary (created on a + * temporary backing file). Temporary backends are destroyed in + * {@link #shutdown()}. + */ + private boolean isTemporary; + + /** + * Set to <code>true</code> iff we determine that the data needs to be + * loaded (e.g., the KB was empty, so we have to load the data sets). + * + * TODO Rename for clearer semantics. Basically, do we have to load the + * data files or can we assume that the data are already loaded. Lift + * into base class? + */ + private boolean newKB = false; + + /** + * The #of edges in the KB instance and <code>-1</code> until set by + * {@link BigdataGASRunner#loadFiles()}. + */ + private long nedges = -1; + + protected BigdataOptionData() { + + super(); + + } + + private Properties getProperties(final String resource) throws IOException { + + if (log.isInfoEnabled()) + log.info("Reading properties: " + resource); + + InputStream is = null; + try { + + // try the classpath + is = getClass().getResourceAsStream(resource); + + if (is != null) { + + } else { + + // try file system. + final File file = new File(resource); + + if (file.exists()) { + + is = new FileInputStream(file); + + } else { + + throw new IOException("Could not locate resource: " + + resource); + + } + + } + + /* + * Obtain a buffered reader on the input stream. + */ + + final Properties properties = new Properties(); + + final Reader reader = new BufferedReader(new InputStreamReader(is)); + + try { + + properties.load(reader); + + } finally { + + try { + + reader.close(); + + } catch (Throwable t) { + + log.error(t); + + } + + } + + /* + * Allow override of select options from the command line. + */ + { + final String[] overrides = new String[] { + // Journal options. + com.bigdata.journal.Options.FILE, +// // RDFParserOptions. +// RDFParserOptions.Options.DATATYPE_HANDLING, +// RDFParserOptions.Options.PRESERVE_BNODE_IDS, +// RDFParserOptions.Options.STOP_AT_FIRST_ERROR, +// RDFParserOptions.Options.VERIFY_DATA, +// // DataLoader options. +// DataLoader.Options.BUFFER_CAPACITY, +// DataLoader.Options.CLOSURE, +// DataLoader.Options.COMMIT, +// DataLoader.Options.FLUSH, + }; + for (String s : overrides) { + if (System.getProperty(s) != null) { + // Override/set from the environment. + final String v = System.getProperty(s); + if (log.isInfoEnabled()) + log.info("OVERRIDE:: Using: " + s + "=" + v); + properties.setProperty(s, v); + } + } + } + + return properties; + + } finally { + + if (is != null) { + + try { + + is.close(); + + } catch (Throwable t) { + + log.error(t); + + } + + } + + } + + } + + /** + * Initialization after all arguments have been set. + */ + @Override + public void init() throws Exception { + + super.init(); + + properties = getProperties(propertyFile); + + /* + * Note: Allows override through the command line argument. The default + * is otherwise the default and the value in the properties file (if + * any) will be used unless it is overridden. + */ + final BufferMode bufferMode = bufferModeOverride == null ? BufferMode + .valueOf(properties.getProperty(Journal.Options.BUFFER_MODE, + Journal.Options.DEFAULT_BUFFER_MODE)) : bufferModeOverride; + + properties.setProperty(Journal.Options.BUFFER_MODE, bufferMode.name()); + + final boolean isTransient = !bufferMode.isStable(); + + if (isTransient) { + + isTemporary = true; + + } else { + + final String fileStr = properties.getProperty(Journal.Options.FILE); + + if (fileStr == null) { + + /* + * We will use a temporary file that we create here. The journal + * will be destroyed below. + */ + isTemporary = true; + + final File tmpFile = File.createTempFile( + BigdataGASRunner.class.getSimpleName(), + Journal.Options.JNL); + + // Set this on the Properties so it will be used by the jnl. + properties.setProperty(Journal.Options.FILE, + tmpFile.getAbsolutePath()); + + } else { + + // real file is named. + isTemporary = false; + + } + + } + + // The effective KB name. + namespace = namespaceOverride == null ? properties + .getProperty(BigdataSail.Options.NAMESPACE, + BigdataSail.Options.DEFAULT_NAMESPACE) : namespaceOverride; + + properties.setProperty(BigdataSail.Options.NAMESPACE, namespace); + + // Open Journal. + jnl = new Journal(properties); + + // Locate/create KB. + { + final AbstractTripleStore kb; + if (isTemporary) { + + kb = BigdataSail.createLTS(jnl, properties); + newKB = true; + + } else { + + final AbstractTripleStore tmp = (AbstractTripleStore) jnl + .getResourceLocator().locate(namespace, + ITx.UNISOLATED); + + if (tmp == null) { + + // create. + kb = BigdataSail.createLTS(jnl, properties); + newKB = true; + + } else { + + kb = tmp; + newKB = kb.getStatementCount() == 0L; + + } + + } + } + } + + @Override + public void shutdown() { + + if (jnl != null) { + + if (isTemporary) { + + log.warn("Destroying temporary journal."); + + jnl.destroy(); + + } else { + + jnl.close(); + + } + + } + + super.shutdown(); + + } + + /** + * Return <code>true</code>iff one or more arguments can be parsed + * starting at the specified index. + * + * @param i + * The index into the arguments. + * @param args + * The arguments. + * @return <code>true</code> iff any arguments were recognized. + */ + @Override + public boolean handleArg(final AtomicInteger i, final String[] args) { + if (super.handleArg(i, args)) { + return true; + } + final String arg = args[i.get()]; + if (arg.equals("-bufferMode")) { + final String s = args[i.incrementAndGet()]; + bufferModeOverride = BufferMode.valueOf(s); + } else if (arg.equals("-namespace")) { + final String s = args[i.incrementAndGet()]; + namespaceOverride = s; + } else { + return false; + } + return true; + } + + /** + * {@inheritDoc} + * + * TODO report #of vertices (DISTINCT UNION (?s, ?o) + * + * TODO What happened to the predicate summary/histogram/distribution + * code? + */ + @Override + public void report(final StringBuilder sb) { + sb.append(", edges(kb)=" + nedges); + sb.append(", namespace=" + namespace);// + sb.append(", bufferMode=" + jnl.getBufferStrategy().getBufferMode()); + } + } + + /** + * Factory for the {@link OptionData}. + */ + @Override + protected OptionData newOptionData() { + + return new BigdataOptionData(); + + } + + @Override + protected BigdataGASEngine newGASEngine() { + + final BigdataOptionData opt = getOptionData(); + + return new BigdataGASEngine(opt.jnl, opt.nthreads); + + } + + @Override + protected IGraphAccessor newGraphAccessor() { + + final BigdataOptionData opt = getOptionData(); + + /* + * Use a read-only view (sampling depends on access to the BTree rather + * than the ReadCommittedIndex). + */ + final BigdataGraphAccessor graphAccessor = new BigdataGraphAccessor( + opt.jnl, opt.namespace, opt.jnl.getLastCommitTime()); + + return graphAccessor; + + } + + @SuppressWarnings("unchecked") + @Override + protected BigdataOptionData getOptionData() { + + return (BigdataOptionData) super.getOptionData(); + + } + + /** + * Run a GAS analytic against some data set. + * + * @param args + * USAGE:<br/> + * <code>(options) analyticClass propertyFile</code> + * <p> + * <i>Where:</i> + * <dl> + * <dt>propertyFile</dt> + * <dd>A java properties file for a standalone {@link Journal}.</dd> + * </dl> + * and <i>options</i> are any of the options defined for the + * {@link GASRunnerBase} PLUS any of: + * <dl> + * <dt>-bufferMode</dt> + * <dd>Overrides the {@link BufferMode} (if any) specified in the + * <code>propertyFile</code>.</dd> + * <dt>-namespace</dt> + * <dd>The namespace of the default SPARQL endpoint (the + * namespace will be <code>kb</code> if none was specified when + * the triple/quad store was created).</dd> + * </p> + * @throws ClassNotFoundException + */ + public BigdataGASRunner(final String[] args) throws ClassNotFoundException { + + super(args); + + Banner.banner(); + + } + + /** + * Return an instance of the {@link IGASProgram} to be evaluated. + */ + protected IGASProgram<VS, ES, ST> newGASProgram() { + + final Class<IGASProgram<VS, ES, ST>> cls = getOptionData().analyticClass; + + try { + + final Constructor<IGASProgram<VS, ES, ST>> ctor = cls + .getConstructor(new Class[] {}); + + final IGASProgram<VS, ES, ST> gasProgram = ctor + .newInstance(new Object[] {}); + + return gasProgram; + + } catch (Exception e) { + + throw new RuntimeException(e); + + } + + } + + @Override + public void loadFiles() throws IOException { + + final BigdataOptionData opt = getOptionData(); + + final Journal jnl = opt.jnl; + final String namespace = opt.namespace; + final String[] loadSet = opt.loadSet.toArray(new String[0]); + + // Load data using the unisolated view. + final AbstractTripleStore kb = (AbstractTripleStore) jnl + .getResourceLocator().locate(namespace, ITx.UNISOLATED); + + if (opt.newKB && loadSet.length > 0) { + + final BigdataSail sail = new BigdataSail(kb); + try { + try { + sail.initialize(); + loadFiles(sail, loadSet); + } finally { + if (sail.isOpen()) + sail.shutDown(); + } + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } + + // total #of edges in that graph. + opt.nedges = kb.getStatementCount(); + + } + + private void loadFiles(final BigdataSail sail, final String[] loadSet) + throws Exception { + boolean ok = false; + final SailConnection cxn = sail.getUnisolatedConnection(); + try { + for (String f : loadSet) { + new GASUtil() + .loadGraph(cxn, null/* fallback */, f/* resource */); + } + cxn.commit(); + ok = true; + } finally { + if (!ok) + cxn.rollback(); + cxn.close(); + } + } + + /** + * Performance testing harness. + * + * @see #GASRunner(String[]) + */ + @SuppressWarnings("rawtypes") + public static void main(final String[] args) throws Exception { + + new BigdataGASRunner(args).call(); + + } + +} Deleted: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/GASRunner.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/GASRunner.java 2013-09-10 13:55:55 UTC (rev 7392) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/GASRunner.java 2013-09-10 15:31:04 UTC (rev 7393) @@ -1,737 +0,0 @@ -package com.bigdata.rdf.graph.impl.bd; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.lang.reflect.Constructor; -import java.util.LinkedHashSet; -import java.util.Properties; -import java.util.Random; -import java.util.concurrent.Callable; - -import org.apache.log4j.Logger; -import org.openrdf.model.Value; -import org.openrdf.sail.SailConnection; - -import com.bigdata.Banner; -import com.bigdata.journal.BufferMode; -import com.bigdata.journal.ITx; -import com.bigdata.journal.Journal; -import com.bigdata.rdf.graph.IGASContext; -import com.bigdata.rdf.graph.IGASEngine; -import com.bigdata.rdf.graph.IGASProgram; -import com.bigdata.rdf.graph.IGASScheduler; -import com.bigdata.rdf.graph.IGASSchedulerImpl; -import com.bigdata.rdf.graph.IGASState; -import com.bigdata.rdf.graph.IGASStats; -import com.bigdata.rdf.graph.impl.GASEngine; -import com.bigdata.rdf.graph.impl.GASState; -import com.bigdata.rdf.graph.impl.GASStats; -import com.bigdata.rdf.graph.impl.bd.BigdataGASEngine.BigdataGraphAccessor; -import com.bigdata.rdf.graph.impl.util.VertexDistribution; -import com.bigdata.rdf.graph.util.GASUtil; -import com.bigdata.rdf.sail.BigdataSail; -import com.bigdata.rdf.store.AbstractTripleStore; - -/** - * Base class for running performance tests. - * - * @author <a href="mailto:tho...@us...">Bryan Thompson</a> - * - * TODO Do we need a different driver if the algorithm always visits all - * vertices? For such algorithms, we just run them once per graph - * (unless the graph is dynamic). - * - * FIXME API: GASRunner needs to use a factory pattern for different - * backends. It should then be moved to the util package and the - * bigdata-gas module. - */ -public class GASRunner<VS, ES, ST> implements Callable<IGASStats> { - - private static final Logger log = Logger.getLogger(GASRunner.class); - - /** - * The seed used for the random number generator. - */ - private final long seed; - - /** - * Random number generated used for sampling the starting vertices. - */ - private final Random r; - - /** - * The #of random starting vertices to use. - */ - private final int nsamples; - - /** - * The #of threads to use for GATHER and SCATTER operators. - */ - private final int nthreads; - - /** - * The analytic class to be executed. - */ - private final Class<IGASProgram<VS, ES, ST>> analyticClass; - - /** - * The property file - */ - private final String propertyFile; - - /** - * When non-<code>null</code>, this overrides the current buffer mode. - */ - private final BufferMode bufferModeOverride; - - /** - * When non-<code>null</code>, this overrides the KB namespace. - */ - private final String namespaceOverride; - - /** - * The {@link IGASSchedulerImpl} class to use. - */ - private final Class<IGASSchedulerImpl> schedulerClassOverride; - - /** - * When non-<code>null</code>, a list of zero or more resources to be - * loaded. The resources will be searched for as URLs, on the CLASSPATH, and - * in the file system. - */ - private final String[] loadSet; - - /** - * Print the optional message on stderr, print the usage information on - * stderr, and then force the program to exit with the given status code. - * - * @param status - * The status code. - * @param msg - * The optional message - */ - private static void usage(final int status, final String msg) { - - if (msg != null) { - - System.err.println(msg); - - } - - System.err.println("[options] analyticClass propertyFile"); - - System.exit(status); - - } - - /** - * Run a GAS analytic against some data set. - * - * @param args - * USAGE:<br/> - * <code>(options) analyticClass propertyFile</code> - * <p> - * <i>Where:</i> - * <dl> - * <dt>propertyFile</dt> - * <dd>A java properties file for a standalone {@link Journal}.</dd> - * </dl> - * and <i>options</i> are any of: - * <dl> - * <dt>-nthreads</dt> - * <dd>The #of threads which will be used for GATHER and SCATTER - * operations.</dd> - * <dt>-nsamples</dt> - * <dd>The #of random sample starting vertices that will be - * selected. The algorithm will be run ONCE for EACH sampled - * vertex.</dd> - * <dt>-seed</dt> - * <dd>The seed for the random number generator (default is - * <code>217L</code>).</dd> - * <dt>-bufferMode</dt> - * <dd>Overrides the {@link BufferMode} (if any) specified in the - * <code>propertyFile</code>.</dd> - * <dt>-schedulerClass</dt> - * <dd>Override the default {@link IGASScheduler}. Class must - * implement {@link IGASSchedulerImpl}.</dd> - * <dt>-namespace</dt> - * <dd>The namespace of the default SPARQL endpoint (the - * namespace will be <code>kb</code> if none was specified when - * the triple/quad store was created).</dd> - * <dt>-load</dt> - * <dd>Loads the named resource IFF the KB is empty (or does not - * exist) at the time this utility is executed. This option may - * appear multiple times. The resources will be searched for as - * URLs, on the CLASSPATH, and in the file system.</dd> - * </p> - * @throws ClassNotFoundException - */ - public GASRunner(final String[] args) throws ClassNotFoundException { - - Banner.banner(); - - long seed = 217L; - int nsamples = 100; - int nthreads = 4; - BufferMode bufferMode = null; // override only. - Class<IGASSchedulerImpl> schedulerClass = null; // override only. - String namespace = "kb"; - // Set of files to load (optional). - LinkedHashSet<String> loadSet = new LinkedHashSet<String>(); - - /* - * Handle all arguments starting with "-". These should appear before - * any non-option arguments to the program. - */ - int i = 0; - while (i < args.length) { - final String arg = args[i]; - if (arg.startsWith("-")) { - if (arg.equals("-seed")) { - seed = Long.valueOf(args[++i]); - } else if (arg.equals("-nsamples")) { - final String s = args[++i]; - nsamples = Integer.valueOf(s); - if (nsamples <= 0) { - usage(1/* status */, - "-nsamples must be positive, not: " + s); - } - } else if (arg.equals("-nthreads")) { - final String s = args[++i]; - nthreads = Integer.valueOf(s); - if (nthreads < 0) { - usage(1/* status */, - "-nthreads must be non-negative, not: " + s); - } - } else if (arg.equals("-bufferMode")) { - final String s = args[++i]; - bufferMode = BufferMode.valueOf(s); - } else if (arg.equals("-schedulerClass")) { - final String s = args[++i]; - schedulerClass = (Class<IGASSchedulerImpl>) Class.forName(s); - } else if (arg.equals("-namespace")) { - final String s = args[++i]; - namespace = s; - } else if (arg.equals("-load")) { - final String s = args[++i]; - loadSet.add(s); - } else { - usage(1/* status */, "Unknown argument: " + arg); - } - } else { - break; - } - i++; - } - - /* - * Check for the remaining (required) argument(s). - */ - final int nremaining = args.length - i; - if (nremaining != 2) { - /* - * There are either too many or too few arguments remaining. - */ - usage(1/* status */, nremaining < 1 ? "Too few arguments." - : "Too many arguments"); - } - - /* - * The analytic to be executed. - */ - { - - final String s = args[i++]; - - this.analyticClass = (Class<IGASProgram<VS, ES, ST>>) Class - .forName(s); - - } - - /* - * Property file. - */ - this.propertyFile = args[i++]; - - /* - * Assign parsed values. - */ - this.seed = seed; - this.nsamples = nsamples; - this.nthreads = nthreads; - this.namespaceOverride = namespace; - this.bufferModeOverride = bufferMode; - this.schedulerClassOverride = schedulerClass; - this.loadSet = loadSet.isEmpty() ? null : loadSet - .toArray(new String[loadSet.size()]); - - // Setup the random number generator. - this.r = new Random(seed); - - } - - /** - * Return an instance of the {@link IGASProgram} to be evaluated. - */ - protected IGASProgram<VS, ES, ST> newGASProgram() { - - final Class<IGASProgram<VS, ES, ST>> cls = analyticClass; - - try { - - final Constructor<IGASProgram<VS, ES, ST>> ctor = cls - .getConstructor(new Class[] {}); - - final IGASProgram<VS, ES, ST> gasProgram = ctor - .newInstance(new Object[] {}); - - return gasProgram; - - } catch (Exception e) { - - throw new RuntimeException(e); - - } - - } - - private Properties getProperties(final String resource) throws IOException { - - if (log.isInfoEnabled()) - log.info("Reading properties: " + resource); - - InputStream is = null; - try { - - // try the classpath - is = getClass().getResourceAsStream(resource); - - if (is != null) { - - } else { - - // try file system. - final File file = new File(resource); - - if (file.exists()) { - - is = new FileInputStream(file); - - } else { - - throw new IOException("Could not locate resource: " - + resource); - - } - - } - - /* - * Obtain a buffered reader on the input stream. - */ - - final Properties properties = new Properties(); - - final Reader reader = new BufferedReader(new InputStreamReader(is)); - - try { - - properties.load(reader); - - } finally { - - try { - - reader.close(); - - } catch (Throwable t) { - - log.error(t); - - } - - } - - /* - * Allow override of select options from the command line. - */ - { - final String[] overrides = new String[] { - // Journal options. - com.bigdata.journal.Options.FILE, -// // RDFParserOptions. -// RDFParserOptions.Options.DATATYPE_HANDLING, -// RDFParserOptions.Options.PRESERVE_BNODE_IDS, -// RDFParserOptions.Options.STOP_AT_FIRST_ERROR, -// RDFParserOptions.Options.VERIFY_DATA, -// // DataLoader options. -// DataLoader.Options.BUFFER_CAPACITY, -// DataLoader.Options.CLOSURE, -// DataLoader.Options.COMMIT, -// DataLoader.Options.FLUSH, - }; - for (String s : overrides) { - if (System.getProperty(s) != null) { - // Override/set from the environment. - final String v = System.getProperty(s); - if (log.isInfoEnabled()) - log.info("OVERRIDE:: Using: " + s + "=" + v); - properties.setProperty(s, v); - } - } - } - - return properties; - - } finally { - - if (is != null) { - - try { - - is.close(); - - } catch (Throwable t) { - - log.error(t); - - } - - } - - } - - } - - /** - * Run the test. - * <p> - * This provides a safe pattern for either loading data into a temporary - * journal, which is then destroyed, or using an exiting journal and - * optionally loading in some data set. When we load the data the journal is - * destroyed afterwards and when the journal is pre-existing and we neither - * load the data nor destroy the journal. This has to do with the effective - * BufferMode (if transient) and whether the file is specified and whether a - * temporary file is created (CREATE_TEMP_FILE). If we do our own file - * create if the effective buffer mode is non-transient, then we can get all - * this information. - */ - public IGASStats call() throws Exception { - - final Properties properties = getProperties(propertyFile); - - /* - * Note: Allows override through the command line argument. The default - * is otherwise the default and the value in the properties file (if - * any) will be used unless it is overridden. - */ - final BufferMode bufferMode = this.bufferModeOverride == null ? BufferMode - .valueOf(properties.getProperty(Journal.Options.BUFFER_MODE, - Journal.Options.DEFAULT_BUFFER_MODE)) : this.bufferModeOverride; - - properties.setProperty(Journal.Options.BUFFER_MODE, bufferMode.name()); - - final boolean isTransient = !bufferMode.isStable(); - - final boolean isTemporary; - if (isTransient) { - - isTemporary = true; - - } else { - - final String fileStr = properties.getProperty(Journal.Options.FILE); - - if (fileStr == null) { - - /* - * We will use a temporary file that we create here. The journal - * will be destroyed below. - */ - isTemporary = true; - - final File tmpFile = File.createTempFile( - GASRunner.class.getSimpleName(), Journal.Options.JNL); - - // Set this on the Properties so it will be used by the jnl. - properties.setProperty(Journal.Options.FILE, - tmpFile.getAbsolutePath()); - - } else { - - // real file is named. - isTemporary = false; - - } - - } - - // The effective KB name. - final String namespace = this.namespaceOverride == null ? properties - .getProperty(BigdataSail.Options.NAMESPACE, - BigdataSail.Options.DEFAULT_NAMESPACE) : this.namespaceOverride; - - properties.setProperty(BigdataSail.Options.NAMESPACE, namespace); - - /* - * TODO Could start NSS and use SPARQL UPDATE "LOAD" to load the data. - * That exposes the SPARQL end point for other purposes during the test. - * Is this useful? It could also let us run the GASEngine on a remote - * service (submit a callable to an HA server or define a REST API for - * submitting these GAS algorithms). - */ - final Journal jnl = new Journal(properties); - - try { - - // Locate/create KB. - final boolean newKB; - { - final AbstractTripleStore kb; - if (isTemporary) { - - kb = BigdataSail.createLTS(jnl, properties); - newKB = true; - - } else { - - final AbstractTripleStore tmp = (AbstractTripleStore) jnl - .getResourceLocator().locate(namespace, - ITx.UNISOLATED); - - if (tmp == null) { - - // create. - kb = BigdataSail.createLTS(jnl, properties); - newKB = true; - - } else { - - kb = tmp; - newKB = kb.getStatementCount() == 0L; - - } - - } - } - - /* - * Load data sets (iff new KB). - */ - if (newKB && (loadSet != null && loadSet.length > 0)) { - - loadFiles(jnl, namespace, loadSet); - - } - - return runAnalytic(jnl, namespace); - - } finally { - - if (isTemporary) { - - log.warn("Destroying temporary journal."); - - jnl.destroy(); - - } else { - - jnl.close(); - - } - - } - - } - - /** - * Load files into the journal. - * - * @param jnl - * The journal. - * @param namespace - * The KB namespace. - * @param loadSet - * The files. - * @throws IOException - */ - private void loadFiles(final Journal jnl, final String namespace, - final String[] loadSet) throws IOException { - - // Load data using the unisolated view. - final AbstractTripleStore kb = (AbstractTripleStore) jnl - .getResourceLocator().locate(namespace, ITx.UNISOLATED); - final BigdataSail sail = new BigdataSail(kb); - try { - try { - sail.initialize(); - boolean ok = false; - final SailConnection cxn = sail.getUnisolatedConnection(); - try { - for (String f : loadSet) { - new GASUtil() - .loadGraph(cxn, null/* fallback */, f/* resource */); - } - cxn.commit(); - ok = true; - } finally { - if (!ok) - cxn.rollback(); - cxn.close(); - } - } finally { - if (sail.isOpen()) - sail.shutDown(); - } - } catch (Exception ex) { - throw new RuntimeException(ex); - } - - // final String path = "bigdata-rdf/src/resources/data/foaf"; - // final String dataFile[] = new String[] {// - // path + "/data-0.nq.gz",// - // path + "/data-1.nq.gz",// - // path + "/data-2.nq.gz",// - // path + "/data-3.nq.gz",// - // }; -// final String baseUrl[] = new String[loadSet.le... [truncated message content] |
From: <mar...@us...> - 2013-09-10 13:56:03
|
Revision: 7392 http://bigdata.svn.sourceforge.net/bigdata/?rev=7392&view=rev Author: martyncutcher Date: 2013-09-10 13:55:55 +0000 (Tue, 10 Sep 2013) Log Message: ----------- Change DumpLogDigests to provide entries for logs that are not found to simplify comparisons between services with different available log files. And register protection with the HALogNexus to avoid file removal while digests are being computed. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/DumpLogDigests.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HALogNexus.java branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3DumpLogs.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/DumpLogDigests.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/DumpLogDigests.java 2013-09-10 13:50:17 UTC (rev 7391) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/DumpLogDigests.java 2013-09-10 13:55:55 UTC (rev 7392) @@ -52,6 +52,7 @@ import com.bigdata.journal.ITransactionService; import com.bigdata.journal.jini.ha.HAClient.HAConnection; import com.bigdata.journal.jini.ha.HALogIndex.IHALogRecord; +import com.bigdata.journal.jini.ha.SnapshotIndex.ISnapshotRecord; import com.bigdata.quorum.Quorum; import com.bigdata.quorum.QuorumClient; @@ -61,8 +62,6 @@ * Accesses Zookeeper state and then connects to each service member to * retrieve log digest information. * - * The states are pinned by starting a read transaction on any of the services. - * * This task will return an object with the transaction reference to be released * and the range of commit counters for the logs to be checked. * @@ -135,7 +134,7 @@ final LogDigestParams params = pinner.submit(new PinLogs(), false).get(); if (log.isInfoEnabled()) - log.info("Pinning startCC: " + params.startCC + ", endCC: " + params.endCC); + log.info("Pinning startCC: " + params.startCC + ", endCC: " + params.endCC + ", last snapshot: " + params.snapshotCC); /** * Now access serviceIDs so that we can use discovery to gain HAGlue interface. @@ -217,18 +216,26 @@ * LogDigestParams with PinLogs and UnpinLogs tasks ensure that * transactions (and logs?) will not be removed while the digests * are computed. - * TODO: Check if this will really pin the logs? + * <p> + * In fact creating a transaction does not protect the halog files, + * which are now protected from removal during a digest computation + * by a protectDigest call on the HALogNexus in GetLogInfo. + * <p> + * TODO: The read transaction is currently retained but should be removed + * if/when it becomes clear that it has no use. */ @SuppressWarnings("serial") static public class LogDigestParams implements Serializable { final public long tx; final public long startCC; final public long endCC; + final public long snapshotCC; - LogDigestParams(final long tx, final long startCC, final long endCC) { + LogDigestParams(final long tx, final long startCC, final long endCC, long sscc) { this.tx = tx; this.startCC = startCC; this.endCC = endCC; + this.snapshotCC = sscc; } } @@ -251,9 +258,14 @@ startCC = logs.next().getCommitCounter(); } else { startCC = endCC; - } + } - return new LogDigestParams(tx, startCC, endCC); + final SnapshotManager ssmgr = ha.getSnapshotManager(); + final ISnapshotRecord rec = ssmgr.getNewestSnapshot(); + final long sscc = rec != null ? rec.getCommitCounter() : -1; + + // return new LogDigestParams(tx, startCC-3, endCC+3); // try asking for more logs than available + return new LogDigestParams(tx, startCC, endCC, sscc); } } @@ -283,7 +295,7 @@ * The GetLogInfo callable is submitted to each service, retrieving a * List of HALogInfo data elements for each commit counter log * requested. - * + * <p> * It is parameterized for start and end commit counters for the logs and * the number of serviceThreads to split the digest computations across. */ @@ -310,6 +322,8 @@ HAJournal ha = (HAJournal) this.getIndexManager(); final HALogNexus nexus = ha.getHALogNexus(); + nexus.protectDigest(startCC); + try { long openCC = nexus.getCommitCounter(); log.warn("Open Commit Counter: " + openCC + ", startCC: " + startCC + ", endCC: " + endCC); @@ -340,11 +354,15 @@ r.computeDigest(digest); - infos.add(new HALogInfo(file.getName(), r.isLive(), digest.digest())); + infos.add(new HALogInfo(cur, r.isLive(), digest.digest())); } catch (FileNotFoundException fnf) { - // half expected + // permitted + infos.add(new HALogInfo(cur, false, null /*digest*/)); } catch (Throwable t) { log.warn("Unexpected error", t); + + // FIXME: what to do here? + infos.add(new HALogInfo(cur, false, "ERROR".getBytes())); } return null; @@ -362,26 +380,40 @@ es.shutdown(); return new ArrayList<HALogInfo>(infos); + } finally { + nexus.releaseProtectDigest(); + } } } @SuppressWarnings("serial") + /** + * If the log does not exist then a null digest is defined. + */ static public class HALogInfo implements Serializable, Comparable<HALogInfo> { - final public String logName; + final public long commitCounter; final public boolean isOpen; final public byte[] digest; - HALogInfo(final String logName, final boolean isOpen, final byte[] bs) { - this.logName = logName; + HALogInfo(final long commitCounter, final boolean isOpen, final byte[] bs) { + this.commitCounter = commitCounter; this.isOpen = isOpen; this.digest = bs; } @Override public int compareTo(HALogInfo other) { - return logName.compareTo(other.logName); + + // should not be same commit counter! + assert commitCounter != other.commitCounter; + + return commitCounter < other.commitCounter ? -1 : 1; } + + public boolean exists() { + return digest != null; + } } /** @@ -406,8 +438,8 @@ StringBuilder sb = new StringBuilder(); sb.append("Service: " + service + "\n"); for (HALogInfo li : logInfos) { - sb.append(li.logName); - sb.append(" " + BytesUtil.toHexString(li.digest)); + sb.append("CC[" + li.commitCounter + "]"); + sb.append(" " + (li.digest == null ? "NOT FOUND" : BytesUtil.toHexString(li.digest))); sb.append(" " + (li.isOpen ? "open" : "closed")); sb.append("\n"); } @@ -436,15 +468,18 @@ } /** - * Two required arguments: - * <HA configuration file> - * <ServiceRoot> - * + * There are two required arguments: + * <li>HA configuration file</li> + * <li>ServiceRoot</li> + * <p> * A third optional argument * "summary" - * which, if present, only generates output for HALogInfo that is different for teh joined services. - * - * The DumpLogDigests dump method returns an Iterator over the halog files. + * which, if present, only generates output for HALogInfo that is different for the joined services. + * <p> + * The DumpLogDigests dump method returns an Iterator over the halog files returning ServiceLog + * objects. + * <p> + * The command line invocation simply writes a string representation of the returned data to standard out. */ static public void main(final String[] args) throws ConfigurationException, IOException, InterruptedException, ExecutionException { if (args.length < 2 || args.length > 3) { @@ -583,6 +618,8 @@ ret.add(haglue); } + client.disconnect(true/*immediate shutdown*/); + return ret; } Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HALogNexus.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HALogNexus.java 2013-09-10 13:50:17 UTC (rev 7391) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/java/com/bigdata/journal/jini/ha/HALogNexus.java 2013-09-10 13:55:55 UTC (rev 7392) @@ -32,6 +32,7 @@ import java.nio.ByteBuffer; import java.util.Arrays; import java.util.Iterator; +import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -114,6 +115,12 @@ * IHAWriteMessage, ByteBuffer) */ volatile IHAWriteMessage lastLiveHAWriteMessage = null; + + /* + * Set to protect log files against deletion while a digest is + * computed. This is checked by deleteHALogs. + */ + private final AtomicLong digestLog = new AtomicLong(-1L); /** * Filter visits all HALog files <strong>except</strong> the current HALog @@ -809,6 +816,21 @@ } /** + * Protects logs from removal while a digest is being computed + * @param earliestDigest + */ + void protectDigest(final long earliestDigest) { + digestLog.set(earliestDigest); + } + + /** + * Releases current protection against log removal + */ + void releaseProtectDigest() { + digestLog.set(-1L); + } + + /** * Delete HALogs that are no longer required. * * @param earliestRetainedSnapshotCommitCounter @@ -832,7 +854,13 @@ final long closingCommitCounter = r.getCommitCounter(); - final boolean deleteFile = closingCommitCounter < earliestRetainedSnapshotCommitCounter; + final boolean deleteFile; + if (closingCommitCounter < earliestRetainedSnapshotCommitCounter) { + // now check if protected by the digestLog field (set to -1 if not active) + deleteFile = digestLog.get() == -1 || closingCommitCounter < digestLog.get(); + } else { + deleteFile = false; + } if (!deleteFile) { Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3DumpLogs.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3DumpLogs.java 2013-09-10 13:50:17 UTC (rev 7391) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestHA3DumpLogs.java 2013-09-10 13:55:55 UTC (rev 7392) @@ -25,6 +25,7 @@ import java.io.PrintWriter; import java.io.StringWriter; +import java.util.Calendar; import java.util.Iterator; import java.util.UUID; @@ -32,7 +33,58 @@ public class TestHA3DumpLogs extends AbstractHA3JournalServerTestCase { - public TestHA3DumpLogs() { + @Override + protected String[] getOverrides() { + + /* + * We need to set the time at which the DefaultSnapshotPolicy runs to + * some point in the Future in order to avoid test failures due to + * violated assumptions when the policy runs up self-triggering (based + * on the specified run time) during a CI run. + */ + final String neverRun = getNeverRunSnapshotTime(); + + return new String[]{ + "com.bigdata.journal.jini.ha.HAJournalServer.restorePolicy=new com.bigdata.journal.jini.ha.DefaultRestorePolicy(0L,1,0)", + "com.bigdata.journal.jini.ha.HAJournalServer.snapshotPolicy=new com.bigdata.journal.jini.ha.DefaultSnapshotPolicy("+neverRun+",0)", + "com.bigdata.journal.jini.ha.HAJournalServer.onlineDisasterRecovery=true" + }; + + } + + /** + * We need to set the time at which the {@link DefaultSnapshotPolicy} runs + * to some point in the future in order to avoid test failures due to + * violated assumptions when the policy runs up self-triggering (based on + * the specified run time) during a CI run. + * <p> + * We do this by adding one hour to [now] and then converting it into the + * 'hhmm' format as an integer. + * + * @return The "never run" time as hhmm. + */ + static protected String getNeverRunSnapshotTime() { + + // Right now. + final Calendar c = Calendar.getInstance(); + + // Plus an hour. + c.add(Calendar.HOUR_OF_DAY, 1); + + // Get the hour. + final int hh = c.get(Calendar.HOUR_OF_DAY); + + // And the minutes. + final int mm = c.get(Calendar.MINUTE); + + // Format as hhmm. + final String neverRun = "" + hh + (mm < 10 ? "0" : "") + mm; + + return neverRun; + + } + + public TestHA3DumpLogs() { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2013-09-10 13:50:24
|
Revision: 7391 http://bigdata.svn.sourceforge.net/bigdata/?rev=7391&view=rev Author: martyncutcher Date: 2013-09-10 13:50:17 +0000 (Tue, 10 Sep 2013) Log Message: ----------- Amend compareBytes to handle null arguments Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/BytesUtil.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/BytesUtil.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/BytesUtil.java 2013-09-04 20:39:14 UTC (rev 7390) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/btree/BytesUtil.java 2013-09-10 13:50:17 UTC (rev 7391) @@ -237,8 +237,18 @@ * ant installer and the result reported. Do the same for ICU4JNI. */ final public static int compareBytes(final byte[] a, final byte[] b) { - if (a == b) + if (a == b) // includes a and b both null return 0; + + // Handle null values + if (a == null) { + return -1; + } + if (b == null) { + return 1; + } + + // neither are null final int alen = a.length; final int blen = b.length; if (linked && alen > minlen && blen > minlen) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jer...@us...> - 2013-09-04 20:39:21
|
Revision: 7390 http://bigdata.svn.sourceforge.net/bigdata/?rev=7390&view=rev Author: jeremy_carroll Date: 2013-09-04 20:39:14 +0000 (Wed, 04 Sep 2013) Log Message: ----------- Fix for trac734 - problem is to do with allowing legal paths when both ends are bound. Including tests in suite. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ArbitraryLengthPathOp.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestAll.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ArbitraryLengthPathOp.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ArbitraryLengthPathOp.java 2013-09-04 20:18:31 UTC (rev 7389) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/java/com/bigdata/bop/paths/ArbitraryLengthPathOp.java 2013-09-04 20:39:14 UTC (rev 7390) @@ -360,8 +360,7 @@ * * :a (:p*)* ?y */ - if (lowerBound == 0 && gearing.outVar != null && - !childSolutionIn.isBound(gearing.outVar)) { + if (lowerBound == 0 && canBind(gearing, childSolutionIn, seed)) { final IBindingSet bs = parentSolutionIn.clone(); @@ -648,6 +647,20 @@ // return runningSubquery; } // processChunk method + + /** + * Is it possible to bind the out of the gearing to the seed? + * This may be because it is an unbound variable, or it may be that it is already the seed + * (either as a const or as a var) + */ + @SuppressWarnings("unchecked") + private boolean canBind(final Gearing gearing, IBindingSet childSolutionIn, IConstant<?> seed) { + if ( gearing.outVar == null ) + return seed.equals(gearing.outConst); + if ( !childSolutionIn.isBound(gearing.outVar) ) + return true; + return seed.equals(childSolutionIn.get(gearing.outVar)); + } /** * Choose forward or reverse gear based on the scematics of the operator Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestAll.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestAll.java 2013-09-04 20:18:31 UTC (rev 7389) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestAll.java 2013-09-04 20:39:14 UTC (rev 7390) @@ -156,6 +156,7 @@ * Tests corresponding to various trouble tickets. */ suite.addTestSuite(TestTickets.class); + suite.addTestSuite(TestTwoPropertyPaths734.class); // test suite for inline constraints: GT, LT, GTE, LTE suite.addTestSuite(TestInlineConstraints.class); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-04 20:18:38
|
Revision: 7389 http://bigdata.svn.sourceforge.net/bigdata/?rev=7389&view=rev Author: thompsonbry Date: 2013-09-04 20:18:31 +0000 (Wed, 04 Sep 2013) Log Message: ----------- I've added a simple InferenceChangeLogReporter. This class may be used to obtain the actual inferences computed during a transaction. I modified the change log listener test suite to also test this this new listener. The present implementation uses a LinkedHashMap to store the ISPOs for the inferences. This should be scalable up to millions of inferences. If very large inferences will be drawn, then we could substitute an HTree index for the LinkedHashMap. The existing NativeDistinctFilter already does exactly this and simply replace the hard coded use of the LinkedHashSet for improved scaling. In this case, the native memory associated with the HTree needs to be released, e.g., through an ICloseable protocol on the change listener. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestChangeSets.java Added Paths: ----------- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/changesets/InferenceChangeLogReporter.java Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/changesets/InferenceChangeLogReporter.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/changesets/InferenceChangeLogReporter.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/changesets/InferenceChangeLogReporter.java 2013-09-04 20:18:31 UTC (rev 7389) @@ -0,0 +1,145 @@ +package com.bigdata.rdf.changesets; + +import java.beans.Statement; +import java.util.LinkedHashSet; +import java.util.Set; + +import org.openrdf.model.Value; + +import com.bigdata.bop.rdf.filter.NativeDistinctFilter; +import com.bigdata.htree.HTree; +import com.bigdata.rdf.internal.IV; +import com.bigdata.rdf.spo.ISPO; +import com.bigdata.rdf.store.AbstractTripleStore; +import com.bigdata.rdf.store.BigdataStatementIterator; +import com.bigdata.rdf.store.BigdataStatementIteratorImpl; +import com.bigdata.striterator.ChunkedWrappedIterator; +import com.bigdata.striterator.IChunkedOrderedIterator; +import com.bigdata.striterator.ICloseable; + +/** + * {@link IChangeLog} implementation reports inferences as RDF {@link Statement} + * s. You install this change listener before writing on the sail connection. + * After the commit, you use {@link #addedIterator()} ( + * {@link #removedIterator()}) to visit the inferences that were added to + * (removed from) the KB by the transaction. If the transaction is aborted, + * simply discard the {@link InferenceChangeLogReporter} object. Always use a + * new instance of this object for each transaction. + * + * TODO The present implementation uses a LinkedHashMap to store the ISPOs for + * the inferences. This should be scalable up to millions of inferences, and + * maybe the low 10s of millions. If very large sets of inferences will be + * drawn, then we could substitute an {@link HTree} index for the + * {@link LinkedHashSet}. The existing {@link NativeDistinctFilter} class + * automatically converts from a JVM hash collection to an {@link HTree} and and + * could be used trivially as a replacement for the {@link LinkedHashSet} in + * this class. In this case, the native memory associated with the HTree needs + * to be released, e.g., through an {@link ICloseable} protocol on the change + * listener. + * + * @author <a href="mailto:tho...@us...">Bryan Thompson</a> + */ +public class InferenceChangeLogReporter implements IChangeLog { + + /** + * The KB. + */ + private final AbstractTripleStore kb; + + /** New inferences. */ + private final Set<ISPO> added = new LinkedHashSet<ISPO>(); + + /** Removed inferences. */ + private final Set<ISPO> removed = new LinkedHashSet<ISPO>(); + + /** + * + * @param kb + * The KB (used to resolve {@link IV}s to {@link Value}s). + */ + public InferenceChangeLogReporter(final AbstractTripleStore kb) { + this.kb = kb; + } + + /** + * Clear the internal state. This may be used to reset the listener if + * multiple commits are used for the same connection. + * <p> + * Note: It is faster to get a new {@link InferenceChangeLogReporter} than + * to clear the internal maps, but you can not replace an {@link IChangeLog} + * listener once established on a connection. + */ + public void clear() { + added.clear(); + removed.clear(); + } + + @Override + public void changeEvent(IChangeRecord record) { + final ISPO spo = record.getStatement(); + if (!spo.isInferred()) + return; + switch (record.getChangeAction()) { + case INSERTED: + added.add(spo); + break; + case REMOVED: + removed.add(spo); + break; + case UPDATED: + // ignore. statement already exists. + break; + default: + throw new AssertionError(); + } + } + + @Override + public void transactionBegin() { + } + + @Override + public void transactionPrepare() { + } + + @Override + public void transactionCommited(long commitTime) { + + } + + @Override + public void transactionAborted() { + + } + + /** + * Return iterator visiting the inferences that were added to the KB. + */ + public BigdataStatementIterator addedIterator() { + + // Wrap as chunked iterator. + final IChunkedOrderedIterator<ISPO> src = new ChunkedWrappedIterator<ISPO>( + added.iterator()); + + // Asynchronous conversion of ISPOs to Statements. + return new BigdataStatementIteratorImpl(kb, src).start(kb + .getExecutorService()); + + } + + /** + * Return iterator visiting the inferences that were removed from the KB. + */ + public BigdataStatementIterator removedIterator() { + + // Wrap as chunked iterator. + final IChunkedOrderedIterator<ISPO> src = new ChunkedWrappedIterator<ISPO>( + removed.iterator()); + + // Asynchronous conversion of ISPOs to Statements. + return new BigdataStatementIteratorImpl(kb, src).start(kb + .getExecutorService()); + + } + +} Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestChangeSets.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestChangeSets.java 2013-09-04 19:56:42 UTC (rev 7388) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestChangeSets.java 2013-09-04 20:18:31 UTC (rev 7389) @@ -44,6 +44,7 @@ import com.bigdata.rdf.changesets.IChangeLog; import com.bigdata.rdf.changesets.IChangeRecord; import com.bigdata.rdf.changesets.InMemChangeLog; +import com.bigdata.rdf.changesets.InferenceChangeLogReporter; import com.bigdata.rdf.model.BigdataStatement; import com.bigdata.rdf.model.BigdataValueFactory; import com.bigdata.rdf.spo.ModifiedEnum; @@ -549,6 +550,10 @@ final InMemChangeLog changeLog = new InMemChangeLog(); cxn.addChangeLog(changeLog); + + final InferenceChangeLogReporter changeLog2 = new InferenceChangeLogReporter( + sail.getDatabase()); + cxn.addChangeLog(changeLog2); final BigdataValueFactory vf = (BigdataValueFactory) sail.getValueFactory(); @@ -604,6 +609,8 @@ } compare(expected, changeLog.getLastCommit(sail.getDatabase())); + assertSameIteratorAnyOrder(inferred, changeLog2.addedIterator()); + assertSameIteratorAnyOrder(new BigdataStatement[]{}, changeLog2.removedIterator()); } for (BigdataStatement stmt : upgrades) { @@ -656,6 +663,10 @@ final InMemChangeLog changeLog = new InMemChangeLog(); cxn.addChangeLog(changeLog); + final InferenceChangeLogReporter changeLog2 = new InferenceChangeLogReporter( + sail.getDatabase()); + cxn.addChangeLog(changeLog2); + final BigdataValueFactory vf = (BigdataValueFactory) sail.getValueFactory(); final String ns = BD.NAMESPACE; @@ -714,9 +725,14 @@ } compare(expected, changeLog.getLastCommit(sail.getDatabase())); + assertSameIteratorAnyOrder(inferredAdd, changeLog2.addedIterator()); + assertSameIteratorAnyOrder(new BigdataStatement[]{}, changeLog2.removedIterator()); } + // reset + changeLog2.clear(); + for (BigdataStatement stmt : explicitRemove) { cxn.remove(stmt); } @@ -735,7 +751,9 @@ } compare(expected, changeLog.getLastCommit(sail.getDatabase())); - + assertSameIteratorAnyOrder(new BigdataStatement[]{}, changeLog2.addedIterator()); + assertSameIteratorAnyOrder(inferredRemove, changeLog2.removedIterator()); + } if (log.isDebugEnabled()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jer...@us...> - 2013-09-04 19:56:50
|
Revision: 7388 http://bigdata.svn.sourceforge.net/bigdata/?rev=7388&view=rev Author: jeremy_carroll Date: 2013-09-04 19:56:42 +0000 (Wed, 04 Sep 2013) Log Message: ----------- various tests for trac 734 e.g. SELECT ?A ?B WHERE { ?A rdf:type / rdfs:subClassOf * <os:ClassA> ; rdf:value ?B . ?B rdf:type / rdfs:subClassOf * <os:ClassB> } and SELECT (<os:0> as ?A) WHERE { <eg:a> <eg:b> ? <eg:a> } Added Paths: ----------- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-both.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-first.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-none.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-second.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround2.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround3.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround4.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.srx branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-opt.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-plus.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-plus.srx branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-star.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C.srx branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C.ttl branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-both.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-first.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-none.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-second.rq branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.srx branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.ttl Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,169 @@ +/** + +Copyright (C) SYSTAP, LLC 2013. All rights reserved. + +Contact: + SYSTAP, LLC + 4501 Tower Road + Greensboro, NC 27410 + lic...@bi... + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +package com.bigdata.rdf.sparql.ast.eval; + + + +/** + * Tests concerning: + * +SELECT ?A +WHERE { + ?A rdf:type / rdfs:subClassOf * <os:ClassA> ; + rdf:value ?B . + ?B rdf:type / rdfs:subClassOf * <os:ClassB> . +} + +There is a work-around which is to replace a * with a UNION of a zero and a + + + + { + { ?B rdf:type <os:ClassB> } + UNION + { ?B rdf:type / rdfs:subClassOf + <os:ClassB> + } + } + +In property-path-734-B-none.rq, this is taken as the following variant: + + { + { ?A rdf:type / rdfs:subClassOf ? <os:ClassA> } + UNION + { ?A rdf:type / rdfs:subClassOf / rdfs:subClassOf + <os:ClassA> + } + } + +and in property-path-734-B-workaround2.rq it is taken to (the broken): + + + ?A rdf:type / ( rdfs:subClassOf ? | ( rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassA> . + + +and in property-path-734-B-workaround3.rq it is taken to (the working): + + + ?A ( ( rdf:type / rdfs:subClassOf ? ) | ( rdf:type / rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassA> . + + + */ +public class TestTwoPropertyPaths734 extends AbstractDataDrivenSPARQLTestCase { + + /** + * + */ + public TestTwoPropertyPaths734() { + } + + /** + * @param name + */ + public TestTwoPropertyPaths734(String name) { + super(name); + } + + private void property_path_test(String name) throws Exception { + + new TestHelper( + "property-path-734-" + name, // testURI, + "property-path-734-" + name + ".rq", // queryFileURL + "property-path-734.ttl", // dataFileURL + "property-path-734.srx" // resultFileURL, + ).runTest(); + } + + private void property_path_using_workaround_test(String name) throws Exception { + + new TestHelper( + "property-path-734-B-" + name, // testURI, + "property-path-734-B-" + name + ".rq", // queryFileURL + "property-path-734-B.ttl", // dataFileURL + "property-path-734-B.srx" // resultFileURL, + ).runTest(); + } + public void test_no_property_paths() throws Exception { + property_path_test("none"); + } + public void test_first_property_path() throws Exception { + property_path_test("first"); + } + public void test_second_property_path() throws Exception { + property_path_test("second"); + } + public void test_both_property_paths() throws Exception { + property_path_test("both"); + } + public void test_no_using_workaround_property_paths() throws Exception { + property_path_using_workaround_test("none"); + } + public void test_first_using_workaround_property_path() throws Exception { + property_path_using_workaround_test("first"); + } + public void test_second_using_workaround_property_path() throws Exception { + property_path_using_workaround_test("second"); + } + public void test_both_using_workaround_property_paths() throws Exception { + property_path_using_workaround_test("both"); + } + public void test_both_using_workaround2_property_paths() throws Exception { + property_path_using_workaround_test("workaround2"); + } + public void test_both_using_workaround3_property_paths() throws Exception { + property_path_using_workaround_test("workaround3"); + } + public void test_both_using_workaround4_property_paths() throws Exception { + property_path_using_workaround_test("workaround4"); + } + + + public void test_minimal_star_734() throws Exception { + + new TestHelper( + "property-path-734-C", // testURI, + "property-path-734-C-star.rq", // queryFileURL + "property-path-734-C.ttl", // dataFileURL + "property-path-734-C.srx" // resultFileURL, + ).runTest(); + } + public void test_minimal_opt_734() throws Exception { + + new TestHelper( + "property-path-734-C", // testURI, + "property-path-734-C-opt.rq", // queryFileURL + "property-path-734-C.ttl", // dataFileURL + "property-path-734-C.srx" // resultFileURL, + ).runTest(); + } + public void test_minimal_plus_734() throws Exception { + + new TestHelper( + "property-path-734-C", // testURI, + "property-path-734-C-plus.rq", // queryFileURL + "property-path-734-C.ttl", // dataFileURL + "property-path-734-C-plus.srx" // resultFileURL, + ).runTest(); + } +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-both.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-both.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-both.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + ?A rdf:type / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + ?B rdf:type / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-first.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-first.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-first.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,16 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + ?A rdf:type / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + { + { ?B rdf:type <os:ClassB> } + UNION + { ?B rdf:type / rdfs:subClassOf + <os:ClassB> + } + } +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-none.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-none.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-none.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,20 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + { + { ?A rdf:type / rdfs:subClassOf ? <os:ClassA> } + UNION + { ?A rdf:type / rdfs:subClassOf / rdfs:subClassOf + <os:ClassA> + } + } + ?A rdf:value ?B . + { + { ?B rdf:type / rdfs:subClassOf ? <os:ClassB> } + UNION + { ?B rdf:type / rdfs:subClassOf / rdfs:subClassOf + <os:ClassB> + } + } +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-second.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-second.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-second.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,16 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + { + { ?A rdf:type <os:ClassA> } + UNION + { ?A rdf:type / rdfs:subClassOf + <os:ClassA> + } + } + ?A rdf:value ?B . + ?B rdf:type / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround2.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround2.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround2.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + ?A rdf:type / ( rdfs:subClassOf ? | ( rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassA> . + ?A rdf:value ?B . + ?B rdf:type / ( rdfs:subClassOf ? | ( rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround3.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround3.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround3.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + ?A ( ( rdf:type / rdfs:subClassOf ? ) | ( rdf:type / rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassA> . + ?A rdf:value ?B . + ?B ( ( rdf:type / rdfs:subClassOf ? ) | ( rdf:type / rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround4.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround4.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround4.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + ?A rdf:type / ( ( rdfs:noSuchProperty ? / rdfs:subClassOf ? ) | ( rdfs:noSuchProperty ? / rdfs:subClassOf / rdfs:subClassOf + ) ) + <os:ClassA> . + ?A rdf:value ?B . + ?B rdf:type / ( ( rdfs:noSuchProperty ? / rdfs:subClassOf ? ) | ( rdfs:noSuchProperty ? / rdfs:subClassOf / rdfs:subClassOf + ) ) + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.srx =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.srx (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.srx 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,88 @@ +<?xml version="1.0"?> +<sparql + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:xs="http://www.w3.org/2001/XMLSchema#" + xmlns="http://www.w3.org/2005/sparql-results#" > + <head> + <variable name="A"/> + <variable name="B"/> + </head> + <results> + <result> + <binding name="A"> + <uri>os:0</uri> + </binding> + <binding name="B"> + <uri>os:1</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0</uri> + </binding> + <binding name="B"> + <uri>os:1a</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0</uri> + </binding> + <binding name="B"> + <uri>os:1b</uri> + </binding> + </result> + + + <result> + <binding name="A"> + <uri>os:0a</uri> + </binding> + <binding name="B"> + <uri>os:1</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0a</uri> + </binding> + <binding name="B"> + <uri>os:1a</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0a</uri> + </binding> + <binding name="B"> + <uri>os:1b</uri> + </binding> + </result> + + + <result> + <binding name="A"> + <uri>os:0b</uri> + </binding> + <binding name="B"> + <uri>os:1</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0b</uri> + </binding> + <binding name="B"> + <uri>os:1a</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0b</uri> + </binding> + <binding name="B"> + <uri>os:1b</uri> + </binding> + </result> + </results> +</sparql> Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.ttl =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.ttl (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.ttl 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,24 @@ +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . + +<os:0> rdf:type <os:ClassA> . +<os:0> rdf:value <os:1> . +<os:0> rdf:value <os:1a> . +<os:0> rdf:value <os:1b> . +<os:1> rdf:type <os:ClassB> . + +<os:0a> rdf:type <os:ClassAa> . +<os:ClassAa> rdfs:subClassOf <os:ClassA> . +<os:0a> rdf:value <os:1> . +<os:0a> rdf:value <os:1a> . +<os:0a> rdf:value <os:1b> . +<os:1a> rdf:type <os:ClassBa> . +<os:ClassBa> rdfs:subClassOf <os:ClassB> . + +<os:0b> rdf:type <os:ClassAb> . +<os:ClassAb> rdfs:subClassOf <os:ClassAa> . +<os:0b> rdf:value <os:1> . +<os:0b> rdf:value <os:1a> . +<os:0b> rdf:value <os:1b> . +<os:1b> rdf:type <os:ClassBb> . +<os:ClassBb> rdfs:subClassOf <os:ClassBa> . \ No newline at end of file Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-opt.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-opt.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-opt.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,5 @@ + +SELECT (<os:0> as ?A) +WHERE { + <eg:a> <eg:b> ? <eg:a> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-plus.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-plus.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-plus.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,5 @@ + +SELECT (<os:0> as ?A) +WHERE { + <eg:a> <eg:b> + <eg:a> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-plus.srx =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-plus.srx (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-plus.srx 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<sparql + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:xs="http://www.w3.org/2001/XMLSchema#" + xmlns="http://www.w3.org/2005/sparql-results#" > + <head> + <variable name="A"/> + </head> + <results> + </results> +</sparql> Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-star.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-star.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C-star.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,5 @@ + +SELECT (<os:0> as ?A) +WHERE { + <eg:a> <eg:b> * <eg:a> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C.srx =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C.srx (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C.srx 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<sparql + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:xs="http://www.w3.org/2001/XMLSchema#" + xmlns="http://www.w3.org/2005/sparql-results#" > + <head> + <variable name="A"/> + </head> + <results> + <result> + <binding name="A"> + <uri>os:0</uri> + </binding> + </result> + </results> +</sparql> Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C.ttl =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C.ttl (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-C.ttl 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1 @@ +# no data \ No newline at end of file Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-both.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-both.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-both.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A +WHERE { + ?A rdf:type / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + ?B rdf:type / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-first.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-first.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-first.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A +WHERE { + ?A rdf:type / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + ?B rdf:type # / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-none.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-none.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-none.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A +WHERE { + ?A rdf:type # / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + ?B rdf:type # / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-second.rq =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-second.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-second.rq 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A +WHERE { + ?A rdf:type # / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + ?B rdf:type / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.srx =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.srx (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.srx 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<sparql + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:xs="http://www.w3.org/2001/XMLSchema#" + xmlns="http://www.w3.org/2005/sparql-results#" > + <head> + <variable name="A"/> + </head> + <results> + <result> + <binding name="A"> + <uri>os:0</uri> + </binding> + </result> + </results> +</sparql> Added: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.ttl =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.ttl (rev 0) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.ttl 2013-09-04 19:56:42 UTC (rev 7388) @@ -0,0 +1,3 @@ +<os:0> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <os:ClassA> . +<os:0> <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> <os:1> . +<os:1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <os:ClassB> . \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-04 19:46:56
|
Revision: 7387 http://bigdata.svn.sourceforge.net/bigdata/?rev=7387&view=rev Author: thompsonbry Date: 2013-09-04 19:46:49 +0000 (Wed, 04 Sep 2013) Log Message: ----------- javadoc fix Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataStatementIteratorImpl.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataStatementIteratorImpl.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataStatementIteratorImpl.java 2013-09-04 17:00:49 UTC (rev 7386) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataStatementIteratorImpl.java 2013-09-04 19:46:49 UTC (rev 7387) @@ -19,12 +19,11 @@ import com.bigdata.rdf.model.BigdataValueFactory; import com.bigdata.rdf.spo.ISPO; import com.bigdata.relation.accesspath.BlockingBuffer; -import com.bigdata.relation.rule.eval.ISolution; import com.bigdata.striterator.AbstractChunkedResolverator; import com.bigdata.striterator.IChunkedOrderedIterator; /** - * Efficiently resolve term identifiers in Bigdata {@link ISolution}s to RDF + * Efficiently resolve term identifiers in Bigdata {@link ISPO}s to RDF * {@link BigdataValue}s. * * @author <a href="mailto:tho...@us...">Bryan Thompson</a> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jer...@us...> - 2013-09-04 17:00:58
|
Revision: 7386 http://bigdata.svn.sourceforge.net/bigdata/?rev=7386&view=rev Author: jeremy_carroll Date: 2013-09-04 17:00:49 +0000 (Wed, 04 Sep 2013) Log Message: ----------- more tests for trac 734 Modified Paths: -------------- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java Added Paths: ----------- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-both.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-first.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-none.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-second.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround2.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround3.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround4.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.srx branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.ttl Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java 2013-09-04 00:26:25 UTC (rev 7385) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java 2013-09-04 17:00:49 UTC (rev 7386) @@ -35,6 +35,40 @@ rdf:value ?B . ?B rdf:type / rdfs:subClassOf * <os:ClassB> . } + +There is a work-around which is to replace a * with a UNION of a zero and a + + + + { + { ?B rdf:type <os:ClassB> } + UNION + { ?B rdf:type / rdfs:subClassOf + <os:ClassB> + } + } + +In property-path-734-B-none.rq, this is taken as the following variant: + + { + { ?A rdf:type / rdfs:subClassOf ? <os:ClassA> } + UNION + { ?A rdf:type / rdfs:subClassOf / rdfs:subClassOf + <os:ClassA> + } + } + +and in property-path-734-B-workaround2.rq it is taken to (the broken): + + + ?A rdf:type / ( rdfs:subClassOf ? | ( rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassA> . + + +and in property-path-734-B-workaround3.rq it is taken to (the working): + + + ?A ( ( rdf:type / rdfs:subClassOf ? ) | ( rdf:type / rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassA> . + + */ public class TestTwoPropertyPaths734 extends AbstractDataDrivenSPARQLTestCase { @@ -54,13 +88,22 @@ private void property_path_test(String name) throws Exception { new TestHelper( - "property-path-734-" + name, // testURI, - "property-path-734-" + name + ".rq",// queryFileURL - "property-path-734.ttl",// dataFileURL - "property-path-734.srx" // resultFileURL, + "property-path-734-" + name, // testURI, + "property-path-734-" + name + ".rq", // queryFileURL + "property-path-734.ttl", // dataFileURL + "property-path-734.srx" // resultFileURL, ).runTest(); } + private void property_path_using_workaround_test(String name) throws Exception { + + new TestHelper( + "property-path-734-B-" + name, // testURI, + "property-path-734-B-" + name + ".rq", // queryFileURL + "property-path-734-B.ttl", // dataFileURL + "property-path-734-B.srx" // resultFileURL, + ).runTest(); + } public void test_no_property_paths() throws Exception { property_path_test("none"); } @@ -73,4 +116,25 @@ public void test_both_property_paths() throws Exception { property_path_test("both"); } + public void test_no_using_workaround_property_paths() throws Exception { + property_path_using_workaround_test("none"); + } + public void test_first_using_workaround_property_path() throws Exception { + property_path_using_workaround_test("first"); + } + public void test_second_using_workaround_property_path() throws Exception { + property_path_using_workaround_test("second"); + } + public void test_both_using_workaround_property_paths() throws Exception { + property_path_using_workaround_test("both"); + } + public void test_both_using_workaround2_property_paths() throws Exception { + property_path_using_workaround_test("workaround2"); + } + public void test_both_using_workaround3_property_paths() throws Exception { + property_path_using_workaround_test("workaround3"); + } + public void test_both_using_workaround4_property_paths() throws Exception { + property_path_using_workaround_test("workaround4"); + } } Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-both.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-both.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-both.rq 2013-09-04 17:00:49 UTC (rev 7386) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + ?A rdf:type / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + ?B rdf:type / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-first.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-first.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-first.rq 2013-09-04 17:00:49 UTC (rev 7386) @@ -0,0 +1,16 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + ?A rdf:type / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + { + { ?B rdf:type <os:ClassB> } + UNION + { ?B rdf:type / rdfs:subClassOf + <os:ClassB> + } + } +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-none.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-none.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-none.rq 2013-09-04 17:00:49 UTC (rev 7386) @@ -0,0 +1,20 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + { + { ?A rdf:type / rdfs:subClassOf ? <os:ClassA> } + UNION + { ?A rdf:type / rdfs:subClassOf / rdfs:subClassOf + <os:ClassA> + } + } + ?A rdf:value ?B . + { + { ?B rdf:type / rdfs:subClassOf ? <os:ClassB> } + UNION + { ?B rdf:type / rdfs:subClassOf / rdfs:subClassOf + <os:ClassB> + } + } +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-second.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-second.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-second.rq 2013-09-04 17:00:49 UTC (rev 7386) @@ -0,0 +1,16 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + { + { ?A rdf:type <os:ClassA> } + UNION + { ?A rdf:type / rdfs:subClassOf + <os:ClassA> + } + } + ?A rdf:value ?B . + ?B rdf:type / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround2.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround2.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround2.rq 2013-09-04 17:00:49 UTC (rev 7386) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + ?A rdf:type / ( rdfs:subClassOf ? | ( rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassA> . + ?A rdf:value ?B . + ?B rdf:type / ( rdfs:subClassOf ? | ( rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround3.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround3.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround3.rq 2013-09-04 17:00:49 UTC (rev 7386) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + ?A ( ( rdf:type / rdfs:subClassOf ? ) | ( rdf:type / rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassA> . + ?A rdf:value ?B . + ?B ( ( rdf:type / rdfs:subClassOf ? ) | ( rdf:type / rdfs:subClassOf + / rdfs:subClassOf ) ) + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround4.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround4.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B-workaround4.rq 2013-09-04 17:00:49 UTC (rev 7386) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A ?B +WHERE { + ?A rdf:type / ( ( rdfs:noSuchProperty ? / rdfs:subClassOf ? ) | ( rdfs:noSuchProperty ? / rdfs:subClassOf / rdfs:subClassOf + ) ) + <os:ClassA> . + ?A rdf:value ?B . + ?B rdf:type / ( ( rdfs:noSuchProperty ? / rdfs:subClassOf ? ) | ( rdfs:noSuchProperty ? / rdfs:subClassOf / rdfs:subClassOf + ) ) + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.srx =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.srx (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.srx 2013-09-04 17:00:49 UTC (rev 7386) @@ -0,0 +1,88 @@ +<?xml version="1.0"?> +<sparql + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:xs="http://www.w3.org/2001/XMLSchema#" + xmlns="http://www.w3.org/2005/sparql-results#" > + <head> + <variable name="A"/> + <variable name="B"/> + </head> + <results> + <result> + <binding name="A"> + <uri>os:0</uri> + </binding> + <binding name="B"> + <uri>os:1</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0</uri> + </binding> + <binding name="B"> + <uri>os:1a</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0</uri> + </binding> + <binding name="B"> + <uri>os:1b</uri> + </binding> + </result> + + + <result> + <binding name="A"> + <uri>os:0a</uri> + </binding> + <binding name="B"> + <uri>os:1</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0a</uri> + </binding> + <binding name="B"> + <uri>os:1a</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0a</uri> + </binding> + <binding name="B"> + <uri>os:1b</uri> + </binding> + </result> + + + <result> + <binding name="A"> + <uri>os:0b</uri> + </binding> + <binding name="B"> + <uri>os:1</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0b</uri> + </binding> + <binding name="B"> + <uri>os:1a</uri> + </binding> + </result> + <result> + <binding name="A"> + <uri>os:0b</uri> + </binding> + <binding name="B"> + <uri>os:1b</uri> + </binding> + </result> + </results> +</sparql> Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.ttl =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.ttl (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-B.ttl 2013-09-04 17:00:49 UTC (rev 7386) @@ -0,0 +1,24 @@ +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . + +<os:0> rdf:type <os:ClassA> . +<os:0> rdf:value <os:1> . +<os:0> rdf:value <os:1a> . +<os:0> rdf:value <os:1b> . +<os:1> rdf:type <os:ClassB> . + +<os:0a> rdf:type <os:ClassAa> . +<os:ClassAa> rdfs:subClassOf <os:ClassA> . +<os:0a> rdf:value <os:1> . +<os:0a> rdf:value <os:1a> . +<os:0a> rdf:value <os:1b> . +<os:1a> rdf:type <os:ClassBa> . +<os:ClassBa> rdfs:subClassOf <os:ClassB> . + +<os:0b> rdf:type <os:ClassAb> . +<os:ClassAb> rdfs:subClassOf <os:ClassAa> . +<os:0b> rdf:value <os:1> . +<os:0b> rdf:value <os:1a> . +<os:0b> rdf:value <os:1b> . +<os:1b> rdf:type <os:ClassBb> . +<os:ClassBb> rdfs:subClassOf <os:ClassBa> . \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jer...@us...> - 2013-09-04 00:26:32
|
Revision: 7385 http://bigdata.svn.sourceforge.net/bigdata/?rev=7385&view=rev Author: jeremy_carroll Date: 2013-09-04 00:26:25 +0000 (Wed, 04 Sep 2013) Log Message: ----------- comment was incorrect Modified Paths: -------------- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java 2013-09-04 00:22:35 UTC (rev 7384) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java 2013-09-04 00:26:25 UTC (rev 7385) @@ -24,12 +24,17 @@ package com.bigdata.rdf.sparql.ast.eval; -import com.bigdata.rdf.sparql.ast.eval.AbstractDataDrivenSPARQLTestCase.TestHelper; /** - * Tests concerning "SELECT GRAPH XXXX {}" with XXXX and the dataset varying. - * + * Tests concerning: + * +SELECT ?A +WHERE { + ?A rdf:type / rdfs:subClassOf * <os:ClassA> ; + rdf:value ?B . + ?B rdf:type / rdfs:subClassOf * <os:ClassB> . +} */ public class TestTwoPropertyPaths734 extends AbstractDataDrivenSPARQLTestCase { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jer...@us...> - 2013-09-04 00:22:44
|
Revision: 7384 http://bigdata.svn.sourceforge.net/bigdata/?rev=7384&view=rev Author: jeremy_carroll Date: 2013-09-04 00:22:35 +0000 (Wed, 04 Sep 2013) Log Message: ----------- new tests for trac734: SELECT ?A WHERE { ?A rdf:type / rdfs:subClassOf * <os:ClassA> ; rdf:value ?B . ?B rdf:type / rdfs:subClassOf * <os:ClassB> } Added Paths: ----------- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-both.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-first.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-none.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-second.rq branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.srx branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.ttl Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestTwoPropertyPaths734.java 2013-09-04 00:22:35 UTC (rev 7384) @@ -0,0 +1,71 @@ +/** + +Copyright (C) SYSTAP, LLC 2013. All rights reserved. + +Contact: + SYSTAP, LLC + 4501 Tower Road + Greensboro, NC 27410 + lic...@bi... + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +package com.bigdata.rdf.sparql.ast.eval; + +import com.bigdata.rdf.sparql.ast.eval.AbstractDataDrivenSPARQLTestCase.TestHelper; + + +/** + * Tests concerning "SELECT GRAPH XXXX {}" with XXXX and the dataset varying. + * + */ +public class TestTwoPropertyPaths734 extends AbstractDataDrivenSPARQLTestCase { + + /** + * + */ + public TestTwoPropertyPaths734() { + } + + /** + * @param name + */ + public TestTwoPropertyPaths734(String name) { + super(name); + } + + private void property_path_test(String name) throws Exception { + + new TestHelper( + "property-path-734-" + name, // testURI, + "property-path-734-" + name + ".rq",// queryFileURL + "property-path-734.ttl",// dataFileURL + "property-path-734.srx" // resultFileURL, + ).runTest(); + } + + public void test_no_property_paths() throws Exception { + property_path_test("none"); + } + public void test_first_property_path() throws Exception { + property_path_test("first"); + } + public void test_second_property_path() throws Exception { + property_path_test("second"); + } + public void test_both_property_paths() throws Exception { + property_path_test("both"); + } +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-both.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-both.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-both.rq 2013-09-04 00:22:35 UTC (rev 7384) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A +WHERE { + ?A rdf:type / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + ?B rdf:type / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-first.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-first.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-first.rq 2013-09-04 00:22:35 UTC (rev 7384) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A +WHERE { + ?A rdf:type / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + ?B rdf:type # / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-none.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-none.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-none.rq 2013-09-04 00:22:35 UTC (rev 7384) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A +WHERE { + ?A rdf:type # / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + ?B rdf:type # / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-second.rq =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-second.rq (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734-second.rq 2013-09-04 00:22:35 UTC (rev 7384) @@ -0,0 +1,12 @@ + +prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +SELECT ?A +WHERE { + ?A rdf:type # / rdfs:subClassOf * + <os:ClassA> ; + rdf:value ?B . + ?B rdf:type / rdfs:subClassOf * + <os:ClassB> +} Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.srx =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.srx (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.srx 2013-09-04 00:22:35 UTC (rev 7384) @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<sparql + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:xs="http://www.w3.org/2001/XMLSchema#" + xmlns="http://www.w3.org/2005/sparql-results#" > + <head> + <variable name="A"/> + </head> + <results> + <result> + <binding name="A"> + <uri>os:0</uri> + </binding> + </result> + </results> +</sparql> Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.ttl =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.ttl (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/property-path-734.ttl 2013-09-04 00:22:35 UTC (rev 7384) @@ -0,0 +1,3 @@ +<os:0> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <os:ClassA> . +<os:0> <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> <os:1> . +<os:1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <os:ClassB> . \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-03 19:28:00
|
Revision: 7383 http://bigdata.svn.sourceforge.net/bigdata/?rev=7383&view=rev Author: thompsonbry Date: 2013-09-03 19:27:52 +0000 (Tue, 03 Sep 2013) Log Message: ----------- Modified the SPARQL UPDATE response to include a mutation count per [1]. However, the response is still not a well-formed or easily parsed XML document. [1] https://sourceforge.net/projects/bigdata/forums/forum/676946/topic/8664308 Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFContext.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFContext.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFContext.java 2013-09-02 17:04:46 UTC (rev 7382) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFContext.java 2013-09-03 19:27:52 UTC (rev 7383) @@ -78,6 +78,7 @@ import com.bigdata.bop.engine.QueryEngine; import com.bigdata.bop.join.PipelineJoin; import com.bigdata.btree.IndexMetadata; +import com.bigdata.counters.CAT; import com.bigdata.io.NullOutputStream; import com.bigdata.journal.IBufferStrategy; import com.bigdata.journal.IIndexManager; @@ -85,6 +86,8 @@ import com.bigdata.journal.Journal; import com.bigdata.journal.RWStrategy; import com.bigdata.journal.TimestampUtility; +import com.bigdata.rdf.changesets.IChangeLog; +import com.bigdata.rdf.changesets.IChangeRecord; import com.bigdata.rdf.sail.BigdataSail; import com.bigdata.rdf.sail.BigdataSailBooleanQuery; import com.bigdata.rdf.sail.BigdataSailGraphQuery; @@ -1329,7 +1332,29 @@ */ protected void doQuery(final BigdataSailRepositoryConnection cxn, final OutputStream os) throws Exception { - + + /* + * Setup a change listener. It will notice the #of mutations. + */ + final CAT mutationCount = new CAT(); + cxn.addChangeLog(new IChangeLog(){ + @Override + public void changeEvent(final IChangeRecord record) { + mutationCount.increment(); + } + @Override + public void transactionBegin() { + } + @Override + public void transactionPrepare() { + } + @Override + public void transactionCommited(long commitTime) { + } + @Override + public void transactionAborted() { + }}); + // Prepare the UPDATE request. final BigdataSailUpdate update = setupUpdate(cxn); @@ -1353,7 +1378,8 @@ // This will write the response entity. listener = new SparqlUpdateResponseWriter(resp, os, charset, - true /* reportLoadProgress */, true/* flushEachEvent */); + true /* reportLoadProgress */, true/* flushEachEvent */, + mutationCount); } else { @@ -1376,7 +1402,8 @@ baos = new ByteArrayOutputStream(); listener = new SparqlUpdateResponseWriter(resp, baos, charset, - false/* reportLoadProgress */, false/* flushEachEvent */); + false/* reportLoadProgress */, false/* flushEachEvent */, + mutationCount); } @@ -1442,6 +1469,8 @@ private final XMLBuilder.Node body; private final boolean reportLoadProgress; private final boolean flushEachEvent; + private final CAT mutationCount; + /** * Used to correlate incremental LOAD progress messages. */ @@ -1464,12 +1493,14 @@ * When <code>true</code>, each the {@link Writer} will be * flushed after each logged event in order to ensure timely * delivery to the client. - * + * @param mutationCount + * A counter that is updated as mutations are applied. * @throws IOException */ public SparqlUpdateResponseWriter(final HttpServletResponse resp, final OutputStream os, final Charset charset, - final boolean reportLoadProgress, final boolean flushEachEvent) + final boolean reportLoadProgress, final boolean flushEachEvent, + final CAT mutationCount) throws IOException { if (resp == null) @@ -1496,6 +1527,8 @@ this.reportLoadProgress = reportLoadProgress; this.flushEachEvent = flushEachEvent; + + this.mutationCount = mutationCount; this.begin = System.nanoTime(); @@ -1691,7 +1724,8 @@ body.node("p") .text("COMMIT: totalElapsed=" + totalElapsedMillis - + "ms, commitTime=" + commitTime)// + + "ms, commitTime=" + commitTime + + ", mutationCount=" + mutationCount.get())// .close(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-02 17:04:52
|
Revision: 7382 http://bigdata.svn.sourceforge.net/bigdata/?rev=7382&view=rev Author: thompsonbry Date: 2013-09-02 17:04:46 +0000 (Mon, 02 Sep 2013) Log Message: ----------- Creating a new dev branch from the HA development branch incorporating all changes in the main development branch up to r7381. Revision Links: -------------- http://bigdata.svn.sourceforge.net/bigdata/?rev=7381&view=rev Added Paths: ----------- branches/BIGDATA_RELEASE_1_3_0/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-01 17:36:25
|
Revision: 7381 http://bigdata.svn.sourceforge.net/bigdata/?rev=7381&view=rev Author: thompsonbry Date: 2013-09-01 17:35:58 +0000 (Sun, 01 Sep 2013) Log Message: ----------- Merge 1.2.x development branch (branches/BIGDATA_RELEASE_1_2_0) into the HA development branch (brancehs/READ_CACHE2). At revision 7380. merge https://bigdata.svn.sourceforge.net/svnroot/bigdata/branches/BIGDATA_RELEASE_1_2_0 /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH --- Merging r7270 through r7380 into /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-perf A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-perf/gas A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-perf/gas/RWStore.properties A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-perf/gas/build.properties A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-perf/gas/log4j.properties A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-perf/gas/README.txt A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-perf/gas/Makefile A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-perf/gas/build.xml --- Merging r7270 through r7380 into /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/build.properties U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata/src/test/com/bigdata/striterator/TestAll.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata/src/test/com/bigdata/striterator/TestAppendFilter.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata/src/java/com/bigdata/striterator/MergeFilter.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata/src/java/com/bigdata/striterator/Striterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata/src/java/com/bigdata/striterator/IStriterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata/src/java/com/bigdata/striterator/Appender.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata/src/java/com/bigdata/striterator/ChunkedStriterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata/src/java/com/bigdata/bop/bset/ConditionalRoutingOp.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata/src/java/com/bigdata/journal/QueueStatsPlugIn.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata/src/java/com/bigdata/relation/accesspath/ElementFilter.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-ganglia/LEGAL/junit-license.html A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-ganglia/LEGAL/log4j-license.txt U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/build.xml U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/.classpath A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/NOTICE A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/LEGAL A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/LEGAL/sesame2.x-license.txt A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/LEGAL/junit-license.html A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/LEGAL/apache-license-2_0.txt A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/LEGAL/log4j-license.txt A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/lib A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/lib/openrdf-sesame-2.6.10-onejar.jar A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/lib/junit-3.8.1.jar A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/lib/log4j-1.2.15.jar A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/AbstractGraphTestCase.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/impl A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/TestAll.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestAll.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestSSSP.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestBFS.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/TestAll.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/data A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/test/com/bigdata/rdf/graph/data/smallGraph.ttl A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASOptions.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASStats.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IReducer.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASSchedulerImpl.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/Factory.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/SSSP.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/BFS.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/package.html A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASEngine.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IStaticFrontier.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASProgram.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/EdgesEnum.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/package.html A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASContext.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASEngine.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/VertexTaskFactory.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/frontier A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/frontier/StaticFrontier2.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SailGraphFixture.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASEngine.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/package.html A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASStats.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/BaseGASProgram.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IManagedIntArray.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IIntArraySlice.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IManagedArray.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedIntArray.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IArraySlice.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/GASImplUtil.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedArray.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/VertexDistribution.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/package.html A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/STScheduler.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/CHMScheduler.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASScheduler.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASState.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASContext.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/IGraphAccessor.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/util A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/util/IGraphFixture.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/util/GASUtil.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/util/IGraphFixtureFactory.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/java/com/bigdata/rdf/graph/util/AbstractGraphFixture.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/src/resources A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/build.properties A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-gas/build.xml --- Merging r7270 through r7380 into /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlClient2.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlClient.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractProtocolTest.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlServerWithProxyIndexManager.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestAll2.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/ProxySuiteHelper.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractSimpleInsertTest.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlServerWithProxyIndexManager2.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestConneg.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestPostNotURLEncoded.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestAskJsonTrac704.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/ExampleProtocolTest.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractIndexManagerTestCase.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestCBD731.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestInsertFilterFalse727.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestRelease123Protocol.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestProtocolAll.java --- Merging r7270 through r7380 into /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/ConnegUtil.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/QueryServlet.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/RESTServlet.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFServlet.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFContext.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/client/MiniMime.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/client/BackgroundTupleResult.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/client/RemoteRepository.java --- Merging r7270 through r7380 into /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/TestAll.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/graph A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestAll.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestSSSP.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestBFS.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestGather.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/AbstractBigdataGraphTestCase.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/graph/analytics A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/filter-exist-725-sub-select.rq A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestSubSelectFilterExist725.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429empty.trig A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709empty.rq A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709.rq A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709.srx A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestGraphEmptyPattern709_429.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708.srx A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429empty.srx A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709workaround.rq A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/filter-exist-725.srx A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429.trig A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708.rq A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708.ttl A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/filter-exist-725.ttl A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429neg.srx A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708-doubleBind.rq A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709empty.trig A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429neg.trig A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429neg.rq A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708-doubleBind.srx A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709.trig A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709empty.srx A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708-doubleBind.ttl A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestBindHeisenbug708.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429.rq A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/filter-exist-725-no-sub-select.rq A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429.srx --- Merging r7270 through r7380 into /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/internal U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestEncodeDecodeKeys.java --- Merging r7270 through r7380 into /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/rio/nquads/NQuadsParser.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/store/AbstractTripleStore.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataBindingSetResolverator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPO.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/spo/ISPO.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/MergeSortIterator.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGraphFixture.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/GASRunner.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASState.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASEngine.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/mem A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/mem/package.html A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/scheduler A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/ASTEvalHelper.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/SliceServiceFactory.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/AST2BOpContext.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/SearchInSearchServiceFactory.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/AST2BOpUtility.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/AbstractJoinGroupOptimizer.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTRangeOptimizer.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/GroupNodeBase.java --- Merging r7270 through r7380 into /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/internal U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/IV.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/BindingConstraint.java --- Merging r7270 through r7380 into /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/test/cutthecrap/utils/striterators/TestFilterBase.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/test/cutthecrap/utils/striterators/TestFilter.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/test/cutthecrap/utils/striterators/TestAll.java A /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/test/cutthecrap/utils/striterators/TestArrayIterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/test/cutthecrap/utils/striterators/TestCloseable.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/IXPropertyIterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Prefetch.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/NOPFilter.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/IContextMgr.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/UniquenessFilter.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/IPropertySet.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapperator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Filterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/EnumIterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/ExclusionFilter.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/FilterBase.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Striterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapper.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Appenderator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Filter.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Visitorator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Resolverator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/ArrayIterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/IStriterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Expanderator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Appender.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Visitor.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Resolver.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractorator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Sorterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Expander.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Mergerator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/EmptyIterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/XProperty.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractor.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Sorter.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/Merger.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/IXProperty.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/XPropertyIterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/ReadOnlyIterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/SingleValueIterator.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilter.java U /Users/bryan/Documents/workspace/READ_CACHE_CLEAN_FOR_PATCH/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilterTest.java Merge complete. ===== File Statistics: ===== Added: 161 Updated: 86 No conflicts. See #530 (Journal HA) Revision Links: -------------- http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7270&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7270&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7270&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7270&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7270&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7270&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7270&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7270&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7270&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev Modified Paths: -------------- branches/READ_CACHE2/.classpath branches/READ_CACHE2/bigdata/src/java/com/bigdata/bop/bset/ConditionalRoutingOp.java branches/READ_CACHE2/bigdata/src/java/com/bigdata/journal/QueueStatsPlugIn.java branches/READ_CACHE2/bigdata/src/java/com/bigdata/relation/accesspath/ElementFilter.java branches/READ_CACHE2/bigdata/src/java/com/bigdata/striterator/Appender.java branches/READ_CACHE2/bigdata/src/java/com/bigdata/striterator/ChunkedStriterator.java branches/READ_CACHE2/bigdata/src/java/com/bigdata/striterator/IStriterator.java branches/READ_CACHE2/bigdata/src/java/com/bigdata/striterator/MergeFilter.java branches/READ_CACHE2/bigdata/src/java/com/bigdata/striterator/Striterator.java branches/READ_CACHE2/bigdata/src/test/com/bigdata/striterator/TestAll.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/internal/IV.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/BindingConstraint.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/rio/nquads/NQuadsParser.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/GroupNodeBase.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/AST2BOpContext.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/AST2BOpUtility.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/ASTEvalHelper.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/SearchInSearchServiceFactory.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/SliceServiceFactory.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTRangeOptimizer.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/AbstractJoinGroupOptimizer.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/spo/ISPO.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPO.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/store/AbstractTripleStore.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/store/BigdataBindingSetResolverator.java branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/TestAll.java branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/internal/TestEncodeDecodeKeys.java branches/READ_CACHE2/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFContext.java branches/READ_CACHE2/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFServlet.java branches/READ_CACHE2/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/ConnegUtil.java branches/READ_CACHE2/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/QueryServlet.java branches/READ_CACHE2/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/RESTServlet.java branches/READ_CACHE2/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/client/BackgroundTupleResult.java branches/READ_CACHE2/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/client/MiniMime.java branches/READ_CACHE2/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/client/RemoteRepository.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractIndexManagerTestCase.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestAll2.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestConneg.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlClient.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlClient2.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlServerWithProxyIndexManager.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlServerWithProxyIndexManager2.java branches/READ_CACHE2/build.properties branches/READ_CACHE2/build.xml branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Appender.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Appenderator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/ArrayIterator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractor.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractorator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/EmptyIterator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/EnumIterator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/ExclusionFilter.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Expander.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Expanderator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Filter.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/FilterBase.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Filterator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/IContextMgr.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilter.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilterTest.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/IPropertySet.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/IStriterator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/IXProperty.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/IXPropertyIterator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapper.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapperator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Merger.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Mergerator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/NOPFilter.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Prefetch.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/ReadOnlyIterator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Resolver.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Resolverator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/SingleValueIterator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Sorter.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Sorterator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Striterator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/UniquenessFilter.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Visitor.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/Visitorator.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/XProperty.java branches/READ_CACHE2/ctc-striterators/src/java/cutthecrap/utils/striterators/XPropertyIterator.java branches/READ_CACHE2/ctc-striterators/src/test/cutthecrap/utils/striterators/TestAll.java branches/READ_CACHE2/ctc-striterators/src/test/cutthecrap/utils/striterators/TestCloseable.java branches/READ_CACHE2/ctc-striterators/src/test/cutthecrap/utils/striterators/TestFilter.java branches/READ_CACHE2/ctc-striterators/src/test/cutthecrap/utils/striterators/TestFilterBase.java Added Paths: ----------- branches/READ_CACHE2/bigdata/src/test/com/bigdata/striterator/TestAppendFilter.java branches/READ_CACHE2/bigdata-ganglia/LEGAL/junit-license.html branches/READ_CACHE2/bigdata-ganglia/LEGAL/log4j-license.txt branches/READ_CACHE2/bigdata-gas/ branches/READ_CACHE2/bigdata-gas/LEGAL/ branches/READ_CACHE2/bigdata-gas/LEGAL/apache-license-2_0.txt branches/READ_CACHE2/bigdata-gas/LEGAL/junit-license.html branches/READ_CACHE2/bigdata-gas/LEGAL/log4j-license.txt branches/READ_CACHE2/bigdata-gas/LEGAL/sesame2.x-license.txt branches/READ_CACHE2/bigdata-gas/NOTICE branches/READ_CACHE2/bigdata-gas/build.properties branches/READ_CACHE2/bigdata-gas/build.xml branches/READ_CACHE2/bigdata-gas/lib/ branches/READ_CACHE2/bigdata-gas/lib/junit-3.8.1.jar branches/READ_CACHE2/bigdata-gas/lib/log4j-1.2.15.jar branches/READ_CACHE2/bigdata-gas/lib/openrdf-sesame-2.6.10-onejar.jar branches/READ_CACHE2/bigdata-gas/src/ branches/READ_CACHE2/bigdata-gas/src/java/ branches/READ_CACHE2/bigdata-gas/src/java/com/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/EdgesEnum.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/Factory.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASContext.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASEngine.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASOptions.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASProgram.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASScheduler.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASSchedulerImpl.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASState.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASStats.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGraphAccessor.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IReducer.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IStaticFrontier.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/BFS.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/SSSP.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/package.html branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/BaseGASProgram.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASContext.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASEngine.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASStats.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/VertexTaskFactory.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/frontier/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/frontier/StaticFrontier2.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/package.html branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASEngine.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SailGraphFixture.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/package.html branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/CHMScheduler.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/STScheduler.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/GASImplUtil.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IArraySlice.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IIntArraySlice.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IManagedArray.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IManagedIntArray.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedArray.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedIntArray.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/VertexDistribution.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/package.html branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/util/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/util/AbstractGraphFixture.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/util/GASUtil.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/util/IGraphFixture.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/util/IGraphFixtureFactory.java branches/READ_CACHE2/bigdata-gas/src/resources/ branches/READ_CACHE2/bigdata-gas/src/test/ branches/READ_CACHE2/bigdata-gas/src/test/com/ branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/ branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/ branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/ branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/AbstractGraphTestCase.java branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/TestAll.java branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/ branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestAll.java branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestBFS.java branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestSSSP.java branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/data/ branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/data/smallGraph.ttl branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/ branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/ branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/TestAll.java branches/READ_CACHE2/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java branches/READ_CACHE2/bigdata-perf/gas/ branches/READ_CACHE2/bigdata-perf/gas/Makefile branches/READ_CACHE2/bigdata-perf/gas/README.txt branches/READ_CACHE2/bigdata-perf/gas/RWStore.properties branches/READ_CACHE2/bigdata-perf/gas/build.properties branches/READ_CACHE2/bigdata-perf/gas/build.xml branches/READ_CACHE2/bigdata-perf/gas/log4j.properties branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/ branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/ branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/ branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/ branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASEngine.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASState.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGraphFixture.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/GASRunner.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/MergeSortIterator.java branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/mem/ branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/mem/package.html branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/scheduler/ branches/READ_CACHE2/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/ branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/graph/ branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/graph/analytics/ branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/ branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/ branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/AbstractBigdataGraphTestCase.java branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestAll.java branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestBFS.java branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestGather.java branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestSSSP.java branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/ branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestBindHeisenbug708.java branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestGraphEmptyPattern709_429.java branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/TestSubSelectFilterExist725.java branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/filter-exist-725-no-sub-select.rq branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/filter-exist-725-sub-select.rq branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/filter-exist-725.srx branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/filter-exist-725.ttl branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708-doubleBind.rq branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708-doubleBind.srx branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708-doubleBind.ttl branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708.rq branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708.srx branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/heisenbug-708.ttl branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429.rq branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429.srx branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429.trig branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429empty.srx branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429empty.trig branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429neg.rq branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429neg.srx branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac429neg.trig branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709.rq branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709.srx branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709.trig branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709empty.rq branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709empty.srx branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709empty.trig branches/READ_CACHE2/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/trac709workaround.rq branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractProtocolTest.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractSimpleInsertTest.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/ExampleProtocolTest.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/ProxySuiteHelper.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestAskJsonTrac704.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestCBD731.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestInsertFilterFalse727.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestPostNotURLEncoded.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestProtocolAll.java branches/READ_CACHE2/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestRelease123Protocol.java branches/READ_CACHE2/ctc-striterators/src/test/cutthecrap/utils/striterators/TestArrayIterator.java Removed Paths: ------------- branches/READ_CACHE2/bigdata-gas/LEGAL/ branches/READ_CACHE2/bigdata-gas/LEGAL/apache-license-2_0.txt branches/READ_CACHE2/bigdata-gas/LEGAL/junit-license.html branches/READ_CACHE2/bigdata-gas/LEGAL/log4j-license.txt branches/READ_CACHE2/bigdata-gas/LEGAL/sesame2.x-license.txt branches/READ_CACHE2/bigdata-gas/NOTICE branches/READ_CACHE2/bigdata-gas/build.properties branches/READ_CACHE2/bigdata-gas/build.xml branches/READ_CACHE2/bigdata-gas/lib/ branches/READ_CACHE2/bigdata-gas/lib/junit-3.8.1.jar branches/READ_CACHE2/bigdata-gas/lib/log4j-1.2.15.jar branches/READ_CACHE2/bigdata-gas/lib/openrdf-sesame-2.6.10-onejar.jar branches/READ_CACHE2/bigdata-gas/src/ branches/READ_CACHE2/bigdata-gas/src/java/ branches/READ_CACHE2/bigdata-gas/src/java/com/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/EdgesEnum.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/Factory.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASContext.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASEngine.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASOptions.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASProgram.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASScheduler.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASSchedulerImpl.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASState.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASStats.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IGraphAccessor.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IReducer.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/IStaticFrontier.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/BFS.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/SSSP.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/package.html branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/BaseGASProgram.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASContext.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASEngine.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASStats.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/VertexTaskFactory.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/frontier/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/frontier/StaticFrontier2.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/package.html branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/ branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASEngine.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/SailGraphFixture.java branches/READ_CACHE2/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/package.html ... [truncated message content] |
From: <tho...@us...> - 2013-09-01 15:50:00
|
Revision: 7380 http://bigdata.svn.sourceforge.net/bigdata/?rev=7380&view=rev Author: thompsonbry Date: 2013-09-01 15:49:47 +0000 (Sun, 01 Sep 2013) Log Message: ----------- Moved the GAS code into a top-level Apache-2 module. The module is not yet truely independent. We need to expose a few additional classes for that (mainly CAT and DaemonThreadFactory). Also, module builds for the striterator is a pre-condition. We probably need a commons module for things like CAT. I was able to compile and start executing the test suite using "ant junit", so this should not break CI. See #629 Modified Paths: -------------- branches/BIGDATA_RELEASE_1_2_0/.classpath branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/AbstractBigdataGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/build.properties branches/BIGDATA_RELEASE_1_2_0/build.xml Added Paths: ----------- branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/apache-license-2_0.txt branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/junit-license.html branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/log4j-license.txt branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/sesame2.x-license.txt branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/NOTICE branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/build.properties branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/build.xml branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/lib/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/lib/junit-3.8.1.jar branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/lib/log4j-1.2.15.jar branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/lib/openrdf-sesame-2.6.10-onejar.jar branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/EdgesEnum.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/Factory.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASContext.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASEngine.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASOptions.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASProgram.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASSchedulerImpl.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASState.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGASStats.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IGraphAccessor.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IReducer.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/IStaticFrontier.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/BFS.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/SSSP.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/BaseGASProgram.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASContext.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASEngine.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASState.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/GASStats.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/VertexTaskFactory.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/frontier/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/package.html branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/sail/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/CHMScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/STScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/GASImplUtil.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IArraySlice.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IIntArraySlice.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IManagedArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IManagedIntArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedIntArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/VertexDistribution.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/package.html branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/util/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/resources/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/AbstractGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestBFS.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestSSSP.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/data/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java Removed Paths: ------------- branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/BFS.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/analytics/SSSP.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/CHMScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/CHSScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/STScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/GASImplUtil.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IArraySlice.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IIntArraySlice.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IManagedArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/IManagedIntArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/java/com/bigdata/rdf/graph/impl/util/ManagedIntArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestBFS.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestBFS0.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/analytics/TestSSSP.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/EdgesEnum.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/Factory.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASContext.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASEngine.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASOptions.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASProgram.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASSchedulerImpl.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASState.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASStats.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGraphAccessor.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IReducer.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IStaticFrontier.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/BFS.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/SSSP.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/package.html branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/BaseGASProgram.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASContext.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASEngine.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASState.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASStats.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/VertexTaskFactory.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/frontier/ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/package.html branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/sail/ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/scheduler/CHMScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/scheduler/STScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/GASImplUtil.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/IArraySlice.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/IIntArraySlice.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/IManagedArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/IManagedIntArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/ManagedArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/ManagedIntArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/VertexDistribution.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/package.html branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/util/ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/AbstractGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/analytics/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/analytics/TestBFS.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/analytics/TestSSSP.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/data/ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java Modified: branches/BIGDATA_RELEASE_1_2_0/.classpath =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/.classpath 2013-09-01 15:21:14 UTC (rev 7379) +++ branches/BIGDATA_RELEASE_1_2_0/.classpath 2013-09-01 15:49:47 UTC (rev 7380) @@ -29,6 +29,8 @@ <classpathentry kind="src" path="bigdata-gom/src/test"/> <classpathentry kind="src" path="bigdata-gom/src/resources"/> <classpathentry kind="src" path="bigdata-gom/src/samples"/> + <classpathentry kind="src" path="bigdata-gas/src/java"/> + <classpathentry kind="src" path="bigdata-gas/src/test"/> <classpathentry exported="true" kind="lib" path="bigdata/lib/dsi-utils-1.0.6-020610.jar"/> <classpathentry exported="true" kind="lib" path="bigdata/lib/lgpl-utils-1.0.6-020610.jar"/> <classpathentry exported="true" kind="lib" path="bigdata-jini/lib/apache/zookeeper-3.3.3.jar"/> Property changes on: branches/BIGDATA_RELEASE_1_2_0/bigdata-gas ___________________________________________________________________ Added: svn:ignore + ant-build Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/apache-license-2_0.txt =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/apache-license-2_0.txt (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/apache-license-2_0.txt 2013-09-01 15:49:47 UTC (rev 7380) @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/junit-license.html =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/junit-license.html (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/junit-license.html 2013-09-01 15:49:47 UTC (rev 7380) @@ -0,0 +1,226 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"> +<!-- saved from url=(0041)http://www.eclipse.org/legal/cpl-v10.html --> +<HTML><HEAD><TITLE>Common Public License - v 1.0</TITLE> +<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1"> +<META content="MSHTML 6.00.2900.3059" name=GENERATOR></HEAD> +<BODY vLink=#800000 bgColor=#ffffff> +<P align=center><B>Common Public License - v 1.0</B> +<P><B></B><FONT size=3></FONT> +<P><FONT size=3></FONT><FONT size=2>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER +THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR +DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS +AGREEMENT.</FONT> +<P><FONT size=2></FONT> +<P><FONT size=2><B>1. DEFINITIONS</B></FONT> +<P><FONT size=2>"Contribution" means:</FONT> +<UL><FONT size=2>a) in the case of the initial Contributor, the initial code + and documentation distributed under this Agreement, and<BR clear=left>b) in + the case of each subsequent Contributor:</FONT></UL> +<UL><FONT size=2>i) changes to the Program, and</FONT></UL> +<UL><FONT size=2>ii) additions to the Program;</FONT></UL> +<UL><FONT size=2>where such changes and/or additions to the Program originate + from and are distributed by that particular Contributor. </FONT><FONT size=2>A + Contribution 'originates' from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + </FONT><FONT size=2>Contributions do not include additions to the Program + which: (i) are separate modules of software distributed in conjunction with + the Program under their own license agreement, and (ii) are not derivative + works of the Program. </FONT></UL> +<P><FONT size=2></FONT> +<P><FONT size=2>"Contributor" means any person or entity that distributes the +Program.</FONT> +<P><FONT size=2></FONT><FONT size=2></FONT> +<P><FONT size=2>"Licensed Patents " mean patent claims licensable by a +Contributor which are necessarily infringed by the use or sale of its +Contribution alone or when combined with the Program. </FONT> +<P><FONT size=2></FONT><FONT size=2></FONT> +<P><FONT size=2></FONT><FONT size=2>"Program" means the Contributions +distributed in accordance with this Agreement.</FONT> +<P><FONT size=2></FONT> +<P><FONT size=2>"Recipient" means anyone who receives the Program under this +Agreement, including all Contributors.</FONT> +<P><FONT size=2><B></B></FONT> +<P><FONT size=2><B>2. GRANT OF RIGHTS</B></FONT> +<UL><FONT size=2></FONT><FONT size=2>a) </FONT><FONT size=2>Subject to the + terms of this Agreement, each Contributor hereby grants</FONT><FONT size=2> + Recipient a non-exclusive, worldwide, royalty-free copyright license + to</FONT><FONT color=#ff0000 size=2> </FONT><FONT size=2>reproduce, prepare + derivative works of, publicly display, publicly perform, distribute and + sublicense the Contribution of such Contributor, if any, and such derivative + works, in source code and object code form.</FONT></UL> +<UL><FONT size=2></FONT></UL> +<UL><FONT size=2></FONT><FONT size=2>b) Subject to the terms of this + Agreement, each Contributor hereby grants </FONT><FONT size=2>Recipient a + non-exclusive, worldwide,</FONT><FONT color=#008000 size=2> </FONT><FONT + size=2>royalty-free patent license under Licensed Patents to make, use, sell, + offer to sell, import and otherwise transfer the Contribution of such + Contributor, if any, in source code and object code form. This patent license + shall apply to the combination of the Contribution and the Program if, at the + time the Contribution is added by the Contributor, such addition of the + Contribution causes such combination to be covered by the Licensed Patents. + The patent license shall not apply to any other combinations which include the + Contribution. No hardware per se is licensed hereunder. </FONT></UL> +<UL><FONT size=2></FONT></UL> +<UL><FONT size=2>c) Recipient understands that although each Contributor + grants the licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the patent or + other intellectual property rights of any other entity. Each Contributor + disclaims any liability to Recipient for claims brought by any other entity + based on infringement of intellectual property rights or otherwise. As a + condition to exercising the rights and licenses granted hereunder, each + Recipient hereby assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party patent license + is required to allow Recipient to distribute the Program, it is Recipient's + responsibility to acquire that license before distributing the +Program.</FONT></UL> +<UL><FONT size=2></FONT></UL> +<UL><FONT size=2>d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant the + copyright license set forth in this Agreement. </FONT></UL> +<UL><FONT size=2></FONT></UL> +<P><FONT size=2><B>3. REQUIREMENTS</B></FONT> +<P><FONT size=2><B></B>A Contributor may choose to distribute the Program in +object code form under its own license agreement, provided that:</FONT> +<UL><FONT size=2>a) it complies with the terms and conditions of this + Agreement; and</FONT></UL> +<UL><FONT size=2>b) its license agreement:</FONT></UL> +<UL><FONT size=2>i) effectively disclaims</FONT><FONT size=2> on behalf of all + Contributors all warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and implied warranties + or conditions of merchantability and fitness for a particular purpose; +</FONT></UL> +<UL><FONT size=2>ii) effectively excludes on behalf of all Contributors all + liability for damages, including direct, indirect, special, incidental and + consequential damages, such as lost profits; </FONT></UL> +<UL><FONT size=2>iii)</FONT><FONT size=2> states that any provisions which + differ from this Agreement are offered by that Contributor alone and not by + any other party; and</FONT></UL> +<UL><FONT size=2>iv) states that source code for the Program is available from + such Contributor, and informs licensees how to obtain it in a reasonable + manner on or through a medium customarily used for software + exchange.</FONT><FONT color=#0000ff size=2> </FONT><FONT color=#ff0000 + size=2></FONT></UL> +<UL><FONT color=#ff0000 size=2></FONT><FONT size=2></FONT></UL> +<P><FONT size=2>When the Program is made available in source code form:</FONT> +<UL><FONT size=2>a) it must be made available under this Agreement; and +</FONT></UL> +<UL><FONT size=2>b) a copy of this Agreement must be included with each copy + of the Program. </FONT></UL> +<P><FONT size=2></FONT><FONT color=#0000ff size=2><STRIKE></STRIKE></FONT> +<P><FONT color=#0000ff size=2><STRIKE></STRIKE></FONT><FONT size=2>Contributors +may not remove or alter any copyright notices contained within the Program. +</FONT> +<P><FONT size=2></FONT> +<P><FONT size=2>Each Contributor must identify itself as the originator of its +Contribution, if any, in a manner that reasonably allows subsequent Recipients +to identify the originator of the Contribution. </FONT> +<P><FONT size=2></FONT> +<P><FONT size=2><B>4. COMMERCIAL DISTRIBUTION</B></FONT> +<P><FONT size=2>Commercial distributors of software may accept certain +responsibilities with respect to end users, business partners and the like. +While this license is intended to facilitate the commercial use of the Program, +the Contributor who includes the Program in a commercial product offering should +do so in a manner which does not create potential liability for other +Contributors. Therefore, if a Contributor includes the Program in a commercial +product offering, such Contributor ("Commercial Contributor") hereby agrees to +defend and indemnify every other Contributor ("Indemnified Contributor") against +any losses, damages and costs (collectively "Losses") arising from claims, +lawsuits and other legal actions brought by a third party against the +Indemnified Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program in a +commercial product offering. The obligations in this section do not apply to any +claims or Losses relating to any actual or alleged intellectual property +infringement. In order to qualify, an Indemnified Contributor must: a) promptly +notify the Commercial Contributor in writing of such claim, and b) allow the +Commercial Contributor to control, and cooperate with the Commercial Contributor +in, the defense and any related settlement negotiations. The Indemnified +Contributor may participate in any such claim at its own expense.</FONT> +<P><FONT size=2></FONT> +<P><FONT size=2>For example, a Contributor might include the Program in a +commercial product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance claims, or +offers warranties related to Product X, those performance claims and warranties +are such Commercial Contributor's responsibility alone. Under this section, the +Commercial Contributor would have to defend claims against the other +Contributors related to those performance claims and warranties, and if a court +requires any other Contributor to pay any damages as a result, the Commercial +Contributor must pay those damages.</FONT> +<P><FONT size=2></FONT><FONT color=#0000ff size=2></FONT> +<P><FONT color=#0000ff size=2></FONT><FONT size=2><B>5. NO WARRANTY</B></FONT> +<P><FONT size=2>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS +PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR +CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. Each Recipient is</FONT><FONT size=2> solely responsible for +determining the appropriateness of using and distributing </FONT><FONT +size=2>the Program</FONT><FONT size=2> and assumes all risks associated with its +exercise of rights under this Agreement</FONT><FONT size=2>, including but not +limited to the risks and costs of program errors, compliance with applicable +laws, damage to or loss of data, </FONT><FONT size=2>programs or equipment, and +unavailability or interruption of operations</FONT><FONT size=2>. </FONT><FONT +size=2></FONT> +<P><FONT size=2></FONT> +<P><FONT size=2></FONT><FONT size=2><B>6. DISCLAIMER OF LIABILITY</B></FONT> +<P><FONT size=2></FONT><FONT size=2>EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +</FONT><FONT size=2>(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT +size=2> HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS +GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</FONT> +<P><FONT size=2></FONT><FONT size=2></FONT> +<P><FONT size=2><B>7. GENERAL</B></FONT> +<P><FONT size=2></FONT><FONT size=2>If any provision of this Agreement is +invalid or unenforceable under applicable law, it shall not affect the validity +or enforceability of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable.</FONT> +<P><FONT size=2></FONT> +<P><FONT size=2>If Recipient institutes patent litigation against a Contributor +with respect to a patent applicable to software (including a cross-claim or +counterclaim in a lawsuit), then any patent licenses granted by that Contributor +to such Recipient under this Agreement shall terminate as of the date such +litigation is filed. In addition, if Recipient institutes patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the date +such litigation is filed. </FONT><FONT size=2></FONT> +<P><FONT size=2></FONT> +<P><FONT size=2>All Recipient's rights under this Agreement shall terminate if +it fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of time after +becoming aware of such noncompliance. If all Recipient's rights under this +Agreement terminate, Recipient agrees to cease use and distribution of the +Program as soon as reasonably practicable. However, Recipient's obligations +under this Agreement and any licenses granted by Recipient relating to the +Program shall continue and survive. </FONT><FONT size=2></FONT> +<P><FONT size=2></FONT> +<P><FONT size=2></FONT><FONT size=2>Everyone is permitted to copy and distribute +copies of this Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The Agreement +Steward reserves the right to </FONT><FONT size=2>publish new versions +(including revisions) of this Agreement from time to </FONT><FONT size=2>time. +No one other than the Agreement Steward has the right to modify this Agreement. +IBM is the initial Agreement Steward. IBM may assign the responsibility to serve +as the Agreement Steward to a suitable separate entity. </FONT><FONT size=2>Each +new version of the Agreement will be given a distinguishing version number. The +Program (including Contributions) may always be distributed subject to the +version of the Agreement under which it was received. In addition, after a new +version of the Agreement is published, Contributor may elect to distribute the +Program (including its Contributions) under the new </FONT><FONT size=2>version. +</FONT><FONT size=2>Except as expressly stated in Sections 2(a) and 2(b) above, +Recipient receives no rights or licenses to the intellectual property of any +Contributor under this Agreement, whether expressly, </FONT><FONT size=2>by +implication, estoppel or otherwise</FONT><FONT size=2>.</FONT><FONT size=2> All +rights in the Program not expressly granted under this Agreement are +reserved.</FONT> +<P><FONT size=2></FONT> +<P><FONT size=2>This Agreement is governed by the laws of the State of New York +and the intellectual property laws of the United States of America. No party to +this Agreement will bring a legal action under this Agreement more than one year +after the cause of action arose. Each party waives its rights to a jury trial in +any resulting litigation.</FONT> +<P><FONT size=2></FONT><FONT size=2></FONT> +<P><FONT size=2></FONT></P></BODY></HTML> Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/log4j-license.txt =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/log4j-license.txt (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/log4j-license.txt 2013-09-01 15:49:47 UTC (rev 7380) @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/sesame2.x-license.txt =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/sesame2.x-license.txt (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/LEGAL/sesame2.x-license.txt 2013-09-01 15:49:47 UTC (rev 7380) @@ -0,0 +1,25 @@ +Copyright Aduna (http://www.aduna-software.com/) \xA9 2001-2007 +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/NOTICE =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/NOTICE (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/NOTICE 2013-09-01 15:49:47 UTC (rev 7380) @@ -0,0 +1,18 @@ + + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +---- +This product includes software developed by The Apache Software Foundation (http://www.apache.org/). +License: http://www.apache.org/licenses/LICENSE-2.0 Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/build.properties =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/build.properties (rev 0) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/build.properties 2013-09-01 15:49:47 UTC (rev 7380) @@ -0,0 +1,50 @@ +# The root of the checked out svn source. This assumes that you have checked +# out the trunk so that all modules were automatically checked out and are in +# direct subdirectories of the directory containing this properties file and +# the ant build.xml file. +bigdata-gas.dir=. +# Where the generated files will be written. +# build.dir/classes [compiled classes and misc resources for classpath] +# build.dir/docs [generated documentation]. +# build.dir/docs/api [generated javadoc]. +# build.dir/lib [bundled libraries copied here for easier deployment] +# build.dir/src [source code copied here for releases] +build.dir=ant-build + +## +# javac options +## + +# debug=on|off +javac.debug=on +# debuglevel=lines,vars,source (or any combination thereof). +javac.debuglevel=lines,vars,source +javac.verbose=off +#javac.target=1.6 +#javac.source=1.6 +javac.encoding=Cp1252 + +# Where to find the library dependencies (junit) +build.lib.dir=lib + +# Where the write the output from the unit tests. +test.results.dir=${build.dir}/test-results + +## +# Properties for creating a release. +## + +# Where the releases will be written. +release.dir=ant-release + +# The build version. +build.ver=0.1.0 + +# Set true to do a snapshot build. This changes the value of ${version} to +# include the date. +#snapshot=true +snapshot= + +# Javadoc build may be disabled using this property. The javadoc target will +# not be executed unless this property is defined (its value does not matter). +javadoc= Added: branches/BIGDATA_RELEASE_1_2_0/bigdata-gas/build.xml =============================... [truncated message content] |
From: <tho...@us...> - 2013-09-01 15:21:25
|
Revision: 7379 http://bigdata.svn.sourceforge.net/bigdata/?rev=7379&view=rev Author: thompsonbry Date: 2013-09-01 15:21:14 +0000 (Sun, 01 Sep 2013) Log Message: ----------- Marking the ctc striterators package with the Apache 2 license. This package is already partly "modularized". Modified Paths: -------------- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Appender.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Appenderator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ArrayIterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractor.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractorator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/EmptyIterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/EnumIterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ExclusionFilter.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Expander.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Expanderator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Filter.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/FilterBase.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Filterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IContextMgr.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilter.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilterTest.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IPropertySet.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IStriterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IXProperty.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IXPropertyIterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapper.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapperator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Merger.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mergerator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/NOPFilter.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Prefetch.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ReadOnlyIterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Resolver.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Resolverator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/SingleValueIterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Sorter.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Sorterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Striterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/UniquenessFilter.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Visitor.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Visitorator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/XProperty.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/XPropertyIterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/test/cutthecrap/utils/striterators/TestAll.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/test/cutthecrap/utils/striterators/TestArrayIterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/test/cutthecrap/utils/striterators/TestCloseable.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/test/cutthecrap/utils/striterators/TestFilter.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/test/cutthecrap/utils/striterators/TestFilterBase.java Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Appender.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Appender.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Appender.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,26 +1,17 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ package cutthecrap.utils.striterators; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Appenderator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Appenderator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Appenderator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package cutthecrap.utils.striterators; import java.util.*; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ArrayIterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ArrayIterator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ArrayIterator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.Iterator; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractor.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractor.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractor.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.Iterator; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractorator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractorator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Contractorator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,32 +1,21 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.Iterator; -import java.util.NoSuchElementException; /** * A Contractorator is the reverse of an Expanderator. A Contractorator takes a Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/EmptyIterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/EmptyIterator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/EmptyIterator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.*; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/EnumIterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/EnumIterator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/EnumIterator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.Iterator; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ExclusionFilter.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ExclusionFilter.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ExclusionFilter.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; /****************************************************************************** Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Expander.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Expander.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Expander.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.Iterator; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Expanderator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Expanderator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Expanderator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package cutthecrap.utils.striterators; import java.util.Iterator; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Filter.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Filter.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Filter.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.Iterator; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/FilterBase.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/FilterBase.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/FilterBase.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.Collections; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Filterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Filterator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Filterator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,32 +1,21 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.Iterator; -import java.util.NoSuchElementException; /** * <p>Example usage</p> Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IContextMgr.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IContextMgr.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IContextMgr.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,29 +1,18 @@ /** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2006-2011. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ -/* - * Created on Aug 30, 2011 - */ package cutthecrap.utils.striterators; /** Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilter.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilter.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilter.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,29 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - - package cutthecrap.utils.striterators; import java.util.Iterator; @@ -31,6 +20,7 @@ import com.bigdata.striterator.ICloseableIterator; + /** * Provides the hook interface that allows use by Striterators * Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilterTest.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilterTest.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IFilterTest.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,30 +1,18 @@ /** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2006-2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ -/* - * Created on Sep 29, 2010 - */ - package cutthecrap.utils.striterators; import java.io.Serializable; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IPropertySet.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IPropertySet.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IPropertySet.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,30 +1,18 @@ /** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2006-2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ -/* - * Created on Sep 27, 2010 - */ - package cutthecrap.utils.striterators; /** Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IStriterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IStriterator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IStriterator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.lang.reflect.Method; @@ -30,9 +20,11 @@ import java.util.Enumeration; /** - * IStriterator - * - * Extends the Iterator interface to expose methods to add IFilter objects and a specific Type filter + * Striterator - transformation and mapping patterns over java {@link Iterator} + * s. + * <p> + * Extends the {@link Iterator} interface to expose methods to add + * {@link IFilter} objects and a specific Type filter */ public interface IStriterator extends Iterator, Enumeration { Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IXProperty.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IXProperty.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IXProperty.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; /** IXProperty.java Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IXPropertyIterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IXPropertyIterator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/IXPropertyIterator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; /** Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapper.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapper.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapper.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.lang.reflect.Method; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapperator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapperator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mapperator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.*; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Merger.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Merger.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Merger.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.Iterator; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mergerator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mergerator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Mergerator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ - package cutthecrap.utils.striterators; import java.util.*; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/NOPFilter.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/NOPFilter.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/NOPFilter.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,30 +1,18 @@ /** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2006-2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ -/* - * Created on Sep 29, 2010 - */ - package cutthecrap.utils.striterators; import java.util.Iterator; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Prefetch.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Prefetch.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Prefetch.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package cutthecrap.utils.striterators; import java.util.Iterator; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ReadOnlyIterator.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ReadOnlyIterator.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/ReadOnlyIterator.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,30 +1,18 @@ /** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ -/* - * Created on Apr 2, 2012 - */ - package cutthecrap.utils.striterators; import java.util.Iterator; Modified: branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Resolver.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Resolver.java 2013-09-01 14:43:24 UTC (rev 7378) +++ branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Resolver.java 2013-09-01 15:21:14 UTC (rev 7379) @@ -1,28 +1,18 @@ -/* -Striterator - transformation and mapping patterns over java Iterators +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2010. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICE... [truncated message content] |
From: <tho...@us...> - 2013-09-01 14:43:31
|
Revision: 7378 http://bigdata.svn.sourceforge.net/bigdata/?rev=7378&view=rev Author: thompsonbry Date: 2013-09-01 14:43:24 +0000 (Sun, 01 Sep 2013) Log Message: ----------- added apache 2 headers on the GAS test suite files prior to creating an apache 2 module. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/AbstractGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/AbstractGraphTestCase.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/AbstractGraphTestCase.java 2013-09-01 14:32:09 UTC (rev 7377) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/AbstractGraphTestCase.java 2013-09-01 14:43:24 UTC (rev 7378) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; import java.util.LinkedHashSet; Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/TestAll.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/TestAll.java 2013-09-01 14:32:09 UTC (rev 7377) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/TestAll.java 2013-09-01 14:43:24 UTC (rev 7378) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; import junit.framework.Test; Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java 2013-09-01 14:32:09 UTC (rev 7377) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java 2013-09-01 14:43:24 UTC (rev 7378) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph.impl.sail; import org.openrdf.model.URI; Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestAll.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestAll.java 2013-09-01 14:32:09 UTC (rev 7377) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestAll.java 2013-09-01 14:43:24 UTC (rev 7378) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph.impl.sail; import junit.framework.Test; Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java 2013-09-01 14:32:09 UTC (rev 7377) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java 2013-09-01 14:43:24 UTC (rev 7378) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph.impl.sail; import java.util.Collections; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tho...@us...> - 2013-09-01 14:32:24
|
Revision: 7377 http://bigdata.svn.sourceforge.net/bigdata/?rev=7377&view=rev Author: thompsonbry Date: 2013-09-01 14:32:09 +0000 (Sun, 01 Sep 2013) Log Message: ----------- - Checkpoint prior to creation of an Apache 2 GAS module. License headers have been applied, but code has not yet been relocated. - Changed the vertex sampling procedure. It now has a known basis and is available for both bigdata and the SAIL backends. This change means that we need to establish a new baseline for performance optimizations. Also, while the same distribution is used for all SAIL implementations, and while all implementations accept and use a random seed, there is NOT a guarantee the different implementations will sample the same vertices from the same graph. This is because the order in which the vertex sample is collected and the natural order of the vertices currently depends on the implementation objects. This COULD be fixed if we required the implementation to put the sampled vertices into an order based on their external representation as RDF Values, but even then implementation specific characteristics might not provide us with the same vertices (e.g., bigdata imposes a canonical mapping on xsd:dateTime). - Disabled ordering for the generic SAIL frontier compaction. (First, order does not matter since there is no disk access. Second, Value does not implement Comparable so the sort() throws a ClassCastException.) See #629 Modified Paths: -------------- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/EdgesEnum.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/Factory.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASContext.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASEngine.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASOptions.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASProgram.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASSchedulerImpl.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASState.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASStats.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGraphAccessor.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IReducer.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IStaticFrontier.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/BFS.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/SSSP.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/BaseGASProgram.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASContext.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASEngine.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASState.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASStats.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/VertexTaskFactory.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASEngine.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASState.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/mem/package.html branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/scheduler/CHMScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/scheduler/STScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/scheduler/TLScheduler2.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/GASImplUtil.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/IArraySlice.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/IIntArraySlice.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/IManagedArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/IManagedIntArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/ManagedArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/ManagedIntArray.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/BindingConstraint.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/AbstractGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/analytics/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/analytics/TestBFS.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/analytics/TestSSSP.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/java/cutthecrap/utils/striterators/Striterator.java branches/BIGDATA_RELEASE_1_2_0/ctc-striterators/src/test/cutthecrap/utils/striterators/TestCloseable.java Added Paths: ----------- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGraphFixture.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/GASRunner.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/frontier/ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/frontier/StaticFrontier2.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/sail/ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/sail/SAILGASEngine.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/sail/SailGraphFixture.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/sail/package.html branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/util/VertexDistribution.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/util/ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/util/AbstractGraphFixture.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/util/GASUtil.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/util/IGraphFixture.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/util/IGraphFixtureFactory.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/AbstractBigdataGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestBFS.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestGather.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/bd/TestSSSP.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/AbstractSailGraphTestCase.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/sail/TestGather.java Removed Paths: ------------- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/GASUtil.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASRunner.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/StaticFrontier2.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/bd/BigdataGASUtil.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/analytics/TestBFS0.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/TestAll.java branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/test/com/bigdata/rdf/graph/impl/TestGather.java Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/EdgesEnum.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/EdgesEnum.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/EdgesEnum.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; /** Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/Factory.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/Factory.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/Factory.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; /** Deleted: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/GASUtil.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/GASUtil.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/GASUtil.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,79 +0,0 @@ -package com.bigdata.rdf.graph; - - -import java.util.Iterator; -import java.util.concurrent.TimeUnit; - -import org.openrdf.model.Statement; -import org.openrdf.model.Value; - -import cutthecrap.utils.striterators.EmptyIterator; - -/** - * Utility class for operations on the public interfaces. - * - * @author <a href="mailto:tho...@us...">Bryan Thompson</a> - */ -public class GASUtil { - -// private static final Logger log = Logger.getLogger(GASUtil.class); - - /** - * The average fan out of the frontier. - * - * @param frontierSize - * The size of the frontier. - * @param nedges - * The number of edges visited when mapping the operation across - * that frontier. - * - * @return The average fan out. - */ - public static double fanOut(final int frontierSize, final long nedges) { - - return ((int) (nedges * 10d / frontierSize)) / 10d; - - } - - /** - * The traversed edges per second. - * - * @param nedges - * The number of traversed edges. - * @param elapsedNanos - * The elapsed time (nanoseconds). - * - * @return The traversed edges per second. - */ - public static long getTEPS(final long nedges, long elapsedNanos) { - - // avoid division by zero. - if (elapsedNanos == 0) - elapsedNanos = 1; - - // edges/nanosecond. - final double tepns = ((double) nedges) / elapsedNanos; - - // scale units to edges/second. - final double teps = tepns * TimeUnit.SECONDS.toNanos(1); - - // Round off to get rid of those nasty factions. - final long r = Math.round(teps); - - return r; - - } - - /** - * An empty vertex iterator. - */ - @SuppressWarnings({ "unchecked" }) - public static final Iterator<Value> EMPTY_VERTICES_ITERATOR = EmptyIterator.DEFAULT; - - /** - * An empty edge iterator. - */ - @SuppressWarnings({ "unchecked" }) - public static final Iterator<Statement> EMPTY_EDGES_ITERATOR = EmptyIterator.DEFAULT; - -} Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASContext.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASContext.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASContext.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; import java.util.concurrent.Callable; Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASEngine.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASEngine.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASEngine.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; /** @@ -31,6 +46,15 @@ IGraphAccessor graphAccessor, IGASProgram<VS, ES, ST> program); /** + * Return <code>true</code> iff the frontier should be sorted. Backends that + * benefit from an ordered frontier (e.g., to vector IOs) should return + * <code>true</code>. Backends that do not benefit from an ordered frontier + * (e.g., a backend based on hash collections in memory) should return + * <code>false</code>. + */ + boolean getSortFrontier(); + + /** * Polite shutdown. */ void shutdown(); @@ -39,5 +63,16 @@ * Immediate shutdown. */ void shutdownNow(); + + /* + * TODO This is a problem since we then need to scope the SailConnection + * internally. + */ +// /** +// * Access the default graph. In platforms that support multiple graphs, the +// * accessed graph will be platform specific. (The sense of graph here is a +// * triple or a quad store, not a named graph.) +// */ +// IGraphAccessor newGraphAccessor(); } \ No newline at end of file Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASOptions.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASOptions.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASOptions.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,6 +1,22 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; import org.openrdf.model.Statement; +import org.openrdf.model.URI; import org.openrdf.model.Value; import cutthecrap.utils.striterators.IStriterator; @@ -66,7 +82,7 @@ * * @see #getLinkAttribType() */ - Value getLinkType(); + URI getLinkType(); /** * Hook to impose a constraint on the visited edges and/or property values. Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASProgram.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASProgram.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASProgram.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; import org.openrdf.model.Statement; Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASScheduler.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASScheduler.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASScheduler.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; import org.openrdf.model.Value; Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASSchedulerImpl.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASSchedulerImpl.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASSchedulerImpl.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; /** Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASState.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASState.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASState.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; import org.openrdf.model.Statement; Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASStats.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASStats.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGASStats.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; /** Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGraphAccessor.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGraphAccessor.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IGraphAccessor.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; import java.util.Iterator; @@ -6,6 +21,8 @@ import org.openrdf.model.Statement; import org.openrdf.model.Value; +import com.bigdata.rdf.graph.impl.util.VertexDistribution; + /** * Interface abstracts access to a backend graph implementation. * @@ -35,18 +52,36 @@ void advanceView(); /** - * Return a sample (without duplicates) of vertices from the graph. + * Obtain a weighted distribution of the vertices in the graph from which + * samples may then be taken. The weight is the #of in-edges and out-edges + * in which a given vertex appears. Statements that model property values + * and statement that model link attributes SHOULD NOT be counted in this + * sample. * - * @param desiredSampleSize - * The desired sample size. + * @param r + * A random number generator that (a) MAY be used to select the + * sample distribution (the distribution does not need to be + * exhaustive so long as it obeys the sampling requirements); and + * (b) WILL be used to select vertices from that distribution. * - * @return The distinct samples that were found. + * @return The distribution. * - * FIXME Specify whether the sample must be uniform over the - * vertices, proportional to the #of (in/out)edges for those - * vertices, etc. Without a clear specification, we will not - * have the same behavior across different backends. + * TODO SAMPLING: While the same distribution is used for all SAIL + * implementations, and while all implementations accept and use a + * random seed, there is NOT a guarantee the different + * implementations will sample the same vertices from the same + * graph. This is because the order in which the vertex sample is + * collected and the natural order of the vertices currently depends + * on the implementation objects. + * <p> + * This COULD be fixed if we required the implementation to put the + * sampled vertices into an order based on their external + * representation as RDF Values, but still reporting their internal + * since that is what is used to actually specify a starting vertex + * of the GAS program. However, even then, implementation specific + * characteristics might not provide us with the same vertices + * (e.g., bigdata imposes a canonical mapping on xsd:dateTime). */ - Value[] getRandomSample(final Random r, final int desiredSampleSize); - + VertexDistribution getDistribution(Random r); + } Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IReducer.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IReducer.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IReducer.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,29 +1,18 @@ /** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. -Copyright (C) SYSTAP, LLC 2006-2007. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Contact: - SYSTAP, LLC - 4501 Tower Road - Greensboro, NC 27410 - lic...@bi... + http://www.apache.org/licenses/LICENSE-2.0 -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ -/* - * Created on Jan 16, 2008 - */ package com.bigdata.rdf.graph; import org.openrdf.model.Value; Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IStaticFrontier.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IStaticFrontier.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/IStaticFrontier.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph; import java.util.Iterator; @@ -49,18 +64,12 @@ * is specified since many techniques to compact the frontier can * only estimate the required capacity.) * @param ordered - * <code>true</code> iff the frontier is known to be ordered. + * <code>true</code> iff the vertices are not known to be ordered + * and SHOULD be ordered (some backends do not benefit from + * ordering the vertices). * @param vertices * The vertices in the new frontier. - * - * FIXME The MergeSortIterator and ordered frontiers should only - * be used when the graph is backed by indices. The cache - * efficiency concerns for ordered frontiers apply when accessing - * indices. However, we should not presump that order of - * traversal matters for other backends. For example, a backend - * based on hash collections over RDF Statement objects will not - * benefit from an ordering based on the RDF Value objects. */ - void resetFrontier(int minCapacity, boolean ordered, Iterator<Value> vertices); + void resetFrontier(int minCapacity, boolean sort, Iterator<Value> vertices); } Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/BFS.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/BFS.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/BFS.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph.analytics; import java.util.concurrent.atomic.AtomicInteger; @@ -24,7 +39,7 @@ */ public class BFS extends BaseGASProgram<BFS.VS, BFS.ES, Void> { - static class VS { + public static class VS { /** * <code>-1</code> until visited. When visited, set to the current round @@ -83,7 +98,7 @@ /** * Edge state is not used. */ - static class ES { + public static class ES { } Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/SSSP.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/SSSP.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/analytics/SSSP.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph.analytics; import org.apache.log4j.Logger; @@ -55,7 +70,7 @@ */ private final static int EDGE_LENGTH = 1; - static class VS { + public static class VS { /** * The minimum observed distance (in hops) from the source to this @@ -110,7 +125,7 @@ /** * Edge state is not used. */ - static class ES { + public static class ES { } Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/BaseGASProgram.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/BaseGASProgram.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/BaseGASProgram.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph.impl; import org.openrdf.model.Statement; @@ -32,7 +47,7 @@ * connectivity matrix (returns <code>null</code>). */ @Override - public Value getLinkType() { + public URI getLinkType() { return null; Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASContext.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASContext.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASContext.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph.impl; import java.util.Iterator; @@ -10,7 +25,6 @@ import org.openrdf.model.Value; import com.bigdata.rdf.graph.EdgesEnum; -import com.bigdata.rdf.graph.GASUtil; import com.bigdata.rdf.graph.IGASContext; import com.bigdata.rdf.graph.IGASProgram; import com.bigdata.rdf.graph.IGASScheduler; @@ -19,6 +33,7 @@ import com.bigdata.rdf.graph.IGraphAccessor; import com.bigdata.rdf.graph.IReducer; import com.bigdata.rdf.graph.IStaticFrontier; +import com.bigdata.rdf.graph.util.GASUtil; public class GASContext<VS, ES, ST> implements IGASContext<VS, ES, ST> { Modified: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASEngine.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASEngine.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASEngine.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,3 +1,18 @@ +/** + Copyright (C) SYSTAP, LLC 2006-2012. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ package com.bigdata.rdf.graph.impl; import java.lang.reflect.Constructor; @@ -12,6 +27,7 @@ import org.openrdf.model.Value; +import com.bigdata.rdf.graph.IGASContext; import com.bigdata.rdf.graph.IGASEngine; import com.bigdata.rdf.graph.IGASProgram; import com.bigdata.rdf.graph.IGASScheduler; @@ -19,6 +35,7 @@ import com.bigdata.rdf.graph.IGASState; import com.bigdata.rdf.graph.IGraphAccessor; import com.bigdata.rdf.graph.IStaticFrontier; +import com.bigdata.rdf.graph.impl.frontier.StaticFrontier2; import com.bigdata.rdf.graph.impl.scheduler.CHMScheduler; import com.bigdata.util.concurrent.DaemonThreadFactory; @@ -402,6 +419,19 @@ } + @Override + public <VS, ES, ST> IGASContext<VS, ES, ST> newGASContext( + final IGraphAccessor graphAccessor, + final IGASProgram<VS, ES, ST> gasProgram) { + + final IGASState<VS, ES, ST> gasState = newGASState(graphAccessor, + gasProgram); + + return new GASContext<VS, ES, ST>(this/* GASEngine */, graphAccessor, + gasState, gasProgram); + + } + public <VS, ES, ST> IGASState<VS, ES, ST> newGASState( final IGraphAccessor graphAccessor, final IGASProgram<VS, ES, ST> gasProgram) { @@ -410,7 +440,8 @@ final IGASSchedulerImpl gasScheduler = newScheduler(); - return new GASState<VS, ES, ST>(graphAccessor, frontier, gasScheduler, gasProgram); + return new GASState<VS, ES, ST>(this, graphAccessor, frontier, + gasScheduler, gasProgram); } Deleted: branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASRunner.java =================================================================== --- branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASRunner.java 2013-09-01 14:29:10 UTC (rev 7376) +++ branches/BIGDATA_RELEASE_1_2_0/bigdata-rdf/src/java/com/bigdata/rdf/graph/impl/GASRunner.java 2013-09-01 14:32:09 UTC (rev 7377) @@ -1,699 +0,0 @@ -package com.bigdata.rdf.graph.impl; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.lang.reflect.Constructor; -import java.util.LinkedHashSet; -import java.util.Properties; -import java.util.Random; -import java.util.concurrent.Callable; - -import org.apache.log4j.Logger; -import org.openrdf.model.Value; -import org.openrdf.rio.RDFFormat; - -import com.bigdata.Banner; -import com.bigdata.journal.BufferMode; -import com.bigdata.journal.ITx; -import com.bigdata.journal.Journal; -import com.bigdata.rdf.graph.IGASContext; -import com.bigdata.rdf.graph.IGASEngine; -import com.bigdata.rdf.graph.IGASProgram; -import com.bigdata.rdf.graph.IGASScheduler; -import com.bigdata.rdf.graph.IGASSchedulerImpl; -import com.bigdata.rdf.graph.IGASState; -import com.bigdata.rdf.graph.IGASStats; -import com.bigdata.rdf.graph.impl.bd.BigdataGASEngine; -import com.bigdata.rdf.graph.impl.bd.BigdataGASEngine.BigdataGraphAccessor; -import com.bigdata.rdf.rio.LoadStats; -import com.bigdata.rdf.sail.BigdataSail; -import com.bigdata.rdf.store.AbstractTripleStore; - -/** - * Base class for running performance tests. - * - * @author <a href="mailto:tho...@us...">Bryan Thompson</a> - * - * TODO Do we need a different driver if the algorithm always visits all - * vertices? For such algorithms, we just run them once per graph - * (unless the graph is dynamic). - */ -public class GASRunner<VS, ES, ST> implements Callable<IGASStats> { - - private static final Logger log = Logger.getLogger(GASRunner.class); - - /** - * The seed used for the random number generator. - */ - private final long seed; - - /** - * Random number generated used for sampling the starting vertices. - */ - private final Random r; - - /** - * The #of random starting vertices to use. - */ - private final int nsamples; - - /** - * The #of threads to use for GATHER and SCATTER operators. - */ - private final int nthreads; - - /** - * The analytic class to be executed. - */ - private final Class<IGASProgram<VS, ES, ST>> analyticClass; - - /** - * The property file - */ - private final String propertyFile; - - /** - * When non-<code>null</code>, this overrides the current buffer mode. - */ - private final BufferMode bufferModeOverride; - - /** - * When non-<code>null</code>, this overrides the KB namespace. - */ - private final String namespaceOverride; - - /** - * The {@link IGASSchedulerImpl} class to use. - */ - private final Class<IGASSchedulerImpl> schedulerClassOverride; - - /** - * When non-<code>null</code>, a list of zero or more resources to be - * loaded. The resources will be searched for as URLs, on the CLASSPATH, and - * in the file system. - */ - private final String[] loadSet; - - /** - * Print the optional message on stderr, print the usage information on - * stderr, and then force the program to exit with the given status code. - * - * @param status - * The status code. - * @param msg - * The optional message - */ - private static void usage(final int status, final String msg) { - - if (msg != null) { - - System.err.println(msg); - - } - - System.err.println("[options] analyticClass propertyFile"); - - System.exit(status); - - } - - /** - * Run a GAS analytic against some data set. - * - * @param args - * USAGE:<br/> - * <code>(options) analyticClass propertyFile</code> - * <p> - * <i>Where:</i> - * <dl> - * <dt>propertyFile</dt> - * <dd>A java properties file for a standalone {@link Journal}.</dd> - * </dl> - * and <i>options</i> are any of: - * <dl> - * <dt>-nthreads</dt> - * <dd>The #of threads which will be used for GATHER and SCATTER - * operations.</dd> - * <dt>-nsamples</dt> - * <dd>The #of random sample starting vertices that will be - * selected. The algorithm will be run ONCE for EACH sampled - * vertex.</dd> - * <dt>-seed</dt> - * <dd>The seed for the random number generator (default is - * <code>217L</code>).</dd> - * <dt>-bufferMode</dt> - * <dd>Overrides the {@link BufferMode} (if any) specified in the - * <code>propertyFile</code>.</dd> - * <dt>-schedulerClass</dt> - * <dd>Override the default {@link IGASScheduler}. Class must - * implement {@link IGASSchedulerImpl}.</dd> - * <dt>-namespace</dt> - * <dd>The namespace of the default SPARQL endpoint (the - * namespace will be <code>kb</code> if none was specified when - * the triple/quad store was created).</dd> - * <dt>-load</dt> - * <dd>Loads the named resource IFF the KB is empty (or does not - * exist) at the time this utility is executed. This option may - * appear multiple times. The resources will be searched for as - * URLs, on the CLASSPATH, and in the file system.</dd> - * </p> - * @throws ClassNotFoundException - */ - public GASRunner(final String[] args) throws ClassNotFoundException { - - Banner.banner(); - - long seed = 217L; - int nsamples = 100; - int nthreads = 4; - BufferMode bufferMode = null; // override only. - Class<IGASSchedulerImpl> schedulerClass = null; // override only. - String namespace = "kb"; - // Set of files to load (optional). - LinkedHashSet<String> loadSet = new LinkedHashSet<String>(); - - /* - * Handle all arguments starting with "-". These should appear before - * any non-option arguments to the program. - */ - int i = 0; - while (i < args.length) { - final String arg = args[i]; - if (arg.startsWith("-")) { - if (arg.equals("-seed")) { - seed = Long.valueOf(args[++i]); - } else if (arg.equals("-nsamples")) { - final String s = args[++i]; - nsamples = Integer.valueOf(s); - if (nsamples <= 0) { - usage(1/* status */, - "-nsamples must be positive, not: " + s); - } - } else if (arg.equals("-nthreads")) { - final String s = args[++i]; - nthreads = Integer.valueOf(s); - if (nthreads < 0) { - usage(1/* status */, - "-nthreads must be non-negative, not: " + s); - } - } else if (arg.equals("-bufferMode")) { - final String s = args[++i]; - bufferMode = BufferMode.valueOf(s); - } else if (arg.equals("-schedulerClass")) { - final String s = args[++i]; - schedulerClass = (Class<IGASSchedulerImpl>) Class.forName(s); - } else if (arg.equals("-namespace")) { - final String s = args[++i]; - namespace = s; - } else if (arg.equals("-load")) { - final String s = args[++i]; - loadSet.add(s); - } else { - usage(1/* status */, "Unknown argument: " + arg); - } - } else { - break; - } - i++; - } - - /* - * Check for the remaining (required) argument(s). - */ - final int nremaining = args.length - i; - if (nremaining != 2) { - /* - * There are either too many or too few arguments remaining. - */ - usage(1/* status */, nremaining < 1 ? "Too few arguments." - : "Too many arguments"); - } - - /* - * The analytic to be executed. - */ - { - - final String s = args[i++]; - - this.analyticClass = (Class<IGASProgram<VS, ES, ST>>) Class - .forName(s); - - } - - /* - * Property file. - */ - this.propertyFile = args[i++]; - - /* - * Assign parsed values. - */ - this.seed = seed; - this.nsamples = nsamples; - this.nthreads = nthreads; - this.namespaceOverride = namespace; - this.bufferModeOverride = bufferMode; - this.schedulerClassOverride = schedulerClass; - this.loadSet = loadSet.isEmpty() ? null : loadSet - .toArray(new String[loadSet.size()]); - - // Setup the random number generator. - this.r = new Random(seed); - - } - - /** - * Return an instance of the {@link IGASProgram} to be evaluated. - */ - protected IGASProgram<VS, ES, ST> newGASProgram() { - - final Class<IGASProgram<VS, ES, ST>> cls = analyticClass; - - try { - - final Constructor<IGASProgram<VS, ES, ST>> ctor = cls - .getConstructor(new Class[] {}); - - final IGASProgram<VS, ES, ST> gasProgram = ctor - .newInstance(new Object[] {}); - - return gasProgram; - - } catch (Exception e) { - - throw new RuntimeException(e); - - } - - } - - private Properties getProperties(final String resource) throws IOException { - - if (log.isInfoEnabled()) - log.info("Reading properties: " + resource); - - InputStream is = null; - try { - - // try the classpath - is = getClass().getResourceAsStream(resource); - - if (is != null) { - - } else { - - // try file system. - final File file = new File(resource); - - if (file.exists()) { - - is = new FileInputStream(file); - - } else { - - throw new IOException("Could not locate resource: " - + resource); - - } - - } - - /* - * Obtain a buffered reader on the input stream. - */ - - final Properties properties = new Properties(); - - final Reader reader = new BufferedReader(new InputStreamReader(is)); - - try { - - properties.load(reader); - - } finally { - - try { - - reader.close(); - - } catch (Throwable t) { - - log.error(t); - - } - - } - - /* - * Allow override of select options from the command line. - */ - { - final String[] overrides = new String[] { - // Journal options. - com.bigdata.journal.Options.FILE, -// // RDFParserOptions. -// RDFParserOptions.Options.DATATYPE_HANDLING, -// RDFParserOptions.Options.PRESERVE_BNODE_IDS, -// RDFParserOptions.Options.STOP_AT_FIRST_ERROR, -// RDFParserOptions.Options.VERIFY_DATA, -// // DataLoader options. -// DataLoader.Options.BUFFER_CAPACITY, -// DataLoader.Options.CLOSURE, -// DataLoader.Options.COMMIT, -// DataLoader.Options.FLUSH, - }; - for (String s : overrides) { - if (System.getProperty(s) != null) { - // Override/set from the environment. - final String v = System.getProperty(s); - if (log.isInfoEnabled()) - log.info("OVERRIDE:: Using: " + s + "=" + v); - properties.setProperty(s, v); - } - } - } - - return properties; - - } finally { - - if (is != null) { - - try { - - is.close(); - - } catch (Throwable t) { - - log.error(t); - - } - - } - - } - - } - - /** - * Run the test. - * <p> - * This provides a safe pattern for either loading data into a temporary - * journal, which is then destroyed, or using an exiting journal and - * optionally loading in some data set. When we load the data the journal is - * destroyed afterwards and when the journal is pre-existing and we neither - * load the data nor destroy the journal. This has to do with the effective - * BufferMode (if transient) and whether the file is specified and whether a - * temporary file is created (CREATE_TEMP_FILE). If we do our own file - * create if the effective buffer mode is non-transient, then we can get all - * this information. - */ - public IGASStats call() throws Exception { - - final Properties properties = getProperties(propertyFile); - - /* - * Note: Allows override through the command line argument. The default - * is otherwise the default and the value in the properties file (if - * any) will be used unless it is overridden. - */ - final BufferMode bufferMode = this.bufferModeOverride == null ? BufferMode - .valueOf(properties.getProperty(Journal.Options.BUFFER_MODE, - Journal.Options.DEFAULT_BUFFER_MODE)) : this.bufferModeOverride; - - properties.setProperty(Journal.Options.BUFFER_MODE, bufferMode.name()); - - final boolean isTransient = !bufferMode.isStable(); - - final boolean isTemporary; - if (isTransient) { - - isTemporary = true; - - } else { - - final String fileStr = properties.getProperty(Journal.Options.FILE); - - if (fileStr == null) { - - /* - * We will use a temporary file that we create here. The journal - * will be destroyed below. - */ - isTemporary = true; - - final File tmpFile = File.createTempFile( - GASRunner.class.getSimpleName(), Journal.Options.JNL); - - // Set this on the Properties so it will be used by the jnl. - properties.setProperty(Journal.Options.FILE, - tmpFile.getAbsolutePath()); - - } else { - - // real file is named. - isTemporary = false; - - } - - } - - // The effective KB name. - final String namespace = this.namespaceOverride == null ? properties - .getProperty(BigdataSail.Options.NAMESPACE, - BigdataSail.Options.DEFAULT_NAMESPACE) : this.namespaceOverride; - - properties.setProperty(BigdataSail.Options.NAMESPACE, namespace); - - /* - * TODO Could start NSS and use SPARQL UPDATE "LOAD" to load the data. - * That exposes the SPARQL end point for other purposes during the test. - * Is this useful? It could also let us run the GASEngine on a remote - * service (submit a callable to an HA server or define a REST API for - * submitting these GAS algorithms). - */ - final Journal jnl = new Journal(properties); - - try { - - // Locate/create KB. - final boolean newKB; - { - final AbstractTripleStore kb; - if (isTemporary) { - - kb = BigdataSail.createLTS(jnl, properties); - newKB = true; - - } else { - - final AbstractTripleStore tmp = (AbstractTripleStore) jnl - .getResourceLocator().locate(namespace, - ITx.UNISOLATED); - - if (tmp == null) { - - // create. - kb = BigdataSail.createLTS(jnl, properties); - newKB = true; - - } else { - - kb = tmp; - newKB = kb.getStatementCount() == 0L; - - } - - } - } - - /* - * Load data sets (iff new KB). - */ - if (newKB && (loadSet != null && loadSet.length > 0)) { - - loadFiles(jnl, namespace, loadSet); - - } - - return runAnalytic(jnl, namespace); - - } finally { - - if (isTemporary) { - - log.warn("Destroying temporary journal."); - - jnl.destroy(); - - } else { - - jnl.close(); - - } - - } - - } - - /** - * Load files into the journal. - * - * @param jnl - * The journal. - * @param namespace - * The KB namespace. - * @param loadSet - * The files. - * @throws IOException - */ - private LoadStats loadFiles(final Journal jnl, final String namespace, - final String[] loadSet) throws IOException { - - // final String path = "bigdata-rdf/src/resources/data/foaf"; - // final String dataFile[] = new String[] {// - // path + "/data-0.nq.gz",// - // path + "/data-1.nq.gz",// - // path + "/data-2.nq.gz",// - // path + "/data-3.nq.gz",// - // }; - final String baseUrl[] = new String[loadSet.length]; - for (int i = 0; i < loadSet.length; i++) { - baseUrl[i] = "file:" + loadSet[i]; - } - // fall back RDFFormat. - final RDFFormat[] rdfFormat = new RDFFormat[loadSet.length]; - for (int i = 0; i < loadSet.length; i++) { - rdfFormat[i] = RDFFormat.RDFXML; - } - - // Load data using... [truncated message content] |