Package com.moesol.geoserver.sync.client

Examples of com.moesol.geoserver.sync.client.GeoserverClientSynchronizer


    String namespace = "http://www.openplans.org/topp";
    String schemaLocation = "http://localhost/geoserver/ows?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=topp:states&maxFeatures=50";
    ComplexConfiguration configuration = new ComplexConfiguration(namespace, schemaLocation);

    String wfsUrl = "http://localhost:80/geoserver/wfs";
    synchronizer = new GeoserverClientSynchronizer(configuration, wfsUrl, POST_TEMPLATE);
  }
View Full Code Here


    };
   
    FeatureCollectionType client = make(f("F1", 0), f("F2", 1), f("F3", 2), f("F4", 3), f("F5", 4), f("F6", 5));
    Map<Identifier, FeatureAccessor> clientMap = asMap(client);
   
    GeoserverClientSynchronizer synchronizer = new GeoserverClientSynchronizer(makeConfiguration(), "url", SimulatedRequestBuilder.POST_TEMPLATE);
    RecordingFeatureChangeListener listener = new RecordingFeatureChangeListener(synchronizer.getListener());
    synchronizer.setListener(listener);
   
    long lastOutput = 0;
    for (int i = 0; i < 10000; i++) {
      Map<Identifier, FeatureAccessor> oldClientMap = new HashMap<Identifier, FeatureAccessor>(clientMap);
      UpdateRecords changed = randomlyChangeFeatures(serverFeatures);
      listener.reset();
      FeatureCollectionType server = make(serverFeatures);
     
      RequestBuilder builder = new SimulatedRequestBuilder(server);
      synchronizer.setRequestBuilder(builder);
     
      synchronizer.synchronize(clientMap);
     
      if (System.currentTimeMillis() - lastOutput > 1000) {
        System.out.println("desc: " + asString(clientMap) + " n: " + synchronizer.getNumUpdates() + " i: " + i);
        lastOutput = System.currentTimeMillis();
      }
      assertEquals(6, clientMap.size());
     
      assertEquals("run: " + i, 0, synchronizer.getNumCreates());
      assertEquals("run: " + i, 0, synchronizer.getNumDeletes());
      if (changed.getFeaturesUpdated().size() != 4) {
        continue;
      }
      if (changed.getFeaturesUpdated().size() != synchronizer.getNumUpdates()) {
        System.out.println("run: " + i);
        System.out.println("changed: " + changed);
        System.out.println("old: " + asString(oldClientMap));
        System.out.println("new: " + asString(clientMap));
        System.out.println("listener: " + asString(listener));
       
        assertEquals("run: " + i + " changed: " + changed + " listener: " + asString(listener),
            changed.getFeaturesUpdated().size(), synchronizer.getNumUpdates());
      }
    }
  }
View Full Code Here

  @Test
  public void testExtraUpdate1() throws IOException, ParseException, SAXException, ParserConfigurationException {
    FeatureCollectionType client = make(f("F1",162),f("F5",167),f("F4",169),f("F3",168),f("F2",157),f("F6",164));
    FeatureCollectionType server = make(f("F1",162),f("F5",167),f("F4",169),f("F3",170),f("F2",157),f("F6",164));
   
    GeoserverClientSynchronizer synchronizer = new GeoserverClientSynchronizer(makeConfiguration(), "url", SimulatedRequestBuilder.POST_TEMPLATE);
    Map<Identifier, FeatureAccessor> clientMap = asMap(client);
   
    RequestBuilder builder = new SimulatedRequestBuilder(server);
    synchronizer.setRequestBuilder(builder);
    synchronizer.synchronize(clientMap);

    assertEquals(6, clientMap.size());
    assertEquals(0, synchronizer.getNumCreates());
    assertEquals(1, synchronizer.getNumUpdates());
    assertEquals(0, synchronizer.getNumDeletes());
    assertEquals(2, synchronizer.getNumRounds());
  }
View Full Code Here

  @Test
  public void testExtraUpdate2() throws IOException, ParseException, SAXException, ParserConfigurationException {
    FeatureCollectionType client = make(f("F1",39),f("F5",35),f("F4",33),f("F3",38),f("F2",36),f("F6",37));
    FeatureCollectionType server = make(f("F1",39),f("F5",40),f("F4",33),f("F3",41),f("F2",36),f("F6",37));
   
    GeoserverClientSynchronizer synchronizer = new GeoserverClientSynchronizer(makeConfiguration(), "url", SimulatedRequestBuilder.POST_TEMPLATE);
    Map<Identifier, FeatureAccessor> clientMap = asMap(client);
   
    RequestBuilder builder = new SimulatedRequestBuilder(server);
    synchronizer.setRequestBuilder(builder);
    synchronizer.synchronize(clientMap);

    assertEquals(6, clientMap.size());
    assertEquals(0, synchronizer.getNumCreates());
    assertEquals(2, synchronizer.getNumUpdates());
    assertEquals(0, synchronizer.getNumDeletes());
    assertEquals(2, synchronizer.getNumRounds());
  }
