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 javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public final static String ID = DistPlugin.ID + ".distributionsView";
private Repository repository;
+ private RepositoryFactory repositoryFactory;
private TreeViewer viewer;
// Initializes repositories
// TODO make it more generic, with remote repositories etc.
- repositories.add(new RepositoryElem("java", repository));
+ repositories.add(new RepositoryElem("java", repository, null));
+
+ // Remote
+ String uri = null;
+ Credentials credentials = null;
+ Repository remoteRepository = null;
+
+ uri = "http://dev.argeo.org/org.argeo.jcr.webapp/pub/java";
+ credentials = new GuestCredentials();
+ remoteRepository = JcrUtils.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 = JcrUtils.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 = JcrUtils.getRepositoryByUri(repositoryFactory, uri);
+ repositories.add(new RepositoryElem("@localhost//java",
+ remoteRepository, credentials));
viewer.setInput(getSite());
this.repository = repository;
}
+ public void setRepositoryFactory(RepositoryFactory repositoryFactory) {
+ this.repositoryFactory = repositoryFactory;
+ }
+
/** Programatically configure the context menu */
protected void contextMenuAboutToShow(IMenuManager menuManager) {
IWorkbenchWindow window = DistPlugin.getDefault().getWorkbench()
}
+ /** Wraps a repository **/
private static class RepositoryElem extends TreeParent {
// private final Repository repository;
private Session defaultSession;
- public RepositoryElem(String name, Repository repository) {
+ public RepositoryElem(String name, Repository repository,
+ Credentials credentials) {
super(name);
- // this.repository = repository;
try {
- 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()