- protected synchronized List<Node> getBaseUrls(Session session)
- throws RepositoryException {
- List<Node> baseUrls = new ArrayList<Node>();
- for (NodeIterator nit = session.getNode(
- RepoConstants.PROXIED_REPOSITORIES).getNodes(); nit.hasNext();) {
- Node proxiedRepository = nit.nextNode();
- baseUrls.add(proxiedRepository);
+ protected void registerSource(RpmRepository sourceRepo, Node node,
+ String remoteUrl) throws RepositoryException {
+ node.addMixin(SlcTypes.SLC_KNOWN_ORIGIN);
+ Node origin;
+ if (!node.hasNode(SLC_ORIGIN))
+ origin = node.addNode(SLC_ORIGIN, SlcTypes.SLC_PROXIED);
+ else
+ origin = node.getNode(SLC_ORIGIN);
+
+ // proxied repository
+ Node proxiedRepository;
+ String proxiedRepositoryPath = RepoConstants.PROXIED_REPOSITORIES + '/'
+ + sourceRepo.getId();
+ Session session = node.getSession();
+ if (session.itemExists(proxiedRepositoryPath)) {
+ proxiedRepository = session.getNode(proxiedRepositoryPath);
+ } else {
+ proxiedRepository = session.getNode(
+ RepoConstants.PROXIED_REPOSITORIES).addNode(
+ sourceRepo.getId());
+ proxiedRepository.addMixin(NodeType.MIX_REFERENCEABLE);
+ JcrUtils.urlToAddressProperties(proxiedRepository,
+ sourceRepo.getUrl());
+ proxiedRepository.setProperty(SLC_URL, sourceRepo.getUrl());