Refactor monitor and exceptions
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 9 Sep 2016 10:40:41 +0000 (10:40 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 9 Sep 2016 10:40:41 +0000 (10:40 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@9108 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

154 files changed:
org.argeo.cms/src/org/argeo/cms/AbstractCmsEntryPoint.java
org.argeo.cms/src/org/argeo/cms/CmsException.java
org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java
org.argeo.cms/src/org/argeo/cms/forms/FormPageViewer.java
org.argeo.cms/src/org/argeo/cms/forms/FormUtils.java
org.argeo.cms/src/org/argeo/cms/internal/auth/ConsoleCallbackHandler.java
org.argeo.cms/src/org/argeo/cms/internal/auth/LocaleChoice.java
org.argeo.cms/src/org/argeo/cms/internal/backup/AbstractAtomicBackup.java
org.argeo.cms/src/org/argeo/cms/internal/backup/BackupFileSystemManager.java
org.argeo.cms/src/org/argeo/cms/internal/backup/OpenLdapBackup.java
org.argeo.cms/src/org/argeo/cms/internal/backup/OsCallBackup.java
org.argeo.cms/src/org/argeo/cms/internal/backup/SimpleBackupPurge.java
org.argeo.cms/src/org/argeo/cms/internal/backup/SystemBackup.java
org.argeo.cms/src/org/argeo/cms/internal/kernel/HomeRepository.java
org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeLogger.java
org.argeo.cms/src/org/argeo/cms/internal/kernel/PkiUtils.java
org.argeo.cms/src/org/argeo/cms/internal/kernel/RepositoryServiceFactory.java
org.argeo.cms/src/org/argeo/cms/maintenance/Browse.java
org.argeo.cms/src/org/argeo/cms/util/LoginEntryPoint.java
org.argeo.cms/src/org/argeo/cms/util/SystemNotifications.java
org.argeo.cms/src/org/argeo/cms/util/useradmin/UserAdminUtils.java
org.argeo.cms/src/org/argeo/cms/util/useradmin/UserAdminWrapper.java
org.argeo.cms/src/org/argeo/security/core/AbstractSystemExecution.java
org.argeo.cms/src/org/argeo/security/core/SimpleRoleRegistration.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/spring/SpringCommandHandler.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/spring/SpringExtensionFactory.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/CommandUtils.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/commands/AddPrivileges.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/commands/AddRemoteRepository.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/commands/DeleteNodes.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/commands/DumpNode.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/commands/NodeConfigurableDump.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/commands/OpenEditor.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/commands/RemovePrivileges.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/commands/RenameNode.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/FullVersioningTreeContentProvider.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/GenericNodeDoubleClickListener.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/JcrBrowserUtils.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/NodeContentProvider.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/NodeLabelProvider.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/PropertiesContentProvider.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/PropertyLabelProvider.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/SingleNodeAsTreeContentProvider.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/VersionLabelProvider.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/model/RemoteRepositoryElem.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/model/RepositoriesElem.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/model/RepositoryElem.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/model/SingleJcrNodeElem.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/model/WorkspaceElem.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/AbstractJcrQueryEditor.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/AddPrivilegeWizard.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/ChildNodesPage.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/GenericNodeEditorInput.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/GenericNodePage.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/GenericPropertyPage.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/ImportFileSystemWizard.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/NodePrivilegesPage.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/jcr/parts/NodeVersionHistoryPage.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/internal/users/UsersUtils.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/DefaultNodeEditor.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/JcrBrowserView.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/jcr/JcrPreferenceStore.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/users/PickUpUserDialog.java
org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/users/UserLP.java
org.argeo.eclipse.ui/bnd.bnd
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/EclipseArgeoMonitor.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/EclipseJcrMonitor.java [new file with mode: 0644]
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/EclipseUiException.java [new file with mode: 0644]
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/dialogs/NonModalErrorFeedback.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/AbstractNodeContentProvider.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/AsyncUiEventListener.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/DefaultNodeLabelProvider.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/JcrUiUtils.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/NodeElementComparer.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/NodesWrapper.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/SimpleNodeContentProvider.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/lists/NodeViewerComparator.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/lists/RowViewerComparator.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/lists/SimpleJcrNodeLabelProvider.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/lists/SimpleJcrRowLabelProvider.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/utils/JcrFileProvider.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/utils/JcrItemsComparator.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/utils/NodeViewerComparer.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/jcr/utils/SingleSessionFileProvider.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/parts/JcrUsersTable.java
org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/parts/LdifUsersTable.java
org.argeo.security.core/bnd.bnd
org.argeo.security.core/ext/test/org/argeo/osgi/useradmin/LdifParserTest.java
org.argeo.security.core/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java
org.argeo.security.core/src/org/argeo/osgi/transaction/simple/SimpleTransaction.java [deleted file]
org.argeo.security.core/src/org/argeo/osgi/transaction/simple/SimpleTransactionManager.java [deleted file]
org.argeo.security.core/src/org/argeo/osgi/transaction/simple/UuidXid.java [deleted file]
org.argeo.security.core/src/org/argeo/osgi/useradmin/DigestUtils.java [new file with mode: 0644]
org.argeo.security.core/src/org/argeo/osgi/useradmin/LdapUserAdmin.java
org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifUser.java
org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifUserAdmin.java
org.argeo.security.core/src/org/argeo/util/naming/LdifParser.java
org.argeo.security.core/src/org/argeo/util/naming/LdifWriter.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/PartStateChanged.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UserAdminWrapper.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewGroup.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewUser.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/UserTransactionHandler.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/DefaultUserMainPage.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupsView.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserBatchUpdateWizard.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserEditor.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UserMainPage.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/UsersView.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTableDefaultDClickListener.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserTransactionProvider.java
org.argeo.security.ui.rap/src/org/argeo/security/ui/rap/AnonymousEntryPoint.java
org.argeo.security.ui.rap/src/org/argeo/security/ui/rap/SecureEntryPoint.java
org.argeo.security.ui/src/org/argeo/security/ui/SecurityUiPlugin.java
org.argeo.security.ui/src/org/argeo/security/ui/commands/OpenChangePasswordDialog.java
org.argeo.server.jcr/src/org/argeo/jackrabbit/JackrabbitContainer.java
org.argeo.server.jcr/src/org/argeo/jackrabbit/JackrabbitDataModelMigration.java
org.argeo.server.jcr/src/org/argeo/jackrabbit/JackrabbitRepositoryFactory.java
org.argeo.server.jcr/src/org/argeo/jackrabbit/JackrabbitWrapper.java
org.argeo.server.jcr/src/org/argeo/jcr/ArgeoJcrUtils.java
org.argeo.server.jcr/src/org/argeo/jcr/DefaultJcrListener.java
org.argeo.server.jcr/src/org/argeo/jcr/DefaultRepositoryFactory.java
org.argeo.server.jcr/src/org/argeo/jcr/JcrMonitor.java [new file with mode: 0644]
org.argeo.server.jcr/src/org/argeo/jcr/JcrRepositoryWrapper.java
org.argeo.server.jcr/src/org/argeo/jcr/JcrResourceAdapter.java
org.argeo.server.jcr/src/org/argeo/jcr/JcrUtils.java
org.argeo.server.jcr/src/org/argeo/jcr/PropertyDiff.java
org.argeo.server.jcr/src/org/argeo/jcr/ThreadBoundJcrSessionFactory.java
org.argeo.server.jcr/src/org/argeo/jcr/UserJcrUtils.java
org.argeo.server.jcr/src/org/argeo/jcr/proxy/AbstractUrlProxy.java
org.argeo.server.jcr/src/org/argeo/jcr/proxy/ResourceProxyServlet.java
org.argeo.server.jcr/src/org/argeo/jcr/security/JcrAuthorizations.java
org.argeo.server.jcr/src/org/argeo/jcr/security/JcrKeyring.java
org.argeo.server.jcr/src/org/argeo/jcr/tabular/JcrTabularRowIterator.java
org.argeo.server.jcr/src/org/argeo/jcr/tabular/JcrTabularWriter.java
org.argeo.server.jcr/src/org/argeo/jcr/unit/AbstractJcrTestCase.java
org.argeo.util/ext/test/org/argeo/util/security/PasswordBasedEncryptionTest.java
org.argeo.util/src/org/argeo/ArgeoException.java
org.argeo.util/src/org/argeo/ArgeoMonitor.java
org.argeo.util/src/org/argeo/StreamUtils.java [deleted file]
org.argeo.util/src/org/argeo/util/CsvParser.java
org.argeo.util/src/org/argeo/util/CsvParserWithLinesAsMap.java
org.argeo.util/src/org/argeo/util/CsvWriter.java
org.argeo.util/src/org/argeo/util/LangUtils.java
org.argeo.util/src/org/argeo/util/Throughput.java
org.argeo.util/src/org/argeo/util/internal/StreamUtils.java [new file with mode: 0644]
org.argeo.util/src/org/argeo/util/internal/UtilsException.java [new file with mode: 0644]
org.argeo.util/src/org/argeo/util/security/AbstractKeyring.java
org.argeo.util/src/org/argeo/util/security/ChecksumFactory.java
org.argeo.util/src/org/argeo/util/security/DigestUtils.java
org.argeo.util/src/org/argeo/util/security/PasswordBasedEncryption.java
org.argeo.util/src/org/argeo/util/security/SimplePrincipal.java

index 311a8ff7cb8160a284b3db6d7d336194f89612e0..743a142a4430c4e4e7e2253ce012439a3c04ce0c 100644 (file)
@@ -19,7 +19,6 @@ import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
 import org.argeo.cms.auth.AuthConstants;
 import org.argeo.cms.auth.HttpRequestCallbackHandler;
 import org.argeo.eclipse.ui.specific.UiContext;
@@ -77,10 +76,10 @@ public abstract class AbstractCmsEntryPoint extends AbstractEntryPoint implement
                                loginContext = new LoginContext(AuthConstants.LOGIN_CONTEXT_ANONYMOUS, subject);
                                loginContext.login();
                        } catch (LoginException e1) {
-                               throw new ArgeoException("Cannot log as anonymous", e);
+                               throw new CmsException("Cannot log as anonymous", e);
                        }
                } catch (LoginException e) {
-                       throw new ArgeoException("Cannot initialize subject", e);
+                       throw new CmsException("Cannot initialize subject", e);
                }
                authChange(loginContext);
 
index 285741d7b3d4ef6836a87f4a417e570426922146..fb11c89777040edb805f69ee9aec25262d12a183 100644 (file)
@@ -1,9 +1,7 @@
 package org.argeo.cms;
 
-import org.argeo.ArgeoException;
-
 /** CMS specific exceptions. */
-public class CmsException extends ArgeoException {
+public class CmsException extends RuntimeException {
        private static final long serialVersionUID = -5341764743356771313L;
 
        public CmsException(String message) {
index 492ab0fbafa8ad88f45912c0a33c636d1dbb3ba2..d4c41022f62dff2dd07e5d138f720e7a422b8070 100644 (file)
@@ -16,7 +16,7 @@ import javax.security.auth.login.FailedLoginException;
 import javax.security.auth.login.LoginException;
 import javax.security.auth.spi.LoginModule;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.eclipse.ui.specific.UiContext;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
@@ -50,7 +50,7 @@ public class UserAdminLoginModule implements LoginModule, AuthConstants {
                        if (options.containsKey("anonymous"))
                                isAnonymous = Boolean.parseBoolean(options.get("anonymous").toString());
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot initialize login module", e);
+                       throw new CmsException("Cannot initialize login module", e);
                }
        }
 
index 65110619b13b00fa77ed57fcd356dba82c3b5661..b4d24bf9584d169c8c5674cfa05c2102ce4f354f 100644 (file)
@@ -16,7 +16,6 @@ import javax.jcr.ValueFormatException;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
 import org.argeo.cms.CmsEditable;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.CmsImageManager;
@@ -476,13 +475,13 @@ public class FormPageViewer extends AbstractPageViewer {
                                                        section.layout();
                                                        section.getParent().layout();
                                                } catch (RepositoryException re) {
-                                                       throw new ArgeoException("unable to refresh "
+                                                       throw new CmsException("unable to refresh "
                                                                        + "image section for " + context);
                                                }
                                        }
                                });
                        } catch (RepositoryException re) {
-                               throw new ArgeoException("unable to upload image " + name
+                               throw new CmsException("unable to upload image " + name
                                                + " at " + context);
                        }
                }
