code: @Override
      protected void loadMorselQueueFromSource(Queue<DuplicationMorsel> morselQueue) {
          //generate set of morsels based on duplication policy
          for (String account : this.policyManager.getDuplicationAccounts()) {
              DuplicationPolicy policy = this.policyManager.getDuplicationPolicy(account);
              try {
                  final CredentialsRepo credRepo = getCredentialsRepo();
                  if (getCredentialsRepo().isAccountActive(account)) {
                      AccountCredentials accountCreds = credRepo.getAccountCredentials(account);
                      for (StorageProviderCredentials cred : accountCreds.getProviderCredentials()) {
                          if (cred.isPrimary()) {
                              StorageProvider provider = getStorageProvider(cred);
                              Iterator<String> spaces = provider.getSpaces();
                              while (spaces.hasNext()) {
                                  String spaceId = spaces.next();
                                  Set<DuplicationStorePolicy> storePolicies = policy.getDuplicationStorePolicies(spaceId);
                                  for (DuplicationStorePolicy storePolicy : storePolicies) {
                                      morselQueue.add(new DuplicationMorsel(account, spaceId, null, storePolicy));
                                  }
                              }
                          }
                      }
                  }
              } catch (AccountCredentialsNotFoundException e) {
                  throw new RuntimeException(e);
              }
          }
      }
docs: /* (non-Javadoc)
  @see org.duracloud.mill.ltp.LoopingTaskProducer#loadMorselQueueFromSource(java.util.Queue)