Package com.moesol.geoserver.sync.core

Examples of com.moesol.geoserver.sync.core.Sha1Value


    assertTrue(value.isPrefixMatch(new byte[] { 0, 1 }));
    assertFalse(value.isPrefixMatch(new byte[] { 0, 2 }));
  }
 
  public void testCopyPrefixTo() {
    Sha1Value value = new Sha1Value(new byte[] { 0, 1, 2, 3 });
    byte[] out = new byte[3];
    value.copyPrefixTo(out);
    assertTrue(Arrays.equals(new byte[] { 0, 1, 2 }, out));
  }
View Full Code Here


    value.copyPrefixTo(out);
    assertTrue(Arrays.equals(new byte[] { 0, 1, 2 }, out));
  }
 
  public void testHashAndEquals() {
    Sha1Value v1 = new Sha1Value("aa");
    Sha1Value v2 = new Sha1Value("bb");
    Sha1Value v3 = new Sha1Value("aa");
   
    assertFalse(v1.equals(v2));
    assertFalse(v1.hashCode() == v2.hashCode());
    assertEquals(v1, v3);
    assertEquals(v1.hashCode(), v3.hashCode());
    assertFalse(v1.equals(null));
    assertFalse(v1.equals("hi"));
    assertTrue(v1.equals(v1));
  }
View Full Code Here

          iterator.close();
        }
  }

  public void sha1One(Feature feature) {
    Sha1Value idSha1 = m_featureSha1Sync.computeIdSha1(feature);
    Sha1Value valueSha1 = m_featureSha1Sync.computeValueSha1(feature);
    m_featureSha1s.add(new IdAndValueSha1s(idSha1, valueSha1));
  }
View Full Code Here

  public Object evaluate(Object object) {
    maybeOneTimeSetup(); // Collect sha1s over all filters checked.

    Feature feature = (Feature) object;
   
    Sha1Value idSha1 = m_featureSha1Evaluator.computeIdSha1(feature);
    Sha1Value valueSha1 = m_featureSha1Evaluator.computeValueSha1(feature);
    IdAndValueSha1s pair = new IdAndValueSha1s(idSha1, valueSha1);
    m_featureSha1s.add(pair);
    Sha1Value prefixSha1 = versionFeatures.getBucketPrefixSha1(pair);
   
    Sha1SyncJson remoteSha1Sync = REMOTE_SHA1_SYNC.get();
    if (remoteSha1Sync.max() > 1) {
      return LITERAL_TRUE; // Keep all features, we are not deep enough in search tree
    }
    if (remoteSha1Sync.hashes() == null) {
      return LITERAL_TRUE; // Missing all...
    }
   
    Sha1SyncPositionHash sha1Position = new Sha1SyncPositionHash().position(prefixSha1.toString());
    int idx = Collections.binarySearch(remoteSha1Sync.hashes(), sha1Position, POSITION_COMPARATOR);
    if (idx < 0) {
      idx = -idx - 2; // position on shorter prefix
    }
    if (idx < 0 || remoteSha1Sync.hashes().size() < idx) {
      return LITERAL_FALSE;
    }
    Sha1SyncPositionHash remoteGroup = remoteSha1Sync.hashes().get(idx);
    if (!prefixSha1.toString().startsWith(remoteGroup.position())) {
      return LITERAL_FALSE; // Missing position means remote side thinks position is synchronized.
    }
    Sha1Value sha1OfSha1 = m_featureSha1Evaluator.sha1OfSha1(valueSha1);
    if (sha1OfSha1.toString().equals(remoteGroup.summary())) {
      return LITERAL_FALSE; // Exact match, filter
    }
    return LITERAL_TRUE;
  }