@@ -554,7 +553,7 @@ public class FormPageViewer extends AbstractPageViewer {
                                                        refresh(parSection);
                                                        layout(parSection);
                                                } catch (RepositoryException re) {
-                                                       throw new ArgeoException("Unable to delete "
+                                                       throw new CmsException("Unable to delete "
                                                                        + sessionNode, re);
                                                }
 
@@ -604,7 +603,7 @@ public class FormPageViewer extends AbstractPageViewer {
                                                                edit(emsp, 0);
                                                                cancelEdit();
                                                        } catch (RepositoryException e1) {
-                                                               throw new ArgeoException(
+                                                               throw new CmsException(
                                                                                "Unable to remove value " + obj, e1);
                                                        }
                                                        layout(emsp);
index cf9984b864bbb1329259d2a013e38c34ea9203f4..f8d08b08d8a418299e75fc553a2f520c411ad511 100644 (file)
@@ -11,7 +11,7 @@ import javax.jcr.RepositoryException;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.CmsView;
 import org.argeo.cms.util.CmsUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
@@ -62,7 +62,7 @@ public class FormUtils {
                                try {
                                        cmsView.navigateTo(node.getPath());
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException("Unable to get path for node "
+                                       throw new CmsException("Unable to get path for node "
                                                        + node + " before calling navigateTo(path)", e);
                                }
                        }
index 4edcb6341f27d35a9a319e49af3a6ede27420a6f..44bc331592160ebc3a79f0fefdcc40790d71a421 100644 (file)
@@ -13,7 +13,7 @@ import javax.security.auth.callback.PasswordCallback;
 import javax.security.auth.callback.TextOutputCallback;
 import javax.security.auth.callback.UnsupportedCallbackException;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 
 /** Callback handler to be used with a command line UI. */
 public class ConsoleCallbackHandler implements CallbackHandler {
@@ -23,7 +23,7 @@ public class ConsoleCallbackHandler implements CallbackHandler {
                        UnsupportedCallbackException {
                Console console = System.console();
                if (console == null)
-                       throw new ArgeoException("No console available");
+                       throw new CmsException("No console available");
 
                PrintWriter writer = console.writer();
                for (int i = 0; i < callbacks.length; i++) {
index 9ec9f7a0b44324f6fa4931c5c35f1e78343077ba..a23348fac51eae9dce9a062e04a91e0d17ebf82a 100644 (file)
@@ -22,7 +22,7 @@ import java.util.Locale;
 
 import javax.security.auth.callback.LanguageCallback;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 
 /** Choose in a list of locales. TODO: replace with {@link LanguageCallback} */
 public class LocaleChoice {
@@ -45,7 +45,7 @@ public class LocaleChoice {
                                        defaultIndex = i;
 
                if (defaultIndex == null)
-                       throw new ArgeoException("Default locale " + defaultLocale + " is not in available locales " + locales);
+                       throw new CmsException("Default locale " + defaultLocale + " is not in available locales " + locales);
                this.defaultIndex = defaultIndex;
 
                this.selectedIndex = defaultIndex;
index 88fbb5a1cb4293d7ad3eb3346393139a14049da5..d8824ba4e89b222d7519d5d6a6a8e7999ca8bdb9 100644 (file)
@@ -19,7 +19,7 @@ import org.apache.commons.vfs2.FileObject;
 import org.apache.commons.vfs2.FileSystemManager;
 import org.apache.commons.vfs2.FileSystemOptions;
 import org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 
 /**
  * Simplify atomic backups implementation, especially by managing VFS.
@@ -39,7 +39,7 @@ public abstract class AbstractAtomicBackup implements AtomicBackup {
 
        public void init() {
                if (name == null)
-                       throw new ArgeoException("Atomic backup name must be set");
+                       throw new CmsException("Atomic backup name must be set");
        }
 
        public void destroy() {
@@ -51,7 +51,7 @@ public abstract class AbstractAtomicBackup implements AtomicBackup {
                        String backupsBase, BackupContext backupContext,
                        FileSystemOptions opts) {
                if (name == null)
-                       throw new ArgeoException("Atomic backup name must be set");
+                       throw new CmsException("Atomic backup name must be set");
 
                FileObject targetFo = null;
                try {
@@ -70,14 +70,14 @@ public abstract class AbstractAtomicBackup implements AtomicBackup {
                                                + '/' + backupContext.getRelativeFolder() + '/' + name
                                                + ".gz" + "!" + name, opts);
                        else
-                               throw new ArgeoException("Unsupported compression "
+                               throw new CmsException("Unsupported compression "
                                                + compression);
 
                        writeBackup(targetFo);
 
                        return targetFo.toString();
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot backup " + name + " to "
+                       throw new CmsException("Cannot backup " + name + " to "
                                        + targetFo, e);
                } finally {
                        BackupUtils.closeFOQuietly(targetFo);
index 2883e05eddd0d07591c44b011730a1260e95ae87..05c7d61a333fe67a34c2a9aaa80f1e5b0de9b7c8 100644 (file)
@@ -24,7 +24,7 @@ import org.apache.commons.vfs2.provider.local.DefaultLocalFileProvider;
 import org.apache.commons.vfs2.provider.ram.RamFileProvider;
 import org.apache.commons.vfs2.provider.sftp.SftpFileProvider;
 import org.apache.commons.vfs2.provider.url.UrlFileProvider;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 
 /**
  * Programatically configured VFS file system manager which can be declared as a
@@ -46,7 +46,7 @@ public class BackupFileSystemManager extends DefaultFileSystemManager {
                        addProvider("ram", new RamFileProvider());
                        setDefaultProvider(new UrlFileProvider());
                } catch (FileSystemException e) {
-                       throw new ArgeoException("Cannot configure backup file provider", e);
+                       throw new CmsException("Cannot configure backup file provider", e);
                }
        }
 }
index 278e36276c187e787943a9e116d86432fb2004dd..96c2f3a779821c43edb406e29ad083ab377e403a 100644 (file)
@@ -16,7 +16,7 @@
 package org.argeo.cms.internal.backup;
 
 import org.apache.commons.vfs2.FileObject;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 
 /** Backups an OpenLDAP server using slapcat */
 public class OpenLdapBackup extends OsCallBackup {
@@ -36,7 +36,7 @@ public class OpenLdapBackup extends OsCallBackup {
        @Override
        public void writeBackup(FileObject targetFo) {
                if (baseDn == null)
-                       throw new ArgeoException("Base DN must be set");
+                       throw new CmsException("Base DN must be set");
 
                if (getCommand() == null)
                        setCommand(slapcatLocation
index e588a0b2e7882aa307c1dbe82a60497b46f55977..ad8ffe86118b8cfe848029eef3d9d8db8bc00fc4 100644 (file)
@@ -30,7 +30,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.vfs2.FileContent;
 import org.apache.commons.vfs2.FileObject;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 
 /**
  * Runs an OS command and save its standard output as a file. Typically used for
@@ -81,20 +81,17 @@ public class OsCallBackup extends AbstractAtomicBackup {
                        // stdout
                        FileContent targetContent = targetFo.getContent();
                        // stderr
-                       ExecuteStreamHandler streamHandler = new PumpStreamHandler(
-                                       targetContent.getOutputStream(), errBos);
+                       ExecuteStreamHandler streamHandler = new PumpStreamHandler(targetContent.getOutputStream(), errBos);
                        executor.setStreamHandler(streamHandler);
                        executor.execute(commandLine, environment);
                } catch (ExecuteException e) {
                        byte[] err = errBos.toByteArray();
                        String errStr = new String(err);
-                       throw new ArgeoException("Process " + commandLine + " failed ("
-                                       + e.getExitValue() + "): " + errStr, e);
+                       throw new CmsException("Process " + commandLine + " failed (" + e.getExitValue() + "): " + errStr, e);
                } catch (Exception e) {
                        byte[] err = errBos.toByteArray();
                        String errStr = new String(err);
-                       throw new ArgeoException("Process " + commandLine + " failed: "
-                                       + errStr, e);
+                       throw new CmsException("Process " + commandLine + " failed: " + errStr, e);
                } finally {
                        IOUtils.closeQuietly(errBos);
                }
index 64d749beefed4583cad326a3d85c381acb3708a6..64863759fa35c6a349f7b35c4f6a769e3ec37f08 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.commons.vfs2.FileObject;
 import org.apache.commons.vfs2.FileSystemManager;
 import org.apache.commons.vfs2.FileSystemOptions;
 import org.apache.commons.vfs2.Selectors;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.joda.time.DateTime;
 import org.joda.time.Period;
 
@@ -82,7 +82,7 @@ public class SimpleBackupPurge implements BackupPurge {
                                        log.debug("Deleted backup " + backupFo);
                        }
                } catch (Exception e) {
-                       throw new ArgeoException("Could not purge previous backups", e);
+                       throw new CmsException("Could not purge previous backups", e);
                }
 
        }
index 5036cc481aa9ad65db557a8d78d22b43a8d0be69..36d3e0b2deaa91b7b15d9a5d796ae62e7d239b8d 100644 (file)
@@ -29,7 +29,8 @@ import org.apache.commons.vfs2.FileSystemOptions;
 import org.apache.commons.vfs2.Selectors;
 import org.apache.commons.vfs2.UserAuthenticator;
 import org.apache.commons.vfs2.impl.DefaultFileSystemConfigBuilder;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
+import org.argeo.util.LangUtils;
 
 /**
  * Combines multiple backups and transfer them to a remote location. Purges
@@ -52,25 +53,22 @@ public class SystemBackup implements Runnable {
        @Override
        public void run() {
                if (atomicBackups.size() == 0)
-                       throw new ArgeoException("No atomic backup listed");
+                       throw new CmsException("No atomic backup listed");
                List<String> failures = new ArrayList<String>();
 
-               SimpleBackupContext backupContext = new SimpleBackupContext(
-                               fileSystemManager, backupsBase, systemName);
+               SimpleBackupContext backupContext = new SimpleBackupContext(fileSystemManager, backupsBase, systemName);
 
                // purge older backups
                FileSystemOptions opts = new FileSystemOptions();
                try {
-                       DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(
-                                       opts, userAuthenticator);
+                       DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, userAuthenticator);
                } catch (FileSystemException e) {
-                       throw new ArgeoException("Cannot create authentication", e);
+                       throw new CmsException("Cannot create authentication", e);
                }
 
                try {
 
-                       backupPurge.purge(fileSystemManager, backupsBase, systemName,
-                                       backupContext.getDateFormat(), opts);
+                       backupPurge.purge(fileSystemManager, backupsBase, systemName, backupContext.getDateFormat(), opts);
                } catch (Exception e) {
                        failures.add("Purge " + backupsBase + " failed: " + e.getMessage());
                        log.error("Purge of " + backupsBase + " failed", e);
@@ -79,19 +77,16 @@ public class SystemBackup implements Runnable {
                // perform backup
                for (AtomicBackup atomickBackup : atomicBackups) {
                        try {
-                               String target = atomickBackup.backup(fileSystemManager,
-                                               backupsBase, backupContext, opts);
+                               String target = atomickBackup.backup(fileSystemManager, backupsBase, backupContext, opts);
                                if (log.isDebugEnabled())
                                        log.debug("Performed backup " + target);
                        } catch (Exception e) {
-                               String msg = "Atomic backup " + atomickBackup.getName()
-                                               + " failed: " + ArgeoException.chainCausesMessages(e);
+                               String msg = "Atomic backup " + atomickBackup.getName() + " failed: "
+                                               + LangUtils.chainCausesMessages(e);
                                failures.add(msg);
                                log.error(msg);
                                if (log.isTraceEnabled())
-                                       log.trace(
-                                                       "Stacktrace of atomic backup "
-                                                                       + atomickBackup.getName() + " failure.", e);
+                                       log.trace("Stacktrace of atomic backup " + atomickBackup.getName() + " failure.", e);
                        }
                }
 
@@ -104,33 +99,25 @@ public class SystemBackup implements Runnable {
                        // authentication
                        FileSystemOptions remoteOpts = new FileSystemOptions();
                        try {
-                               DefaultFileSystemConfigBuilder.getInstance()
-                                               .setUserAuthenticator(remoteOpts, auth);
-                               backupPurge.purge(fileSystemManager, remoteBase, systemName,
-                                               backupContext.getDateFormat(), remoteOpts);
+                               DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(remoteOpts, auth);
+                               backupPurge.purge(fileSystemManager, remoteBase, systemName, backupContext.getDateFormat(), remoteOpts);
                        } catch (Exception e) {
-                               failures.add("Purge " + remoteBase + " failed: "
-                                               + e.getMessage());
+                               failures.add("Purge " + remoteBase + " failed: " + e.getMessage());
                                log.error("Cannot purge " + remoteBase, e);
                        }
 
                        try {
-                               localBaseFo = fileSystemManager.resolveFile(backupsBase + '/'
-                                               + backupContext.getRelativeFolder(), opts);
-                               remoteBaseFo = fileSystemManager.resolveFile(remoteBase + '/'
-                                               + backupContext.getRelativeFolder(), remoteOpts);
+                               localBaseFo = fileSystemManager.resolveFile(backupsBase + '/' + backupContext.getRelativeFolder(),
+                                               opts);
+                               remoteBaseFo = fileSystemManager.resolveFile(remoteBase + '/' + backupContext.getRelativeFolder(),
+                                               remoteOpts);
                                remoteBaseFo.copyFrom(localBaseFo, Selectors.SELECT_ALL);
                                if (log.isDebugEnabled())
-                                       log.debug("Copied backup to " + remoteBaseFo + " from "
-                                                       + localBaseFo);
+                                       log.debug("Copied backup to " + remoteBaseFo + " from " + localBaseFo);
                                // }
                        } catch (Exception e) {
-                               failures.add("Dispatch to " + remoteBase + " failed: "
-                                               + e.getMessage());
-                               log.error(
-                                               "Cannot dispatch backups from "
-                                                               + backupContext.getRelativeFolder() + " to "
-                                                               + remoteBase, e);
+                               failures.add("Dispatch to " + remoteBase + " failed: " + e.getMessage());
+                               log.error("Cannot dispatch backups from " + backupContext.getRelativeFolder() + " to " + remoteBase, e);
                        }
                        BackupUtils.closeFOQuietly(localBaseFo);
                        BackupUtils.closeFOQuietly(remoteBaseFo);
@@ -140,14 +127,11 @@ public class SystemBackup implements Runnable {
                if (failures.size() > 0) {
                        StringBuffer buf = new StringBuffer();
                        for (String failure : failures) {
-                               buf.append('\n').append(failureCount).append(" - ")
-                                               .append(failure);
+                               buf.append('\n').append(failureCount).append(" - ").append(failure);
                                failureCount++;
                        }
-                       throw new ArgeoException(failureCount
-                                       + " error(s) when running the backup,"
-                                       + " check the logs and the backups as soon as possible."
-                                       + buf);
+                       throw new CmsException(failureCount + " error(s) when running the backup,"
+                                       + " check the logs and the backups as soon as possible." + buf);
                }
        }
 
@@ -179,53 +163,54 @@ public class SystemBackup implements Runnable {
                this.remoteBases = remoteBases;
        }
 
-//     public static void main(String args[]) {
-//             while (true) {
-//                     try {
-//                             StandardFileSystemManager fsm = new StandardFileSystemManager();
-//                             fsm.init();
-//
-//                             SystemBackup systemBackup = new SystemBackup();
-//                             systemBackup.setSystemName("mySystem");
-//                             systemBackup
-//                                             .setBackupsBase("/home/mbaudier/dev/src/commons/server/runtime/org.argeo.server.core/target");
-//                             systemBackup.setFileSystemManager(fsm);
-//
-//                             List<AtomicBackup> atomicBackups = new ArrayList<AtomicBackup>();
-//
-//                             MySqlBackup mySqlBackup = new MySqlBackup("root", "", "test");
-//                             atomicBackups.add(mySqlBackup);
-//                             PostgreSqlBackup postgreSqlBackup = new PostgreSqlBackup(
-//                                             "argeo", "argeo", "gis_template");
-//                             atomicBackups.add(postgreSqlBackup);
-//                             SvnBackup svnBackup = new SvnBackup(
-//                                             "/home/mbaudier/tmp/testsvnrepo");
-//                             atomicBackups.add(svnBackup);
-//
-//                             systemBackup.setAtomicBackups(atomicBackups);
-//
-//                             Map<String, UserAuthenticator> remoteBases = new HashMap<String, UserAuthenticator>();
-//                             StaticUserAuthenticator userAuthenticator = new StaticUserAuthenticator(
-//                                             null, "demo", "demo");
-//                             remoteBases.put("sftp://localhost/home/mbaudier/test",
-//                                             userAuthenticator);
-//                             systemBackup.setRemoteBases(remoteBases);
-//
-//                             systemBackup.run();
-//
-//                             fsm.close();
-//                     } catch (FileSystemException e) {
-//                             // TODO Auto-generated catch block
-//                             e.printStackTrace();
-//                             System.exit(1);
-//                     }
-//
-//                     // wait
-//                     try {
-//                             Thread.sleep(120 * 1000);
-//                     } catch (InterruptedException e) {
-//                             e.printStackTrace();
-//                     }
-//             }
-//     }
+       // public static void main(String args[]) {
+       // while (true) {
+       // try {
+       // StandardFileSystemManager fsm = new StandardFileSystemManager();
+       // fsm.init();
+       //
+       // SystemBackup systemBackup = new SystemBackup();
+       // systemBackup.setSystemName("mySystem");
+       // systemBackup
+       // .setBackupsBase("/home/mbaudier/dev/src/commons/server/runtime/org.argeo.server.core/target");
+       // systemBackup.setFileSystemManager(fsm);
+       //
+       // List<AtomicBackup> atomicBackups = new ArrayList<AtomicBackup>();
+       //
+       // MySqlBackup mySqlBackup = new MySqlBackup("root", "", "test");
+       // atomicBackups.add(mySqlBackup);
+       // PostgreSqlBackup postgreSqlBackup = new PostgreSqlBackup(
+       // "argeo", "argeo", "gis_template");
+       // atomicBackups.add(postgreSqlBackup);
+       // SvnBackup svnBackup = new SvnBackup(
+       // "/home/mbaudier/tmp/testsvnrepo");
+       // atomicBackups.add(svnBackup);
+       //
+       // systemBackup.setAtomicBackups(atomicBackups);
+       //
+       // Map<String, UserAuthenticator> remoteBases = new HashMap<String,
+       // UserAuthenticator>();
+       // StaticUserAuthenticator userAuthenticator = new StaticUserAuthenticator(
+       // null, "demo", "demo");
+       // remoteBases.put("sftp://localhost/home/mbaudier/test",
+       // userAuthenticator);
+       // systemBackup.setRemoteBases(remoteBases);
+       //
+       // systemBackup.run();
+       //
+       // fsm.close();
+       // } catch (FileSystemException e) {
+       // // TODO Auto-generated catch block
+       // e.printStackTrace();
+       // System.exit(1);
+       // }
+       //
+       // // wait
+       // try {
+       // Thread.sleep(120 * 1000);
+       // } catch (InterruptedException e) {
+       // e.printStackTrace();
+       // }
+       // }
+       // }
 }
index c0cf3e02566f4e989653d7de6f0cca7267643666..6900be3addf85f1a9015e20f00c78599ec0afb37 100644 (file)
@@ -15,7 +15,6 @@ import javax.security.auth.Subject;
 import javax.security.auth.login.LoginContext;
 
 import org.apache.jackrabbit.core.security.SecurityConstants;
-import org.argeo.ArgeoException;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.AuthConstants;
 import org.argeo.jcr.ArgeoJcrConstants;
@@ -179,7 +178,7 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar
                        return userProfile;
                } catch (RepositoryException e) {
                        JcrUtils.discardQuietly(session);
-                       throw new ArgeoException("Cannot sync node security model for " + username, e);
+                       throw new CmsException("Cannot sync node security model for " + username, e);
                }
        }
 
@@ -189,7 +188,7 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar
                try {
                        dn = new LdapName(username);
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("Invalid name " + username, e);
+                       throw new CmsException("Invalid name " + username, e);
                }
                String userId = dn.getRdn(dn.size() - 1).getValue().toString();
                int atIndex = userId.indexOf('@');
@@ -199,7 +198,7 @@ class HomeRepository extends JcrRepositoryWrapper implements KernelConstants, Ar
                        return base + '/' + JcrUtils.firstCharsToPath(domain, 2) + '/' + domain + '/'
                                        + JcrUtils.firstCharsToPath(name, 2) + '/' + name;
                } else if (atIndex == 0 || atIndex == (userId.length() - 1)) {
-                       throw new ArgeoException("Unsupported username " + userId);
+                       throw new CmsException("Unsupported username " + userId);
                } else {
                        return base + '/' + JcrUtils.firstCharsToPath(userId, 2) + '/' + userId;
                }
index 4f58e7525cb620d6549a6926e020f0501bd87870..5fa0d07cd4a5a0a86c1d6c23bb6b8e2083b78a5c 100644 (file)
@@ -37,7 +37,7 @@ import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.apache.log4j.PropertyConfigurator;
 import org.apache.log4j.spi.LoggingEvent;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.CurrentUser;
 import org.argeo.node.ArgeoLogListener;
 import org.argeo.node.ArgeoLogger;
@@ -109,7 +109,7 @@ class NodeLogger implements ArgeoLogger, LogListener {
                        logDispatcherThread = new LogDispatcherThread();
                        logDispatcherThread.start();
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot initialize log4j");
+                       throw new CmsException("Cannot initialize log4j");
                }
        }
 
@@ -204,7 +204,7 @@ class NodeLogger implements ArgeoLogger, LogListener {
        public synchronized void register(ArgeoLogListener listener, Integer numberOfPreviousEvents) {
                String username = CurrentUser.getUsername();
                if (username == null)
-                       throw new ArgeoException("Only authenticated users can register a log listener");
+                       throw new CmsException("Only authenticated users can register a log listener");
 
                if (!userListeners.containsKey(username)) {
                        List<ArgeoLogListener> lst = Collections.synchronizedList(new ArrayList<ArgeoLogListener>());
@@ -233,9 +233,9 @@ class NodeLogger implements ArgeoLogger, LogListener {
                if (username == null)// FIXME
                        return;
                if (!userListeners.containsKey(username))
-                       throw new ArgeoException("No user listeners " + listener + " registered for user " + username);
+                       throw new CmsException("No user listeners " + listener + " registered for user " + username);
                if (!userListeners.get(username).contains(listener))
-                       throw new ArgeoException("No user listeners " + listener + " registered for user " + username);
+                       throw new CmsException("No user listeners " + listener + " registered for user " + username);
                userListeners.get(username).remove(listener);
                if (userListeners.get(username).isEmpty())
                        userListeners.remove(username);
index 67f8f01c65ee8ca5a62bb236ef046e7a3f7bc57d..050b7d4d7b3cdcf123cee983452404e4f8b0c876 100644 (file)
@@ -15,7 +15,7 @@ import java.util.Date;
 
 import javax.security.auth.x500.X500Principal;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.bouncycastle.cert.X509v3CertificateBuilder;
 import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
 import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder;
@@ -55,7 +55,7 @@ class PkiUtils {
                        keyStore.setKeyEntry(x500Principal.getName(), pair.getPrivate(), keyPassword, new Certificate[] { cert });
                        return cert;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot generate self-signed certificate", e);
+                       throw new CmsException("Cannot generate self-signed certificate", e);
                }
        }
 
@@ -71,7 +71,7 @@ class PkiUtils {
                        }
                        return store;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot load keystore " + keyStoreFile, e);
+                       throw new CmsException("Cannot load keystore " + keyStoreFile, e);
                }
        }
 
@@ -81,7 +81,7 @@ class PkiUtils {
                                keyStore.store(fis, keyStorePassword);
                        }
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot save keystore " + keyStoreFile, e);
+                       throw new CmsException("Cannot save keystore " + keyStoreFile, e);
                }
        }
 
index 7e8b1c07e6c9562572b130d7d046cc102c19364f..1355f852cf67a532b0f2ad4276965dedbc5fa795 100644 (file)
@@ -7,7 +7,7 @@ import java.util.Map;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.jackrabbit.core.RepositoryContext;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.jcr.ArgeoJcrConstants;
 import org.argeo.node.NodeConstants;
 import org.argeo.util.LangUtils;
@@ -32,7 +32,7 @@ class RepositoryServiceFactory implements ManagedServiceFactory {
        @Override
        public void updated(String pid, Dictionary<String, ?> properties) throws ConfigurationException {
                if (repositories.containsKey(pid))
-                       throw new ArgeoException("Already a repository registered for " + pid);
+                       throw new CmsException("Already a repository registered for " + pid);
 
                if (properties == null)
                        return;
@@ -57,7 +57,7 @@ class RepositoryServiceFactory implements ManagedServiceFactory {
                        }
                        bc.registerService(RepositoryContext.class, repositoryContext, props);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot create Jackrabbit repository " + pid, e);
+                       throw new CmsException("Cannot create Jackrabbit repository " + pid, e);
                }
 
        }
index 98792575bf92e982521eb4b16d7cb84cc5be5362..7dafd72c4b8075678b533cf850bec25849c6a568 100644 (file)
@@ -16,7 +16,6 @@ import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import org.argeo.ArgeoException;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.CmsTypes;
 import org.argeo.cms.CmsUiProvider;
@@ -217,7 +216,7 @@ public class Browse implements CmsUiProvider {
                                                e.doit = false;
                                        }
                                } catch (RepositoryException e1) {
-                                       throw new ArgeoException(
+                                       throw new CmsException(
                                                        "Unexpected error in key management for "
                                                                        + currEdited + "with filter "
                                                                        + filterTxt.getText(), e1);
@@ -236,7 +235,7 @@ public class Browse implements CmsUiProvider {
                        refreshFilters(node);
                        refreshBrowser(node);
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Unable to update browser for " + node, re);
+                       throw new CmsException("Unable to update browser for " + node, re);
                }
        }
 
@@ -336,7 +335,7 @@ public class Browse implements CmsUiProvider {
                try {
                        return node.getPath();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Unable to get path for node " + node, e);
+                       throw new CmsException("Unable to get path for node " + node, e);
                }
        }
 
@@ -458,7 +457,7 @@ public class Browse implements CmsUiProvider {
                                NodeIterator nit = context.getNodes(filter);
                                refreshFilteredList(nit);
                        } catch (RepositoryException e) {
-                               throw new ArgeoException("Unable to filter " + getNode()
+                               throw new CmsException("Unable to filter " + getNode()
                                                + " children with filter " + filter, e);
                        }
 
@@ -557,7 +556,7 @@ public class Browse implements CmsUiProvider {
                                                        }
                                                }
                                        } catch (RepositoryException ie) {
-                                               throw new ArgeoException("Error while managing arrow "
+                                               throw new CmsException("Error while managing arrow "
                                                                + "events in the browser for " + selected, ie);
                                        }
                                }
@@ -606,7 +605,7 @@ public class Browse implements CmsUiProvider {
                                        try {
                                                return curr.getName();
                                        } catch (RepositoryException e) {
-                                               throw new ArgeoException("Unable to get name for"
+                                               throw new CmsException("Unable to get name for"
                                                                + curr);
                                        }
                                }
index a05165f5bf18796b66f83e0e01f8c838f4e77a97..2ccb3ca06b2d8349db91859358a9ff9957038a10 100644 (file)
@@ -8,7 +8,6 @@ import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
 import javax.servlet.http.HttpServletRequest;
 
-import org.argeo.ArgeoException;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.CmsImageManager;
 import org.argeo.cms.CmsView;
@@ -58,7 +57,7 @@ public class LoginEntryPoint implements EntryPoint, CmsView {
                                // }
                        }
                } catch (LoginException e) {
-                       throw new ArgeoException("Cannot log in", e);
+                       throw new CmsException("Cannot log in", e);
                }
 
                if (CurrentUser.getUsername() == null)
index 9d0c638450726bdc38ce4443f602019f5d2e5694..54e8eb544755b8262e22d2f2a9f3dc70d505ceec 100644 (file)
@@ -8,7 +8,7 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 
 import org.apache.commons.io.IOUtils;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.CmsStyles;
 import org.eclipse.rap.rwt.RWT;
 import org.eclipse.swt.SWT;
@@ -59,7 +59,7 @@ public class SystemNotifications extends Shell implements CmsStyles,
 
                Label lbl = new Label(pane, SWT.NONE);
                lbl.setText(exception.getLocalizedMessage()
-                               + (exception instanceof ArgeoException ? "" : "("
+                               + (exception instanceof CmsException ? "" : "("
                                                + exception.getClass().getName() + ")") + "\n");
                lbl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
                lbl.addMouseListener(this);
index 5c197c1ae022d259a82da9d50b1745c7d114a580..9ccc3057f3a355d66d369cdd06f3bd5633f2567f 100644 (file)
@@ -10,7 +10,7 @@ import javax.naming.ldap.Rdn;
 import javax.security.auth.Subject;
 import javax.security.auth.x500.X500Principal;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.CmsView;
 import org.argeo.cms.auth.AuthConstants;
 import org.argeo.cms.auth.CurrentUser;
@@ -106,7 +106,7 @@ public class UserAdminUtils {
                        else
                                return false;
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("User " + user + " has an unvalid dn: "
+                       throw new CmsException("User " + user + " has an unvalid dn: "
                                        + userName, e);
                }
        }
@@ -166,7 +166,7 @@ public class UserAdminUtils {
                                || last.getType().toLowerCase().equals(LdifName.cn.name()))
                        return (String) last.getValue();
                else
-                       throw new ArgeoException("Cannot retrieve user uid, "
+                       throw new CmsException("Cannot retrieve user uid, "
                                        + "non valid dn: " + dn);
        }
 
@@ -226,7 +226,7 @@ public class UserAdminUtils {
                        }
                        return dname;
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("Unable to get domain name for " + dn, e);
+                       throw new CmsException("Unable to get domain name for " + dn, e);
                }
        }
 
@@ -236,7 +236,7 @@ public class UserAdminUtils {
                try {
                        return new LdapName(dn);
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("Cannot parse LDAP name " + dn, e);
+                       throw new CmsException("Cannot parse LDAP name " + dn, e);
                }
        }
 }
\ No newline at end of file
index 911b92ea880886976781f589544d7302572a7f02..aa764d57ce29c8881e6e7e496db1db443c54f938 100644 (file)
@@ -9,7 +9,7 @@ import java.util.Map;
 import javax.transaction.Status;
 import javax.transaction.UserTransaction;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.AuthConstants;
 import org.argeo.osgi.useradmin.UserAdminConf;
 import org.osgi.framework.ServiceReference;
@@ -48,7 +48,7 @@ public abstract class UserAdminWrapper {
                        }
                        return userTransaction;
                } catch (Exception e) {
-                       throw new ArgeoException("Unable to begin transaction", e);
+                       throw new CmsException("Unable to begin transaction", e);
                }
        }
 
index c4beeed52444dcc5f40612d5ad7b1714c234da49..9c3e5cd8390f43f875e588f6f7890f1c5e039813 100644 (file)
@@ -21,7 +21,7 @@ import javax.security.auth.login.LoginException;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 
 /** Provides base method for executing code with system authorization. */
 public abstract class AbstractSystemExecution {
@@ -41,7 +41,7 @@ public abstract class AbstractSystemExecution {
                        LoginContext lc = new LoginContext(loginModule, subject);
                        lc.login();
                } catch (LoginException e) {
-                       throw new ArgeoException("Cannot login as system", e);
+                       throw new CmsException("Cannot login as system", e);
                } finally {
                        Thread.currentThread().setContextClassLoader(origClassLoader);
                }
@@ -56,7 +56,7 @@ public abstract class AbstractSystemExecution {
                        LoginContext lc = new LoginContext(loginModule, subject);
                        lc.logout();
                } catch (LoginException e) {
-                       throw new ArgeoException("Cannot logout as system", e);
+                       throw new CmsException("Cannot logout as system", e);
                } finally {
                        Thread.currentThread().setContextClassLoader(origClassLoader);
                }
index 4d107dabb263d073da7bf7e8b7421340a5fdde67..58f6686ac26b36e2fca46324a29b7bc2b7f8a955 100644 (file)
@@ -10,7 +10,7 @@ import javax.transaction.UserTransaction;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.osgi.service.useradmin.Role;
 import org.osgi.service.useradmin.UserAdmin;
 
@@ -44,7 +44,7 @@ public class SimpleRoleRegistration implements Runnable {
                        } catch (Exception e1) {
                                log.error("Cannot rollback", e1);
                        }
-                       throw new ArgeoException("Cannot add roles", e);
+                       throw new CmsException("Cannot add roles", e);
                }
        }
 
@@ -66,7 +66,7 @@ public class SimpleRoleRegistration implements Runnable {
                try {
                        return new LdapName("cn=" + name + ",ou=roles,ou=node");
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("Badly formatted role name " + name, e);
+                       throw new CmsException("Badly formatted role name " + name, e);
                }
        }
 
index 4c7a152df39cdb438f1fd0cca305e38e3297e531..1bbf9cbed2889031505864665517a7c39666fefa 100644 (file)
@@ -17,7 +17,7 @@ package org.argeo.eclipse.spring;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.IHandler;
@@ -47,7 +47,7 @@ public class SpringCommandHandler implements IHandler {
                        ApplicationContext applicationContext = ApplicationContextTracker
                                        .getApplicationContext(bundleSymbolicName);
                        if (applicationContext == null)
-                               throw new ArgeoException("No application context found for "
+                               throw new EclipseUiException("No application context found for "
                                                + bundleSymbolicName);
 
                        // retrieve the command via its id
index 7a0486fd265470317a766a897f3ee8f8a73d553e..6a56266252dc82b68ac8aef39f90faae56b4c87a 100644 (file)
@@ -15,7 +15,7 @@
  */\r
 package org.argeo.eclipse.spring;\r
 \r
-import org.argeo.ArgeoException;\r
+import org.argeo.eclipse.ui.EclipseUiException;\r
 import org.eclipse.core.runtime.CoreException;\r
 import org.eclipse.core.runtime.IConfigurationElement;\r
 import org.eclipse.core.runtime.IExecutableExtension;\r
@@ -55,7 +55,7 @@ public class SpringExtensionFactory implements IExecutableExtensionFactory,
 \r
        public Object create() throws CoreException {\r
                if (bean == null)\r
-                       throw new ArgeoException("No underlying bean for extension");\r
+                       throw new EclipseUiException("No underlying bean for extension");\r
                return bean;\r
        }\r
 \r
@@ -65,13 +65,13 @@ public class SpringExtensionFactory implements IExecutableExtensionFactory,
                ApplicationContext applicationContext = ApplicationContextTracker\r
                                .getApplicationContext(bundleSymbolicName);\r
                if (applicationContext == null)\r
-                       throw new ArgeoException(\r
+                       throw new EclipseUiException(\r
                                        "Cannot find application context for bundle "\r
                                                        + bundleSymbolicName);\r
 \r
                String beanName = getBeanName(data, config);\r
                if (beanName == null)\r
-                       throw new ArgeoException("Cannot find bean name for extension "\r
+                       throw new EclipseUiException("Cannot find bean name for extension "\r
                                        + config);\r
 \r
                if (!applicationContext.containsBean(beanName)) {\r
@@ -80,7 +80,7 @@ public class SpringExtensionFactory implements IExecutableExtensionFactory,
                }\r
 \r
                if (!applicationContext.containsBean(beanName))\r
-                       throw new ArgeoException("No bean with name '" + beanName + "'");\r
+                       throw new EclipseUiException("No bean with name '" + beanName + "'");\r
 \r
                this.bean = applicationContext.getBean(beanName);\r
                if (this.bean instanceof IExecutableExtension) {\r
index 3670efbe586a277bf7cbbdf5b6ae28bf190843b4..36f12936dd6651f580874d8fe396299868c0665e 100644 (file)
@@ -19,7 +19,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.core.commands.Command;
 import org.eclipse.core.commands.Parameterization;
 import org.eclipse.core.commands.ParameterizedCommand;
@@ -173,7 +173,7 @@ public class CommandUtils {
                        // execute the command
                        handlerService.executeCommand(pc, null);
                } catch (Exception e) {
-                       throw new ArgeoException("Unexpected error while"
+                       throw new EclipseUiException("Unexpected error while"
                                        + " calling the command " + commandID, e);
                }
        }
index cc7d94ee602f2d31f5d2aa6eb8d6f8e33b1a5406..8ad021f72c1eb4be1a56bb91d07aec235e9775b0 100644 (file)
@@ -18,7 +18,7 @@ package org.argeo.eclipse.ui.workbench.commands;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
@@ -69,7 +69,7 @@ public class AddPrivileges extends AbstractHandler {
                                dialog.open();
                                return null;
                        } catch (RepositoryException re) {
-                               throw new ArgeoException("Unable to retrieve "
+                               throw new EclipseUiException("Unable to retrieve "
                                                + "path or JCR session to add privilege on "
                                                + jcrParentNode, re);
                        }
index 2ee8f896384cbd0a0fa0a07fa08e395fb5e4ace7..ba86eb71c4f264e9f46ed4098708f6e9b8690152 100644 (file)
@@ -24,7 +24,7 @@ import javax.jcr.RepositoryFactory;
 import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.eclipse.ui.workbench.CommandUtils;
 import org.argeo.eclipse.ui.workbench.WorkbenchConstants;
@@ -175,7 +175,7 @@ public class AddRemoteRepository extends AbstractHandler implements
                                Node remote = home.hasNode(ARGEO_REMOTE) ? home
                                                .getNode(ARGEO_REMOTE) : home.addNode(ARGEO_REMOTE);
                                if (remote.hasNode(name.getText()))
-                                       throw new ArgeoException(
+                                       throw new EclipseUiException(
                                                        "There is already a remote repository named "
                                                                        + name.getText());
                                Node remoteRepository = remote.addNode(name.getText(),
index d8c0f0cef165ceb203aeeadab13803084bb6e8b6..76530484a4689351ff09c6b3f9a508b34559818d 100644 (file)
@@ -20,7 +20,7 @@ import java.util.Iterator;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.SingleJcrNodeElem;
@@ -112,7 +112,7 @@ public class DeleteNodes extends AbstractHandler {
                        else
                                return A.getNode().getDepth() <= B.getNode().getDepth() ? A : B;
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Cannot find ancestor", re);
+                       throw new EclipseUiException("Cannot find ancestor", re);
                }
        }
 }
index 2823988c9649f31f34d90eb36b31dcdfa68c3fb7..f62a5c07ed4ea5efb1bb9dc0dea59d5d16d76ec7 100644 (file)
@@ -29,7 +29,7 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.CommandUtils;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.SingleJcrNodeElem;
@@ -89,10 +89,10 @@ public class DumpNode extends AbstractHandler {
                                                        + JcrUtils.replaceInvalidChars(node.getName())
                                                        + "-" + dateVal + ".xml");
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException(
+                                       throw new EclipseUiException(
                                                        "Unable to perform SystemExport on " + node, e);
                                } catch (IOException e) {
-                                       throw new ArgeoException("Unable to SystemExport " + node,
+                                       throw new EclipseUiException("Unable to SystemExport " + node,
                                                        e);
                                }
                        }
index cd6c0dc984272c55258d2f121e6bc1513cd81328..81f5a60fe200628c637d3a0d8a7c9fe918407e0d 100644 (file)
@@ -31,7 +31,7 @@ import javax.jcr.Node;
 import javax.jcr.NodeIterator;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.SingleJcrNodeElem;
@@ -122,10 +122,10 @@ public class NodeConfigurableDump extends AbstractHandler {
                                                        fos.close();
                                                }
                                        } catch (RepositoryException e) {
-                                               throw new ArgeoException(
+                                               throw new EclipseUiException(
                                                                "Unable to perform SystemExport on " + node, e);
                                        } catch (IOException e) {
-                                               throw new ArgeoException("Unable to SystemExport "
+                                               throw new EclipseUiException("Unable to SystemExport "
                                                                + node, e);
                                        }
                                }
@@ -187,7 +187,7 @@ public class NodeConfigurableDump extends AbstractHandler {
                                page = new BasicPage("Main page");
                                addPage(page);
                        } catch (Exception e) {
-                               throw new ArgeoException("Cannot add page to wizard", e);
+                               throw new EclipseUiException("Cannot add page to wizard", e);
                        }
                }
 
index bf2f824e82988732383b9088c41d3cb2daddba2b..57ae9f28d6ecd38cf2c72c197bbb5ca6c580b609 100644 (file)
@@ -17,7 +17,7 @@ package org.argeo.eclipse.ui.workbench.commands;
 
 import javax.jcr.Node;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
 import org.argeo.eclipse.ui.workbench.internal.jcr.parts.JcrQueryEditorInput;
 import org.argeo.eclipse.ui.workbench.internal.jcr.parts.NodeEditorInput;
@@ -52,7 +52,7 @@ public class OpenEditor extends AbstractHandler {
                                activePage.openEditor(editorInput, editorId);
                        }
                } catch (PartInitException e) {
-                       throw new ArgeoException("Cannot open editor of ID " + editorId, e);
+                       throw new EclipseUiException("Cannot open editor of ID " + editorId, e);
                }
                return null;
        }
index c11413d9f9f551a0c25380de8a7e1bb835371b5a..f706a64534946462cc75fff48deb93ac6745f6ce 100644 (file)
@@ -25,7 +25,7 @@ import javax.jcr.security.AccessControlList;
 import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.Privilege;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
@@ -86,7 +86,7 @@ public class RemovePrivileges extends AbstractHandler {
                                dialog.open();
                                return null;
                        } catch (RepositoryException re) {
-                               throw new ArgeoException("Unable to retrieve "
+                               throw new EclipseUiException("Unable to retrieve "
                                                + "path or JCR session to add privilege on " + jcrNode,
                                                re);
                        }
@@ -145,7 +145,7 @@ public class RemovePrivileges extends AbstractHandler {
                                                        IMessageProvider.INFORMATION);
                                }
                        } catch (RepositoryException e) {
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "Unable to list privileges on " + path, e);
                        }
                        body.layout(true, true);
@@ -176,7 +176,7 @@ public class RemovePrivileges extends AbstractHandler {
                                                        session.save();
                                                        refreshContent();
                                                } catch (RepositoryException re) {
-                                                       throw new ArgeoException("Unable to "
+                                                       throw new EclipseUiException("Unable to "
                                                                        + "remove privilege for "
                                                                        + currPrincipalName + " on " + path, re);
                                                }
index 1d246078b773cb9bc3709daba2879460546172cf..b9d2c287d09abff59fd0845fc521bad47212f421 100644 (file)
@@ -21,7 +21,7 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.dialogs.SingleValue;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.SingleJcrNodeElem;
@@ -77,7 +77,7 @@ public class RenameNode extends AbstractHandler {
                                        if (iwp.getActivePart() instanceof JcrBrowserView)
                                                ((JcrBrowserView) iwp.getActivePart()).refresh(sjn);
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException("Unable to rename " + node
+                                       throw new EclipseUiException("Unable to rename " + node
                                                        + " to " + newName, e);
                                }
                        }
index b4132ed85f364ae40c3c37cbbde6adb8f63c5f25..7e4e2918a5f6be2dbb7d154cd54e42e3803dbcb6 100644 (file)
@@ -26,7 +26,7 @@ import javax.jcr.version.VersionHistory;
 import javax.jcr.version.VersionIterator;
 import javax.jcr.version.VersionManager;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
@@ -57,7 +57,7 @@ public class FullVersioningTreeContentProvider implements ITreeContentProvider {
                        }
                        return result.toArray();
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected error while getting version elements", re);
                }
        }
@@ -70,7 +70,7 @@ public class FullVersioningTreeContentProvider implements ITreeContentProvider {
                                return tmp.toArray();
                        }
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Unexpected error while getting child "
+                       throw new EclipseUiException("Unexpected error while getting child "
                                        + "node for version element", re);
                }
                return null;
@@ -100,7 +100,7 @@ public class FullVersioningTreeContentProvider implements ITreeContentProvider {
                        else
                                return false;
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot check children of " + element, e);
+                       throw new EclipseUiException("Cannot check children of " + element, e);
                }
        }
 
index 469713ae03d547d047b1a7c4539667068402a0a5..7d898fd8e98ced6210e5ba55169d614ec6eedb1e 100644 (file)
@@ -19,7 +19,7 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.RepositoryElem;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.SingleJcrNodeElem;
@@ -103,10 +103,10 @@ public class GenericNodeDoubleClickListener implements IDoubleClickListener {
                                                .getActiveWorkbenchWindow().getActivePage()
                                                .openEditor(gnei, DefaultNodeEditor.ID);
                        } catch (RepositoryException re) {
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "Repository error while getting node info", re);
                        } catch (PartInitException pie) {
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "Unexepected exception while opening node editor", pie);
                        }
                }
index 4261d9f40cf438688c545366142d46bec05e0bd1..9e3e31878896a4b0650b89af21a59f7911bb1ffe 100644 (file)
@@ -18,7 +18,7 @@ package org.argeo.eclipse.ui.workbench.internal.jcr;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.RepositoriesElem;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.RepositoryElem;
@@ -69,7 +69,7 @@ public class JcrBrowserUtils {
                                element.getChildren();
                        }
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected error while synchronising the UI with the JCR repository",
                                        re);
                }
index e9bb70678b2011a7715209a8a0304d3ae995b37c..652da3fd8c2e40cb5811a0b2010d5d994dd3b78f 100644 (file)
@@ -27,11 +27,11 @@ import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 
 import org.argeo.eclipse.ui.TreeParent;
+import org.argeo.eclipse.ui.workbench.internal.jcr.model.RepositoriesElem;
+import org.argeo.eclipse.ui.workbench.internal.jcr.model.SingleJcrNodeElem;
 import org.argeo.jcr.ArgeoJcrConstants;
 import org.argeo.jcr.RepositoryRegister;
 import org.argeo.jcr.UserJcrUtils;
-import org.argeo.eclipse.ui.workbench.internal.jcr.model.RepositoriesElem;
-import org.argeo.eclipse.ui.workbench.internal.jcr.model.SingleJcrNodeElem;
 import org.argeo.util.security.Keyring;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
index 0686c23425ba327cb47ca473c77bff662274f3cb..2ed6232a6949894cadc07992a9a61674850887ef 100644 (file)
@@ -21,7 +21,7 @@ import javax.jcr.nodetype.NodeType;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.RemoteRepositoryElem;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.RepositoriesElem;
 import org.argeo.eclipse.ui.workbench.internal.jcr.model.RepositoryElem;
@@ -48,7 +48,7 @@ public class NodeLabelProvider extends ColumnLabelProvider {
                        } else
                                return super.getText(element);
                } catch (RepositoryException e) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected JCR error while getting node name.");
                }
        }
index 58571eba8d75ad451ddf58f6d3162631332d8387..d0b0e394c9ede9244d079a730713bc0d491fd513 100644 (file)
@@ -23,7 +23,7 @@ import javax.jcr.Property;
 import javax.jcr.PropertyIterator;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.jcr.utils.JcrItemsComparator;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.Viewer;
@@ -49,7 +49,7 @@ public class PropertiesContentProvider implements IStructuredContentProvider {
                        }
                        return new Object[] {};
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get element for " + inputElement,
+                       throw new EclipseUiException("Cannot get element for " + inputElement,
                                        e);
                }
        }
index 1964b7b74807f6a3096190233cfed8906729b48b..34e91f4ca34133edf5d01a199b725bb58c5d69e0 100644 (file)
@@ -23,7 +23,7 @@ import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.WorkbenchConstants;
 import org.argeo.jcr.JcrUtils;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
@@ -87,7 +87,7 @@ public class PropertyLabelProvider extends ColumnLabelProvider implements
                        }
 
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexepected error while getting property values", re);
                }
                return null;
