import java.util.List;
import java.util.Map;
+import javax.jcr.Credentials;
+import javax.jcr.GuestCredentials;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.RepositoryFactory;
import org.argeo.eclipse.ui.AbstractTreeContentProvider;
import org.argeo.eclipse.ui.ErrorFeedback;
import org.argeo.eclipse.ui.TreeParent;
+import org.argeo.jcr.ArgeoJcrUtils;
import org.argeo.jcr.JcrUtils;
import org.argeo.slc.client.ui.dist.DistPlugin;
import org.argeo.slc.client.ui.dist.commands.CopyWorkspace;
// Initializes repositories
// TODO make it more generic, with remote repositories etc.
- repositories.add(new RepositoryElem("java", repository, false));
+ repositories.add(new RepositoryElem("java", repository, null));
// Remote
- /*
- String uri = "http://localhost:7070/org.argeo.jcr.webapp/remoting/java";
- //String uri = "http://dev.argeo.org/org.argeo.jcr.webapp/pub/java";
- Repository remoteRepository = JcrUtils.getRepositoryByUri(
- repositoryFactory, uri);
- repositories.add(new RepositoryElem("java@dev.argeo.org",
- remoteRepository, true));
- */
+ String uri = null;
+ Credentials credentials = null;
+ Repository remoteRepository = null;
+
+ uri = "http://dev.argeo.org/org.argeo.jcr.webapp/pub/java";
+ credentials = new GuestCredentials();
+ remoteRepository = ArgeoJcrUtils.getRepositoryByUri(repositoryFactory, uri);
+ repositories.add(new RepositoryElem("anonymous@dev.argeo.org//java",
+ remoteRepository, credentials));
+
+ uri = "http://localhost:7070/org.argeo.jcr.webapp/pub/java";
+ credentials = new GuestCredentials();
+ remoteRepository = ArgeoJcrUtils.getRepositoryByUri(repositoryFactory, uri);
+ repositories.add(new RepositoryElem("anonymous@localhost//java",
+ remoteRepository, credentials));
+
+ uri = "http://localhost:7070/org.argeo.jcr.webapp/remoting/java";
+ credentials = new SimpleCredentials(System.getProperty("user.name"),
+ "".toCharArray());
+ remoteRepository = ArgeoJcrUtils.getRepositoryByUri(repositoryFactory, uri);
+ repositories.add(new RepositoryElem("@localhost//java",
+ remoteRepository, credentials));
viewer.setInput(getSite());
private static class RepositoryElem extends TreeParent {
// private final Repository repository;
private Session defaultSession;
- private final Boolean isRemote;
public RepositoryElem(String name, Repository repository,
- Boolean isRemote) {
+ Credentials credentials) {
super(name);
- // this.repository = repository;
- this.isRemote = isRemote;
try {
- if (isRemote) {
- SimpleCredentials sc = new SimpleCredentials("root",
- "demo".toCharArray());
- defaultSession = repository.login(sc);
- } else {
- defaultSession = repository.login();
- }
+ defaultSession = repository.login(credentials);
String[] workspaceNames = defaultSession.getWorkspace()
.getAccessibleWorkspaceNames();
for (String workspace : workspaceNames)
- addChild(new DistributionElem(repository, workspace));
+ addChild(new DistributionElem(repository, workspace,
+ credentials));
} catch (RepositoryException e) {
ErrorFeedback.show("Cannot log to repository", e);
}
private static class DistributionElem extends TreeParent {
private final String workspaceName;
private final Repository repository;
+ private final Credentials credentials;
- public DistributionElem(Repository repository, String workspaceName) {
+ public DistributionElem(Repository repository, String workspaceName,
+ Credentials credentials) {
super(workspaceName);
this.workspaceName = workspaceName;
this.repository = repository;
+ this.credentials = credentials;
}
public String getWorkspaceName() {
public Repository getRepository() {
return repository;
}
+
+ public Credentials getCredentials() {
+ return credentials;
+ }
}
@Override
if (obj instanceof DistributionElem) {
DistributionElem distributionElem = (DistributionElem) obj;
DistributionEditorInput dei = new DistributionEditorInput(
+ distributionElem.getName(),
distributionElem.getRepository(),
- distributionElem.getWorkspaceName());
+ distributionElem.getWorkspaceName(),
+ distributionElem.getCredentials());
try {
DistPlugin.getDefault().getWorkbench()
.getActiveWorkbenchWindow().getActivePage()