Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Producer:
- // Początkowe dane
- List<Title> titles = new ArrayList<>();
- titles.add(new Title("Title 1"));
- titles.add(new Title("Title 2"));
- titles.add(new Title("Title 3"));
- // Folder w którym przechowywane są dane (docelowo dane będą pewnie przechowywane na Amazonie S3, wtedy zamiast
- // HollowFilesystemPublisher/Announcer trzeba będzie użyć/napisać odpowiednie klasy dla Amazona)
- File publishDir = new File(SCRATCH_DIR, "publish-dir");
- publishDir.mkdir();
- HollowProducer.Publisher publisher = new HollowFilesystemPublisher(publishDir);
- HollowProducer.Announcer announcer = new HollowFilesystemAnnouncer(publishDir);
- HollowProducer producer = HollowProducer
- .withPublisher(publisher)
- .withAnnouncer(announcer)
- .build();
- producer.runCycle(state -> titles.forEach(state::add));
- Thread.sleep(4000);
- titles.add(new Title("Title 4"));
- producer.runCycle(state -> titles.forEach(state::add)); // O ile dobrze rozumiem, zawsze powinno się publikować wszystkie dane
- // Hollow dba o to, żeby publikowana była tylko delta (dzięki temu mamy mniejszy ruch na sieci)
- // Generowanie API dla consumera
- // HollowWriteStateEngine writeEngine = new HollowWriteStateEngine();
- // HollowObjectMapper mapper = new HollowObjectMapper(writeEngine);
- // mapper.initializeTypeState(Title.class);
- // HollowAPIGenerator generator = new HollowAPIGenerator.Builder()
- // .withAPIClassname("TitleAPI")
- // .withPackageName("io.github.tdudzik.testproject.consumer.api.generated")
- // .withDataModel(writeEngine)
- // .build();
- // generator.generateFiles("C:/Users/Tomasz_Dudzik/Projects/test-project/src/main/java/io/github/tdudzik/testproject/consumer/api/generated");
- Consumer:
- // Analogicznie do Producera
- File publishDir = new File(SCRATCH_DIR, "publish-dir");
- HollowFilesystemBlobRetriever blobRetriever = new HollowFilesystemBlobRetriever(publishDir);
- HollowFilesystemAnnouncementWatcher announcementWatcher = new HollowFilesystemAnnouncementWatcher(publishDir);
- HollowConsumer consumer = HollowConsumer
- .withBlobRetriever(blobRetriever)
- .withAnnouncementWatcher(announcementWatcher)
- .withGeneratedAPIClass(TitleAPI.class)
- .build();
- consumer.triggerRefresh();
- TitleAPI titleApi = (TitleAPI) consumer.getAPI();
- for (Title title : titleApi.getAllTitle()) {
- System.out.println(title.getName().getValue());
- }
- Thread.sleep(6000);
- // Tym razem wyświetlone zostaną zaktualizowane dane
- for (Title title : titleApi.getAllTitle()) {
- System.out.println(title.getName().getValue());
- }
Advertisement
Add Comment
Please, Sign In to add comment