@@ -106,7 +106,7 @@ public class PropertyLabelProvider extends ColumnLabelProvider implements
                                strValue = value.getString();
                        return strValue;
                } catch (RepositoryException e) {
-                       throw new ArgeoException("unexpected error while formatting value",
+                       throw new EclipseUiException("unexpected error while formatting value",
                                        e);
                }
        }
index 1dcd287202220b23406dd3fcb74eca7077a51fd5..7050b7b89fe012ee94ecd74054fe53f1ed2feebf 100644 (file)
@@ -23,7 +23,7 @@ import javax.jcr.Node;
 import javax.jcr.NodeIterator;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.jcr.utils.JcrItemsComparator;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
@@ -52,7 +52,7 @@ public class SingleNodeAsTreeContentProvider implements ITreeContentProvider {
 
                        return result.toArray();
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected error while getting child nodes for children editor page ",
                                        re);
                }
@@ -78,7 +78,7 @@ public class SingleNodeAsTreeContentProvider implements ITreeContentProvider {
                try {
                        return ((Node) element).hasNodes();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot check children of " + element, e);
+                       throw new EclipseUiException("Cannot check children of " + element, e);
                }
        }
 
@@ -100,7 +100,7 @@ public class SingleNodeAsTreeContentProvider implements ITreeContentProvider {
                        Arrays.sort(arr, itemComparator);
                        return arr;
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot list children of " + parentNode, e);
+                       throw new EclipseUiException("Cannot list children of " + parentNode, e);
                }
        }
 }
index f7e110ae80a24235de6e502c781f0d11ecb7e833..e6672f2ce93dd0fc5ea7360d7bfd04def145648e 100644 (file)
@@ -19,7 +19,7 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.version.Version;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 
 /**
@@ -40,7 +40,7 @@ public class VersionLabelProvider extends ColumnLabelProvider {
                                return ((Node) element).getName();
                        }
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected error while getting element name", re);
                }
                return super.getText(element);
index f243a2dd09f0f5c2f5a67354545dfd4896636a4d..ec8db4aab8f3f9bf93313f98f3e4b022abce233e 100644 (file)
@@ -24,7 +24,7 @@ import javax.jcr.RepositoryFactory;
 import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.jcr.ArgeoJcrUtils;
 import org.argeo.jcr.ArgeoNames;
@@ -87,7 +87,7 @@ public class RemoteRepositoryElem extends RepositoryElem {
                        remoteNode.remove();
                        remoteNode.getSession().save();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot remove " + remoteNodePath, e);
+                       throw new EclipseUiException("Cannot remove " + remoteNodePath, e);
                }
        }
 
index 0737544873b4e1d39657f72c665844dade9a1407..ceab362bc50f8cc4557c503d0b37e9262cc06d7e 100644 (file)
@@ -24,7 +24,7 @@ import javax.jcr.RepositoryException;
 import javax.jcr.RepositoryFactory;
 import javax.jcr.Session;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.jcr.ArgeoNames;
@@ -88,7 +88,7 @@ public class RepositoriesElem extends TreeParent implements ArgeoNames {
                                try {
                                        addRemoteRepositories(keyring);
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException("Cannot browse remote repositories", e);
+                                       throw new EclipseUiException("Cannot browse remote repositories", e);
                                }
                        }
                        return super.getChildren();
index 5adf6f54651b080bc2226264fff44ee41f0bffc8..f3b73b042f2811df8620cb83a9ba18ab922eee5f 100644 (file)
@@ -19,7 +19,7 @@ import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.TreeParent;
 
 /**
@@ -53,7 +53,7 @@ public class RepositoryElem extends TreeParent {
                                        addChild(new WorkspaceElem(this, wkpName));
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot connect to repository " + alias, e);
+                       throw new EclipseUiException("Cannot connect to repository " + alias, e);
                }
        }
 
@@ -71,7 +71,7 @@ public class RepositoryElem extends TreeParent {
                try {
                        return defaultSession.getWorkspace().getAccessibleWorkspaceNames();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot retrieve workspace names", e);
+                       throw new EclipseUiException("Cannot retrieve workspace names", e);
                }
        }
 
@@ -81,7 +81,7 @@ public class RepositoryElem extends TreeParent {
                try {
                        defaultSession.getWorkspace().createWorkspace(workspaceName);
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot create workspace", e);
+                       throw new EclipseUiException("Cannot create workspace", e);
                }
        }
 
index dfc0b3d29b0c8454cc822681e832639ae6bca32f..b69a4803af4d12279acb7a668e7644980ee40c28 100644 (file)
@@ -20,7 +20,7 @@ import javax.jcr.NodeIterator;
 import javax.jcr.RepositoryException;
 import javax.jcr.Workspace;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.TreeParent;
 
 /**
@@ -84,7 +84,7 @@ public class SingleJcrNodeElem extends TreeParent {
                                }
                                return super.getChildren();
                        } catch (RepositoryException re) {
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "Unexcpected error while initializing children SingleJcrNode",
                                                re);
                        }
@@ -99,7 +99,7 @@ public class SingleJcrNodeElem extends TreeParent {
                        else
                                return false;
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected error while checking children node existence",
                                        re);
                }
index c20fb98d7f53c193889e63e77066b2b379c1f5be..e0e9a3e22bfa14a255124f939fe545fabfffbf20 100644 (file)
@@ -20,8 +20,9 @@ import javax.jcr.NodeIterator;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 // import javax.jcr.Workspace;
+import javax.jcr.Workspace;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.jcr.JcrUtils;
 
@@ -54,7 +55,7 @@ public class WorkspaceElem extends TreeParent {
                        else
                                return null;
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get root node of workspace "
+                       throw new EclipseUiException("Cannot get root node of workspace "
                                        + getName(), e);
                }
        }
@@ -63,7 +64,7 @@ public class WorkspaceElem extends TreeParent {
                try {
                        session = ((RepositoryElem) getParent()).repositoryLogin(getName());
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot connect to repository "
+                       throw new EclipseUiException("Cannot connect to repository "
                                        + getName(), e);
                }
        }
@@ -96,7 +97,7 @@ public class WorkspaceElem extends TreeParent {
                        else
                                return false;
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected error while checking children node existence",
                                        re);
                }
@@ -122,7 +123,7 @@ public class WorkspaceElem extends TreeParent {
                                }
                                return super.getChildren();
                        } catch (RepositoryException e) {
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "Cannot initialize WorkspaceNode UI object."
                                                                + getName(), e);
                        }
index 81914e37b607cb558bfb071b970e3238fbc3b1ee..0633454cec7aa0bce496a80ae80edd08c5e2c692 100644 (file)
@@ -26,7 +26,7 @@ import javax.jcr.query.RowIterator;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.GenericTableComparator;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -146,7 +146,7 @@ public abstract class AbstractJcrQueryEditor extends EditorPart {
                                }
                                viewer.setInput(rows);
                        } catch (RepositoryException e) {
-                               throw new ArgeoException("Cannot read query result", e);
+                               throw new EclipseUiException("Cannot read query result", e);
                        }
 
                } catch (RepositoryException e) {
@@ -209,7 +209,7 @@ public abstract class AbstractJcrQueryEditor extends EditorPart {
                                try {
                                        return row.getValue(columnName).getString();
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException("Cannot display row " + row, e);
+                                       throw new EclipseUiException("Cannot display row " + row, e);
                                }
                        }
 
@@ -274,7 +274,7 @@ public abstract class AbstractJcrQueryEditor extends EditorPart {
                                // }
                                return rows.toArray();
                        } catch (RepositoryException e) {
-                               throw new ArgeoException("Cannot read query result", e);
+                               throw new EclipseUiException("Cannot read query result", e);
                        }
                }
 
index caca943663caee7da8e06342784fe46c1d80659e..1837ee7b74e0ea41bb3278de96584c255db4f346 100644 (file)
@@ -23,7 +23,7 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.security.Privilege;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.workbench.internal.users.UsersUtils;
 import org.argeo.eclipse.ui.workbench.users.PickUpUserDialog;
@@ -103,7 +103,7 @@ public class AddPrivilegeWizard extends Wizard {
                        page = new DefinePrivilegePage(userAdmin, targetPath);
                        addPage(page);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot add page to wizard ", e);
+                       throw new EclipseUiException("Cannot add page to wizard ", e);
                }
        }
 
@@ -115,7 +115,7 @@ public class AddPrivilegeWizard extends Wizard {
                        JcrUtils.addPrivilege(currentSession, targetPath,
                                        chosenUser.getName(), jcrPrivilege);
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Cannot set " + jcrPrivilege + " for "
+                       throw new EclipseUiException("Cannot set " + jcrPrivilege + " for "
                                        + chosenUser.getName() + " on " + targetPath, re);
                }
                return true;
index 8a7d4966527ef1e194f60dd5000d01d283d2e8b0..90ae7b5e95179ed43c0071993b415140b63bcaa2 100644 (file)
@@ -17,7 +17,7 @@ package org.argeo.eclipse.ui.workbench.internal.jcr.parts;
 
 import javax.jcr.Node;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
 import org.argeo.eclipse.ui.workbench.internal.jcr.NodeLabelProvider;
@@ -74,7 +74,7 @@ public class ChildNodesPage extends FormPage {
                                nodesViewer.setInput(currentNode);
                        }
                } catch (Exception e) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected error while creating child node page", e);
                }
        }
@@ -108,7 +108,7 @@ public class ChildNodesPage extends FormPage {
                                                        .getActiveWorkbenchWindow().getActivePage()
                                                        .openEditor(gnei, DefaultNodeEditor.ID);
                                } catch (PartInitException pie) {
-                                       throw new ArgeoException(
+                                       throw new EclipseUiException(
                                                        "Unexepected exception while opening node editor",
                                                        pie);
                                }
index 6e12cb81f6b86f3bbd737f3e65ec99c782349874..e54ad6333a2948c3ccf6cd6cd525913a506c8e64 100644 (file)
@@ -18,7 +18,7 @@ package org.argeo.eclipse.ui.workbench.internal.jcr.parts;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IPersistableElement;
@@ -43,7 +43,7 @@ public class GenericNodeEditorInput implements IEditorInput {
                        uid = currentNode.getIdentifier();
                        path = currentNode.getPath();
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "unexpected error while getting node key values at creation time",
                                        re);
                }
index cc7352b6f342d0f4695f49346510addb1669a565..13bc676fa221f7d7faf7a4af0cf0826cb1dd074c 100644 (file)
@@ -28,7 +28,7 @@ import javax.jcr.PropertyIterator;
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.WorkbenchConstants;
 import org.argeo.jcr.JcrUtils;
 import org.eclipse.swt.SWT;
@@ -111,7 +111,7 @@ public class GenericNodePage extends FormPage implements WorkbenchConstants {
                                                                currentNode.getSession().save();
                                                }
                                        } catch (RepositoryException re) {
-                                               throw new ArgeoException(
+                                               throw new EclipseUiException(
                                                                "Unexpected error while saving properties", re);
                                        }
                                }
@@ -124,7 +124,7 @@ public class GenericNodePage extends FormPage implements WorkbenchConstants {
 
                        getManagedForm().addPart(part);
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Error during creation of network details section", re);
                }
 
@@ -142,7 +142,7 @@ public class GenericNodePage extends FormPage implements WorkbenchConstants {
                        } else
                                addModifyableValueWidget(parent, part, prop);
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Cannot get property " + prop, re);
+                       throw new EclipseUiException("Cannot get property " + prop, re);
                }
        }
 
@@ -162,7 +162,7 @@ public class GenericNodePage extends FormPage implements WorkbenchConstants {
 
                        return strValue;
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected error while formatting read only property value",
                                        re);
                }
@@ -188,7 +188,7 @@ public class GenericNodePage extends FormPage implements WorkbenchConstants {
                        }
                        return null;
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected error while formatting read only property value",
                                        re);
                }
index 8d43ad40cea069213edfa7bdb51f6e138a45f381..17afa7d14745c04f6d092e508efb4b0e22a8ff17 100644 (file)
@@ -24,7 +24,7 @@ import javax.jcr.PropertyIterator;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.WorkbenchConstants;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
 import org.argeo.eclipse.ui.workbench.internal.jcr.PropertyLabelProvider;
@@ -138,7 +138,7 @@ public class GenericPropertyPage extends FormPage implements WorkbenchConstants
        // super.commit(onSave);
        // }
        // } catch (RepositoryException re) {
-       // throw new ArgeoException(
+       // throw new EclipseUiException(
        // "Unexpected error while saving properties", re);
        // }
        // }
@@ -151,7 +151,7 @@ public class GenericPropertyPage extends FormPage implements WorkbenchConstants
        //
        // getManagedForm().addPart(part);
        // } catch (RepositoryException re) {
-       // throw new ArgeoException(
+       // throw new EclipseUiException(
        // "Error during creation of network details section", re);
        // }
        //
@@ -169,7 +169,7 @@ public class GenericPropertyPage extends FormPage implements WorkbenchConstants
        // } else
        // addModifyableValueWidget(parent, part, prop);
        // } catch (RepositoryException re) {
-       // throw new ArgeoException("Cannot get property " + prop, re);
+       // throw new EclipseUiException("Cannot get property " + prop, re);
        // }
        // }
        //
@@ -189,7 +189,7 @@ public class GenericPropertyPage extends FormPage implements WorkbenchConstants
        //
        // return strValue;
        // } catch (RepositoryException re) {
-       // throw new ArgeoException(
+       // throw new EclipseUiException(
        // "Unexpected error while formatting read only property value",
        // re);
        // }
@@ -214,7 +214,7 @@ public class GenericPropertyPage extends FormPage implements WorkbenchConstants
        // }
        // return null;
        // } catch (RepositoryException re) {
-       // throw new ArgeoException(
+       // throw new EclipseUiException(
        // "Unexpected error while formatting read only property value",
        // re);
        // }
@@ -258,7 +258,7 @@ public class GenericPropertyPage extends FormPage implements WorkbenchConstants
                                        props = propList.toArray();
                                }
                        } catch (RepositoryException e) {
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "Unexpected exception while listing node properties", e);
                        }
                        return props;
@@ -287,7 +287,7 @@ public class GenericPropertyPage extends FormPage implements WorkbenchConstants
                                                return values;
                                        }
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException(
+                                       throw new EclipseUiException(
                                                        "Unexpected error getting multiple values property.",
                                                        e);
                                }
@@ -302,7 +302,7 @@ public class GenericPropertyPage extends FormPage implements WorkbenchConstants
                                        return true;
                                }
                        } catch (RepositoryException e) {
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "Unexpected exception while checking if property is multiple",
                                                e);
                        }
index 1ccec0fb6392e86897842e94aaf251656aa40c3e..5ac403cce5aec4e1b1b26bb839bd6224248326ef 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.eclipse.ui.specific.UploadFileWizardPage;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -117,7 +117,7 @@ public class ImportFileSystemWizard extends Wizard {
                                                        if (e instanceof RuntimeException)
                                                                throw (RuntimeException) e;
                                                        else
-                                                               throw new ArgeoException("Cannot import "
+                                                               throw new EclipseUiException("Cannot import "
                                                                                + objectPath, e);
                                                }
                                        }
@@ -225,7 +225,7 @@ public class ImportFileSystemWizard extends Wizard {
                                }
                        }
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot import " + dir + " to " + folder,
+                       throw new EclipseUiException("Cannot import " + dir + " to " + folder,
                                        e);
                }
        }
index 760a21319a11b5314654dc87062ea7cac953afec..1732fa439855580d829993da1bad26ae5f813c1e 100644 (file)
@@ -23,7 +23,7 @@ import javax.jcr.NodeIterator;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
@@ -89,7 +89,7 @@ public class NodePrivilegesPage extends FormPage {
                                                return node.getProperty("rep:principalName")
                                                                .getString();
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException("Unable to retrieve "
+                                       throw new EclipseUiException("Unable to retrieve "
                                                        + "principal name on " + node, e);
                                }
                                return "";
@@ -126,7 +126,7 @@ public class NodePrivilegesPage extends FormPage {
 
                                        }
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException("Unable to retrieve "
+                                       throw new EclipseUiException("Unable to retrieve "
                                                        + "privileges on " + node, e);
                                }
                                return "";
@@ -150,7 +150,7 @@ public class NodePrivilegesPage extends FormPage {
                                try {
                                        return node.getParent().getParent().getPath();
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException("Unable get path for " + node, e);
+                                       throw new EclipseUiException("Unable get path for " + node, e);
                                }
                        }
 
@@ -232,7 +232,7 @@ public class NodePrivilegesPage extends FormPage {
 
                                return privs.toArray();
                        } catch (Exception e) {
-                               throw new ArgeoException("Cannot retrieve authorization for "
+                               throw new EclipseUiException("Cannot retrieve authorization for "
                                                + context, e);
                        }
                }
@@ -244,7 +244,7 @@ public class NodePrivilegesPage extends FormPage {
                        String cname = context.getSession().getClass().getName();
                        return cname.startsWith("org.apache.jackrabbit");
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot check JCR implementation used on "
+                       throw new EclipseUiException("Cannot check JCR implementation used on "
                                        + context, e);
                }
        }
index e760ad82e4ec88eecde3854a21b5aec1f336bf5c..f91e3987cf595546e7368c403a6520456215caae 100644 (file)
@@ -33,15 +33,15 @@ import javax.jcr.version.VersionHistory;
 import javax.jcr.version.VersionIterator;
 import javax.jcr.version.VersionManager;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.WorkbenchConstants;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
-import org.argeo.jcr.JcrUtils;
-import org.argeo.jcr.PropertyDiff;
-import org.argeo.jcr.VersionDiff;
 import org.argeo.eclipse.ui.workbench.internal.jcr.FullVersioningTreeContentProvider;
 import org.argeo.eclipse.ui.workbench.internal.jcr.GenericNodeDoubleClickListener;
 import org.argeo.eclipse.ui.workbench.internal.jcr.VersionLabelProvider;
+import org.argeo.jcr.JcrUtils;
+import org.argeo.jcr.PropertyDiff;
+import org.argeo.jcr.VersionDiff;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.SWT;
@@ -105,7 +105,7 @@ public class NodeVersionHistoryPage extends FormPage implements
                                createTreeSection(form.getBody());
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException(
+                       throw new EclipseUiException(
                                        "Unexpected error while checking if node is versionable", e);
                }
        }
@@ -253,7 +253,7 @@ public class NodeVersionHistoryPage extends FormPage implements
                        }
                        styledText.setText(main.toString());
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot generate history for node", e);
+                       throw new EclipseUiException("Cannot generate history for node", e);
                }
 
        }
@@ -307,7 +307,7 @@ public class NodeVersionHistoryPage extends FormPage implements
                        }
                        return res;
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot generate history for node ");
+                       throw new EclipseUiException("Cannot generate history for node ");
                }
 
        }
index 8ad28fc258aa50e2623c16bd925e634f968fc88d..397ecdebdbddd3ec6c83b893f46893fc093b9393 100644 (file)
@@ -9,7 +9,7 @@ import javax.naming.ldap.Rdn;
 import javax.security.auth.Subject;
 import javax.security.auth.x500.X500Principal;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.osgi.useradmin.LdifName;
 import org.osgi.service.useradmin.Role;
 import org.osgi.service.useradmin.User;
@@ -29,7 +29,7 @@ public class UsersUtils {
                        else
                                return false;
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("User " + user + " has an unvalid dn: "
+                       throw new EclipseUiException("User " + user + " has an unvalid dn: "
                                        + userName, e);
                }
        }
@@ -42,7 +42,7 @@ public class UsersUtils {
                try {
                        dn = new LdapName(name);
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("Invalid user dn " + name, e);
+                       throw new EclipseUiException("Invalid user dn " + name, e);
                }
                return dn;
        }
@@ -74,7 +74,7 @@ public class UsersUtils {
                        }
                        return dname;
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("Unable to get domain name for " + dn, e);
+                       throw new EclipseUiException("Unable to get domain name for " + dn, e);
                }
        }
 
index 89c812d17f963e4ed42b412c466ecb83ec0ac383..e103bf61f5975751c47adc91d2daa27b582c005d 100644 (file)
@@ -24,7 +24,7 @@ import javax.jcr.nodetype.NodeType;
 import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.Privilege;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
 import org.argeo.eclipse.ui.workbench.internal.jcr.parts.ChildNodesPage;
 import org.argeo.eclipse.ui.workbench.internal.jcr.parts.GenericNodeEditorInput;
@@ -109,10 +109,10 @@ public class DefaultNodeEditor extends FormEditor {
                        }
 
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get node info for " + currentNode,
+                       throw new EclipseUiException("Cannot get node info for " + currentNode,
                                        e);
                } catch (PartInitException e) {
-                       throw new ArgeoException("Cannot add page " + "on node editor for "
+                       throw new EclipseUiException("Cannot add page " + "on node editor for "
                                        + currentNode, e);
                }
        }
@@ -129,7 +129,7 @@ public class DefaultNodeEditor extends FormEditor {
                        commitPages(true);
                        firePropertyChange(PROP_DIRTY);
                } catch (Exception e) {
-                       throw new ArgeoException("Error while saving node", e);
+                       throw new EclipseUiException("Error while saving node", e);
                }
 
        }
index 3474f6ba18764171e5bcd095612cfa9490d48d27..b98553559d0af52ca3b53a53b8451fd31080a4a4 100644 (file)
@@ -28,7 +28,7 @@ import javax.jcr.observation.Event;
 import javax.jcr.observation.EventListener;
 import javax.jcr.observation.ObservationManager;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.TreeParent;
 import org.argeo.eclipse.ui.jcr.AsyncUiEventListener;
 import org.argeo.eclipse.ui.jcr.utils.NodeViewerComparer;
@@ -99,7 +99,7 @@ public class JcrBrowserView extends ViewPart {
                try {
                        this.userSession = this.nodeRepository.login();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot open user session", e);
+                       throw new EclipseUiException("Cannot open user session", e);
                }
 
                nodeContentProvider = new NodeContentProvider(userSession, keyring,
@@ -184,7 +184,7 @@ public class JcrBrowserView extends ViewPart {
                                                Event.PROPERTY_ADDED | Event.PROPERTY_CHANGED, "/",
                                                true, null, null, false);
                        } catch (RepositoryException e) {
-                               throw new ArgeoException("Cannot register listeners", e);
+                               throw new EclipseUiException("Cannot register listeners", e);
                        }
 
                tmpNodeViewer
@@ -210,7 +210,7 @@ public class JcrBrowserView extends ViewPart {
                                try {
                                        return ((Property) element).getName();
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException(
+                                       throw new EclipseUiException(
                                                        "Unexpected exception in label provider", e);
                                }
                        }
@@ -239,7 +239,7 @@ public class JcrBrowserView extends ViewPart {
                                        } else
                                                return property.getValue().getString();
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException(
+                                       throw new EclipseUiException(
                                                        "Unexpected exception in label provider", e);
                                }
                        }
@@ -255,7 +255,7 @@ public class JcrBrowserView extends ViewPart {
                                        return PropertyType.nameFromValue(((Property) element)
                                                        .getType());
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException(
+                                       throw new EclipseUiException(
                                                        "Unexpected exception in label provider", e);
                                }
                        }
index b317e12bccb244a5a7ed9b3b0d43e7a49f07fdcc..27349f95db216acba8469e88898fee3846768dad 100644 (file)
@@ -28,7 +28,7 @@ import javax.jcr.Session;
 import javax.jcr.version.VersionManager;
 
 import org.apache.commons.io.IOUtils;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.jcr.ArgeoNames;
 import org.argeo.jcr.ArgeoTypes;
 import org.argeo.jcr.JcrUtils;
@@ -57,7 +57,7 @@ public class JcrPreferenceStore extends PreferenceStore implements ArgeoNames {
                                session.save();
                        Node userHome = UserJcrUtils.getUserHome(session);
                        if (userHome == null)
-                               throw new ArgeoException("No user home for "
+                               throw new EclipseUiException("No user home for "
                                                + session.getUserID());
                        Node preferences;
                        if (!userHome.hasNode(ARGEO_PREFERENCES)) {
@@ -83,7 +83,7 @@ public class JcrPreferenceStore extends PreferenceStore implements ArgeoNames {
                } catch (RepositoryException e) {
                        e.printStackTrace();
                        JcrUtils.discardQuietly(session);
-                       throw new ArgeoException("Cannot retrieve preferences", e);
+                       throw new EclipseUiException("Cannot retrieve preferences", e);
                }
 
        }
@@ -107,7 +107,7 @@ public class JcrPreferenceStore extends PreferenceStore implements ArgeoNames {
                        load(in);
                } catch (Exception e) {
                        e.printStackTrace();
-                       throw new ArgeoException("Cannot load preferences", e);
+                       throw new EclipseUiException("Cannot load preferences", e);
                } finally {
                        IOUtils.closeQuietly(in);
                        IOUtils.closeQuietly(out);
@@ -139,7 +139,7 @@ public class JcrPreferenceStore extends PreferenceStore implements ArgeoNames {
                        vm.checkin(pluginPreferences.getPath());
                } catch (Exception e) {
                        JcrUtils.discardUnderlyingSessionQuietly(pluginPreferences);
-                       throw new ArgeoException("Cannot save preferences", e);
+                       throw new EclipseUiException("Cannot save preferences", e);
                } finally {
                        IOUtils.closeQuietly(in);
                        IOUtils.closeQuietly(out);
@@ -150,7 +150,7 @@ public class JcrPreferenceStore extends PreferenceStore implements ArgeoNames {
                try {
                        load();
                } catch (IOException e) {
-                       throw new ArgeoException("Cannot initialize preference store", e);
+                       throw new EclipseUiException("Cannot initialize preference store", e);
                }
        }
 
index d10053079b2cbf9014ab585ec4d57277e159e2cb..b74af70bc2cdadd3fe244a8a9cec61ecf1aa4587 100644 (file)
@@ -18,8 +18,8 @@ package org.argeo.eclipse.ui.workbench.users;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.ColumnDefinition;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.parts.LdifUsersTable;
 import org.argeo.eclipse.ui.workbench.internal.users.UsersUtils;
@@ -240,7 +240,7 @@ public class PickUpUserDialog extends TrayDialog {
                                }
                                roles = userAdmin.getRoles(builder.toString());
                        } catch (InvalidSyntaxException e) {
-                               throw new ArgeoException("Unable to get roles with filter: "
+                               throw new EclipseUiException("Unable to get roles with filter: "
                                                + filter, e);
                        }
                        List<User> users = new ArrayList<User>();
index 4507023739195a2fb29795918a97cce4dc25000f..0340f8dfec2f9cba5404cefddf3eac788e4a8910 100644 (file)
@@ -3,10 +3,9 @@ package org.argeo.eclipse.ui.workbench.users;
 import javax.naming.InvalidNameException;
 import javax.naming.ldap.LdapName;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.workbench.internal.users.UsersImages;
 import org.argeo.eclipse.ui.workbench.internal.users.UsersUtils;
-import org.argeo.osgi.useradmin.LdifName;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.swt.SWT;
@@ -49,7 +48,7 @@ class UserLP extends ColumnLabelProvider {
                                return bold;
                        }
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("cannot parse dn for " + element, e);
+                       throw new EclipseUiException("cannot parse dn for " + element, e);
                }
 
                // Disabled as Italic
index b836fc0e90659066d63787e393d69a12d8b769fa..65e408ddf71c592d371253804c22cb290e144bed 100644 (file)
@@ -2,4 +2,5 @@ Import-Package: javax.jcr.nodetype,\
                                org.eclipse.swt,\
                                org.eclipse.jface.window,\
                                org.eclipse.core.commands.common,\
+                               org.argeo,\
                                *
index 7c0b39884f21269cd714e154db6284e669c5dc6a..46c19b56493b4beec9eff93b3d4096240fba70f9 100644 (file)
  */
 package org.argeo.eclipse.ui;
 
-import org.argeo.ArgeoMonitor;
 import org.eclipse.core.runtime.IProgressMonitor;
 
 /**
- * Wraps an Eclipse {@link IProgressMonitor} so that it can be passed to
- * framework agnostic Argeo routines.
+ * @deprecated use {@link EclipseJcrMonitor} instead
  */