View Full Code Here

        // IDs
        if ("88bfad9cfffeafd299a44d4daf979d57419a2621".equals(old.toString())) {
          return old;
        }
        if ("2a7bc94a06f3221293677515044b0a9dd3960f4e".equals(old.toString())) {
          return new Sha1Value("88bfad9cfffeafd299a44d4daf979d57419a2622");
        }

        // Values
        if ("27f1edbff7fa42bd9160c13ab6b24927393cc0d4".equals(old.toString())) {
          return old;
View Full Code Here

        if ("88bfad9cfffeafd299a44d4daf979d57419a2621".equals(old.toString())) {
          return old;
        }
        if ("2a7bc94a06f3221293677515044b0a9dd3960f4e".equals(old.toString())) {
          // Force collision.
          return new Sha1Value("88bfad9cfffeafd299a44d4daf979d57419a2621");
        }
        if ("ba5a86a5a1c34f30e7e3a9e8eef485f025c8d605".equals(old.toString())) {
          return old;
        }
       
View Full Code Here

    assertEquals("a0d545781a8852e26514091f08f2384942bf4061", v1(func.getFeatureSha1s().get(1)).toString());
  }
   
    @Test
  public void testSha1Match() throws ParseException, NoSuchAlgorithmException {
    Sha1Value featureSha1 = new Sha1Value(EXPECTED_SHA1);
    MessageDigest SHA1 = MessageDigest.getInstance("SHA-1");
    Sha1Value sha1OfSha1 = new Sha1Value(SHA1.digest(featureSha1.get()));
    List<Sha1SyncPositionHash> hashes = new ArrayList<Sha1SyncPositionHash>();
    hashes.add(new Sha1SyncPositionHash().position("").summary(sha1OfSha1.toString()));
    Sha1SyncJson sync = new Sha1SyncJson().level(0).max(1).hashes(hashes);
   
    List<Expression> args = new ArrayList<Expression>();
    args.add(ff.literal("-all"));
    args.add(ff.literal(new Gson().toJson(sync)));
View Full Code Here

//    }
//  }
 
    @Test
  public void testSha1Match_InSameGroupButNotSame() throws ParseException, NoSuchAlgorithmException {
    Sha1Value featureSha1 = new Sha1Value("F6e82e2d2452830bbdb9bc1ce353a2e159996308");
    MessageDigest SHA1 = MessageDigest.getInstance("SHA-1");
    Sha1Value sha1OfSha1 = new Sha1Value(SHA1.digest(featureSha1.get()));
    List<Sha1SyncPositionHash> hashes = new ArrayList<Sha1SyncPositionHash>();
    hashes.add(new Sha1SyncPositionHash().position("").summary(sha1OfSha1.toString()));
    Sha1SyncJson sync = new Sha1SyncJson().level(0).max(1).hashes(hashes);
   
    List<Expression> args = new ArrayList<Expression>();
    args.add(ff.literal("-all"));
    args.add(ff.literal(new Gson().toJson(sync)));
View Full Code Here

    return VersionFeatures.VERSION1.getBucketPrefixSha1(pair);
  }
 
    @Test
  public void testSha1MatchShallow() throws ParseException, NoSuchAlgorithmException {
    Sha1Value featureSha1 = new Sha1Value("56e82e2d2452830bbdb9bc1ce353a2e159996308");
    MessageDigest SHA1 = MessageDigest.getInstance("SHA-1");
    Sha1Value sha1OfSha1 = new Sha1Value(SHA1.digest(featureSha1.get()));
    List<Sha1SyncPositionHash> hashes = new ArrayList<Sha1SyncPositionHash>();
    hashes.add(new Sha1SyncPositionHash().position("").summary(sha1OfSha1.toString()));
    Sha1SyncJson sync = new Sha1SyncJson().level(0).max(2).hashes(hashes);
   
    List<Expression> args = new ArrayList<Expression>();
    args.add(ff.literal("-all"));
    args.add(ff.literal(new Gson().toJson(sync)));
View Full Code Here

  private void sha1All() {
    for (IdAndValueSha1s sha1 : m_sortedFeatureSha1s) {
      hashOne(sha1.getValueSha1());
      m_maxInAnyGroup++;
    }
    doGroupCompleted(new GroupPosition(0), new Sha1Value(m_sha1.digest()), m_maxInAnyGroup);
  }
View Full Code Here

TOP

Related Classes of com.moesol.geoserver.sync.core.Sha1Value

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.