X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui.workbench%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Fworkbench%2Finternal%2Fuseradmin%2Fcommands%2FUserTransactionHandler.java;fp=org.argeo.cms.ui.workbench%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Fworkbench%2Finternal%2Fuseradmin%2Fcommands%2FUserTransactionHandler.java;h=0000000000000000000000000000000000000000;hb=0f2684acd8274f302020a5d2628c4e5d3cc84500;hp=69fd0711a3fd3a8f063eb7e22b3fb9dd8982ffcb;hpb=5b444174cd13680f99944026877f6cac2e1faba1;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/commands/UserTransactionHandler.java b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/commands/UserTransactionHandler.java deleted file mode 100644 index 69fd0711a..000000000 --- a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/useradmin/commands/UserTransactionHandler.java +++ /dev/null @@ -1,93 +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.cms.ui.workbench.internal.useradmin.commands; - -import javax.transaction.Status; -import javax.transaction.UserTransaction; - -import org.argeo.cms.CmsException; -import org.argeo.cms.ui.workbench.WorkbenchUiPlugin; -import org.argeo.cms.ui.workbench.internal.useradmin.UiAdminUtils; -import org.argeo.cms.ui.workbench.internal.useradmin.UserAdminWrapper; -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.osgi.service.useradmin.UserAdminEvent; - -/** Manage the transaction that is bound to the current perspective */ -public class UserTransactionHandler extends AbstractHandler { - public final static String ID = WorkbenchUiPlugin.PLUGIN_ID - + ".userTransactionHandler"; - - public final static String PARAM_COMMAND_ID = "param.commandId"; - - public final static String TRANSACTION_BEGIN = "transaction.begin"; - public final static String TRANSACTION_COMMIT = "transaction.commit"; - public final static String TRANSACTION_ROLLBACK = "transaction.rollback"; - - /* DEPENDENCY INJECTION */ - private UserAdminWrapper userAdminWrapper; - - public Object execute(ExecutionEvent event) throws ExecutionException { - String commandId = event.getParameter(PARAM_COMMAND_ID); - final UserTransaction userTransaction = userAdminWrapper - .getUserTransaction(); - try { - if (TRANSACTION_BEGIN.equals(commandId)) { - if (userTransaction.getStatus() != Status.STATUS_NO_TRANSACTION) - 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 CmsException("No transaction."); - else - userTransaction.commit(); - } else if (TRANSACTION_ROLLBACK.equals(commandId)) { - if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION) - throw new CmsException("No transaction to rollback."); - else { - userTransaction.rollback(); - userAdminWrapper.notifyListeners(new UserAdminEvent(null, - UserAdminEvent.ROLE_CHANGED, null)); - } - } - - UiAdminUtils.notifyTransactionStateChange(userTransaction); - // Try to remove invalid thread access errors when managing users. - // HandlerUtil.getActivePart(event).getSite().getShell().getDisplay() - // .asyncExec(new Runnable() { - // @Override - // public void run() { - // UiAdminUtils - // .notifyTransactionStateChange(userTransaction); - // } - // }); - - } catch (CmsException e) { - throw e; - } catch (Exception e) { - throw new CmsException("Unable to call " + commandId + " on " - + userTransaction, e); - } - return null; - } - - /* DEPENDENCY INJECTION */ - public void setUserAdminWrapper(UserAdminWrapper userAdminWrapper) { - this.userAdminWrapper = userAdminWrapper; - } -}