-public class EclipseArgeoMonitor implements ArgeoMonitor {
-       private final IProgressMonitor progressMonitor;
-
+@Deprecated
+public class EclipseArgeoMonitor extends EclipseJcrMonitor {
        public EclipseArgeoMonitor(IProgressMonitor progressMonitor) {
-               this.progressMonitor = progressMonitor;
-       }
-
-       public void beginTask(String name, int totalWork) {
-               progressMonitor.beginTask(name, totalWork);
-       }
-
-       public void done() {
-               progressMonitor.done();
-       }
-
-       public boolean isCanceled() {
-               return progressMonitor.isCanceled();
-       }
-
-       public void setCanceled(boolean value) {
-               progressMonitor.setCanceled(value);
-       }
-
-       public void setTaskName(String name) {
-               progressMonitor.setTaskName(name);
-       }
-
-       public void subTask(String name) {
-               progressMonitor.subTask(name);
-       }
-
-       public void worked(int work) {
-               progressMonitor.worked(work);
+               super(progressMonitor);
        }
 }
diff --git a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/EclipseJcrMonitor.java b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/EclipseJcrMonitor.java
new file mode 100644 (file)
index 0000000..d9cdd83
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * 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.eclipse.ui;
+
+import org.argeo.jcr.JcrMonitor;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+/**
+ * Wraps an Eclipse {@link IProgressMonitor} so that it can be passed to
+ * framework agnostic Argeo routines.
+ */
+public class EclipseJcrMonitor implements JcrMonitor {
+       private final IProgressMonitor progressMonitor;
+
+       public EclipseJcrMonitor(IProgressMonitor progressMonitor) {
+               this.progressMonitor = progressMonitor;
+       }
+
+       public void beginTask(String name, int totalWork) {
+               progressMonitor.beginTask(name, totalWork);
+       }
+
+       public void done() {
+               progressMonitor.done();
+       }
+
+       public boolean isCanceled() {
+               return progressMonitor.isCanceled();
+       }
+
+       public void setCanceled(boolean value) {
+               progressMonitor.setCanceled(value);
+       }
+
+       public void setTaskName(String name) {
+               progressMonitor.setTaskName(name);
+       }
+
+       public void subTask(String name) {
+               progressMonitor.subTask(name);
+       }
+
+       public void worked(int work) {
+               progressMonitor.worked(work);
+       }
+}
diff --git a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/EclipseUiException.java b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/EclipseUiException.java
new file mode 100644 (file)
index 0000000..37a36e8
--- /dev/null
@@ -0,0 +1,15 @@
+package org.argeo.eclipse.ui;
+
+/** CMS specific exceptions. */
+public class EclipseUiException extends RuntimeException {
+       private static final long serialVersionUID = -5341764743356771313L;
+
+       public EclipseUiException(String message) {
+               super(message);
+       }
+
+       public EclipseUiException(String message, Throwable e) {
+               super(message, e);
+       }
+
+}
index 69d69f90c13dd0f06ec1febce481bde75baf9b2e..513a24838fa7523bf4b4fecb402208c820e681d8 100644 (file)
@@ -20,7 +20,7 @@ import java.io.StringWriter;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ShellAdapter;
 import org.eclipse.swt.events.ShellEvent;
@@ -81,7 +81,7 @@ class NonModalErrorFeedback {
 
        public void open() {
                if (shell != null)
-                       throw new ArgeoException("There is already a shell");
+                       throw new EclipseUiException("There is already a shell");
                shell = new Shell(getDisplay(), SWT.NO_TRIM | SWT.BORDER | SWT.ON_TOP);
                shell.setLayout(new GridLayout());
                // shell.setText("Error");
index 997b466ed525441e810191b9b1fb880e5806af8c..8d80660a4e8aec293b03fec8de848f912fcd43a1 100644 (file)
@@ -25,8 +25,8 @@ import javax.jcr.Session;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.AbstractTreeContentProvider;
+import org.argeo.eclipse.ui.EclipseUiException;
 
 /** Canonical implementation of tree content provider manipulating JCR nodes. */
 public abstract class AbstractNodeContentProvider extends
@@ -59,14 +59,14 @@ public abstract class AbstractNodeContentProvider extends
                                Node node = (Node) element;
                                children = getChildren(node);
                        } catch (RepositoryException e) {
-                               throw new ArgeoException("Cannot get children of " + element, e);
+                               throw new EclipseUiException("Cannot get children of " + element, e);
                        }
                } else if (element instanceof WrappedNode) {
                        WrappedNode wrappedNode = (WrappedNode) element;
                        try {
                                children = getChildren(wrappedNode.getNode());
                        } catch (RepositoryException e) {
-                               throw new ArgeoException("Cannot get children of "
+                               throw new EclipseUiException("Cannot get children of "
                                                + wrappedNode, e);
                        }
                } else if (element instanceof NodesWrapper) {
@@ -142,7 +142,7 @@ public abstract class AbstractNodeContentProvider extends
                        }
 
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot check whether " + element
+                       throw new EclipseUiException("Cannot check whether " + element
                                        + " has children", e);
                }
                return super.hasChildren(element);
index 100ceb444aa79eb29e48cd0a4c1a858bb06bad7d..5d5a06f587b1b96132046bb3f2b904032f9a39b7 100644 (file)
@@ -25,7 +25,7 @@ import javax.jcr.observation.EventListener;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.swt.widgets.Display;
 
 /** {@link EventListener} which simplifies running actions within the UI thread. */
@@ -70,7 +70,7 @@ public abstract class AsyncUiEventListener implements EventListener {
                        if (!willProcessInUiThread(events))
                                return;
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot test skip events " + events, e);
+                       throw new EclipseUiException("Cannot test skip events " + events, e);
                }
 
 //             Job job = new Job("JCR Events") {
@@ -85,7 +85,7 @@ public abstract class AsyncUiEventListener implements EventListener {
                                                try {
                                                        onEventInUiThread(events);
                                                } catch (RepositoryException e) {
-                                                       throw new ArgeoException("Cannot process events "
+                                                       throw new EclipseUiException("Cannot process events "
                                                                        + events, e);
                                                }
                                        }
index 4699597b38a38d9e9caa4d11249a060d17323407..e8157b2fbee605ca9d058b0b4ce37bc0f145adc1 100644 (file)
@@ -20,7 +20,7 @@ import javax.jcr.Property;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.swt.graphics.Image;
 
@@ -42,7 +42,7 @@ public class DefaultNodeLabelProvider extends ColumnLabelProvider {
                        }
                        return super.getText(element);
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get text for of " + element, e);
+                       throw new EclipseUiException("Cannot get text for of " + element, e);
                }
        }
 
@@ -65,7 +65,7 @@ public class DefaultNodeLabelProvider extends ColumnLabelProvider {
                                return getImage(((NodesWrapper) element).getNode());
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot retrieve image for " + element, e);
+                       throw new EclipseUiException("Cannot retrieve image for " + element, e);
                }
                return super.getImage(element);
        }
@@ -86,7 +86,7 @@ public class DefaultNodeLabelProvider extends ColumnLabelProvider {
                                return getToolTipText(((NodesWrapper) element).getNode());
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get tooltip for " + element, e);
+                       throw new EclipseUiException("Cannot get tooltip for " + element, e);
                }
                return super.getToolTipText(element);
        }
index dd571ae6e75dd44437618029d949d879670f392f..420154b83abf5b2f21d643b5063274252da1c287 100644 (file)
@@ -6,7 +6,7 @@ import javax.jcr.Node;
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.jcr.lists.NodeViewerComparator;
 import org.argeo.eclipse.ui.jcr.lists.RowViewerComparator;
 import org.eclipse.jface.viewers.TableViewer;
@@ -82,10 +82,10 @@ public class JcrUiUtils {
                                }
 
                        default:
-                               throw new ArgeoException("Unimplemented property save");
+                               throw new EclipseUiException("Unimplemented property save");
                        }
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Unexpected error while setting property",
+                       throw new EclipseUiException("Unexpected error while setting property",
                                        re);
                }
        }
index f284b9c1385b25762aa6f52120635d24a98a21ad..9afb92d6508eaa1232c5bd55669980041c2b7ba4 100644 (file)
@@ -18,7 +18,7 @@ package org.argeo.eclipse.ui.jcr;
 import javax.jcr.Node;\r
 import javax.jcr.RepositoryException;\r
 \r
-import org.argeo.ArgeoException;\r
+import org.argeo.eclipse.ui.EclipseUiException;\r
 import org.eclipse.jface.viewers.IElementComparer;\r
 \r
 /** Element comparer for JCR node, to be used in JFace viewers. */\r
@@ -34,7 +34,7 @@ public class NodeElementComparer implements IElementComparer {
                                return a.equals(b);\r
                        }\r
                } catch (RepositoryException e) {\r
-                       throw new ArgeoException("Cannot compare nodes", e);\r
+                       throw new EclipseUiException("Cannot compare nodes", e);\r
                }\r
        }\r
 \r
@@ -44,7 +44,7 @@ public class NodeElementComparer implements IElementComparer {
                                return ((Node) element).getIdentifier().hashCode();\r
                        return element.hashCode();\r
                } catch (RepositoryException e) {\r
-                       throw new ArgeoException("Cannot get hash code", e);\r
+                       throw new EclipseUiException("Cannot get hash code", e);\r
                }\r
        }\r
 \r
index dcd3b42f692b64a3f2ed7be54c824edb15c9e368..d899b00ce3d1bca928292ee7ae624322743adcf3 100644 (file)
@@ -22,7 +22,7 @@ import javax.jcr.Node;
 import javax.jcr.NodeIterator;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 
 /**
  * Element of tree which is based on a node, but whose children are not
@@ -51,7 +51,7 @@ public class NodesWrapper {
                try {
                        return getWrappedNodes().toArray();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get wrapped children", e);
+                       throw new EclipseUiException("Cannot get wrapped children", e);
                }
        }
 
index 89883073d41efabf8e3b5e35f705c90bcff96f8f..43848f671bf0a8ee8a35172f076dc5d3598f0ab3 100644 (file)
@@ -23,7 +23,7 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.jcr.JcrUtils;
 
 /** Simple JCR node content provider taking a list of String as base path. */
@@ -58,7 +58,7 @@ public class SimpleNodeContentProvider extends AbstractNodeContentProvider {
                                        baseNodes.add(getSession().getNode(basePath));
                        return baseNodes.toArray();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get base nodes for " + basePaths,
+                       throw new EclipseUiException("Cannot get base nodes for " + basePaths,
                                        e);
                }
        }
index 1fa46f0994f29d3aef5187574b9c1e4fafb8aeb7..948c340a7a6a4bae68f0cec3d0b19de663e62a8e 100644 (file)
@@ -9,7 +9,7 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.jcr.ValueFormatException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerComparator;
 
@@ -129,7 +129,7 @@ public class NodeViewerComparator extends ViewerComparator {
                                rc = d1.compareTo(d2);
                                break;
                        default:
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "Unimplemented comparaison for PropertyType "
                                                                + propertyType);
                        }
@@ -139,7 +139,7 @@ public class NodeViewerComparator extends ViewerComparator {
                        }
 
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Unexpected error "
+                       throw new EclipseUiException("Unexpected error "
                                        + "while comparing nodes", re);
                }
                return rc;
index 45b5f68b3ad83c8565f8b72517602212c3140335..ffd065599b50f1dcec692d602797db4630de6cb6 100644 (file)
@@ -4,7 +4,7 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.query.Row;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.jface.viewers.Viewer;
 
 /**
@@ -33,7 +33,7 @@ public class RowViewerComparator extends NodeViewerComparator {
                        Node n2 = ((Row) e2).getNode(selectorName);
                        return super.compare(viewer, n1, n2);
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Unexpected error "
+                       throw new EclipseUiException("Unexpected error "
                                        + "while comparing nodes", re);
                }
        }
index 76611dbe5b1182e2d9fab9d1743f6dbf08bc8c38..acdd844fa2b64b33c9e052b094f3d60a8e1b6742 100644 (file)
@@ -10,7 +10,7 @@ import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 
 /** Base implementation of a label provider for controls that display JCR Nodes */
@@ -76,7 +76,7 @@ public class SimpleJcrNodeLabelProvider extends ColumnLabelProvider {
                        } else
                                return "";
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Unable to get text from row", re);
+                       throw new EclipseUiException("Unable to get text from row", re);
                }
        }
 
