コード例 #1
0
 @Override
 protected void doBind() {
   try {
     bindLock.writeLock().lock();
     for (final Repository repository : repositoryManager.browse()) {
       handle(new RepositoryCreatedEvent(repository));
     }
   } finally {
     bindLock.writeLock().unlock();
   }
   getEventBus().register(this);
 }
コード例 #2
0
 @AllowConcurrentEvents
 @Subscribe
 public void handle(final CapabilityEvent.AfterUpdate event) {
   if (event.getReference().context().id().equals(capabilityIdentity)) {
     if (!sameRepositoryAs(repositoryBeforeLastUpdate)) {
       try {
         bindLock.writeLock().lock();
         for (final Repository repository : repositoryManager.browse()) {
           handle(new RepositoryCreatedEvent(repository));
         }
       } finally {
         bindLock.writeLock().unlock();
       }
     }
   }
 }
コード例 #3
0
  @Override
  @Guarded(by = STARTED)
  public List<Repository> members() {
    final Repository repository = getRepository();

    List<Repository> members = new ArrayList<>(config.memberNames.size());
    for (String name : config.memberNames) {
      Repository member = repositoryManager.get(name);
      if (member == null) {
        log.warn("Ignoring missing member repository: {}", name);
      } else if (!repository.getFormat().equals(member.getFormat())) {
        log.warn(
            "Group {} includes an incompatible-format member: {} with format {}",
            repository.getName(),
            name,
            member.getFormat());
      } else {
        members.add(member);
      }
    }
    return members;
  }