Massive Argeo APIs refactoring
[lgpl/argeo-commons.git] / org.argeo.cms.e4 / src / org / argeo / cms / e4 / jcr / handlers / AddRemoteRepository.java
index e51c104ef6443d4fd821ffa1b1f1e8709de3bef9..dc47f6edfc12e6f836bf3843bae13c9d94062d0d 100644 (file)
@@ -1,18 +1,3 @@
-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
 package org.argeo.cms.e4.jcr.handlers;
 
 import java.net.URI;
@@ -26,16 +11,17 @@ import javax.jcr.RepositoryFactory;
 import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
 
+import org.argeo.api.cms.CmsConstants;
 import org.argeo.cms.ArgeoNames;
 import org.argeo.cms.ArgeoTypes;
 import org.argeo.cms.e4.jcr.JcrBrowserView;
+import org.argeo.cms.jcr.CmsJcrUtils;
+import org.argeo.cms.security.Keyring;
 import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.jcr.JcrUtils;
-import org.argeo.node.NodeConstants;
-import org.argeo.node.NodeUtils;
-import org.argeo.node.security.Keyring;
 import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.dialogs.Dialog;
@@ -60,13 +46,14 @@ import org.eclipse.swt.widgets.Text;
  * Connect to a remote repository and, if successful publish it as an OSGi
  * service.
  */
-public class AddRemoteRepository implements ArgeoNames {
+public class AddRemoteRepository {
 
        @Inject
        private RepositoryFactory repositoryFactory;
        @Inject
        private Repository nodeRepository;
        @Inject
+       @Optional
        private Keyring keyring;
 
        @Execute
@@ -143,11 +130,11 @@ public class AddRemoteRepository implements ArgeoNames {
                                String checkedUriStr = checkedUri.toString();
 
                                Hashtable<String, String> params = new Hashtable<String, String>();
-                               params.put(NodeConstants.LABELED_URI, checkedUriStr);
+                               params.put(CmsConstants.LABELED_URI, checkedUriStr);
                                Repository repository = repositoryFactory.getRepository(params);
                                if (username.getText().trim().equals("")) {// anonymous
                                        // FIXME make it more generic
-                                       session = repository.login("main");
+                                       session = repository.login(CmsConstants.SYS_WORKSPACE);
                                } else {
                                        // FIXME use getTextChars() when upgrading to 3.7
                                        // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=297412
@@ -169,17 +156,18 @@ public class AddRemoteRepository implements ArgeoNames {
                        Session nodeSession = null;
                        try {
                                nodeSession = nodeRepository.login();
-                               Node home = NodeUtils.getUserHome(nodeSession);
+                               Node home = CmsJcrUtils.getUserHome(nodeSession);
 
-                               Node remote = home.hasNode(ARGEO_REMOTE) ? home.getNode(ARGEO_REMOTE) : home.addNode(ARGEO_REMOTE);
+                               Node remote = home.hasNode(ArgeoNames.ARGEO_REMOTE) ? home.getNode(ArgeoNames.ARGEO_REMOTE)
+                                               : home.addNode(ArgeoNames.ARGEO_REMOTE);
                                if (remote.hasNode(name.getText()))
                                        throw new EclipseUiException("There is already a remote repository named " + name.getText());
                                Node remoteRepository = remote.addNode(name.getText(), ArgeoTypes.ARGEO_REMOTE_REPOSITORY);
-                               remoteRepository.setProperty(ARGEO_URI, uri.getText());
-                               remoteRepository.setProperty(ARGEO_USER_ID, username.getText());
+                               remoteRepository.setProperty(ArgeoNames.ARGEO_URI, uri.getText());
+                               remoteRepository.setProperty(ArgeoNames.ARGEO_USER_ID, username.getText());
                                nodeSession.save();
                                if (saveInKeyring.getSelection()) {
-                                       String pwdPath = remoteRepository.getPath() + '/' + ARGEO_PASSWORD;
+                                       String pwdPath = remoteRepository.getPath() + '/' + ArgeoNames.ARGEO_PASSWORD;
                                        keyring.set(pwdPath, password.getText().toCharArray());
                                }
                                nodeSession.save();