@@ -98,7 +98,7 @@ public class SimpleJcrNodeLabelProvider extends ColumnLabelProvider {
                case PropertyType.NAME:
                        return value.getString();
                default:
-                       throw new ArgeoException("Unimplemented label provider "
+                       throw new EclipseUiException("Unimplemented label provider "
                                        + "for property type " + value.getType()
                                        + " while getting property " + propertyName + " - value: "
                                        + value.getString());
index bb55f187d67794b6d098877362f53fbe02f67055..6d19e1c39bd4f7b1cbca8ef2cc3912ef421bd5c2 100644 (file)
@@ -4,7 +4,7 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.query.Row;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 
 /**
  * Base implementation of a label provider for widgets that display JCR Rows.
@@ -40,7 +40,7 @@ public class SimpleJcrRowLabelProvider extends SimpleJcrNodeLabelProvider {
                        Node currNode = currRow.getNode(selectorName);
                        return super.getText(currNode);
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Unable to get Node " + selectorName
+                       throw new EclipseUiException("Unable to get Node " + selectorName
                                        + " from row " + element, re);
                }
        }
index 3ca745dc4eb3b9dac4d2a48282cfd5287f51a07e..6967af4615fef58b440ef3552da14cbb3cff65f3 100644 (file)
@@ -23,7 +23,7 @@ import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.NodeType;
 
 import org.apache.commons.io.IOUtils;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.FileProvider;
 
 /**
@@ -92,7 +92,7 @@ public class JcrFileProvider implements FileProvider {
                        ba = IOUtils.toByteArray(fis);
 
                } catch (Exception e) {
-                       throw new ArgeoException("Stream error while opening file", e);
+                       throw new EclipseUiException("Stream error while opening file", e);
                } finally {
                        IOUtils.closeQuietly(fis);
                }
@@ -108,7 +108,7 @@ public class JcrFileProvider implements FileProvider {
                                        .getBinary().getStream();
                        return fis;
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Cannot get stream from file node for Id "
+                       throw new EclipseUiException("Cannot get stream from file node for Id "
                                        + fileId, re);
                }
        }
@@ -147,7 +147,7 @@ public class JcrFileProvider implements FileProvider {
 
                        // Sanity checks
                        if (result == null)
-                               throw new ArgeoException("File node not found for ID" + fileId);
+                               throw new EclipseUiException("File node not found for ID" + fileId);
 
                        Node child = null;
                        
@@ -164,7 +164,7 @@ public class JcrFileProvider implements FileProvider {
                        }
 
                        if (!isValid)
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "ERROR: In the current implemented model, '"
                                                                + NodeType.NT_FILE
                                                                + "' file node must have a child node named jcr:content "
@@ -173,7 +173,7 @@ public class JcrFileProvider implements FileProvider {
                        return child;
 
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Erreur while getting file node of ID "
+                       throw new EclipseUiException("Erreur while getting file node of ID "
                                        + fileId, re);
                }
        }
index 2d36bf28a3f6c2ab1acdcb2563052228fded4d59..5f17f416355e482a36b6cc1c5baf1355e372fa13 100644 (file)
@@ -20,7 +20,7 @@ import java.util.Comparator;
 import javax.jcr.Item;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 
 /** Compares two JCR items (node or properties) based on their names. */
 public class JcrItemsComparator implements Comparator<Item> {
@@ -29,7 +29,7 @@ public class JcrItemsComparator implements Comparator<Item> {
                        // TODO: put folder before files
                        return o1.getName().compareTo(o2.getName());
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot compare " + o1 + " and " + o2, e);
+                       throw new EclipseUiException("Cannot compare " + o1 + " and " + o2, e);
                }
        }
 
index 5a94ee76abaa285fe0efca0f31bba09300290439..db8ca08660c57458ce6c889224c1a02be1494d14 100644 (file)
@@ -18,7 +18,7 @@ package org.argeo.eclipse.ui.jcr.utils;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.eclipse.jface.viewers.IElementComparer;
 
 /** Compare JCR nodes based on their JCR identifiers, for use in JFace viewers. */
@@ -37,7 +37,7 @@ public class NodeViewerComparer implements IElementComparer {
                                String idB = ((Node) elementB).getIdentifier();
                                result = idA == null ? idB == null : idA.equals(idB);
                        } catch (RepositoryException re) {
-                               throw new ArgeoException("cannot compare nodes", re);
+                               throw new EclipseUiException("cannot compare nodes", re);
                        }
 
                        return result;
index 57bdf246ec6e244b212c92a2cf9f739a891a6184..caa43481e11f8d5b56038e30efa1ae2515a17b8c 100644 (file)
@@ -24,7 +24,7 @@ import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 
 import org.apache.commons.io.IOUtils;
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.FileProvider;
 
 /**
@@ -58,7 +58,7 @@ public class SingleSessionFileProvider implements FileProvider {
                        ba = IOUtils.toByteArray(fis);
 
                } catch (Exception e) {
-                       throw new ArgeoException("Stream error while opening file", e);
+                       throw new EclipseUiException("Stream error while opening file", e);
                } finally {
                        IOUtils.closeQuietly(fis);
                }
@@ -74,7 +74,7 @@ public class SingleSessionFileProvider implements FileProvider {
                                        .getBinary().getStream();
                        return fis;
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Cannot get stream from file node for Id "
+                       throw new EclipseUiException("Cannot get stream from file node for Id "
                                        + fileId, re);
                }
        }
@@ -93,23 +93,23 @@ public class SingleSessionFileProvider implements FileProvider {
 
                        // Sanity checks
                        if (result == null)
-                               throw new ArgeoException("File node not found for ID" + fileId);
+                               throw new EclipseUiException("File node not found for ID" + fileId);
 
                        // Ensure that the node have the correct type.
                        if (!result.isNodeType(NodeType.NT_FILE))
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "Cannot open file children Node that are not of "
                                                                + NodeType.NT_RESOURCE + " type.");
 
                        Node child = result.getNodes().nextNode();
                        if (child == null || !child.isNodeType(NodeType.NT_RESOURCE))
-                               throw new ArgeoException(
+                               throw new EclipseUiException(
                                                "ERROR: IN the current implemented model, "
                                                                + NodeType.NT_FILE
                                                                + "  file node must have one and only one child of the nt:ressource, where actual data is stored");
                        return child;
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Erreur while getting file node of ID "
+                       throw new EclipseUiException("Erreur while getting file node of ID "
                                        + fileId, re);
                }
        }
index 5c02b6ec3f3c820cd20725d3a3ca69c86fe87528..0b8b3b262c1fe0ba834a11ecd50ed34d3f119624 100644 (file)
@@ -18,7 +18,7 @@ import javax.jcr.query.qom.QueryObjectModelFactory;
 import javax.jcr.query.qom.Selector;
 import javax.jcr.query.qom.StaticOperand;
 
-import org.argeo.ArgeoException;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.jcr.JcrUiUtils;
 import org.argeo.eclipse.ui.jcr.lists.JcrColumnDefinition;
@@ -137,7 +137,7 @@ public class JcrUsersTable extends Composite implements ArgeoNames {
                        }
                        return result;
                } else
-                       throw new ArgeoException("Unvalid request: no selection column "
+                       throw new EclipseUiException("Unvalid request: no selection column "
                                        + "has been created for the current table");
        }
 
@@ -247,7 +247,7 @@ public class JcrUsersTable extends Composite implements ArgeoNames {
                                else
                                        return null;
                        } catch (RepositoryException e) {
-                               throw new ArgeoException("Cannot get font for " + username, e);
+                               throw new EclipseUiException("Cannot get font for " + username, e);
                        }
                }
        }
@@ -273,7 +273,7 @@ public class JcrUsersTable extends Composite implements ArgeoNames {
                        return userProfile.hasProperty(name) ? userProfile
                                        .getProperty(name).getString() : "";
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get property " + name, e);
+                       throw new EclipseUiException("Cannot get property " + name, e);
                }
        }
 
@@ -319,7 +319,7 @@ public class JcrUsersTable extends Composite implements ArgeoNames {
                                        hasFilter ? filterTxt.getText() : null));
                        usersViewer.setInput(nodes.toArray());
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Unable to list users", e);
+                       throw new EclipseUiException("Unable to list users", e);
                }
        }
 
index 5597e9e7cbf66ff7b21386fa60509278e6afb71b..91e01d07a63b5f2cb4cb2e1f977a5184040b4c74 100644 (file)
@@ -3,8 +3,8 @@ package org.argeo.eclipse.ui.parts;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.ColumnDefinition;
+import org.argeo.eclipse.ui.EclipseUiException;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.utils.ViewerUtils;
 import org.eclipse.jface.layout.TableColumnLayout;
@@ -143,7 +143,7 @@ public abstract class LdifUsersTable extends Composite {
                        }
                        return result;
                } else
-                       throw new ArgeoException("Unvalid request: no selection column "
+                       throw new EclipseUiException("Unvalid request: no selection column "
                                        + "has been created for the current table");
        }
 
@@ -174,7 +174,7 @@ public abstract class LdifUsersTable extends Composite {
        // for (Role role : roles)
        // users.add((User) role);
        // } catch (InvalidSyntaxException e) {
-       // throw new ArgeoException("Unable to get roles with filter: "
+       // throw new EclipseUiException("Unable to get roles with filter: "
        // + filter, e);
        // }
        // return users;
index 7c2da3ae331c6e271df3bcfefd7ed6432e3a48e6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,5 +0,0 @@
-Import-Package:org.bouncycastle.*;resolution:=optional,\
-bitronix.tm.*;resolution:=optional,\
-org.apache.commons.codec,\
-org.apache.commons.codec.digest,\
-*
index aabc9a0e78a9082ac0897566e83ea6c36b95e443..fecf5dd5a199a7e5cfbe3012b8481e1729ab26fa 100644 (file)
@@ -1,6 +1,7 @@
 package org.argeo.osgi.useradmin;
 
 import java.util.ArrayList;
+import java.util.Base64;
 import java.util.List;
 import java.util.SortedMap;
 
@@ -9,12 +10,10 @@ import javax.naming.directory.Attribute;
 import javax.naming.directory.Attributes;
 import javax.naming.ldap.LdapName;
 
-import junit.framework.TestCase;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.codec.digest.DigestUtils;
 import org.argeo.util.naming.LdifParser;
 
+import junit.framework.TestCase;
+
 public class LdifParserTest extends TestCase implements BasicTestConstants {
        public void testBasicLdif() throws Exception {
                LdifParser ldifParser = new LdifParser();
@@ -30,7 +29,7 @@ public class LdifParserTest extends TestCase implements BasicTestConstants {
                assertEquals("{SHA}ieSV55Qc+eQOaYDRSha/AjzNTJE=",
                                new String(rawPwEntry));
                byte[] hashedPassword = DigestUtils.sha1("demo".getBytes());
-               assertEquals("{SHA}" + Base64.encodeBase64String(hashedPassword),
+               assertEquals("{SHA}" + Base64.getEncoder().encodeToString(hashedPassword),
                                new String(rawPwEntry));
 
                LdapName adminDn = new LdapName(ADMIN_GROUP_DN);
index e76769d71078150dc61ec24798729a9de15a8780..a8a7d226a1aa124c135d038882782af8e93bf291 100644 (file)
@@ -8,6 +8,7 @@ import java.net.URI;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Arrays;
+import java.util.Base64;
 import java.util.Dictionary;
 import java.util.Hashtable;
 import java.util.List;
@@ -15,9 +16,6 @@ import java.util.UUID;
 
 import javax.transaction.TransactionManager;
 
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.codec.digest.DigestUtils;
-import org.apache.commons.io.IOUtils;
 import org.osgi.service.useradmin.Authorization;
 import org.osgi.service.useradmin.Group;
 import org.osgi.service.useradmin.Role;
@@ -95,7 +93,8 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants {
                assertEquals("root@localhost", rootUser.getProperties().get("mail"));
 
                // credentials
-               byte[] hashedPassword = ("{SHA}" + Base64.encodeBase64String(DigestUtils.sha1("demo".getBytes()))).getBytes();
+               byte[] hashedPassword = ("{SHA}" + Base64.getEncoder().encodeToString(DigestUtils.sha1("demo".getBytes())))
+                               .getBytes();
                assertTrue(rootUser.hasCredential(LdifName.userPassword.name(), hashedPassword));
                assertTrue(demoUser.hasCredential(LdifName.userPassword.name(), hashedPassword));
 
@@ -116,7 +115,7 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants {
                        ByteArrayOutputStream out = new ByteArrayOutputStream();
                        ((LdifUserAdmin) userAdmin).save(out);
                        byte[] arr = out.toByteArray();
-                       IOUtils.closeQuietly(out);
+                       out.close();
                        userAdmin.destroy();
                        // String written = new String(arr);
                        // System.out.print(written);
diff --git a/org.argeo.security.core/src/org/argeo/osgi/transaction/simple/SimpleTransaction.java b/org.argeo.security.core/src/org/argeo/osgi/transaction/simple/SimpleTransaction.java
deleted file mode 100644 (file)
index 0e4a588..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-package org.argeo.osgi.transaction.simple;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
-import javax.transaction.RollbackException;
-import javax.transaction.Status;
-import javax.transaction.Synchronization;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
-import javax.transaction.xa.XAException;
-import javax.transaction.xa.XAResource;
-import javax.transaction.xa.Xid;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-class SimpleTransaction implements Transaction, Status {
-       private final static Log log = LogFactory.getLog(SimpleTransaction.class);
-
-       private final Xid xid;
-       private int status = Status.STATUS_ACTIVE;
-       private final List<XAResource> xaResources = new ArrayList<XAResource>();
-
-       private final SimpleTransactionManager transactionManager;
-
-       public SimpleTransaction(SimpleTransactionManager transactionManager) {
-               this.xid = new UuidXid();
-               this.transactionManager = transactionManager;
-       }
-
-       @Override
-       public synchronized void commit() throws RollbackException,
-                       HeuristicMixedException, HeuristicRollbackException,
-                       SecurityException, IllegalStateException, SystemException {
-               status = STATUS_PREPARING;
-               for (XAResource xaRes : xaResources) {
-                       if (status == STATUS_MARKED_ROLLBACK)
-                               break;
-                       try {
-                               xaRes.prepare(xid);
-                       } catch (XAException e) {
-                               status = STATUS_MARKED_ROLLBACK;
-                               log.error("Cannot prepare " + xaRes + " for " + xid, e);
-                       }
-               }
-               if (status == STATUS_MARKED_ROLLBACK) {
-                       rollback();
-                       throw new RollbackException();
-               }
-               status = STATUS_PREPARED;
-
-               status = STATUS_COMMITTING;
-               for (XAResource xaRes : xaResources) {
-                       if (status == STATUS_MARKED_ROLLBACK)
-                               break;
-                       try {
-                               xaRes.commit(xid, false);
-                       } catch (XAException e) {
-                               status = STATUS_MARKED_ROLLBACK;
-                               log.error("Cannot prepare " + xaRes + " for " + xid, e);
-                       }
-               }
-               if (status == STATUS_MARKED_ROLLBACK) {
-                       rollback();
-                       throw new RollbackException();
-               }
-
-               // complete
-               status = STATUS_COMMITTED;
-               if (log.isDebugEnabled())
-                       log.debug("COMMITTED  " + xid);
-               clearResources(XAResource.TMSUCCESS);
-               transactionManager.unregister(xid);
-       }
-
-       @Override
-       public synchronized void rollback() throws IllegalStateException,
-                       SystemException {
-               status = STATUS_ROLLING_BACK;
-               for (XAResource xaRes : xaResources) {
-                       try {
-                               xaRes.rollback(xid);
-                       } catch (XAException e) {
-                               log.error("Cannot rollback " + xaRes + " for " + xid, e);
-                       }
-               }
-
-               // complete
-               status = STATUS_ROLLEDBACK;
-               if (log.isDebugEnabled())
-                       log.debug("ROLLEDBACK " + xid);
-               clearResources(XAResource.TMFAIL);
-               transactionManager.unregister(xid);
-       }
-
-       @Override
-       public synchronized boolean enlistResource(XAResource xaRes)
-                       throws RollbackException, IllegalStateException, SystemException {
-               if (xaResources.add(xaRes)) {
-                       try {
-                               xaRes.start(getXid(), XAResource.TMNOFLAGS);
-                               return true;
-                       } catch (XAException e) {
-                               log.error("Cannot enlist " + xaRes, e);
-                               return false;
-                       }
-               } else
-                       return false;
-       }
-
-       @Override
-       public synchronized boolean delistResource(XAResource xaRes, int flag)
-                       throws IllegalStateException, SystemException {
-               if (xaResources.remove(xaRes)) {
-                       try {
-                               xaRes.end(getXid(), flag);
-                       } catch (XAException e) {
-                               log.error("Cannot delist " + xaRes, e);
-                               return false;
-                       }
-                       return true;
-               } else
-                       return false;
-       }
-
-       protected void clearResources(int flag) {
-               for (XAResource xaRes : xaResources)
-                       try {
-                               xaRes.end(getXid(), flag);
-                       } catch (XAException e) {
-                               log.error("Cannot end " + xaRes, e);
-                       }
-               xaResources.clear();
-       }
-
-       @Override
-       public synchronized int getStatus() throws SystemException {
-               return status;
-       }
-
-       @Override
-       public void registerSynchronization(Synchronization sync)
-                       throws RollbackException, IllegalStateException, SystemException {
-               throw new UnsupportedOperationException();
-       }
-
-       @Override
-       public void setRollbackOnly() throws IllegalStateException, SystemException {
-               status = STATUS_MARKED_ROLLBACK;
-       }
-
-       @Override
-       public int hashCode() {
-               return xid.hashCode();
-       }
-
-       Xid getXid() {
-               return xid;
-       }
-
-}
diff --git a/org.argeo.security.core/src/org/argeo/osgi/transaction/simple/SimpleTransactionManager.java b/org.argeo.security.core/src/org/argeo/osgi/transaction/simple/SimpleTransactionManager.java
deleted file mode 100644 (file)
index 696f0c0..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-package org.argeo.osgi.transaction.simple;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
-import javax.transaction.InvalidTransactionException;
-import javax.transaction.NotSupportedException;
-import javax.transaction.RollbackException;
-import javax.transaction.Status;
-import javax.transaction.Synchronization;
-import javax.transaction.SystemException;
-import javax.transaction.Transaction;
-import javax.transaction.TransactionManager;
-import javax.transaction.TransactionSynchronizationRegistry;
-import javax.transaction.UserTransaction;
-import javax.transaction.xa.Xid;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class SimpleTransactionManager implements TransactionManager, UserTransaction {
-       private final static Log log = LogFactory.getLog(SimpleTransactionManager.class);
-
-       private ThreadLocal<SimpleTransaction> current = new ThreadLocal<SimpleTransaction>();
-
-       private Map<Xid, SimpleTransaction> knownTransactions = Collections
-                       .synchronizedMap(new HashMap<Xid, SimpleTransaction>());
-       private SyncRegistry syncRegistry = new SyncRegistry();
-
-       @Override
-       public void begin() throws NotSupportedException, SystemException {
-               if (getCurrent() != null)
-                       throw new NotSupportedException("Nested transactions are not supported");
-               SimpleTransaction transaction = new SimpleTransaction(this);
-               knownTransactions.put(transaction.getXid(), transaction);
-               current.set(transaction);
-               if (log.isDebugEnabled())
-                       log.debug("STARTED    " + transaction.getXid());
-       }
-
-       @Override
-       public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException,
-                       SecurityException, IllegalStateException, SystemException {
-               if (getCurrent() == null)
-                       throw new IllegalStateException("No transaction registered with the current thread.");
-               getCurrent().commit();
-       }
-
-       @Override
-       public int getStatus() throws SystemException {
-               if (getCurrent() == null)
-                       return Status.STATUS_NO_TRANSACTION;
-               return getTransaction().getStatus();
-       }
-
-       @Override
-       public Transaction getTransaction() throws SystemException {
-               return getCurrent();
-       }
-
-       protected SimpleTransaction getCurrent() throws SystemException {
-               SimpleTransaction transaction = current.get();
-               if (transaction == null)
-                       return null;
-               int status = transaction.getStatus();
-               if (Status.STATUS_COMMITTED == status || Status.STATUS_ROLLEDBACK == status) {
-                       current.remove();
-                       return null;
-               }
-               return transaction;
-       }
-
-       void unregister(Xid xid) {
-               knownTransactions.remove(xid);
-       }
-
-       @Override
-       public void resume(Transaction tobj) throws InvalidTransactionException, IllegalStateException, SystemException {
-               if (getCurrent() != null)
-                       throw new IllegalStateException("Transaction " + current.get() + " already registered");
-               current.set((SimpleTransaction) tobj);
-       }
-
-       @Override
-       public void rollback() throws IllegalStateException, SecurityException, SystemException {
-               if (getCurrent() == null)
-                       throw new IllegalStateException("No transaction registered with the current thread.");
-               getCurrent().rollback();
-       }
-
-       @Override
-       public void setRollbackOnly() throws IllegalStateException, SystemException {
-               if (getCurrent() == null)
-                       throw new IllegalStateException("No transaction registered with the current thread.");
-               getCurrent().setRollbackOnly();
-       }
-
-       @Override
-       public void setTransactionTimeout(int seconds) throws SystemException {
-               throw new UnsupportedOperationException();
-       }
-
-       @Override
-       public Transaction suspend() throws SystemException {
-               Transaction transaction = getCurrent();
-               current.remove();
-               return transaction;
-       }
-
-       public TransactionSynchronizationRegistry getTsr() {
-               return syncRegistry;
-       }
-
-       private class SyncRegistry implements TransactionSynchronizationRegistry {
-               @Override
-               public Object getTransactionKey() {
-                       try {
-                               SimpleTransaction transaction = getCurrent();
-                               if (transaction == null)
-                                       return null;
-                               return getCurrent().getXid();
-                       } catch (SystemException e) {
-                               throw new RuntimeException("Cannot get transaction key", e);
-                       }
-               }
-
-               @Override
-               public void putResource(Object key, Object value) {
-                       throw new UnsupportedOperationException();
-               }
-
-               @Override
-               public Object getResource(Object key) {
-                       throw new UnsupportedOperationException();
-               }
-
-               @Override
-               public void registerInterposedSynchronization(Synchronization sync) {
-                       throw new UnsupportedOperationException();
-               }
-
-               @Override
-               public int getTransactionStatus() {
-                       try {
-                               return getStatus();
-                       } catch (SystemException e) {
-                               throw new RuntimeException("Cannot get status", e);
-                       }
-               }
-
-               @Override
-               public boolean getRollbackOnly() {
-                       try {
-                               return getStatus() == Status.STATUS_MARKED_ROLLBACK;
-                       } catch (SystemException e) {
-                               throw new RuntimeException("Cannot get status", e);
-                       }
-               }
-
-               @Override
-               public void setRollbackOnly() {
-                       try {
-                               getCurrent().setRollbackOnly();
-                       } catch (Exception e) {
-                               throw new RuntimeException("Cannot set rollback only", e);
-                       }
-               }
-
-       }
-}
diff --git a/org.argeo.security.core/src/org/argeo/osgi/transaction/simple/UuidXid.java b/org.argeo.security.core/src/org/argeo/osgi/transaction/simple/UuidXid.java
deleted file mode 100644 (file)
index cf35555..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-package org.argeo.osgi.transaction.simple;
-
-import java.io.Serializable;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import java.util.UUID;
-
-import javax.transaction.xa.Xid;
-
-/**
- * Implementation of {@link Xid} based on {@link UUID}, using max significant
- * bits as global transaction id, and least significant bits as branch
- * qualifier.
- */
-public class UuidXid implements Xid, Serializable {
-       private static final long serialVersionUID = -5380531989917886819L;
-       public final static int FORMAT = (int) serialVersionUID;
-
-       private final static int BYTES_PER_LONG = Long.SIZE / Byte.SIZE;
-
-       private final int format;
-       private final byte[] globalTransactionId;
-       private final byte[] branchQualifier;
-       private final String uuid;
-       private final int hashCode;
-
-       public UuidXid() {
-               this(UUID.randomUUID());
-       }
-
-       public UuidXid(UUID uuid) {
-               this.format = FORMAT;
-               this.globalTransactionId = uuidToBytes(uuid.getMostSignificantBits());
-               this.branchQualifier = uuidToBytes(uuid.getLeastSignificantBits());
-               this.uuid = uuid.toString();
-               this.hashCode = uuid.hashCode();
-       }
-
-       public UuidXid(Xid xid) {
-               this(xid.getFormatId(), xid.getGlobalTransactionId(), xid
-                               .getBranchQualifier());
-       }
-
-       private UuidXid(int format, byte[] globalTransactionId,
-                       byte[] branchQualifier) {
-               this.format = format;
-               this.globalTransactionId = globalTransactionId;
-               this.branchQualifier = branchQualifier;
-               this.uuid = bytesToUUID(globalTransactionId, branchQualifier)
-                               .toString();
-               this.hashCode = uuid.hashCode();
-       }
-
-       @Override
-       public int getFormatId() {
-               return format;
-       }
-
-       @Override
-       public byte[] getGlobalTransactionId() {
-               return Arrays.copyOf(globalTransactionId, globalTransactionId.length);
-       }
-
-       @Override
-       public byte[] getBranchQualifier() {
-               return Arrays.copyOf(branchQualifier, branchQualifier.length);
-       }
-
-       @Override
-       public int hashCode() {
-               return hashCode;
-       }
-
-       @Override
-       public boolean equals(Object obj) {
-               if (this == obj)
-                       return true;
-               if (obj instanceof UuidXid) {
-                       UuidXid that = (UuidXid) obj;
-                       return Arrays.equals(globalTransactionId, that.globalTransactionId)
-                                       && Arrays.equals(branchQualifier, that.branchQualifier);
-               }
-               if (obj instanceof Xid) {
-                       Xid that = (Xid) obj;
-                       return Arrays.equals(globalTransactionId,
-                                       that.getGlobalTransactionId())
-                                       && Arrays
-                                                       .equals(branchQualifier, that.getBranchQualifier());
-               }
-               return uuid.equals(obj.toString());
-       }
-
-       @Override
-       protected Object clone() throws CloneNotSupportedException {
-               return new UuidXid(format, globalTransactionId, branchQualifier);
-       }
-
-       @Override
-       public String toString() {
-               return uuid;
-       }
-
-       public UUID asUuid() {
-               return bytesToUUID(globalTransactionId, branchQualifier);
-       }
-
-       public static byte[] uuidToBytes(long bits) {
-               ByteBuffer buffer = ByteBuffer.allocate(BYTES_PER_LONG);
-               buffer.putLong(0, bits);
-               return buffer.array();
-       }
-
-       public static UUID bytesToUUID(byte[] most, byte[] least) {
-               if (most.length < BYTES_PER_LONG)
-                       most = Arrays.copyOf(most, BYTES_PER_LONG);
-               if (least.length < BYTES_PER_LONG)
-                       least = Arrays.copyOf(least, BYTES_PER_LONG);
-               ByteBuffer buffer = ByteBuffer.allocate(2 * BYTES_PER_LONG);
-               buffer.put(most, 0, BYTES_PER_LONG);
-               buffer.put(least, 0, BYTES_PER_LONG);
-               buffer.flip();
-               return new UUID(buffer.getLong(), buffer.getLong());
-       }
-
-       // public static void main(String[] args) {
-       // UUID uuid = UUID.randomUUID();
-       // System.out.println(uuid);
-       // uuid = bytesToUUID(uuidToBytes(uuid.getMostSignificantBits()),
-       // uuidToBytes(uuid.getLeastSignificantBits()));
-       // System.out.println(uuid);
-       // }
-}
diff --git a/org.argeo.security.core/src/org/argeo/osgi/useradmin/DigestUtils.java b/org.argeo.security.core/src/org/argeo/osgi/useradmin/DigestUtils.java
new file mode 100644 (file)
index 0000000..d8f8ce9
--- /dev/null
@@ -0,0 +1,20 @@
+package org.argeo.osgi.useradmin;
+
+import java.security.MessageDigest;
+
+class DigestUtils {
+       static byte[] sha1(byte[] bytes) {
+               try {
+                       MessageDigest digest = MessageDigest.getInstance("SHA1");
+                       digest.update(bytes);
+                       byte[] checksum = digest.digest();
+                       return checksum;
+               } catch (Exception e) {
+                       throw new UserDirectoryException("Cannot SHA1 digest", e);
+               }
+       }
+
+       private DigestUtils() {
+       }
+
+}
index b1360c65c5b3039a388d25383b1adf465f5d8967..7a617dfd6115ee3012717ad60276f040b5bb87ed 100644 (file)
@@ -24,7 +24,6 @@ import javax.transaction.TransactionManager;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
 import org.osgi.framework.Filter;
 
 /**
@@ -162,7 +161,7 @@ public class LdapUserAdmin extends AbstractUserDirectory {
                        }
                        return directGroups;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot populate direct members of " + dn, e);
+                       throw new UserDirectoryException("Cannot populate direct members of " + dn, e);
                }
        }
 
index d5ddba50c17060e7d29db08aa2cb38dc5bdabfb7..866c48c6b4c8d64d0abfe879e9482c8fd74770a9 100644 (file)
@@ -6,6 +6,7 @@ import java.nio.CharBuffer;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Base64;
 import java.util.Collections;
 import java.util.Dictionary;
 import java.util.Enumeration;
@@ -21,9 +22,6 @@ import javax.naming.directory.Attributes;
 import javax.naming.directory.BasicAttribute;
 import javax.naming.ldap.LdapName;
 
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.codec.digest.DigestUtils;
-
 /** Directory user implementation */
 class LdifUser implements DirectoryUser {
        private final AbstractUserDirectory userAdmin;
@@ -40,8 +38,7 @@ class LdifUser implements DirectoryUser {
                this(userAdmin, dn, attributes, false);
        }
 
-       private LdifUser(AbstractUserDirectory userAdmin, LdapName dn,
-                       Attributes attributes, boolean frozen) {
+       private LdifUser(AbstractUserDirectory userAdmin, LdapName dn, Attributes attributes, boolean frozen) {
                this.userAdmin = userAdmin;
                this.dn = dn;
                this.publishedAttributes = attributes;
@@ -93,8 +90,7 @@ class LdifUser implements DirectoryUser {
 
        /** Hash and clear the password */
        private byte[] hash(char[] password) {
-               byte[] hashedPassword = ("{SHA}" + Base64
-                               .encodeBase64String(DigestUtils.sha1(toBytes(password))))
+               byte[] hashedPassword = ("{SHA}" + Base64.getEncoder().encodeToString(DigestUtils.sha1(toBytes(password))))
                                .getBytes();
                Arrays.fill(password, '\u0000');
                return hashedPassword;
@@ -103,8 +99,7 @@ class LdifUser implements DirectoryUser {
        private byte[] toBytes(char[] chars) {
                CharBuffer charBuffer = CharBuffer.wrap(chars);
                ByteBuffer byteBuffer = Charset.forName("UTF-8").encode(charBuffer);
-               byte[] bytes = Arrays.copyOfRange(byteBuffer.array(),
-                               byteBuffer.position(), byteBuffer.limit());
+               byte[] bytes = Arrays.copyOfRange(byteBuffer.array(), byteBuffer.position(), byteBuffer.limit());
                Arrays.fill(charBuffer.array(), '\u0000'); // clear sensitive data
                Arrays.fill(byteBuffer.array(), (byte) 0); // clear sensitive data
                return bytes;
@@ -114,12 +109,10 @@ class LdifUser implements DirectoryUser {
                if (obj instanceof char[])
                        return (char[]) obj;
                if (!(obj instanceof byte[]))
-                       throw new IllegalArgumentException(obj.getClass()
-                                       + " is not a byte array");
+                       throw new IllegalArgumentException(obj.getClass() + " is not a byte array");
                ByteBuffer fromBuffer = ByteBuffer.wrap((byte[]) obj);
                CharBuffer toBuffer = Charset.forName("UTF-8").decode(fromBuffer);
-               char[] res = Arrays.copyOfRange(toBuffer.array(), toBuffer.position(),
-                               toBuffer.limit());
+               char[] res = Arrays.copyOfRange(toBuffer.array(), toBuffer.position(), toBuffer.limit());
                Arrays.fill(fromBuffer.array(), (byte) 0); // clear sensitive data
                Arrays.fill((byte[]) obj, (byte) 0); // clear sensitive data
                Arrays.fill(toBuffer.array(), '\u0000'); // clear sensitive data
@@ -211,8 +204,7 @@ class LdifUser implements DirectoryUser {
                                                effectiveKeys.add(id);
                                }
                        } catch (NamingException e) {
-                               throw new UserDirectoryException(
-                                               "Cannot initialise attribute dictionary", e);
+                               throw new UserDirectoryException("Cannot initialise attribute dictionary", e);
                        }
                }
 
@@ -277,14 +269,12 @@ class LdifUser implements DirectoryUser {
 
                                if (objectClasses.contains(userAdmin.getUserObjectClass()))
                                        return userAdmin.getUserObjectClass();
-                               else if (objectClasses
-                                               .contains(userAdmin.getGroupObjectClass()))
+                               else if (objectClasses.contains(userAdmin.getGroupObjectClass()))
                                        return userAdmin.getGroupObjectClass();
                                else
                                        return value;
                        } catch (NamingException e) {
-                               throw new UserDirectoryException(
-                                               "Cannot get value for attribute " + key, e);
+                               throw new UserDirectoryException("Cannot get value for attribute " + key, e);
                        }
                }
 
@@ -302,38 +292,31 @@ class LdifUser implements DirectoryUser {
                                startEditing();
 
                        if (!(value instanceof String || value instanceof byte[]))
-                               throw new IllegalArgumentException(
-                                               "Value must be String or byte[]");
+                               throw new IllegalArgumentException("Value must be String or byte[]");
 
                        if (includeFilter && !attrFilter.contains(key))
-                               throw new IllegalArgumentException("Key " + key
-                                               + " not included");
+                               throw new IllegalArgumentException("Key " + key + " not included");
                        else if (!includeFilter && attrFilter.contains(key))
                                throw new IllegalArgumentException("Key " + key + " excluded");
 
                        try {
-                               Attribute attribute = getModifiedAttributes().get(
-                                               key.toString());
+                               Attribute attribute = getModifiedAttributes().get(key.toString());
                                attribute = new BasicAttribute(key.toString());
-                               if (value instanceof String
-                                               && !isAsciiPrintable(((String) value)))
+                               if (value instanceof String && !isAsciiPrintable(((String) value)))
                                        try {
                                                attribute.add(((String) value).getBytes("UTF-8"));
                                        } catch (UnsupportedEncodingException e) {
-                                               throw new UserDirectoryException("Cannot encode "
-                                                               + value, e);
+                                               throw new UserDirectoryException("Cannot encode " + value, e);
                                        }
                                else
                                        attribute.add(value);
-                               Attribute previousAttribute = getModifiedAttributes().put(
-                                               attribute);
+                               Attribute previousAttribute = getModifiedAttributes().put(attribute);
                                if (previousAttribute != null)
                                        return previousAttribute.get();
                                else
                                        return null;
                        } catch (NamingException e) {
-                               throw new UserDirectoryException(
-                                               "Cannot get value for attribute " + key, e);
+                               throw new UserDirectoryException("Cannot get value for attribute " + key, e);
                        }
                }
 
@@ -344,8 +327,7 @@ class LdifUser implements DirectoryUser {
                                startEditing();
 
                        if (includeFilter && !attrFilter.contains(key))
-                               throw new IllegalArgumentException("Key " + key
-                                               + " not included");
+                               throw new IllegalArgumentException("Key " + key + " not included");
                        else if (!includeFilter && attrFilter.contains(key))
                                throw new IllegalArgumentException("Key " + key + " excluded");
 
@@ -356,8 +338,7 @@ class LdifUser implements DirectoryUser {
                                else
                                        return null;
                        } catch (NamingException e) {
-                               throw new UserDirectoryException("Cannot remove attribute "
-                                               + key, e);
+                               throw new UserDirectoryException("Cannot remove attribute " + key, e);
                        }
                }
        }
index e83186f22676286a28144c0e9cded18823f73f4c..521ae8bb6e89916c6b88ea490767658e8b3012fa 100644 (file)
@@ -22,7 +22,6 @@ import javax.naming.directory.Attributes;
 import javax.naming.ldap.LdapName;
 import javax.transaction.TransactionManager;
 
-import org.apache.commons.io.IOUtils;
 import org.argeo.util.naming.LdifParser;
 import org.argeo.util.naming.LdifWriter;
 import org.osgi.framework.Filter;
@@ -89,7 +88,7 @@ public class LdifUserAdmin extends AbstractUserDirectory {
                        for (LdapName name : users.keySet())
                                ldifWriter.writeEntry(name, users.get(name).getAttributes());
                } finally {
-                       IOUtils.closeQuietly(out);
+                       out.close();
                }
        }
 
index c2cd7718654a501ff0c7cfd01855ca325d592320..ec73e8accb29734c401b754d6684d2f92ffb0a3b 100644 (file)
@@ -2,8 +2,12 @@ package org.argeo.util.naming;
 
 import static org.argeo.osgi.useradmin.LdifName.dn;
 
+import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Base64;
 import java.util.List;
 import java.util.SortedMap;
 import java.util.TreeMap;
@@ -17,8 +21,6 @@ import javax.naming.directory.BasicAttributes;
 import javax.naming.ldap.LdapName;
 import javax.naming.ldap.Rdn;
 
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.osgi.useradmin.UserDirectoryException;
@@ -50,7 +52,13 @@ public class LdifParser {
        public SortedMap<LdapName, Attributes> read(InputStream in) throws IOException {
                SortedMap<LdapName, Attributes> res = new TreeMap<LdapName, Attributes>();
                try {
-                       List<String> lines = IOUtils.readLines(in);
+                       List<String> lines = new ArrayList<>();
+                       try (BufferedReader br = new BufferedReader(new InputStreamReader(in))) {
+                               String line;
+                               while ((line = br.readLine()) != null) {
+                                       lines.add(line);
+                               }
+                       }
                        if (lines.size() == 0)
                                return res;
                        // add an empty new line since the last line is not checked
@@ -90,7 +98,7 @@ public class LdifParser {
 
                                        String attributeId = attrId.toString();
                                        String cleanValueStr = currentEntry.toString().trim();
-                                       Object attributeValue = isBase64 ? Base64.decodeBase64(cleanValueStr) : cleanValueStr;
+                                       Object attributeValue = isBase64 ? Base64.getDecoder().decode(cleanValueStr) : cleanValueStr;
 
                                        // manage DN attributes
                                        if (attributeId.equals(dn.name()) || isLastLine) {
@@ -130,7 +138,7 @@ public class LdifParser {
                                currentEntry.append(line);
                        }
                } finally {
-                       IOUtils.closeQuietly(in);
+                       in.close();
                }
                return res;
        }
index 56f3224761952e1faed312afac32b7d1c3190ded..37d90b4e442946056e005a8ea054bf5a06bd5b84 100644 (file)
@@ -6,6 +6,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.util.Base64;
 import java.util.Map;
 
 import javax.naming.NamingEnumeration;
@@ -15,7 +16,6 @@ import javax.naming.directory.Attributes;
 import javax.naming.ldap.LdapName;
 import javax.naming.ldap.Rdn;
 
-import org.apache.commons.codec.binary.Base64;
 import org.argeo.osgi.useradmin.UserDirectoryException;
 
 /** Basic LDIF writer */
@@ -67,7 +67,7 @@ public class LdifWriter {
                for (NamingEnumeration<?> attrValues = attribute.getAll(); attrValues.hasMore();) {
                        Object value = attrValues.next();
                        if (value instanceof byte[]) {
-                               String encoded = Base64.encodeBase64String((byte[]) value);
+                               String encoded = Base64.getEncoder().encodeToString((byte[]) value);
                                writer.append(attribute.getID()).append("::").append(encoded).append('\n');
                        } else {
                                writer.append(attribute.getID()).append(':').append(value.toString()).append('\n');
index 1a5f375d0920034c4d547d9cd16d11359915e995..aacf6ef63c3d4a40a23437ce0666e65fe1f2f29d 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.security.ui.admin.internal;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IPartListener;
 import org.eclipse.ui.IStartup;
@@ -23,7 +23,7 @@ public class PartStateChanged implements IPartListener, IStartup {
                                        if (iwp != null)
                                                iwp.addPartListener(new PartStateChanged());
                                } catch (Exception e) {
-                                       throw new ArgeoException(
+                                       throw new CmsException(
                                                        "Error while registering the PartStateChangedListener",
                                                        e);
                                }
index 14762632ecb86153775577b29d450afa564b0396..871877a0e21d349f2cf36a469fca092fb7c6a0de 100644 (file)
@@ -2,7 +2,7 @@ package org.argeo.security.ui.admin.internal;
 
 import javax.transaction.UserTransaction;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.security.ui.admin.internal.providers.UserTransactionProvider;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
@@ -26,7 +26,7 @@ public class UiAdminUtils {
                                        .getSourceProvider(UserTransactionProvider.TRANSACTION_STATE);
                        esp.fireTransactionStateChange();
                } catch (Exception e) {
-                       throw new ArgeoException("Unable to begin transaction", e);
+                       throw new CmsException("Unable to begin transaction", e);
                }
        }
 }
\ No newline at end of file
index 43ce58da9fba74bb7f06c0ea9bb7a3b5f8acd551..8306e155234aedd1f6abc9c1643e40117922b65e 100644 (file)
@@ -6,7 +6,7 @@ import java.util.List;
 import javax.transaction.Status;
 import javax.transaction.UserTransaction;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.osgi.service.useradmin.UserAdminEvent;
 import org.osgi.service.useradmin.UserAdminListener;
 
@@ -31,7 +31,7 @@ public class UserAdminWrapper extends
                        }
                        return userTransaction;
                } catch (Exception e) {
-                       throw new ArgeoException("Unable to begin transaction", e);
+                       throw new CmsException("Unable to begin transaction", e);
                }
        }
 
index b83412d1081fa6a4076e4d59fab3079d1c172d45..f075fbc31c3aed0929f3e1ef8dfa0621c88a4f40 100644 (file)
@@ -18,7 +18,7 @@ package org.argeo.security.ui.admin.internal.commands;
 import java.util.Dictionary;
 import java.util.Map;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.jcr.ArgeoNames;
@@ -215,7 +215,7 @@ public class NewGroup extends AbstractHandler {
                private void initialiseDnCmb(Combo combo) {
                        Map<String, String> dns = userAdminWrapper.getKnownBaseDns(true);
                        if (dns.isEmpty())
-                               throw new ArgeoException(
+                               throw new CmsException(
                                                "No writable base dn found. Cannot create group");
                        combo.setItems(dns.keySet().toArray(new String[0]));
                        if (dns.size() == 1)
index e408b1bee1793163eca3aead29d2831c6e4d14b3..1a85253ad9238a4e83cc0a428c93f7141d72e19f 100644 (file)
@@ -23,7 +23,7 @@ import javax.naming.InvalidNameException;
 import javax.naming.ldap.LdapName;
 import javax.naming.ldap.Rdn;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.util.useradmin.UserAdminUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
@@ -289,7 +289,7 @@ public class NewUser extends AbstractHandler {
                private void initialiseDnCmb(Combo combo) {
                        Map<String, String> dns = userAdminWrapper.getKnownBaseDns(true);
                        if (dns.isEmpty())
-                               throw new ArgeoException(
+                               throw new CmsException(
                                                "No writable base dn found. Cannot create user");
                        combo.setItems(dns.keySet().toArray(new String[0]));
                        if (dns.size() == 1)
@@ -306,7 +306,7 @@ public class NewUser extends AbstractHandler {
                                return username + "@" + (String) rdns.get(1).getValue() + '.'
                                                + (String) rdns.get(0).getValue();
                        } catch (InvalidNameException e) {
-                               throw new ArgeoException("Unable to generate mail for "
+                               throw new CmsException("Unable to generate mail for "
                                                + username + " with base dn " + baseDn, e);
                        }
                }
index 1e881694dc460efcdfbc5690f0425b0ebc83221f..c2925792cdfddf0f7fd25a42477b1e1c157d1ca3 100644 (file)
@@ -18,7 +18,7 @@ package org.argeo.security.ui.admin.internal.commands;
 import javax.transaction.Status;
 import javax.transaction.UserTransaction;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.security.ui.admin.SecurityAdminPlugin;
 import org.argeo.security.ui.admin.internal.UiAdminUtils;
 import org.argeo.security.ui.admin.internal.UserAdminWrapper;
@@ -49,17 +49,17 @@ public class UserTransactionHandler extends AbstractHandler {
                try {
                        if (TRANSACTION_BEGIN.equals(commandId)) {
                                if (userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION)
-                                       throw new ArgeoException("A transaction already exists");
+                                       throw new CmsException("A transaction already exists");
                                else
                                        userTransaction.begin();
                        } else if (TRANSACTION_COMMIT.equals(commandId)) {
                                if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION)
-                                       throw new ArgeoException("No transaction.");
+                                       throw new CmsException("No transaction.");
                                else
                                        userTransaction.commit();
                        } else if (TRANSACTION_ROLLBACK.equals(commandId)) {
                                if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION)
-                                       throw new ArgeoException("No transaction to rollback.");
+                                       throw new CmsException("No transaction to rollback.");
                                else {
                                        userTransaction.rollback();
                                        userAdminWrapper.notifyListeners(new UserAdminEvent(null,
@@ -77,10 +77,10 @@ public class UserTransactionHandler extends AbstractHandler {
                                                }
                                        });
 
-               } catch (ArgeoException e) {
+               } catch (CmsException e) {
                        throw e;
                } catch (Exception e) {
-                       throw new ArgeoException("Unable to call " + commandId + " on "
+                       throw new CmsException("Unable to call " + commandId + " on "
                                        + userTransaction, e);
                }
                return null;
index 306a872e799a55881b631a3c824a14d981717342..6529efe30597c22c02a1be8d76dee67a5f8a57ca 100644 (file)
@@ -23,7 +23,7 @@ import javax.jcr.RepositoryException;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.jcr.ArgeoNames;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
@@ -66,7 +66,7 @@ public class DefaultUserMainPage extends FormPage implements ArgeoNames {
                        createGeneralPart(form.getBody());
                        createPassworPart(form.getBody());
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot create form content", e);
+                       throw new CmsException("Cannot create form content", e);
                }
        }
 
@@ -118,7 +118,7 @@ public class DefaultUserMainPage extends FormPage implements ArgeoNames {
                                        if (log.isTraceEnabled())
                                                log.trace("General part committed");
                                } catch (RepositoryException e) {
-                                       throw new ArgeoException("Cannot commit", e);
+                                       throw new CmsException("Cannot commit", e);
                                }
                        }
                };
@@ -174,7 +174,7 @@ public class DefaultUserMainPage extends FormPage implements ArgeoNames {
                                        } else {
                                                password1.setText("");
                                                password2.setText("");
-                                               throw new ArgeoException("Passwords are not equals");
+                                               throw new CmsException("Passwords are not equals");
                                        }
                                }
                        }
index 6b193f4441551b2e195e2e28527081bbefa09069..82f4e1bdd8f27a0f6f1713f159d85e68910846ed 100644 (file)
@@ -20,7 +20,7 @@ import java.util.List;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.AuthConstants;
 import org.argeo.cms.util.useradmin.UserAdminUtils;
 import org.argeo.eclipse.ui.ColumnDefinition;
@@ -216,7 +216,7 @@ public class GroupsView extends ViewPart implements ArgeoNames {
                                roles = userAdminWrapper.getUserAdmin().getRoles(
                                                builder.toString());
                        } catch (InvalidSyntaxException e) {
-                               throw new ArgeoException("Unable to get roles with filter: "
+                               throw new CmsException("Unable to get roles with filter: "
                                                + filter, e);
                        }
                        List<User> users = new ArrayList<User>();
index d2dbadd085db8338f8ca52e322e673808d986032..80c817ebeb6b993d5321fbd085fce05adec89fd5 100644 (file)
@@ -10,7 +10,7 @@ import javax.transaction.UserTransaction;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.AuthConstants;
 import org.argeo.cms.util.useradmin.UserAdminUtils;
 import org.argeo.eclipse.ui.ColumnDefinition;
@@ -98,7 +98,7 @@ public class UserBatchUpdateWizard extends Wizard {
                                                                        + "are you sure you want to proceed ?"))
                                return false;
                } catch (SystemException e) {
-                       throw new ArgeoException("Cannot get user transaction state "
+                       throw new CmsException("Cannot get user transaction state "
                                        + "before user batch update", e);
                }
 
@@ -111,7 +111,7 @@ public class UserBatchUpdateWizard extends Wizard {
                if (CMD_UPDATE_PASSWORD.equals(chooseCommandPage.getCommand())) {
                        char[] newValue = chooseCommandPage.getPwdValue();
                        if (newValue == null)
-                               throw new ArgeoException(
+                               throw new CmsException(
                                                "Password cannot be null or an empty string");
                        ResetPassword job = new ResetPassword(userAdminWrapper,
                                        userListPage.getSelectedUsers(), newValue);
@@ -150,7 +150,7 @@ public class UserBatchUpdateWizard extends Wizard {
                                userTransaction.commit();
                                UiAdminUtils.notifyTransactionStateChange(userTransaction);
                        } catch (Exception e) {
-                               throw new ArgeoException(
+                               throw new CmsException(
                                                "Cannot perform batch update on users", e);
                        } finally {
                                UserTransaction ut = userAdminWrapper.getUserTransaction();
@@ -183,9 +183,9 @@ public class UserBatchUpdateWizard extends Wizard {
        // log.info("Add/Remove to group actions are not yet implemented");
        // // TODO implement this
        // // try {
-       // // throw new ArgeoException("Not yet implemented");
+       // // throw new CmsException("Not yet implemented");
        // // } catch (RepositoryException re) {
-       // // throw new ArgeoException(
+       // // throw new CmsException(
        // // "Unable to update boolean value for node " + node, re);
        // // }
        // }
@@ -223,7 +223,7 @@ public class UserBatchUpdateWizard extends Wizard {
        // }
        // userAdminWrapper.getUserTransaction().commit();
        // } catch (Exception e) {
-       // throw new ArgeoException(
+       // throw new CmsException(
        // "Cannot perform batch update on users", e);
        // } finally {
        // UserTransaction ut = userAdminWrapper.getUserTransaction();
@@ -495,7 +495,7 @@ public class UserBatchUpdateWizard extends Wizard {
                                        roles = userAdminWrapper.getUserAdmin().getRoles(
                                                        builder.toString());
                                } catch (InvalidSyntaxException e) {
-                                       throw new ArgeoException(
+                                       throw new CmsException(
                                                        "Unable to get roles with filter: " + filter, e);
                                }
                                List<User> users = new ArrayList<User>();
index 715d343105f302c580b0d6e26f98176775aaf85a..0fae9f49afa6184b423a0fa209b211bc619faccf 100644 (file)
@@ -18,7 +18,7 @@ package org.argeo.security.ui.admin.internal.parts;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.util.useradmin.UserAdminUtils;
 import org.argeo.osgi.useradmin.LdifName;
 import org.argeo.security.ui.admin.SecurityAdminPlugin;
@@ -113,7 +113,7 @@ public class UserEditor extends FormEditor {
                        else
                                addPage(new UserMainPage(this, userAdminWrapper));
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot add pages", e);
+                       throw new CmsException("Cannot add pages", e);
                }
        }
 
index 833ae32a78513013b730c4b20ac070b63487a954..9bd2d2de152ed922d3821342b29945569bbd367d 100644 (file)
@@ -19,7 +19,7 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.AuthConstants;
 import org.argeo.cms.util.useradmin.UserAdminUtils;
 import org.argeo.eclipse.ui.ColumnDefinition;
@@ -236,7 +236,7 @@ public class UserMainPage extends FormPage implements ArgeoNames {
                                        } else {
                                                password1.setText("");
                                                password2.setText("");
-                                               throw new ArgeoException("Passwords are not equals");
+                                               throw new CmsException("Passwords are not equals");
                                        }
                                }
                        }
index edafa28511d34c993a326b5ba84b7cec6a378780..a397432a84dce719802b8ca68ea571742e378869 100644 (file)
@@ -18,7 +18,7 @@ package org.argeo.security.ui.admin.internal.parts;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.AuthConstants;
 import org.argeo.cms.util.useradmin.UserAdminUtils;
 import org.argeo.eclipse.ui.ColumnDefinition;
@@ -159,7 +159,7 @@ public class UsersView extends ViewPart implements ArgeoNames {
                                roles = userAdminWrapper.getUserAdmin().getRoles(
                                                builder.toString());
                        } catch (InvalidSyntaxException e) {
-                               throw new ArgeoException("Unable to get roles with filter: "
+                               throw new CmsException("Unable to get roles with filter: "
                                                + filter, e);
                        }
                        List<User> users = new ArrayList<User>();
index 39bac0a2af4a4ae114430747d1bcfa19659445c0..2b0a13db79da99e006aff2a9d1b460c233d06c46 100644 (file)
@@ -3,7 +3,7 @@ package org.argeo.security.ui.admin.internal.providers;
 import javax.naming.InvalidNameException;
 import javax.naming.ldap.LdapName;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.util.useradmin.UserAdminUtils;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
@@ -37,7 +37,7 @@ public abstract class UserAdminAbstractLP extends ColumnLabelProvider {
                                return bold;
                        }
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("cannot parse dn for " + element, e);
+                       throw new CmsException("cannot parse dn for " + element, e);
                }
 
                // Disabled as Italic
index fa45edd86ebc33b2678ff235850c860920811775..8f4a35a18059ba3d227da3090d1f5de261a7bc74 100644 (file)
@@ -1,6 +1,6 @@
 package org.argeo.security.ui.admin.internal.providers;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.eclipse.ui.workbench.WorkbenchUiPlugin;
 import org.argeo.security.ui.admin.internal.parts.UserEditor;
 import org.argeo.security.ui.admin.internal.parts.UserEditorInput;
@@ -37,7 +37,7 @@ public class UserTableDefaultDClickListener implements IDoubleClickListener {
                        else
                                iwp.openEditor(uei, UserEditor.USER_EDITOR_ID);
                } catch (PartInitException pie) {
-                       throw new ArgeoException("Unable to open UserEditor for " + user,
+                       throw new CmsException("Unable to open UserEditor for " + user,
                                        pie);
                }
        }
index cf1dd5daca4beb1469b5de6d24805e353bca4261..c5b9026c74c31109febbce2bf4037a2f0ea8987c 100644 (file)
@@ -8,7 +8,7 @@ import javax.transaction.UserTransaction;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.security.ui.admin.SecurityAdminPlugin;
 import org.eclipse.swt.SWTException;
 import org.eclipse.ui.AbstractSourceProvider;
@@ -53,7 +53,7 @@ public class UserTransactionProvider extends AbstractSourceProvider {
                                transactionState = STATUS_ACTIVE;
                        return transactionState;
                } catch (Exception e) {
-                       throw new ArgeoException("Unable to begin transaction", e);
+                       throw new CmsException("Unable to begin transaction", e);
                }
        }
 
index 7c1702d8d02d10c6eb282bbde018782c87799282..04b6f0a9d38c08a9b02c854d82750a5a21df2ede 100644 (file)
@@ -23,7 +23,7 @@ import javax.security.auth.login.LoginException;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.AuthConstants;
 import org.eclipse.rap.rwt.RWT;
 import org.eclipse.rap.rwt.application.EntryPoint;
@@ -60,7 +60,7 @@ public class AnonymousEntryPoint implements EntryPoint {
                                        subject);
                        loginContext.login();
                } catch (LoginException e1) {
-                       throw new ArgeoException("Cannot initialize login context", e1);
+                       throw new CmsException("Cannot initialize login context", e1);
                }
 
                // identify after successful login
index 7463f8b533ea362bbde433ea5a971931173e14ac..a681527f773e67663c0150576d67324a267a6c09 100644 (file)
@@ -30,7 +30,7 @@ import javax.servlet.http.HttpSession;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.auth.AuthConstants;
 import org.argeo.cms.auth.ThreadDeathLoginException;
 import org.argeo.cms.widgets.auth.DefaultLoginDialog;
@@ -96,14 +96,14 @@ public class SecureEntryPoint implements EntryPoint {
                                                AuthConstants.LOGIN_CONTEXT_USER, subject,
                                                callbackHandler);
                        } catch (LoginException e1) {
-                               throw new ArgeoException("Cannot initialize login context", e1);
+                               throw new CmsException("Cannot initialize login context", e1);
                        }
 
                        tryLogin: while (subject.getPrincipals(X500Principal.class).size() == 0) {
                                try {
                                        loginContext.login();
                                        if (subject.getPrincipals(X500Principal.class).size() == 0)
-                                               throw new ArgeoException("Login succeeded but no auth");// fatal
+                                               throw new CmsException("Login succeeded but no auth");// fatal
 
                                        // add thread locale to RWT session
                                        // if (log.isTraceEnabled())
@@ -189,7 +189,7 @@ public class SecureEntryPoint implements EntryPoint {
                        display.dispose();
                        return -1;
                } else {
-                       throw new ArgeoException(
+                       throw new CmsException(
                                        "Unexpected exception during authentication", e);
                }
 
index e5987938bad3d8ece9ebc63f7ee60d20b62055e1..935b5438615174b6aa80e8f629be887dc6e3b355 100644 (file)
@@ -21,7 +21,7 @@ import javax.security.auth.callback.Callback;
 import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.callback.UnsupportedCallbackException;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.widgets.auth.DefaultLoginDialog;
 import org.eclipse.swt.widgets.Display;
 import org.osgi.framework.BundleActivator;
@@ -50,13 +50,6 @@ public class SecurityUiPlugin implements BundleActivator {
        private ServiceRegistration<CallbackHandler> defaultCallbackHandlerReg;
 
        public void start(BundleContext context) throws Exception {
-               if (bundleContext != null)
-                       if (!bundleContext.equals(bundleContext))
-                               throw new ArgeoException(
-                                               "Bundle context already set with a different value");
-                       else
-                               return;
-
                bundleContext = context;
 
                defaultCallbackHandler = new DefaultCallbackHandler();
@@ -88,7 +81,7 @@ public class SecurityUiPlugin implements BundleActivator {
                                        try {
                                                dialog.handle(callbacks);
                                        } catch (IOException e) {
-                                               throw new ArgeoException("Cannot open dialog", e);
+                                               throw new CmsException("Cannot open dialog", e);
                                        }
                                }
                        });
index 5f2a9caddc0f6a9a67cdeaa348de089ca7a21df2..817354f7005bbd286cf353cee4845a87104aa93f 100644 (file)
@@ -32,7 +32,7 @@ import javax.transaction.UserTransaction;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
@@ -79,13 +79,13 @@ public class OpenChangePasswordDialog extends AbstractHandler {
                try {
                        dn = new LdapName(name);
                } catch (InvalidNameException e) {
-                       throw new ArgeoException("Invalid user dn " + name, e);
+                       throw new CmsException("Invalid user dn " + name, e);
                }
                User user = (User) userAdmin.getRole(dn.toString());
                if (!user.hasCredential(null, oldPassword))
-                       throw new ArgeoException("Invalid password");
+                       throw new CmsException("Invalid password");
                if (newPassword.equals(""))
-                       throw new ArgeoException("New password empty");
+                       throw new CmsException("New password empty");
                try {
                        userTransaction.begin();
                        user.getCredentials().put(null, newPassword);
@@ -99,7 +99,7 @@ public class OpenChangePasswordDialog extends AbstractHandler {
                        if (e instanceof RuntimeException)
                                throw (RuntimeException) e;
                        else
-                               throw new ArgeoException("Cannot change password", e);
+                               throw new CmsException("Cannot change password", e);
                }
        }
 
@@ -144,7 +144,7 @@ public class OpenChangePasswordDialog extends AbstractHandler {
                protected void okPressed() {
                        try {
                                if (!newPassword1.getText().equals(newPassword2.getText()))
-                                       throw new ArgeoException("New passwords are different");
+                                       throw new CmsException("New passwords are different");
                                changePassword(oldPassword.getTextChars(),
                                                newPassword1.getTextChars());
                                close();
index 547db9b0d1ec5ff04a54b653f539807476a98f22..c5ca7952c0f6462fa65286985aee39a759fef17a 100644 (file)
@@ -38,7 +38,7 @@ import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.apache.jackrabbit.core.config.RepositoryConfigurationParser;
-import org.argeo.ArgeoException;
+import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.ArgeoNames;
 import org.argeo.jcr.JcrUtils;
 import org.springframework.core.io.Resource;
@@ -80,7 +80,7 @@ public class JackrabbitContainer extends JackrabbitWrapper {
                // long begin = System.currentTimeMillis();
 
                if (getRepository() != null)
-                       throw new ArgeoException("Cannot be used to wrap another repository");
+                       throw new ArgeoJcrException("Cannot be used to wrap another repository");
                Repository repository = createJackrabbitRepository();
                super.setRepository(repository);
 
@@ -132,7 +132,7 @@ public class JackrabbitContainer extends JackrabbitWrapper {
 
                        return repository;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot create Jackrabbit repository " + getHomeDirectory(), e);
+                       throw new ArgeoJcrException("Cannot create Jackrabbit repository " + getHomeDirectory(), e);
                } finally {
                        IOUtils.closeQuietly(configurationIn);
                }
@@ -153,7 +153,7 @@ public class JackrabbitContainer extends JackrabbitWrapper {
 
                        return homeDirectory.getCanonicalFile();
                } catch (IOException e) {
-                       throw new ArgeoException("Cannot get canonical file for " + homeDirectory, e);
+                       throw new ArgeoJcrException("Cannot get canonical file for " + homeDirectory, e);
                }
        }
 
@@ -175,10 +175,10 @@ public class JackrabbitContainer extends JackrabbitWrapper {
                                        restartAndClearCaches = true;
                                }
                        }
-               } catch (ArgeoException e) {
+               } catch (ArgeoJcrException e) {
                        throw e;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot migrate", e);
+                       throw new ArgeoJcrException("Cannot migrate", e);
                } finally {
                        JcrUtils.logoutQuietly(session);
                }
@@ -197,7 +197,7 @@ public class JackrabbitContainer extends JackrabbitWrapper {
                try {
                        session = login();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot login to migrated repository", e);
+                       throw new ArgeoJcrException("Cannot login to migrated repository", e);
                }
 
                for (JackrabbitDataModelMigration dataModelMigration : new TreeSet<JackrabbitDataModelMigration>(
@@ -250,7 +250,7 @@ public class JackrabbitContainer extends JackrabbitWrapper {
                try {
                        return configuration != null ? configuration.getInputStream() : null;
                } catch (IOException e) {
-                       throw new ArgeoException("Cannot read Jackrabbit configuration " + configuration, e);
+                       throw new ArgeoJcrException("Cannot read Jackrabbit configuration " + configuration, e);
                }
        }
 
@@ -264,7 +264,7 @@ public class JackrabbitContainer extends JackrabbitWrapper {
                try {
                        return variables != null ? variables.getInputStream() : null;
                } catch (IOException e) {
-                       throw new ArgeoException("Cannot read Jackrabbit variables " + variables, e);
+                       throw new ArgeoJcrException("Cannot read Jackrabbit variables " + variables, e);
                }
        }
 
@@ -305,7 +305,7 @@ public class JackrabbitContainer extends JackrabbitWrapper {
                        }
 
                } catch (IOException e) {
-                       throw new ArgeoException("Cannot read configuration properties", e);
+                       throw new ArgeoJcrException("Cannot read configuration properties", e);
                } finally {
                        IOUtils.closeQuietly(propsIn);
                }
@@ -325,7 +325,7 @@ public class JackrabbitContainer extends JackrabbitWrapper {
        }
 
        public void setRepository(Repository repository) {
-               throw new ArgeoException("Cannot be used to wrap another repository");
+               throw new ArgeoJcrException("Cannot be used to wrap another repository");
        }
 
        public void setDataModelMigrations(Set<JackrabbitDataModelMigration> dataModelMigrations) {
index 56fffcbea4794483465e8d31efd652c02d39e521..53f0e4457837cf85820d46d4964d3f47ef207ce7 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.jackrabbit.commons.cnd.CndImporter;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
-import org.argeo.ArgeoException;
+import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.ArgeoNames;
 import org.argeo.jcr.JcrCallback;
 import org.argeo.jcr.JcrUtils;
@@ -91,7 +91,7 @@ public class JackrabbitDataModelMigration implements
                        return true;
                } catch (Exception e) {
                        JcrUtils.discardQuietly(session);
-                       throw new ArgeoException("Migration of data model "
+                       throw new ArgeoJcrException("Migration of data model "
                                        + dataModelNodePath + " to " + targetVersion + " failed.",
                                        e);
                } finally {
@@ -114,7 +114,7 @@ public class JackrabbitDataModelMigration implements
                        if (log.isDebugEnabled())
                                log.debug("Cleared " + customeNodeTypesPath);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot clear caches", e);
+                       throw new ArgeoJcrException("Cannot clear caches", e);
                }
 
                // File customNodeTypes = new File(home.getPath()
index 3502abd592d71dec2a4deb98f5fd56a0e3d91c78..e4134883c1ad6b9bb970919d41e9d0d1b75c0977 100644 (file)
@@ -36,7 +36,6 @@ import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.apache.jackrabbit.core.config.RepositoryConfigurationParser;
 import org.apache.jackrabbit.jcr2dav.Jcr2davRepositoryFactory;
-import org.argeo.ArgeoException;
 import org.argeo.jcr.ArgeoJcrConstants;
 import org.argeo.jcr.ArgeoJcrException;
 import org.springframework.core.io.ClassPathResource;
@@ -106,7 +105,7 @@ public class JackrabbitRepositoryFactory implements RepositoryFactory, ArgeoJcrC
                params.put(JcrUtils.REPOSITORY_URI, uri);
                Repository repository = new Jcr2davRepositoryFactory().getRepository(params);
                if (repository == null)
-                       throw new ArgeoException("Remote Davex repository " + uri + " not found");
+                       throw new ArgeoJcrException("Remote Davex repository " + uri + " not found");
                log.info("Initialized remote Jackrabbit repository from uri " + uri);
                return repository;
        }
@@ -120,7 +119,7 @@ public class JackrabbitRepositoryFactory implements RepositoryFactory, ArgeoJcrC
                        String dirPath = uri.substring("file:".length());
                        File homeDir = new File(dirPath);
                        if (homeDir.exists() && !homeDir.isDirectory())
-                               throw new ArgeoException("Repository home " + dirPath + " is not a directory");
+                               throw new ArgeoJcrException("Repository home " + dirPath + " is not a directory");
                        if (!homeDir.exists())
                                homeDir.mkdirs();
                        configurationIn = fileRepositoryConfiguration.getInputStream();
@@ -143,7 +142,7 @@ public class JackrabbitRepositoryFactory implements RepositoryFactory, ArgeoJcrC
                        log.info("Initialized file Jackrabbit repository from uri " + uri);
                        return repository;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot create repository " + uri, e);
+                       throw new ArgeoJcrException("Cannot create repository " + uri, e);
                } finally {
                        IOUtils.closeQuietly(configurationIn);
                }
@@ -159,7 +158,7 @@ public class JackrabbitRepositoryFactory implements RepositoryFactory, ArgeoJcrC
                                alias = alias.substring(0, alias.length() - 1);
                        return alias;
                } catch (URISyntaxException e) {
-                       throw new ArgeoException("Cannot interpret URI " + uri, e);
+                       throw new ArgeoJcrException("Cannot interpret URI " + uri, e);
                }
        }
 
index 89a39496dbdba655ffe567e450f934112a4a2d9b..268ecdb282f8832d5c7f37fcb6ec1e9ff184c327 100644 (file)
@@ -30,6 +30,7 @@ import javax.jcr.LoginException;
 import javax.jcr.NoSuchWorkspaceException;
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
+import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
@@ -41,8 +42,8 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.commons.NamespaceHelper;
 import org.apache.jackrabbit.commons.cnd.CndImporter;
-import org.argeo.ArgeoException;
 import org.argeo.jcr.ArgeoJcrConstants;
+import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.ArgeoNames;
 import org.argeo.jcr.ArgeoTypes;
 import org.argeo.jcr.JcrRepositoryWrapper;
@@ -132,7 +133,7 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                        }
                } catch (Exception e) {
                        JcrUtils.discardQuietly(session);
-                       throw new ArgeoException("Cannot import node type definitions "
+                       throw new ArgeoJcrException("Cannot import node type definitions "
                                        + cndFiles, e);
                } finally {
                        JcrUtils.logoutQuietly(session);
@@ -245,7 +246,7 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                                                + (bundle != null ? ", version " + bundle.getVersion()
                                                                + ", bundle " + bundle.getSymbolicName() : ""));
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot process data model " + resUrl, e);
+                       throw new ArgeoJcrException("Cannot process data model " + resUrl, e);
                } finally {
                        IOUtils.closeQuietly(reader);
                }
@@ -289,13 +290,13 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                                in = res.getInputStream();
                                url = res.getURL();
                        } else {
-                               throw new ArgeoException("No " + resUrl + " in the classpath,"
+                               throw new ArgeoJcrException("No " + resUrl + " in the classpath,"
                                                + " make sure the containing" + " package is visible.");
                        }
 
                        return IOUtils.toByteArray(in);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot read CND from " + resUrl, e);
+                       throw new ArgeoJcrException("Cannot read CND from " + resUrl, e);
                } finally {
                        IOUtils.closeQuietly(in);
                }
@@ -340,7 +341,7 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                ExportedPackage[] exportedPackages = packageAdmin
                                .getExportedPackages(pkg);
                if (exportedPackages == null)
-                       throw new ArgeoException("No exported package found for " + pkg);
+                       throw new ArgeoJcrException("No exported package found for " + pkg);
                for (ExportedPackage ep : exportedPackages) {
                        for (Bundle b : ep.getImportingBundles()) {
                                if (b.getBundleId() == bundleContext.getBundle().getBundleId()) {
@@ -356,7 +357,7 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                } else {
                        // assume this is in the same bundle
                        exportingBundle = bundleContext.getBundle();
-                       // throw new ArgeoException("No OSGi exporting package found for "
+                       // throw new ArgeoJcrException("No OSGi exporting package found for "
                        // + resUrl);
                }
                return exportingBundle;
index dccb06cf4446b942c7bbef9618d4808564f7b4c3..9a0fd19710d001809630136178574edffd5c784d 100644 (file)
@@ -22,8 +22,6 @@ import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.RepositoryFactory;
 
-import org.argeo.ArgeoException;
-
 /** Utilities related to Argeo model in JCR */
 public class ArgeoJcrUtils implements ArgeoJcrConstants {
        /**
@@ -38,7 +36,7 @@ public class ArgeoJcrUtils implements ArgeoJcrConstants {
                        parameters.put(JCR_REPOSITORY_ALIAS, alias);
                        return repositoryFactory.getRepository(parameters);
                } catch (RepositoryException e) {
-                       throw new ArgeoException(
+                       throw new ArgeoJcrException(
                                        "Unexpected exception when trying to retrieve repository with alias "
                                                        + alias, e);
                }
@@ -68,7 +66,7 @@ public class ArgeoJcrUtils implements ArgeoJcrConstants {
                                parameters.put(JCR_REPOSITORY_ALIAS, alias);
                        return repositoryFactory.getRepository(parameters);
                } catch (RepositoryException e) {
-                       throw new ArgeoException(
+                       throw new ArgeoJcrException(
                                        "Unexpected exception when trying to retrieve repository with uri "
                                                        + uri, e);
                }
index 253b3055d33f80c86dc37103a13d28c893aa213e..5ef8edd56214b1896cd3e32423b3a877fbf405f5 100644 (file)
@@ -24,7 +24,6 @@ import javax.jcr.observation.ObservationManager;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
 
 /** To be overridden */
 public class DefaultJcrListener implements EventListener {
@@ -39,7 +38,7 @@ public class DefaultJcrListener implements EventListener {
                        if (log.isDebugEnabled())
                                log.debug("Registered JCR event listener on " + path);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot register event listener", e);
+                       throw new ArgeoJcrException("Cannot register event listener", e);
                }
        }
 
@@ -50,7 +49,7 @@ public class DefaultJcrListener implements EventListener {
                        if (log.isDebugEnabled())
                                log.debug("Unregistered JCR event listener on " + path);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot unregister event listener", e);
+                       throw new ArgeoJcrException("Cannot unregister event listener", e);
                }
        }
 
index c60f023dde572fe6cc67752fa0006391d2fea2b9..ccfc2698e534bad495b0e9a5c847bf92fa61c84d 100644 (file)
@@ -24,8 +24,6 @@ import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.RepositoryFactory;
 
-import org.argeo.ArgeoException;
-
 /**
  * Simple implementation of {@link RepositoryFactory}, supporting OSGi aliases.
  */
@@ -54,7 +52,7 @@ public class DefaultRepositoryFactory extends DefaultRepositoryRegister
                                alias = alias.substring(0, alias.length() - 1);
                        return alias;
                } catch (URISyntaxException e) {
-                       throw new ArgeoException("Cannot interpret URI " + uri, e);
+                       throw new ArgeoJcrException("Cannot interpret URI " + uri, e);
                }
        }
 
diff --git a/org.argeo.server.jcr/src/org/argeo/jcr/JcrMonitor.java b/org.argeo.server.jcr/src/org/argeo/jcr/JcrMonitor.java
new file mode 100644 (file)
index 0000000..f04be9a
--- /dev/null
@@ -0,0 +1,89 @@
+package org.argeo.jcr;
+
+import org.argeo.ArgeoMonitor;
+
+/**
+ * Simple monitor abstraction. Inspired by Eclipse IProgressMOnitor, but without
+ * dependency to it.
+ */
+@SuppressWarnings("deprecation")
+public interface JcrMonitor extends ArgeoMonitor {
+       /**
+        * Constant indicating an unknown amount of work.
+        */
+       public final static int UNKNOWN = -1;
+
+       /**
+        * Notifies that the main task is beginning. This must only be called once
+        * on a given progress monitor instance.
+        * 
+        * @param name
+        *            the name (or description) of the main task
+        * @param totalWork
+        *            the total number of work units into which the main task is
+        *            been subdivided. If the value is <code>UNKNOWN</code> the
+        *            implementation is free to indicate progress in a way which
+        *            doesn't require the total number of work units in advance.
+        */
+       public void beginTask(String name, int totalWork);
+
+       /**
+        * Notifies that the work is done; that is, either the main task is
+        * completed or the user canceled it. This method may be called more than
+        * once (implementations should be prepared to handle this case).
+        */
+       public void done();
+
+       /**
+        * Returns whether cancelation of current operation has been requested.
+        * Long-running operations should poll to see if cancelation has been
+        * requested.
+        * 
+        * @return <code>true</code> if cancellation has been requested, and
+        *         <code>false</code> otherwise
+        * @see #setCanceled(boolean)
+        */
+       public boolean isCanceled();
+
+       /**
+        * Sets the cancel state to the given value.
+        * 
+        * @param value
+        *            <code>true</code> indicates that cancelation has been
+        *            requested (but not necessarily acknowledged);
+        *            <code>false</code> clears this flag
+        * @see #isCanceled()
+        */
+       public void setCanceled(boolean value);
+
+       /**
+        * Sets the task name to the given value. This method is used to restore the
+        * task label after a nested operation was executed. Normally there is no
+        * need for clients to call this method.
+        * 
+        * @param name
+        *            the name (or description) of the main task
+        * @see #beginTask(java.lang.String, int)
+        */
+       public void setTaskName(String name);
+
+       /**
+        * Notifies that a subtask of the main task is beginning. Subtasks are
+        * optional; the main task might not have subtasks.
+        * 
+        * @param name
+        *            the name (or description) of the subtask
+        */
+       public void subTask(String name);
+
+       /**
+        * Notifies that a given number of work unit of the main task has been
+        * completed. Note that this amount represents an installment, as opposed to
+        * a cumulative amount of work done to date.
+        * 
+        * @param work
+        *            a non-negative number of work units just completed
+        */
+       public void worked(int work);
+
+}
index f993c2f58893fe994304f4097485d061a5c50c99..6c23acaac2438852ffacfc0321b7148178359f6c 100644 (file)
@@ -23,8 +23,6 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.Value;
 
-import org.argeo.ArgeoException;
-
 /**
  * Wrapper around a JCR repository which allows to simplify configuration and
  * intercept some actions. It exposes itself as a {@link Repository}.
@@ -103,7 +101,7 @@ public abstract class JcrRepositoryWrapper implements Repository {
        /** Wraps access to the repository, making sure it is available. */
        protected synchronized Repository getRepository() {
 //             if (repository == null) {
-//                     throw new ArgeoException("No repository initialized."
+//                     throw new ArgeoJcrException("No repository initialized."
 //                                     + " Was the init() method called?"
 //                                     + " The destroy() method should also"
 //                                     + " be called on shutdown.");
@@ -118,7 +116,7 @@ public abstract class JcrRepositoryWrapper implements Repository {
        protected Session createWorkspaceAndLogsIn(Credentials credentials,
                        String workspaceName) throws RepositoryException {
                if (workspaceName == null)
-                       throw new ArgeoException("No workspace specified.");
+                       throw new ArgeoJcrException("No workspace specified.");
                Session session = getRepository().login(credentials);
                session.getWorkspace().createWorkspace(workspaceName);
                session.logout();
index 0b1a98cf0ce0b34e7910412776b983661c83a64e..1ccce4f769972fc2c9296127bf8db614520f6484 100644 (file)
@@ -32,7 +32,6 @@ import javax.jcr.version.VersionIterator;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
 
 /**
  * Bridge Spring resources and JCR folder / files semantics (nt:folder /
@@ -63,7 +62,7 @@ public class JcrResourceAdapter {
        public void create(String path, InputStream in, String mimeType) {
                try {
                        if (session().itemExists(path)) {
-                               throw new ArgeoException("Node " + path + " already exists.");
+                               throw new ArgeoJcrException("Node " + path + " already exists.");
                        }
 
                        int index = path.lastIndexOf('/');
@@ -72,7 +71,7 @@ public class JcrResourceAdapter {
                                parentPath = "/";
                        String fileName = path.substring(index + 1);
                        if (!session().itemExists(parentPath))
-                               throw new ArgeoException("Parent folder of node " + path
+                               throw new ArgeoJcrException("Parent folder of node " + path
                                                + " does not exist: " + parentPath);
 
                        Node folderNode = (Node) session().getItem(parentPath);
@@ -103,7 +102,7 @@ public class JcrResourceAdapter {
                        if (log.isDebugEnabled())
                                log.debug("Created " + path);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot create node for " + path, e);
+                       throw new ArgeoJcrException("Cannot create node for " + path, e);
                }
 
        }
@@ -141,13 +140,13 @@ public class JcrResourceAdapter {
                        if (log.isDebugEnabled())
                                log.debug("Updated " + path);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot update node " + path, e);
+                       throw new ArgeoJcrException("Cannot update node " + path, e);
                }
        }
 
        public List<Calendar> listVersions(String path) {
                if (!versioning)
-                       throw new ArgeoException("Versioning is not activated");
+                       throw new ArgeoJcrException("Versioning is not activated");
 
                try {
                        List<Calendar> versions = new ArrayList<Calendar>();
@@ -164,7 +163,7 @@ public class JcrResourceAdapter {
                        }
                        return versions;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot list version of node " + path, e);
+                       throw new ArgeoJcrException("Cannot list version of node " + path, e);
                }
        }
 
@@ -175,13 +174,13 @@ public class JcrResourceAdapter {
                        Property property = node.getProperty(Property.JCR_DATA);
                        return property.getBinary().getStream();
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot retrieve " + path, e);
+                       throw new ArgeoJcrException("Cannot retrieve " + path, e);
                }
        }
 
        public synchronized InputStream retrieve(String path, Integer revision) {
                if (!versioning)
-                       throw new ArgeoException("Versioning is not activated");
+                       throw new ArgeoJcrException("Versioning is not activated");
 
                try {
                        Node fileNode = (Node) session().getItem(path);
@@ -201,11 +200,11 @@ public class JcrResourceAdapter {
                                count++;
                        }
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot retrieve version " + revision
+                       throw new ArgeoJcrException("Cannot retrieve version " + revision
                                        + " of " + path, e);
                }
 
-               throw new ArgeoException("Version " + revision
+               throw new ArgeoJcrException("Version " + revision
                                + " does not exist for node " + path);
        }
 
index c42f84ece40c01decd7c025f0ae3026c4a8cda0a..98a2da8f30d8108e05005b85619a68bbfff9fa2e 100644 (file)
@@ -63,7 +63,6 @@ import javax.jcr.security.Privilege;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
 import org.argeo.ArgeoMonitor;
 import org.argeo.util.security.DigestUtils;
 import org.argeo.util.security.SimplePrincipal;
@@ -92,7 +91,7 @@ public class JcrUtils implements ArgeoJcrConstants {
         * Queries one single node.
         * 
         * @return one single node or null if none was found
-        * @throws ArgeoException
+        * @throws ArgeoJcrException
         *             if more than one node was found
         */
        public static Node querySingleNode(Query query) {
@@ -101,7 +100,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        QueryResult queryResult = query.execute();
                        nodeIterator = queryResult.getNodes();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot execute query " + query, e);
+                       throw new ArgeoJcrException("Cannot execute query " + query, e);
                }
                Node node;
                if (nodeIterator.hasNext())
@@ -110,7 +109,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        return null;
 
                if (nodeIterator.hasNext())
-                       throw new ArgeoException("Query returned more than one node.");
+                       throw new ArgeoJcrException("Query returned more than one node.");
                return node;
        }
 
@@ -119,7 +118,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                if (path.equals("/"))
                        return "";
                if (path.charAt(0) != '/')
-                       throw new ArgeoException("Path " + path + " must start with a '/'");
+                       throw new ArgeoJcrException("Path " + path + " must start with a '/'");
                String pathT = path;
                if (pathT.charAt(pathT.length() - 1) == '/')
                        pathT = pathT.substring(0, pathT.length() - 2);
@@ -131,9 +130,9 @@ public class JcrUtils implements ArgeoJcrConstants {
        /** Retrieves the parent path of the provided path */
        public static String parentPath(String path) {
                if (path.equals("/"))
-                       throw new ArgeoException("Root path '/' has no parent path");
+                       throw new ArgeoJcrException("Root path '/' has no parent path");
                if (path.charAt(0) != '/')
-                       throw new ArgeoException("Path " + path + " must start with a '/'");
+                       throw new ArgeoJcrException("Path " + path + " must start with a '/'");
                String pathT = path;
                if (pathT.charAt(pathT.length() - 1) == '/')
                        pathT = pathT.substring(0, pathT.length() - 2);
@@ -162,7 +161,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        path.append(u.getPath());
                        return path.toString();
                } catch (MalformedURLException e) {
-                       throw new ArgeoException("Cannot generate URL path for " + url, e);
+                       throw new ArgeoJcrException("Cannot generate URL path for " + url, e);
                }
        }
 
@@ -175,7 +174,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        node.setProperty(Property.JCR_PORT, Integer.toString(u.getPort()));
                        node.setProperty(Property.JCR_PATH, normalizePath(u.getPath()));
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot set URL " + url
+                       throw new ArgeoJcrException("Cannot set URL " + url
                                        + " as nt:address properties", e);
                }
        }
@@ -190,7 +189,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                                        .getProperty(Property.JCR_PATH).getString());
                        return u.toString();
                } catch (Exception e) {
-                       throw new ArgeoException(
+                       throw new ArgeoJcrException(
                                        "Cannot get URL from nt:address properties of " + node, e);
                }
        }
@@ -288,7 +287,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        calendar.setTime(date);
                        return calendar;
                } catch (ParseException e) {
-                       throw new ArgeoException("Cannot parse " + value
+                       throw new ArgeoJcrException("Cannot parse " + value
                                        + " with date format " + dateFormat, e);
                }
 
@@ -297,7 +296,7 @@ public class JcrUtils implements ArgeoJcrConstants {
        /** The last element of a path. */
        public static String lastPathElement(String path) {
                if (path.charAt(path.length() - 1) == '/')
-                       throw new ArgeoException("Path " + path + " cannot end with '/'");
+                       throw new ArgeoJcrException("Path " + path + " cannot end with '/'");
                int index = path.lastIndexOf('/');
                if (index < 0)
                        return path;
@@ -312,7 +311,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                try {
                        return node.getName();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get name from " + node, e);
+                       throw new ArgeoJcrException("Cannot get name from " + node, e);
                }
        }
 
@@ -324,7 +323,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                try {
                        return node.getProperty(propertyName).getString();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get name from " + node, e);
+                       throw new ArgeoJcrException("Cannot get name from " + node, e);
                }
        }
 
@@ -371,7 +370,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                return null;
                        return node.getProperty(propertyName).getString();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get property " + propertyName
+                       throw new ArgeoJcrException("Cannot get property " + propertyName
                                        + " of " + node, e);
                }
        }
@@ -381,7 +380,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                try {
                        return node.getProperty(propertyName).getBoolean();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get property " + propertyName
+                       throw new ArgeoJcrException("Cannot get property " + propertyName
                                        + " of " + node, e);
                }
        }
@@ -391,7 +390,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                try {
                        return getBinaryAsBytes(node.getProperty(propertyName));
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot get property " + propertyName
+                       throw new ArgeoJcrException("Cannot get property " + propertyName
                                        + " of " + node, e);
                }
        }
@@ -457,7 +456,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        }
                        return currParent;
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot mkdirs relative path "
+                       throw new ArgeoJcrException("Cannot mkdirs relative path "
                                        + relativePath + " from " + parentNode, e);
                }
        }
@@ -470,14 +469,14 @@ public class JcrUtils implements ArgeoJcrConstants {
                        String type) {
                try {
                        if (session.hasPendingChanges())
-                               throw new ArgeoException(
+                               throw new ArgeoJcrException(
                                                "Session has pending changes, save them first.");
                        Node node = mkdirs(session, path, type);
                        session.save();
                        return node;
                } catch (RepositoryException e) {
                        discardQuietly(session);
-                       throw new ArgeoException("Cannot safely make directories", e);
+                       throw new ArgeoJcrException("Cannot safely make directories", e);
                }
        }
 
@@ -501,7 +500,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                // check type
                                if (type != null && !node.isNodeType(type)
                                                && !node.getPath().equals("/"))
-                                       throw new ArgeoException("Node " + node
+                                       throw new ArgeoJcrException("Node " + node
                                                        + " exists but is of type "
                                                        + node.getPrimaryNodeType().getName()
                                                        + " not of type " + type);
@@ -534,7 +533,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        return currentNode;
                } catch (RepositoryException e) {
                        discardQuietly(session);
-                       throw new ArgeoException("Cannot mkdirs " + path, e);
+                       throw new ArgeoJcrException("Cannot mkdirs " + path, e);
                } finally {
                }
        }
@@ -582,7 +581,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        registerNamespaceSafely(session.getWorkspace()
                                        .getNamespaceRegistry(), prefix, uri);
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot find namespace registry", e);
+                       throw new ArgeoJcrException("Cannot find namespace registry", e);
                }
        }
 
@@ -598,7 +597,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                if (pref.equals(prefix)) {
                                        String registeredUri = nr.getURI(pref);
                                        if (!registeredUri.equals(uri))
-                                               throw new ArgeoException("Prefix " + pref
+                                               throw new ArgeoJcrException("Prefix " + pref
                                                                + " already registered for URI "
                                                                + registeredUri
                                                                + " which is different from provided URI "
@@ -608,7 +607,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                }
                        nr.registerNamespace(prefix, uri);
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot register namespace " + uri
+                       throw new ArgeoJcrException("Cannot register namespace " + uri
                                        + " under prefix " + prefix, e);
                }
        }
@@ -706,7 +705,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        }
                        return buf.toString();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot write summary of " + acl, e);
+                       throw new ArgeoJcrException("Cannot write summary of " + acl, e);
                }
        }
 
