*/
package org.argeo.slc.client.ui.dist.editors;
+import javax.jcr.Credentials;
+import javax.jcr.GuestCredentials;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
throws PartInitException {
DistributionEditorInput dei = (DistributionEditorInput) input;
try {
- session = dei.getRepository().login(dei.getWorkspaceName());
+ session = dei.getRepository().login(dei.getCredentials(),
+ dei.getWorkspaceName());
} catch (RepositoryException e) {
throw new PartInitException("Cannot log to workspace "
+ dei.getWorkspaceName(), e);
@Override
protected void addPages() {
try {
- addPage(new DistributionOverviewPage(this, "Overview", session));
addPage(new ArtifactsBrowserPage(this, "Browser", session));
+ addPage(new DistributionOverviewPage(this, "Overview", session));
} catch (PartInitException e) {
throw new ArgeoException("Cannot add distribution editor pages", e);
}
*/
package org.argeo.slc.client.ui.dist.editors;
+import javax.jcr.Credentials;
import javax.jcr.Repository;
import org.argeo.slc.jcr.SlcNames;
+import org.argeo.slc.repo.RepoConstants;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IPersistableElement;
* */
public class DistributionEditorInput implements IEditorInput, SlcNames {
+ private String repositoryName;
private Repository repository;
private String workspaceName;
- private String artifactsBase = "/";
+ private String artifactsBase = RepoConstants.DEFAULT_ARTIFACTS_BASE_PATH;
+ private Credentials credentials;
- public DistributionEditorInput(Repository repository, String workspaceName,
- String artifactsBase) {
+ public DistributionEditorInput(String repositoryName,
+ Repository repository, String workspaceName, String artifactsBase,
+ Credentials credentials) {
super();
this.repository = repository;
+ this.repositoryName = repositoryName;
this.workspaceName = workspaceName;
this.artifactsBase = artifactsBase;
+ this.credentials = credentials;
}
- public DistributionEditorInput(Repository repository, String workspaceName) {
- this(repository, workspaceName, "/");
+ public DistributionEditorInput(String repositoryName,
+ Repository repository, String workspaceName, Credentials credentials) {
+ this(repositoryName, repository, workspaceName,
+ RepoConstants.DEFAULT_ARTIFACTS_BASE_PATH, credentials);
}
public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
return artifactsBase;
}
+ public String getRepositoryName() {
+ return repositoryName;
+ }
+
+ public Credentials getCredentials() {
+ return credentials;
+ }
+
}
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;
// 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 = 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());
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()