View Full Code Here

        "schemaLocation",
        "http://localhost/geoserver/ows?service=WFS&version=1.0.0&request=DescribeFeatureType&typeName=topp:states&maxFeatures=50");
    ComplexConfiguration configuration = new ComplexConfiguration(m_namespace, schemaLocation);

    String wfsUrl = m_properties.getProperty("url", "http://localhost:80/geoserver/wfs");
    synchronizer = new GeoserverClientSynchronizer(configuration, wfsUrl, m_postTemplate);
   
    String cycleMillis = m_properties.getProperty("cycleMillis", "10000");
    m_cycleMillis = Long.parseLong(cycleMillis);
    m_printProperty = m_properties.getProperty("printProperty", "name");
View Full Code Here

  @Test
  public void testExtraUpdate3() throws IOException, ParseException, SAXException, ParserConfigurationException {
    FeatureCollectionType client = make(f("F1",59),f("F5",60),f("F4",57),f("F3",58),f("F2",56),f("F6",61));
    FeatureCollectionType server = make(f("F1",63),f("F5",60),f("F4",64),f("F3",58),f("F2",56),f("F6",62));
   
    GeoserverClientSynchronizer synchronizer = new GeoserverClientSynchronizer(makeConfiguration(), "url", SimulatedRequestBuilder.POST_TEMPLATE);
    Map<Identifier, FeatureAccessor> clientMap = asMap(client);
   
    RequestBuilder builder = new SimulatedRequestBuilder(server);
    synchronizer.setRequestBuilder(builder);
    synchronizer.synchronize(clientMap);

    assertEquals(6, clientMap.size());
    assertEquals(0, synchronizer.getNumCreates());
    assertEquals(3, synchronizer.getNumUpdates());
    assertEquals(0, synchronizer.getNumDeletes());
    assertEquals(2, synchronizer.getNumRounds());
  }
View Full Code Here

//    FeatureCollectionSha1Sync.TRACE_RESPONSE = GeoserverClientSynchronizer.TRACE_POST;
    final SimulationEngine engine = new SimulationEngine(1000);
    FeatureCollectionType client = make();
    Map<Identifier, FeatureAccessor> clientMap = asMap(client);
   
    GeoserverClientSynchronizer synchronizer = new GeoserverClientSynchronizer(makeConfiguration(), "url", SimulatedRequestBuilder.POST_TEMPLATE);
    RecordingFeatureChangeListener listener = new RecordingFeatureChangeListener(synchronizer.getListener());
    synchronizer.setListener(listener);
   
    System.out.println(",ec,sc,eu,su,ed,sd,e#,s#");
    long lastOutput = 0;
    for (int i = 0; i < 1000; i++) {
      engine.makeSomeChanges();
      listener.reset();
      FeatureCollectionType server = make(engine.getFeatures());
     
      final SimulatedRequestBuilder builder = new SimulatedRequestBuilder(server);
      synchronizer.setRoundListener(new RoundListener() {
        @Override
        public void beforeRound(int r) { }
        @Override
        public void afterRound(int r) {
          // 50/50 chance of change for each round
          if (random.nextBoolean()) { return; }
          try {
            engine.makeSomeChanges();
            builder.setServer(make(engine.getFeatures()));
          } catch (Exception e) {
            throw new RuntimeException(e);
          }
        }
        @Override
        public void afterSynchronize() { }
        @Override
        public void sha1Collision() { }
      });
      synchronizer.setRequestBuilder(builder);
      synchronizer.synchronize(clientMap);
     
      if (System.currentTimeMillis() - lastOutput > 1000) {
        System.out.printf("%d,%d,%d,%d,%d,%d,%d,%d,%d%n",
            i, engine.getNumCreated(), synchronizer.getNumCreates(),
            engine.getNumUpdated(), synchronizer.getNumUpdates(),
            engine.getNumDeleted(), synchronizer.getNumDeletes(),
            engine.getFeatures().length, clientMap.size());
        lastOutput = System.currentTimeMillis();
      }
      engine.resetCounts();
    }
   
    synchronizer.setRoundListener(mock(RoundListener.class));
    synchronizer.synchronize(clientMap);
    assertFeaturesEq(Arrays.asList(engine.getFeatures()), clientMap);
  }