@@ -773,7 +772,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                copy(fromChild, toChild);
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot copy " + fromNode + " to "
+                       throw new ArgeoJcrException("Cannot copy " + fromNode + " to "
                                        + toNode, e);
                }
        }
@@ -804,7 +803,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        }
                        return true;
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot check all properties equals of "
+                       throw new ArgeoJcrException("Cannot check all properties equals of "
                                        + reference + " and " + observed, e);
                }
        }
@@ -871,7 +870,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                }
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot diff " + reference + " and "
+                       throw new ArgeoJcrException("Cannot diff " + reference + " and "
                                        + observed, e);
                }
        }
@@ -920,7 +919,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                }
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot diff " + reference + " and "
+                       throw new ArgeoJcrException("Cannot diff " + reference + " and "
                                        + observed, e);
                }
                return diffs;
@@ -1008,7 +1007,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        IOUtils.copy(in, out);
                        return out.toByteArray();
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot read binary " + property
+                       throw new ArgeoJcrException("Cannot read binary " + property
                                        + " as bytes", e);
                } finally {
                        IOUtils.closeQuietly(out);
@@ -1026,7 +1025,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        binary = node.getSession().getValueFactory().createBinary(in);
                        node.setProperty(property, binary);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot read binary " + property
+                       throw new ArgeoJcrException("Cannot read binary " + property
                                        + " as bytes", e);
                } finally {
                        IOUtils.closeQuietly(in);
@@ -1040,7 +1039,7 @@ public class JcrUtils implements ArgeoJcrConstants {
         */
        public static String firstCharsToPath(String str, Integer nbrOfChars) {
                if (str.length() < nbrOfChars)
-                       throw new ArgeoException("String " + str
+                       throw new ArgeoJcrException("String " + str
                                        + " length must be greater or equal than " + nbrOfChars);
                StringBuffer path = new StringBuffer("");
                StringBuffer curr = new StringBuffer("");
@@ -1135,7 +1134,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                                        nodeType == null ? null : new String[] { nodeType },
                                                        true);
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot add JCR listener " + listener
+                       throw new ArgeoJcrException("Cannot add JCR listener " + listener
                                        + " to session " + session, e);
                }
        }
@@ -1202,7 +1201,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        node.setProperty(Property.JCR_LAST_MODIFIED_BY, node.getSession()
                                        .getUserID());
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot update last modified on " + node,
+                       throw new ArgeoJcrException("Cannot update last modified on " + node,
                                        e);
                }
        }
