import javax.jcr.nodetype.NodeType;
import org.argeo.eclipse.ui.TreeParent;
-import org.argeo.jcr.ArgeoJcrUtils;
-import org.argeo.jcr.ArgeoNames;
-import org.argeo.jcr.ArgeoTypes;
import org.argeo.jcr.JcrUtils;
-import org.argeo.jcr.UserJcrUtils;
+import org.argeo.node.ArgeoNames;
+import org.argeo.node.ArgeoTypes;
+import org.argeo.node.NodeUtils;
+import org.argeo.node.security.Keyring;
import org.argeo.slc.SlcException;
import org.argeo.slc.client.ui.dist.model.RepoElem;
import org.argeo.slc.repo.RepoConstants;
-import org.argeo.util.security.Keyring;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
* repository factory must be injected
*/
public class DistTreeContentProvider implements ITreeContentProvider {
- private Session nodeSession;
- List<RepoElem> repositories = new ArrayList<RepoElem>();
+ private static final long serialVersionUID = -7640840211717811421L;
/* DEPENDENCY INJECTION */
private RepositoryFactory repositoryFactory;
private Keyring keyring;
+ // Context
+ private Session nodeSession;
+ List<RepoElem> repositories = new ArrayList<RepoElem>();
+
public Object[] getElements(Object input) {
Repository nodeRepository = (Repository) input;
try {
dispose();
nodeSession = nodeRepository.login();
- String reposPath = UserJcrUtils.getUserHome(nodeSession).getPath()
- + RepoConstants.REPOSITORIES_BASE_PATH;
+ String reposPath = NodeUtils.getUserHome(nodeSession).getPath() + RepoConstants.REPOSITORIES_BASE_PATH;
if (!nodeSession.itemExists(reposPath))
initializeModel(nodeSession);
while (repos.hasNext()) {
Node repoNode = repos.nextNode();
if (repoNode.isNodeType(ArgeoTypes.ARGEO_REMOTE_REPOSITORY)) {
- String label = repoNode.isNodeType(NodeType.MIX_TITLE) ? repoNode
- .getProperty(Property.JCR_TITLE).getString()
- : repoNode.getName();
- repositories.add(new RepoElem(repositoryFactory, keyring,
- repoNode, label));
+ String label = repoNode.isNodeType(NodeType.MIX_TITLE)
+ ? repoNode.getProperty(Property.JCR_TITLE).getString() : repoNode.getName();
+ repositories.add(new RepoElem(repositoryFactory, keyring, repoNode, label));
}
}
} catch (RepositoryException e) {
private void initializeModel(Session nodeSession) {
try {
-
- Node homeNode = UserJcrUtils.getUserHome(nodeSession);
+ Node homeNode = NodeUtils.getUserHome(nodeSession);
if (homeNode == null) // anonymous
throw new SlcException("User must be authenticated.");
// make sure base directory is available
- Node repos = JcrUtils.mkdirs(nodeSession, homeNode.getPath()
- + RepoConstants.REPOSITORIES_BASE_PATH);
- nodeSession.save();
+ Node repos = JcrUtils.mkdirs(homeNode, RepoConstants.REPOSITORIES_BASE_PATH,null);
+ if (nodeSession.hasPendingChanges())
+ nodeSession.save();
// register default local java repository
String alias = RepoConstants.DEFAULT_JAVA_REPOSITORY_ALIAS;
- Repository javaRepository = ArgeoJcrUtils.getRepositoryByAlias(
- repositoryFactory, alias);
+ Repository javaRepository = NodeUtils.getRepositoryByAlias(repositoryFactory, alias);
if (javaRepository != null) {
if (!repos.hasNode(alias)) {
- Node repoNode = repos.addNode(alias,
- ArgeoTypes.ARGEO_REMOTE_REPOSITORY);
+ Node repoNode = repos.addNode(alias, ArgeoTypes.ARGEO_REMOTE_REPOSITORY);
repoNode.setProperty(ArgeoNames.ARGEO_URI, "vm:///" + alias);
repoNode.addMixin(NodeType.MIX_TITLE);
- repoNode.setProperty(Property.JCR_TITLE,
- RepoConstants.DEFAULT_JAVA_REPOSITORY_LABEL);
+ repoNode.setProperty(Property.JCR_TITLE, RepoConstants.DEFAULT_JAVA_REPOSITORY_LABEL);
nodeSession.save();
}
}