View Full Code Here

  @Test
  public void testExtraUpdate1() throws IOException, ParseException, SAXException, ParserConfigurationException {
    FeatureCollectionType client = make(f("F1",162),f("F5",167),f("F4",169),f("F3",168),f("F2",157),f("F6",164));
    FeatureCollectionType server = make(f("F1",162),f("F5",167),f("F4",169),f("F3",170),f("F2",157),f("F6",164));
   
    GeoserverClientSynchronizer synchronizer = new GeoserverClientSynchronizer(makeConfiguration(), "url", SimulatedRequestBuilder.POST_TEMPLATE);
    Map<Identifier, FeatureAccessor> clientMap = asMap(client);
   
    final SimulatedRequestBuilder builder = new SimulatedRequestBuilder(server);
    synchronizer.setRequestBuilder(builder);
    synchronizer.setRoundListener(new RoundListener() {
      @Override
      public void beforeRound(int r) { }
      @Override
      public void afterRound(int r) {
        // After round one simulate a change on the server
        if (r != 1) { return; }
        try {
          builder.setServer(make(f("F1",171),f("F5",167),f("F4",169),f("F3",172),f("F2",157),f("F6",164)));
        } catch (Exception e) {
          throw new RuntimeException(e);
        }
      }
      @Override
      public void afterSynchronize() { }
      @Override
      public void sha1Collision() { }
    });
    synchronizer.synchronize(clientMap);

    assertEquals(6, clientMap.size());
    assertEquals(0, synchronizer.getNumCreates());
    assertEquals(1, synchronizer.getNumUpdates());
    assertEquals(0, synchronizer.getNumDeletes());
    assertEquals(2, synchronizer.getNumRounds());
  }
View Full Code Here

  @Test
  public void testExtraUpdate2() throws IOException, ParseException, SAXException, ParserConfigurationException {
    FeatureCollectionType client = make(f("F1",39),f("F5",35),f("F4",33),f("F3",38),f("F2",36),f("F6",37));
    FeatureCollectionType server = make(f("F1",39),f("F5",40),f("F4",33),f("F3",41),f("F2",36),f("F6",37));
   
    GeoserverClientSynchronizer synchronizer = new GeoserverClientSynchronizer(makeConfiguration(), "url", SimulatedRequestBuilder.POST_TEMPLATE);
    Map<Identifier, FeatureAccessor> clientMap = asMap(client);
   
    final SimulatedRequestBuilder builder = new SimulatedRequestBuilder(server);
    synchronizer.setRequestBuilder(builder);
    synchronizer.setRoundListener(new RoundListener() {
      @Override
      public void beforeRound(int r) { }
      @Override
      public void afterRound(int r) {
        // After round one simulate a change on the server
        if (r != 1) { return; }
        try {
          builder.setServer(make(f("F1",39),f("F5",140),f("F4",33),f("F3",141),f("F2",36),f("F6",37)));
        } catch (Exception e) {
          throw new RuntimeException(e);
        }
      }
      @Override
      public void afterSynchronize() { }
      @Override
      public void sha1Collision() { }
    });
    synchronizer.synchronize(clientMap);

    assertEquals(6, clientMap.size());
    assertEquals(0, synchronizer.getNumCreates());
    assertEquals(2, synchronizer.getNumUpdates());
    assertEquals(0, synchronizer.getNumDeletes());
    assertEquals(2, synchronizer.getNumRounds());
  }
View Full Code Here

  @Test
  public void testExtraUpdate3() throws IOException, ParseException, SAXException, ParserConfigurationException {
    FeatureCollectionType client = make(f("F1",59),f("F5",60),f("F4",57),f("F3",58),f("F2",56),f("F6",61));
    FeatureCollectionType server = make(f("F1",63),f("F5",60),f("F4",64),f("F3",58),f("F2",56),f("F6",62));
   
    GeoserverClientSynchronizer synchronizer = new GeoserverClientSynchronizer(makeConfiguration(), "url", SimulatedRequestBuilder.POST_TEMPLATE);
    Map<Identifier, FeatureAccessor> clientMap = asMap(client);
   
    final SimulatedRequestBuilder builder = new SimulatedRequestBuilder(server);
    synchronizer.setRequestBuilder(builder);
    synchronizer.setRoundListener(new RoundListener() {
      @Override
      public void beforeRound(int r) { }
      @Override
      public void afterRound(int r) {
        // After round one simulate a change on the server
        if (r != 1) { return; }
        try {
          builder.setServer(make(f("F1",163),f("F5",60),f("F4",164),f("F3",58),f("F2",56),f("F6",162)));
        } catch (Exception e) {
          throw new RuntimeException(e);
        }
      }
      @Override
      public void afterSynchronize() { }
      @Override
      public void sha1Collision() { }
    });
    synchronizer.synchronize(clientMap);

    assertEquals(6, clientMap.size());
    assertEquals(0, synchronizer.getNumCreates());
    assertEquals(3, synchronizer.getNumUpdates());
    assertEquals(0, synchronizer.getNumDeletes());
    assertEquals(2, synchronizer.getNumRounds());
  }
View Full Code Here

TOP

Related Classes of com.moesol.geoserver.sync.client.GeoserverClientSynchronizer

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.