@@ -1218,7 +1217,7 @@ public class JcrUtils implements ArgeoJcrConstants {
        public static void updateLastModifiedAndParents(Node node, String untilPath) {
                try {
                        if (untilPath != null && !node.getPath().startsWith(untilPath))
-                               throw new ArgeoException(node + " is not under " + untilPath);
+                               throw new ArgeoJcrException(node + " is not under " + untilPath);
                        updateLastModified(node);
                        if (untilPath == null) {
                                if (!node.getPath().equals("/"))
@@ -1228,7 +1227,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                        updateLastModifiedAndParents(node.getParent(), untilPath);
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot update lastModified from " + node
+                       throw new ArgeoJcrException("Cannot update lastModified from " + node
                                        + " until " + untilPath, e);
                }
        }
@@ -1253,7 +1252,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        if (prop.getDefinition().isMultiple())
                                sbuf.append("*");
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new ArgeoJcrException(
                                        "unexpected error while getting property definition as String",
                                        re);
                }
@@ -1287,7 +1286,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                curNodeSize += getNodeApproxSize(ni.nextNode());
                        return curNodeSize;
                } catch (RepositoryException re) {
-                       throw new ArgeoException(
+                       throw new ArgeoJcrException(
                                        "Unexpected error while recursively determining node size.",
                                        re);
                }
@@ -1380,7 +1379,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                if (acl != null)
                        return acl;
                else
-                       throw new ArgeoException("ACL not found at " + path);
+                       throw new ArgeoJcrException("ACL not found at " + path);
        }
 
        /** Clear authorizations for a user at this path */
@@ -1418,6 +1417,7 @@ public class JcrUtils implements ArgeoJcrConstants {
         *            files
         * @return how many files were copied
         */
+       @SuppressWarnings("deprecation")
        public static Long copyFiles(Node fromNode, Node toNode, Boolean recursive,
                        ArgeoMonitor monitor) {
                long count = 0l;
@@ -1428,7 +1428,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        NodeIterator fromChildren = fromNode.getNodes();
                        while (fromChildren.hasNext()) {
                                if (monitor != null && monitor.isCanceled())
-                                       throw new ArgeoException(
+                                       throw new ArgeoJcrException(
                                                        "Copy cancelled before it was completed");
 
                                Node fromChild = fromChildren.nextNode();
@@ -1457,7 +1457,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                        if (toNode.hasNode(fileName)) {
                                                toChildFolder = toNode.getNode(fileName);
                                                if (!toChildFolder.isNodeType(NodeType.NT_FOLDER))
-                                                       throw new ArgeoException(toChildFolder
+                                                       throw new ArgeoJcrException(toChildFolder
                                                                        + " is not of type nt:folder");
                                        } else {
                                                toChildFolder = toNode.addNode(fileName,
@@ -1473,7 +1473,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        }
                        return count;
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot copy files between " + fromNode
+                       throw new ArgeoJcrException("Cannot copy files between " + fromNode
                                        + " and " + toNode);
                } finally {
                        // in case there was an exception
@@ -1497,7 +1497,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                                        localCount = localCount + 1;
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot count all children of " + node);
+                       throw new ArgeoJcrException("Cannot count all children of " + node);
                }
                return localCount;
        }
@@ -1514,7 +1514,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        in = new FileInputStream(file);
                        return copyStreamAsFile(folderNode, file.getName(), in);
                } catch (IOException e) {
-                       throw new ArgeoException("Cannot copy file " + file + " under "
+                       throw new ArgeoJcrException("Cannot copy file " + file + " under "
                                        + folderNode, e);
                } finally {
                        IOUtils.closeQuietly(in);
@@ -1529,7 +1529,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        in = new ByteArrayInputStream(bytes);
                        return copyStreamAsFile(folderNode, fileName, in);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot copy file " + fileName + " under "
+                       throw new ArgeoJcrException("Cannot copy file " + fileName + " under "
                                        + folderNode, e);
                } finally {
                        IOUtils.closeQuietly(in);
@@ -1551,7 +1551,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        if (folderNode.hasNode(fileName)) {
                                fileNode = folderNode.getNode(fileName);
                                if (!fileNode.isNodeType(NodeType.NT_FILE))
-                                       throw new ArgeoException(fileNode
+                                       throw new ArgeoJcrException(fileNode
                                                        + " is not of type nt:file");
                                // we assume that the content node is already there
                                contentNode = fileNode.getNode(Node.JCR_CONTENT);
@@ -1565,7 +1565,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        contentNode.setProperty(Property.JCR_DATA, binary);
                        return fileNode;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot create file node " + fileName
+                       throw new ArgeoJcrException("Cannot create file node " + fileName
                                        + " under " + folderNode, e);
                } finally {
                        closeQuietly(binary);
@@ -1582,7 +1582,7 @@ public class JcrUtils implements ArgeoJcrConstants {
                        in = data.getStream();
                        return DigestUtils.digest(algorithm, in);
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot checksum file " + fileNode, e);
+                       throw new ArgeoJcrException("Cannot checksum file " + fileNode, e);
                } finally {
                        IOUtils.closeQuietly(in);
                        closeQuietly(data);
index bdd316f31846f10e95a468992af24849af2260f4..a0ff4712a69d4e496c3fe6f95c03f6123ec458e0 100644 (file)
@@ -17,8 +17,6 @@ package org.argeo.jcr;
 
 import javax.jcr.Value;
 
-import org.argeo.ArgeoException;
-
 /** The result of the comparison of two JCR properties. */
 public class PropertyDiff {
        public final static Integer MODIFIED = 0;
@@ -36,22 +34,22 @@ public class PropertyDiff {
 
                if (type == MODIFIED) {
                        if (referenceValue == null || newValue == null)
-                               throw new ArgeoException(
+                               throw new ArgeoJcrException(
                                                "Reference and new values must be specified.");
                } else if (type == ADDED) {
                        if (referenceValue != null || newValue == null)
-                               throw new ArgeoException(
+                               throw new ArgeoJcrException(
                                                "New value and only it must be specified.");
                } else if (type == REMOVED) {
                        if (referenceValue == null || newValue != null)
-                               throw new ArgeoException(
+                               throw new ArgeoJcrException(
                                                "Reference value and only it must be specified.");
                } else {
-                       throw new ArgeoException("Unkown diff type " + type);
+                       throw new ArgeoJcrException("Unkown diff type " + type);
                }
 
                if (relPath == null)
-                       throw new ArgeoException("Relative path must be specified");
+                       throw new ArgeoJcrException("Relative path must be specified");
 
                this.type = type;
                this.relPath = relPath;
index 56caab0a399ac3c9e0fe769493c8b49b8bb77197..9662e221b026ecd7eda1257af1e7c44fd61ffb29 100644 (file)
@@ -34,7 +34,6 @@ import javax.jcr.SimpleCredentials;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
 
 /** Proxy JCR sessions and attach them to calling threads. */
 @Deprecated
@@ -74,7 +73,7 @@ public abstract class ThreadBoundJcrSessionFactory {
        /** Logs in to the repository using various strategies. */
        protected synchronized Session login() {
                if (!isActive())
-                       throw new ArgeoException("Thread bound session factory inactive");
+                       throw new ArgeoJcrException("Thread bound session factory inactive");
 
                // discard session previously attached to this thread
                Thread thread = Thread.currentThread();
@@ -96,7 +95,7 @@ public abstract class ThreadBoundJcrSessionFactory {
                                // invalid credentials, go to the next step
                        } catch (RepositoryException e1) {
                                // other kind of exception, fail
-                               throw new ArgeoException("Cannot log in to repository", e1);
+                               throw new ArgeoJcrException("Cannot log in to repository", e1);
                        }
 
                // log using default username / password (useful for testing purposes)
@@ -106,7 +105,7 @@ public abstract class ThreadBoundJcrSessionFactory {
                                                defaultPassword.toCharArray());
                                newSession = repository().login(sc, workspace);
                        } catch (RepositoryException e) {
-                               throw new ArgeoException("Cannot log in to repository", e);
+                               throw new ArgeoJcrException("Cannot log in to repository", e);
                        }
 
                session.set(newSession);
@@ -214,7 +213,7 @@ public abstract class ThreadBoundJcrSessionFactory {
                        if (it.hasNext())
                                return it.next();
                }
-               throw new ArgeoException("No repository injected");
+               throw new ArgeoJcrException("No repository injected");
        }
 
        // /** Useful for declarative registration of OSGi services (blueprint) */
index 7caccf6a80b60d331442eedd0ffc3511d87e8852..95269475eb836ceef974e7eea07e810d066ebd76 100644 (file)
@@ -25,8 +25,6 @@ import javax.jcr.query.qom.QueryObjectModelFactory;
 import javax.jcr.query.qom.Selector;
 import javax.jcr.query.qom.StaticOperand;
 
-import org.argeo.ArgeoException;
-
 /**
  * Utilities related to the user home and properties based on Argeo JCR model.
  * Do not use anymore. Does not fit with current security model
@@ -65,7 +63,7 @@ public class UserJcrUtils {
                        Query query = qomf.createQuery(userHomeSel, constraint, null, null);
                        return JcrUtils.querySingleNode(query);
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot find home for user " + username, e);
+                       throw new ArgeoJcrException("Cannot find home for user " + username, e);
                }
        }
 
@@ -84,7 +82,7 @@ public class UserJcrUtils {
                        Query query = qomf.createQuery(userHomeSel, constraint, null, null);
                        return JcrUtils.querySingleNode(query);
                } catch (RepositoryException e) {
-                       throw new ArgeoException(
+                       throw new ArgeoJcrException(
                                        "Cannot find profile for user " + username, e);
                }
        }
index 8a66f3102dccebf1a1adb76e3c9accede7673f32..30369ce7d1873ef462f84fd384ce600657d665b1 100644 (file)
@@ -30,7 +30,7 @@ import javax.jcr.nodetype.NodeType;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.JcrUtils;
 
 /** Base class for URL based proxys. */
@@ -52,7 +52,7 @@ public abstract class AbstractUrlProxy implements ResourceProxy {
                                jcrAdminSession.save();
                } catch (Exception e) {
                        JcrUtils.discardQuietly(jcrAdminSession);
-                       throw new ArgeoException("Cannot initialize Maven proxy", e);
+                       throw new ArgeoJcrException("Cannot initialize Maven proxy", e);
                }
        }
 
@@ -92,7 +92,7 @@ public abstract class AbstractUrlProxy implements ResourceProxy {
                                nodeClient = clientSession.getNode(path);
                        return nodeClient;
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot proxy " + path, e);
+                       throw new ArgeoJcrException("Cannot proxy " + path, e);
                } finally {
                        if (nodeClient == null)
                                JcrUtils.logoutQuietly(clientSession);
@@ -108,7 +108,7 @@ public abstract class AbstractUrlProxy implements ResourceProxy {
                        return node;
                } catch (RepositoryException e) {
                        JcrUtils.discardQuietly(jcrAdminSession);
-                       throw new ArgeoException("Cannot retrieve and save " + path, e);
+                       throw new ArgeoJcrException("Cannot retrieve and save " + path, e);
                } finally {
                        notifyAll();
                }
@@ -119,7 +119,7 @@ public abstract class AbstractUrlProxy implements ResourceProxy {
                        String path) throws RepositoryException {
                Node node = null;
                if (session.itemExists(path)) {
-                       // throw new ArgeoException("Node " + path + " already exists");
+                       // throw new ArgeoJcrException("Node " + path + " already exists");
                }
                InputStream in = null;
                try {
index 61854131be159bfff3a36be5a3b802e15df73af5..e92e2a40216f02b35a82a1e865f25643ed87e2b1 100644 (file)
@@ -32,7 +32,7 @@ import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.JcrUtils;
 
 /** Wraps a proxy via HTTP */
@@ -126,7 +126,7 @@ public class ResourceProxyServlet extends HttpServlet {
                        in = binary.getStream();
                        IOUtils.copy(in, response.getOutputStream());
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot download " + node, e);
+                       throw new ArgeoJcrException("Cannot download " + node, e);
                } finally {
                        IOUtils.closeQuietly(in);
                        JcrUtils.closeQuietly(binary);
index 491f8a6fe4a4b36f07f9622462c62c09665a9a0d..9ad249252e768f9e7f12f1ee8a0ebe7bf6f8d4d3 100644 (file)
@@ -27,7 +27,7 @@ import javax.jcr.Session;
 import javax.jcr.security.AccessControlManager;
 import javax.jcr.security.Privilege;
 
-import org.argeo.ArgeoException;
+import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.util.security.SimplePrincipal;
 
@@ -70,7 +70,7 @@ public class JcrAuthorizations implements Runnable {
                        }
                } catch (Exception e) {
                        JcrUtils.discardQuietly(session);
-                       throw new ArgeoException(
+                       throw new ArgeoJcrException(
                                        "Cannot set authorizations " + principalPrivileges
                                                        + " on workspace " + currentWorkspace, e);
                } finally {
@@ -85,7 +85,7 @@ public class JcrAuthorizations implements Runnable {
                        initAuthorizations(session);
                } catch (Exception e) {
                        JcrUtils.discardQuietly(session);
-                       throw new ArgeoException("Cannot set authorizations "
+                       throw new ArgeoJcrException("Cannot set authorizations "
                                        + principalPrivileges + " on repository " + repository, e);
                } finally {
                        JcrUtils.logoutQuietly(session);
@@ -106,7 +106,7 @@ public class JcrAuthorizations implements Runnable {
                        String path = null;
                        int slashIndex = privileges.indexOf('/');
                        if (slashIndex == 0) {
-                               throw new ArgeoException("Privilege " + privileges
+                               throw new ArgeoJcrException("Privilege " + privileges
                                                + " badly formatted it starts with /");
                        } else if (slashIndex > 0) {
                                path = privileges.substring(slashIndex);
@@ -192,7 +192,7 @@ public class JcrAuthorizations implements Runnable {
        // + session.getWorkspace().getName() + "'");
        // }
        // } else {
-       // throw new ArgeoException("Don't know how to apply  privileges "
+       // throw new ArgeoJcrException("Don't know how to apply  privileges "
        // + privs + " to " + principal + " on " + path
        // + " from workspace '" + session.getWorkspace().getName()
        // + "'");
index 77e969509ea44298b031711a5ceb95dadaa6ff79..b43c5d6c60e49d12ed5ab44786b2d7cc5255d743 100644 (file)
@@ -32,7 +32,7 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
 import org.apache.commons.io.IOUtils;
-import org.argeo.ArgeoException;
+import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.ArgeoNames;
 import org.argeo.jcr.ArgeoTypes;
 import org.argeo.jcr.JcrUtils;
@@ -83,7 +83,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
                        Node userHome = UserJcrUtils.getUserHome(session);
                        return userHome.hasNode(ARGEO_KEYRING);
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot check whether keyring is setup", e);
+                       throw new ArgeoJcrException("Cannot check whether keyring is setup", e);
                }
        }
 
@@ -94,7 +94,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
                try {
                        Node userHome = UserJcrUtils.getUserHome(session);
                        if (userHome.hasNode(ARGEO_KEYRING))
-                               throw new ArgeoException("Keyring already setup");
+                               throw new ArgeoJcrException("Keyring already setup");
                        Node keyring = userHome.addNode(ARGEO_KEYRING);
                        keyring.addMixin(ArgeoTypes.ARGEO_PBE_SPEC);
 
@@ -123,6 +123,8 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
                                        secreteKeyEncryption);
                        keyring.setProperty(ARGEO_CIPHER, cipherName);
 
+                       //keyring.getSession().save();
+                       
                        // encrypted password hash
                        // IOUtils.closeQuietly(in);
                        // JcrUtils.closeQuietly(binary);
@@ -133,7 +135,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
 
                        notYetSavedKeyring.set(keyring);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot setup keyring", e);
+                       throw new ArgeoJcrException("Cannot setup keyring", e);
                } finally {
                        JcrUtils.closeQuietly(binary);
                        IOUtils.closeQuietly(in);
@@ -151,7 +153,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
                        else if (notYetSavedKeyring.get() != null)
                                keyring = notYetSavedKeyring.get();
                        else
-                               throw new ArgeoException("Keyring not setup");
+                               throw new ArgeoJcrException("Keyring not setup");
 
                        pbeCallback.set(keyring.getProperty(ARGEO_SECRET_KEY_FACTORY)
                                        .getString(), JcrUtils.getBinaryAsBytes(keyring
@@ -164,7 +166,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
                        if (notYetSavedKeyring.get() != null)
                                notYetSavedKeyring.remove();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot handle key spec callback", e);
+                       throw new ArgeoJcrException("Cannot handle key spec callback", e);
                }
        }
 
@@ -182,7 +184,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
                        if (!session.nodeExists(path)) {
                                String parentPath = JcrUtils.parentPath(path);
                                if (!session.nodeExists(parentPath))
-                                       throw new ArgeoException("No parent node of " + path);
+                                       throw new ArgeoJcrException("No parent node of " + path);
                                Node parentNode = session.getNode(parentPath);
                                node = parentNode.addNode(JcrUtils.nodeNameFromPath(path));
                        } else {
@@ -200,7 +202,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
                        node.setProperty(Property.JCR_DATA, binary);
                        session.save();
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot encrypt", e);
+                       throw new ArgeoJcrException("Cannot encrypt", e);
                } finally {
                        IOUtils.closeQuietly(unencrypted);
                        IOUtils.closeQuietly(in);
@@ -239,7 +241,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
                                return new CipherInputStream(encrypted, cipher);
                        }
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot decrypt", e);
+                       throw new ArgeoJcrException("Cannot decrypt", e);
                } finally {
                        IOUtils.closeQuietly(encrypted);
                        IOUtils.closeQuietly(reader);
@@ -251,14 +253,14 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames {
                try {
                        Node userHome = UserJcrUtils.getUserHome(session);
                        if (!userHome.hasNode(ARGEO_KEYRING))
-                               throw new ArgeoException("Keyring not setup");
+                               throw new ArgeoJcrException("Keyring not setup");
                        Node keyring = userHome.getNode(ARGEO_KEYRING);
                        Cipher cipher = Cipher.getInstance(keyring
                                        .getProperty(ARGEO_CIPHER).getString(),
                                        getSecurityProvider());
                        return cipher;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot get cipher", e);
+                       throw new ArgeoJcrException("Cannot get cipher", e);
                }
        }
 
index ca0635c95887f65f4af2464aeb83aa39fd4fbd82..d4ffbf8c2dec231192c325c5c478cd94dae09705 100644 (file)
@@ -28,7 +28,7 @@ import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 
 import org.apache.commons.io.IOUtils;
-import org.argeo.ArgeoException;
+import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.ArgeoTypes;
 import org.argeo.util.CsvParser;
 import org.argeo.util.tabular.ArrayTabularRow;
@@ -101,7 +101,7 @@ public class JcrTabularRowIterator implements TabularRowIterator {
                                thread.start();
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot read table " + tableNode, e);
+                       throw new ArgeoJcrException("Cannot read table " + tableNode, e);
                }
        }
 
index 718ff23742af86cd0973d5e57d03bf466d893c5b..c3fd97cbdef075e2b455d105fbd1e513b7c7a28e 100644 (file)
@@ -27,7 +27,7 @@ import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 
 import org.apache.commons.io.IOUtils;
-import org.argeo.ArgeoException;
+import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.ArgeoTypes;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.util.CsvWriter;
@@ -70,7 +70,7 @@ public class JcrTabularWriter implements TabularWriter {
                                csvWriter = new CsvWriter(out);
                        }
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot create table node " + tableNode, e);
+                       throw new ArgeoJcrException("Cannot create table node " + tableNode, e);
                }
        }
 
@@ -88,7 +88,7 @@ public class JcrTabularWriter implements TabularWriter {
                                        .createBinary(in);
                        contentNode.setProperty(Property.JCR_DATA, binary);
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot store data in " + contentNode, e);
+                       throw new ArgeoJcrException("Cannot store data in " + contentNode, e);
                } finally {
                        IOUtils.closeQuietly(in);
                        JcrUtils.closeQuietly(binary);
index db8d70d391119dc00253e41167056fab38b5cd14..1269a3ee5730243b172896b546ff6191e3974dcc 100644 (file)
@@ -26,12 +26,12 @@ import javax.security.auth.Subject;
 import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
 
-import junit.framework.TestCase;
-
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
+import org.argeo.jcr.ArgeoJcrException;
+
+import junit.framework.TestCase;
 
 public abstract class AbstractJcrTestCase extends TestCase {
        private final static Log log = LogFactory.getLog(AbstractJcrTestCase.class);
@@ -75,7 +75,7 @@ public abstract class AbstractJcrTestCase extends TestCase {
                                lc = new LoginContext(getLoginContext());
                                lc.login();
                        } catch (LoginException e) {
-                               throw new ArgeoException("JAAS login failed", e);
+                               throw new ArgeoJcrException("JAAS login failed", e);
                        }
                        session = Subject.doAs(lc.getSubject(),
                                        new PrivilegedAction<Session>() {
@@ -107,7 +107,7 @@ public abstract class AbstractJcrTestCase extends TestCase {
                                return getRepository().login(
                                                new SimpleCredentials("demo", "demo".toCharArray()));
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot login to repository", e);
+                       throw new ArgeoJcrException("Cannot login to repository", e);
                }
        }
 
@@ -123,30 +123,6 @@ public abstract class AbstractJcrTestCase extends TestCase {
                this.repository = repository;
        }
 
-       // public void logout() {
-       // if (session != null && session.isLive())
-       // JcrUtils.logoutQuietly(session);
-       // }
-       //
-       // protected static TestSuite defaultTestSuite(Class<? extends TestCase>
-       // clss) {
-       // String testSuiteClassName =
-       // "org.argeo.jackrabbit.unit.JackrabbitTestSuite";
-       // try {
-       // Class<?> testSuiteClass = AbstractJcrTestCase.class
-       // .getClassLoader().loadClass(testSuiteClassName);
-       // if (clss == null) {
-       // return (TestSuite) testSuiteClass.newInstance();
-       // } else {
-       // return (TestSuite) testSuiteClass.getConstructor(Class.class)
-       // .newInstance(clss);
-       // }
-       // } catch (Exception e) {
-       // throw new ArgeoException("Cannot find default test suite "
-       // + testSuiteClassName, e);
-       // }
-       // }
-
        protected File getHomeDir() {
                File homeDir = new File(System.getProperty("java.io.tmpdir"),
                                AbstractJcrTestCase.class.getSimpleName() + "-"
index 42630cfee1206e7ba8c09196cbbe8d8a034a9f01..0895c6bbe98a8a4b26ae4b2065d5221504381fc7 100644 (file)
@@ -34,7 +34,7 @@ import junit.framework.TestCase;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.StreamUtils;
+import org.argeo.util.internal.StreamUtils;
 import org.argeo.util.security.PasswordBasedEncryption;
 
 public class PasswordBasedEncryptionTest extends TestCase {
index 9cf91866717f9143c282478420b360ce4c6d3540..4fa296afa8b0c8a8f7dac9e977ef9dcf74e52cf6 100644 (file)
  */
 package org.argeo;
 
-/** Argeo Commons specific exception. */
+import javax.naming.OperationNotSupportedException;
+
+/**
+ * Argeo Commons specific exception.
+ * 
+ * @deprecated Use project specific exceptions or standard ones like
+ *             {@link OperationNotSupportedException},
+ *             {@link IllegalArgumentException}, etc.
+ */
+@Deprecated
 public class ArgeoException extends RuntimeException {
        private static final long serialVersionUID = 1L;
 
@@ -29,21 +38,4 @@ public class ArgeoException extends RuntimeException {
                super(message, e);
        }
 
-       /**
-        * Chain the messages of all causes (one per line, <b>starts with a line
-        * return</b>) without all the stack
-        */
-       public static String chainCausesMessages(Throwable t) {
-               StringBuffer buf = new StringBuffer();
-               chainCauseMessage(buf, t);
-               return buf.toString();
-       }
-
-       /** Recursive chaining of messages */
-       private static void chainCauseMessage(StringBuffer buf, Throwable t) {
-               buf.append('\n').append(' ').append(t.getClass().getCanonicalName())
-                               .append(": ").append(t.getMessage());
-               if (t.getCause() != null)
-                       chainCauseMessage(buf, t.getCause());
-       }
 }
index 9ef23cc8bf622f28156ba1328ca41f2fd249db7f..307581ea7343e02ae5c2379f44e86b79c75262d3 100644 (file)
@@ -18,7 +18,10 @@ package org.argeo;
 /**
  * Simple monitor abstraction. Inspired by Eclipse IProgressMOnitor, but without
  * dependency to it.
+ * 
+ * @deprecated use org.argeo.jcr.JcrMonitor instead
  */
+@Deprecated
 public interface ArgeoMonitor {
        /**
         * Constant indicating an unknown amount of work.
diff --git a/org.argeo.util/src/org/argeo/StreamUtils.java b/org.argeo.util/src/org/argeo/StreamUtils.java
deleted file mode 100644 (file)
index 39caadd..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * 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;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.Writer;
-
-/** Utilities to be used when APache COmmons IO is not available. */
-public class StreamUtils {
-       private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
-
-       /*
-        * APACHE COMMONS IO (inspired)
-        */
-
-       /** @return the number of bytes */
-       public static Long copy(InputStream in, OutputStream out)
-                       throws IOException {
-               Long count = 0l;
-               byte[] buf = new byte[DEFAULT_BUFFER_SIZE];
-               while (true) {
-                       int length = in.read(buf);
-                       if (length < 0)
-                               break;
-                       out.write(buf, 0, length);
-                       count = count + length;
-               }
-               return count;
-       }
-
-       /** @return the number of chars */
-       public static Long copy(Reader in, Writer out) throws IOException {
-               Long count = 0l;
-               char[] buf = new char[DEFAULT_BUFFER_SIZE];
-               while (true) {
-                       int length = in.read(buf);
-                       if (length < 0)
-                               break;
-                       out.write(buf, 0, length);
-                       count = count + length;
-               }
-               return count;
-       }
-
-       public static void closeQuietly(InputStream in) {
-               if (in != null)
-                       try {
-                               in.close();
-                       } catch (Exception e) {
-                               //
-                       }
-       }
-
-       public static void closeQuietly(OutputStream out) {
-               if (out != null)
-                       try {
-                               out.close();
-                       } catch (Exception e) {
-                               //
-                       }
-       }
-
-       public static void closeQuietly(Reader in) {
-               if (in != null)
-                       try {
-                               in.close();
-                       } catch (Exception e) {
-                               //
-                       }
-       }
-
-       public static void closeQuietly(Writer out) {
-               if (out != null)
-                       try {
-                               out.close();
-                       } catch (Exception e) {
-                               //
-                       }
-       }
-
-       /*
-        * APACHE COMMONS CODEC (forked)
-        */
-       /**
-        * Used to build output as Hex
-        */
-       private static final char[] DIGITS_LOWER = { '0', '1', '2', '3', '4', '5',
-                       '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
-
-       /**
-        * Used to build output as Hex
-        */
-       private static final char[] DIGITS_UPPER = { '0', '1', '2', '3', '4', '5',
-                       '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
-
-       /**
-        * Converts an array of bytes into a String representing the hexadecimal
-        * values of each byte in order. The returned String will be double the
-        * length of the passed array, as it takes two characters to represent any
-        * given byte.
-        * 
-        * @param data
-        *            a byte[] to convert to Hex characters
-        * @return A String containing hexadecimal characters
-        * @since 1.4
-        */
-       public static String encodeHexString(byte[] data) {
-               return new String(encodeHex(data));
-       }
-
-       /**
-        * Converts an array of bytes into an array of characters representing the
-        * hexadecimal values of each byte in order. The returned array will be
-        * double the length of the passed array, as it takes two characters to
-        * represent any given byte.
-        * 
-        * @param data
-        *            a byte[] to convert to Hex characters
-        * @return A char[] containing hexadecimal characters
-        */
-       public static char[] encodeHex(byte[] data) {
-               return encodeHex(data, true);
-       }
-
-       /**
-        * Converts an array of bytes into an array of characters representing the
-        * hexadecimal values of each byte in order. The returned array will be
-        * double the length of the passed array, as it takes two characters to
-        * represent any given byte.
-        * 
-        * @param data
-        *            a byte[] to convert to Hex characters
-        * @param toLowerCase
-        *            <code>true</code> converts to lowercase, <code>false</code> to
-        *            uppercase
-        * @return A char[] containing hexadecimal characters
-        * @since 1.4
-        */
-       public static char[] encodeHex(byte[] data, boolean toLowerCase) {
-               return encodeHex(data, toLowerCase ? DIGITS_LOWER : DIGITS_UPPER);
-       }
-
-       /**
-        * Converts an array of bytes into an array of characters representing the
-        * hexadecimal values of each byte in order. The returned array will be
-        * double the length of the passed array, as it takes two characters to
-        * represent any given byte.
-        * 
-        * @param data
-        *            a byte[] to convert to Hex characters
-        * @param toDigits
-        *            the output alphabet
-        * @return A char[] containing hexadecimal characters
-        * @since 1.4
-        */
-       protected static char[] encodeHex(byte[] data, char[] toDigits) {
-               int l = data.length;
-               char[] out = new char[l << 1];
-               // two characters form the hex value.
-               for (int i = 0, j = 0; i < l; i++) {
-                       out[j++] = toDigits[(0xF0 & data[i]) >>> 4];
-                       out[j++] = toDigits[0x0F & data[i]];
-               }
-               return out;
-       }
-
-}
index 7680b3267c7d0739be7ca34a99fefac93118f3e5..569f08c731092acd8f76790a42af2b54d620e150 100644 (file)
@@ -23,8 +23,8 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import org.argeo.ArgeoException;
-import org.argeo.StreamUtils;
+import org.argeo.util.internal.StreamUtils;
+import org.argeo.util.internal.UtilsException;
 
 /**
  * Parses a CSV file interpreting the first line as a header. The
@@ -114,7 +114,7 @@ public abstract class CsvParser {
                                        if (tokenSize == 1 && line.trim().equals(""))
                                                continue lines;// empty line
                                        if (headerSize != tokenSize) {
-                                               throw new ArgeoException("Token size " + tokenSize
+                                               throw new UtilsException("Token size " + tokenSize
                                                                + " is different from header size "
                                                                + headerSize + " at line " + lineCount
                                                                + ", line: " + line + ", header: " + header
@@ -123,10 +123,10 @@ public abstract class CsvParser {
                                }
                                processLine(lineCount, header, tokens);
                        }
-               } catch (ArgeoException e) {
+               } catch (UtilsException e) {
                        throw e;
                } catch (IOException e) {
-                       throw new ArgeoException("Cannot parse CSV file (line: "
+                       throw new UtilsException("Cannot parse CSV file (line: "
                                        + lineCount + ")", e);
                } finally {
                        StreamUtils.closeQuietly(reader);
index e7baabbf0b50d4b77dfaddf873a1917421820e3f..fe1750a233f54fd1ddb6c5040de2f9faaccf8816 100644 (file)
@@ -19,7 +19,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.argeo.ArgeoException;
+import org.argeo.util.internal.UtilsException;
 
 /**
  * CSV parser allowing to process lines as maps whose keys are the header
@@ -42,7 +42,7 @@ public abstract class CsvParserWithLinesAsMap extends CsvParser {
        protected final void processLine(Integer lineNumber, List<String> header,
                        List<String> tokens) {
                if (header == null)
-                       throw new ArgeoException("Only CSV with header is supported");
+                       throw new UtilsException("Only CSV with header is supported");
                Map<String, String> line = new HashMap<String, String>();
                for (int i = 0; i < header.size(); i++) {
                        String key = header.get(i);
index d90f474123f1c5d3fe41dae16f661341f976c1e1..1ebe1022dd48aff118a97d983a0d7e02d251b561 100644 (file)
@@ -23,7 +23,7 @@ import java.io.Writer;
 import java.util.Iterator;
 import java.util.List;
 
-import org.argeo.ArgeoException;
+import org.argeo.util.internal.UtilsException;
 
 /** Write in CSV format. */
 public class CsvWriter {
@@ -52,7 +52,7 @@ public class CsvWriter {
                try {
                        this.out = new OutputStreamWriter(out, encoding);
                } catch (UnsupportedEncodingException e) {
-                       throw new ArgeoException("Cannot initialize CSV writer", e);
+                       throw new UtilsException("Cannot initialize CSV writer", e);
                }
        }
 
@@ -72,7 +72,7 @@ public class CsvWriter {
                        out.write('\n');
                        out.flush();
                } catch (IOException e) {
-                       throw new ArgeoException("Could not write " + tokens, e);
+                       throw new UtilsException("Could not write " + tokens, e);
                }
        }
 
@@ -96,7 +96,7 @@ public class CsvWriter {
                        out.write('\n');
                        out.flush();
                } catch (IOException e) {
-                       throw new ArgeoException("Could not write " + tokens, e);
+                       throw new UtilsException("Could not write " + tokens, e);
                }
        }
 
index 3c0baed1c8047ad0c9cccb10a77c12a84def8912..8810d646335056a604791cec8a545b27931be1b9 100644 (file)
@@ -136,6 +136,27 @@ public class LangUtils {
                        res.put(key.toString(), toLoad.get(key));
                return res;
        }
+       
+       /*
+        * EXCEPTIONS
+        */
+       /**
+        * Chain the messages of all causes (one per line, <b>starts with a line
+        * return</b>) without all the stack
+        */
+       public static String chainCausesMessages(Throwable t) {
+               StringBuffer buf = new StringBuffer();
+               chainCauseMessage(buf, t);
+               return buf.toString();
+       }
+
+       /** Recursive chaining of messages */
+       private static void chainCauseMessage(StringBuffer buf, Throwable t) {
+               buf.append('\n').append(' ').append(t.getClass().getCanonicalName())
+                               .append(": ").append(t.getMessage());
+               if (t.getCause() != null)
+                       chainCauseMessage(buf, t.getCause());
+       }
 
        /** Singleton constructor. */
        private LangUtils() {
index d081189e2c51e520fb9bedab0f274328477dd17e..fb928002e782aece5c5d33c4cee81bd1e9f31b0c 100644 (file)
@@ -19,7 +19,7 @@ import java.text.NumberFormat;
 import java.text.ParseException;
 import java.util.Locale;
 
-import org.argeo.ArgeoException;
+import org.argeo.util.internal.UtilsException;
 
 public class Throughput {
        private final static NumberFormat usNumberFormat = NumberFormat
@@ -47,7 +47,7 @@ public class Throughput {
                else if (unit.equals(Unit.d))
                        value = ((double) count * 24d * 60d * 60d * 1000d) / periodMs;
                else
-                       throw new ArgeoException("Unsupported unit " + unit);
+                       throw new UtilsException("Unsupported unit " + unit);
                this.unit = unit;
        }
 
@@ -58,14 +58,14 @@ public class Throughput {
        public Throughput(String def) {
                int index = def.indexOf('/');
                if (def.length() < 3 || index <= 0 || index != def.length() - 2)
-                       throw new ArgeoException(def + " no a proper throughput definition"
+                       throw new UtilsException(def + " no a proper throughput definition"
                                        + " (should be <value>/<unit>, e.g. 3.54/s or 1500/h");
                String valueStr = def.substring(0, index);
                String unitStr = def.substring(index + 1);
                try {
                        this.value = usNumberFormat.parse(valueStr).doubleValue();
                } catch (ParseException e) {
-                       throw new ArgeoException("Cannot parse " + valueStr
+                       throw new UtilsException("Cannot parse " + valueStr
                                        + " as a number.", e);
                }
                this.unit = Unit.valueOf(unitStr);
@@ -81,7 +81,7 @@ public class Throughput {
                else if (unit.equals(Unit.d))
                        return Math.round((24d * 60d * 60d * 1000d) / value);
                else
-                       throw new ArgeoException("Unsupported unit " + unit);
+                       throw new UtilsException("Unsupported unit " + unit);
        }
 
        @Override
diff --git a/org.argeo.util/src/org/argeo/util/internal/StreamUtils.java b/org.argeo.util/src/org/argeo/util/internal/StreamUtils.java
new file mode 100644 (file)
index 0000000..cf6fc0c
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * 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.util.internal;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
+
+/** Utilities to be used when APache COmmons IO is not available. */
+public class StreamUtils {
+       private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
+
+       /*
+        * APACHE COMMONS IO (inspired)
+        */
+
+       /** @return the number of bytes */
+       public static Long copy(InputStream in, OutputStream out)
+                       throws IOException {
+               Long count = 0l;
+               byte[] buf = new byte[DEFAULT_BUFFER_SIZE];
+               while (true) {
+                       int length = in.read(buf);
+                       if (length < 0)
+                               break;
+                       out.write(buf, 0, length);
+                       count = count + length;
+               }
+               return count;
+       }
+
+       /** @return the number of chars */
+       public static Long copy(Reader in, Writer out) throws IOException {
+               Long count = 0l;
+               char[] buf = new char[DEFAULT_BUFFER_SIZE];
+               while (true) {
+                       int length = in.read(buf);
+                       if (length < 0)
+                               break;
+                       out.write(buf, 0, length);
+                       count = count + length;
+               }
+               return count;
+       }
+
+       public static void closeQuietly(InputStream in) {
+               if (in != null)
+                       try {
+                               in.close();
+                       } catch (Exception e) {
+                               //
+                       }
+       }
+
+       public static void closeQuietly(OutputStream out) {
+               if (out != null)
+                       try {
+                               out.close();
+                       } catch (Exception e) {
+                               //
+                       }
+       }
+
+       public static void closeQuietly(Reader in) {
+               if (in != null)
+                       try {
+                               in.close();
+                       } catch (Exception e) {
+                               //
+                       }
+       }
+
+       public static void closeQuietly(Writer out) {
+               if (out != null)
+                       try {
+                               out.close();
+                       } catch (Exception e) {
+                               //
+                       }
+       }
+}
diff --git a/org.argeo.util/src/org/argeo/util/internal/UtilsException.java b/org.argeo.util/src/org/argeo/util/internal/UtilsException.java
new file mode 100644 (file)
index 0000000..d93851c
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * 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.util.internal;
+
+/** Utils specific exception. */
+public class UtilsException extends RuntimeException {
+       private static final long serialVersionUID = 1L;
+
+       /** Creates an exception with a message. */
+       public UtilsException(String message) {
+               super(message);
+       }
+
+       /** Creates an exception with a message and a root cause. */
+       public UtilsException(String message, Throwable e) {
+               super(message, e);
+       }
+
+}
index 28763f82b29c1009cdb97e21451cc2f9a5c0acea..68ae1a20e8d32590b3289dd60e7f0aa97e9c685e 100644 (file)
@@ -41,8 +41,8 @@ import javax.security.auth.callback.UnsupportedCallbackException;
 import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
 
-import org.argeo.ArgeoException;
-import org.argeo.StreamUtils;
+import org.argeo.util.internal.UtilsException;
+import org.argeo.util.internal.StreamUtils;
 
 /** username / password based keyring. TODO internationalize */
 public abstract class AbstractKeyring implements Keyring, CryptoKeyring {
@@ -95,13 +95,13 @@ public abstract class AbstractKeyring implements Keyring, CryptoKeyring {
                                                .iterator();
                                return iterator.next();
                        } catch (LoginException e) {
-                               throw new ArgeoException("Keyring login failed", e);
+                               throw new UtilsException("Keyring login failed", e);
                        }
 
                } else {
                        SecretKey secretKey = iterator.next();
                        if (iterator.hasNext())
-                               throw new ArgeoException(
+                               throw new UtilsException(
                                                "More than one secret key in private credentials");
                        return secretKey;
                }
@@ -125,7 +125,7 @@ public abstract class AbstractKeyring implements Keyring, CryptoKeyring {
                        StreamUtils.copy(reader, writer);
                        return writer.toCharArray();
                } catch (IOException e) {
-                       throw new ArgeoException("Cannot decrypt to char array", e);
+                       throw new UtilsException("Cannot decrypt to char array", e);
                } finally {
                        StreamUtils.closeQuietly(reader);
                        StreamUtils.closeQuietly(in);
@@ -144,7 +144,7 @@ public abstract class AbstractKeyring implements Keyring, CryptoKeyring {
                        in = new ByteArrayInputStream(out.toByteArray());
                        set(path, in);
                } catch (IOException e) {
-                       throw new ArgeoException("Cannot encrypt to char array", e);
+                       throw new UtilsException("Cannot encrypt to char array", e);
                } finally {
                        StreamUtils.closeQuietly(writer);
                        StreamUtils.closeQuietly(out);
@@ -191,7 +191,7 @@ public abstract class AbstractKeyring implements Keyring, CryptoKeyring {
                        }
                        return btPass;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot hash", e);
+                       throw new UtilsException("Cannot hash", e);
                } finally {
                        StreamUtils.closeQuietly(out);
                        StreamUtils.closeQuietly(writer);
@@ -211,7 +211,7 @@ public abstract class AbstractKeyring implements Keyring, CryptoKeyring {
                        char[] password = passwordCb.getPassword();
                        return password;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot ask for a password", e);
+                       throw new UtilsException("Cannot ask for a password", e);
                }
 
        }
index 76592c8539e332f17780d2cf7792f6bfb4825f0f..b57db2c986ff1e80d6fab154d69a2a4a94b01cbc 100644 (file)
@@ -15,7 +15,7 @@ import java.nio.file.attribute.BasicFileAttributes;
 import java.security.MessageDigest;
 import java.util.zip.Checksum;
 
-import org.argeo.ArgeoException;
+import org.argeo.util.internal.UtilsException;
 
 /** Allows to fine tune how files are read. */
 public class ChecksumFactory {
@@ -91,7 +91,7 @@ public class ChecksumFactory {
                                }
                        }
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot digest " + path, e);
+                       throw new UtilsException("Cannot digest " + path, e);
                }
        }
 
@@ -124,7 +124,7 @@ public class ChecksumFactory {
                        }
                        return crc.getValue();
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot checksum " + path, e);
+                       throw new UtilsException("Cannot checksum " + path, e);
                } finally {
                        long duration = System.currentTimeMillis() - begin;
                        System.out.println(duration / 1000 + "s");
index b6aae6fd4988925b62da9d060bc9958f93d91c3e..6d46c288f6633c2456efa4f3efc3cb69d3d4ec0d 100644 (file)
@@ -24,8 +24,8 @@ import java.nio.channels.FileChannel;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 
-import org.argeo.ArgeoException;
-import org.argeo.StreamUtils;
+import org.argeo.util.internal.UtilsException;
+import org.argeo.util.internal.StreamUtils;
 
 /** Utilities around cryptographic digests */
 public class DigestUtils {
@@ -38,11 +38,10 @@ public class DigestUtils {
                        MessageDigest digest = MessageDigest.getInstance(algorithm);
                        digest.update(bytes);
                        byte[] checksum = digest.digest();
-                       String res = StreamUtils.encodeHexString(checksum);
+                       String res = encodeHexString(checksum);
                        return res;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot digest with algorithm "
-                                       + algorithm, e);
+                       throw new UtilsException("Cannot digest with algorithm " + algorithm, e);
                }
        }
 
@@ -60,11 +59,10 @@ public class DigestUtils {
                        }
 
                        byte[] checksum = digest.digest();
-                       String res = StreamUtils.encodeHexString(checksum);
+                       String res = encodeHexString(checksum);
                        return res;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot digest with algorithm "
-                                       + algorithm, e);
+                       throw new UtilsException("Cannot digest with algorithm " + algorithm, e);
                } finally {
                        StreamUtils.closeQuietly(in);
                }
@@ -82,8 +80,7 @@ public class DigestUtils {
                        ByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, sz);
                        return digest(algorithm, bb);
                } catch (IOException e) {
-                       throw new ArgeoException("Cannot digest " + file
-                                       + " with algorithm " + algorithm, e);
+                       throw new UtilsException("Cannot digest " + file + " with algorithm " + algorithm, e);
                } finally {
                        StreamUtils.closeQuietly(fis);
                        if (fc.isOpen())
@@ -101,15 +98,13 @@ public class DigestUtils {
                        MessageDigest digest = MessageDigest.getInstance(algorithm);
                        digest.update(bb);
                        byte[] checksum = digest.digest();
-                       String res = StreamUtils.encodeHexString(checksum);
+                       String res = encodeHexString(checksum);
                        long end = System.currentTimeMillis();
                        if (debug)
-                               System.out.println((end - begin) + " ms / "
-                                               + ((end - begin) / 1000) + " s");
+                               System.out.println((end - begin) + " ms / " + ((end - begin) / 1000) + " s");
                        return res;
                } catch (NoSuchAlgorithmException e) {
-                       throw new ArgeoException("Cannot digest with algorithm "
-                                       + algorithm, e);
+                       throw new UtilsException("Cannot digest with algorithm " + algorithm, e);
                }
        }
 
@@ -118,8 +113,7 @@ public class DigestUtils {
                if (args.length > 0)
                        file = new File(args[0]);
                else {
-                       System.err.println("Usage: <file> [<algorithm>]"
-                                       + " (see http://java.sun.com/j2se/1.5.0/"
+                       System.err.println("Usage: <file> [<algorithm>]" + " (see http://java.sun.com/j2se/1.5.0/"
                                        + "docs/guide/security/CryptoSpec.html#AppA)");
                        return;
                }
@@ -139,4 +133,21 @@ public class DigestUtils {
                }
        }
 
+       final private static char[] hexArray = "0123456789ABCDEF".toCharArray();
+
+       /**
+        * From
+        * http://stackoverflow.com/questions/9655181/how-to-convert-a-byte-array-to
+        * -a-hex-string-in-java
+        */
+       private static String encodeHexString(byte[] bytes) {
+               char[] hexChars = new char[bytes.length * 2];
+               for (int j = 0; j < bytes.length; j++) {
+                       int v = bytes[j] & 0xFF;
+                       hexChars[j * 2] = hexArray[v >>> 4];
+                       hexChars[j * 2 + 1] = hexArray[v & 0x0F];
+               }
+               return new String(hexChars);
+       }
+
 }
index d7866a810255992040f300373a643baf1d46b028..fcc5f8319c89204c072f97e1fe5407ab39bc5cda 100644 (file)
@@ -33,8 +33,8 @@ import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.PBEKeySpec;
 import javax.crypto.spec.SecretKeySpec;
 
-import org.argeo.ArgeoException;
-import org.argeo.StreamUtils;
+import org.argeo.util.internal.UtilsException;
+import org.argeo.util.internal.StreamUtils;
 
 /** Simple password based encryption / decryption */
 public class PasswordBasedEncryption {
@@ -92,11 +92,11 @@ public class PasswordBasedEncryption {
                        try {
                                initKeyAndCiphers(password, passwordSalt, initializationVector);
                        } catch (Exception e1) {
-                               throw new ArgeoException(
+                               throw new UtilsException(
                                                "Cannot get secret key (with restricted length)", e1);
                        }
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot get secret key", e);
+                       throw new UtilsException("Cannot get secret key", e);
                }
        }
 
@@ -139,7 +139,7 @@ public class PasswordBasedEncryption {
                } catch (IOException e) {
                        throw e;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot encrypt", e);
+                       throw new UtilsException("Cannot encrypt", e);
                } finally {
                        StreamUtils.closeQuietly(decryptedIn);
                }
@@ -154,7 +154,7 @@ public class PasswordBasedEncryption {
                } catch (IOException e) {
                        throw e;
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot decrypt", e);
+                       throw new UtilsException("Cannot decrypt", e);
                } finally {
                        StreamUtils.closeQuietly(encryptedIn);
                }
@@ -169,7 +169,7 @@ public class PasswordBasedEncryption {
                        encrypt(in, out);
                        return out.toByteArray();
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot encrypt", e);
+                       throw new UtilsException("Cannot encrypt", e);
                } finally {
                        StreamUtils.closeQuietly(out);
                }
@@ -183,7 +183,7 @@ public class PasswordBasedEncryption {
                        decrypt(in, out);
                        return new String(out.toByteArray(), DEFAULT_CHARSET);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot decrypt", e);
+                       throw new UtilsException("Cannot decrypt", e);
                } finally {
                        StreamUtils.closeQuietly(out);
                }
index 03c573e2560a2175bcceefbc8aa1e01e38563693..29b8626e16bcc581d132f9155b83b0ff443584c3 100644 (file)
@@ -17,7 +17,7 @@ package org.argeo.util.security;
 
 import java.security.Principal;
 
-import org.argeo.ArgeoException;
+import org.argeo.util.internal.UtilsException;
 
 /** Canonical implementation of a {@link Principal} */
 public class SimplePrincipal implements Principal {
@@ -25,7 +25,7 @@ public class SimplePrincipal implements Principal {
 
        public SimplePrincipal(String name) {
                if (name == null)
-                       throw new ArgeoException("Principal name cannot be null");
+                       throw new UtilsException("Principal name cannot be null");
                this.name = name;
        }