mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Adds the barely necesaries for post deployment actions for alfresco->alfresco.
Remoted Actions service. Added getRomoteActionService call to DeploymentService. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6236 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -164,4 +164,30 @@
|
||||
<value>${avm.remote.port}</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Remoting the ActionService -->
|
||||
<bean id="actionServiceTransport" class="org.alfresco.repo.action.ActionServiceTransportImpl">
|
||||
<property name="actionService">
|
||||
<ref bean="ActionService"/>
|
||||
</property>
|
||||
<property name="authenticationService">
|
||||
<ref bean="AuthenticationService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- The RMI export of the ActionService Transport -->
|
||||
<bean id="actionServiceTransportRMI" class="org.springframework.remoting.rmi.RmiServiceExporter">
|
||||
<property name="service">
|
||||
<ref bean="actionServiceTransport"/>
|
||||
</property>
|
||||
<property name="serviceInterface">
|
||||
<value>org.alfresco.service.cmr.action.ActionServiceTransport</value>
|
||||
</property>
|
||||
<property name="serviceName">
|
||||
<value>action</value>
|
||||
</property>
|
||||
<property name="registryPort">
|
||||
<value>${avm.remote.port}</value>
|
||||
</property>
|
||||
</bean>
|
||||
</beans>
|
225
source/java/org/alfresco/repo/action/ActionServiceRemote.java
Normal file
225
source/java/org/alfresco/repo/action/ActionServiceRemote.java
Normal file
@@ -0,0 +1,225 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2007 Alfresco Software Limited.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
* As a special exception to the terms and conditions of version 2.0 of
|
||||
* the GPL, you may redistribute this Program in connection with Free/Libre
|
||||
* and Open Source Software ("FLOSS") applications as described in Alfresco's
|
||||
* FLOSS exception. You should have recieved a copy of the text describing
|
||||
* the FLOSS exception, and it is also available here:
|
||||
* http://www.alfresco.com/legal/licensing
|
||||
*/
|
||||
|
||||
package org.alfresco.repo.action;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.repo.remote.ClientTicketHolder;
|
||||
import org.alfresco.service.cmr.action.Action;
|
||||
import org.alfresco.service.cmr.action.ActionCondition;
|
||||
import org.alfresco.service.cmr.action.ActionConditionDefinition;
|
||||
import org.alfresco.service.cmr.action.ActionDefinition;
|
||||
import org.alfresco.service.cmr.action.ActionService;
|
||||
import org.alfresco.service.cmr.action.ActionServiceTransport;
|
||||
import org.alfresco.service.cmr.action.CompositeAction;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
|
||||
/**
|
||||
* Client side implementation of ActionService for remote access.
|
||||
* @author britt
|
||||
*/
|
||||
public class ActionServiceRemote implements ActionService
|
||||
{
|
||||
private ClientTicketHolder fHolder;
|
||||
|
||||
private ActionServiceTransport fTransport;
|
||||
|
||||
public void setClientTicketHolder(ClientTicketHolder holder)
|
||||
{
|
||||
fHolder = holder;
|
||||
}
|
||||
|
||||
public void setActionServiceTransport(ActionServiceTransport transport)
|
||||
{
|
||||
fTransport = transport;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#createAction(java.lang.String)
|
||||
*/
|
||||
public Action createAction(String name)
|
||||
{
|
||||
return fTransport.createAction(fHolder.getTicket(), name);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#createAction(java.lang.String, java.util.Map)
|
||||
*/
|
||||
public Action createAction(String name, Map<String, Serializable> params)
|
||||
{
|
||||
return fTransport.createAction(fHolder.getTicket(), name, params);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#createActionCondition(java.lang.String)
|
||||
*/
|
||||
public ActionCondition createActionCondition(String name)
|
||||
{
|
||||
return fTransport.createActionCondition(fHolder.getTicket(), name);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#createActionCondition(java.lang.String, java.util.Map)
|
||||
*/
|
||||
public ActionCondition createActionCondition(String name,
|
||||
Map<String, Serializable> params)
|
||||
{
|
||||
return fTransport.createActionCondition(fHolder.getTicket(), name, params);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#createCompositeAction()
|
||||
*/
|
||||
public CompositeAction createCompositeAction()
|
||||
{
|
||||
return fTransport.createCompositeAction(fHolder.getTicket());
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#evaluateAction(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public boolean evaluateAction(Action action, NodeRef actionedUponNodeRef)
|
||||
{
|
||||
return fTransport.evaluateAction(fHolder.getTicket(), action, actionedUponNodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#evaluateActionCondition(org.alfresco.service.cmr.action.ActionCondition, org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public boolean evaluateActionCondition(ActionCondition condition,
|
||||
NodeRef actionedUponNodeRef)
|
||||
{
|
||||
return fTransport.evaluateActionCondition(fHolder.getTicket(), condition, actionedUponNodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#executeAction(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public void executeAction(Action action, NodeRef actionedUponNodeRef)
|
||||
{
|
||||
fTransport.executeAction(fHolder.getTicket(), action, actionedUponNodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#executeAction(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef, boolean)
|
||||
*/
|
||||
public void executeAction(Action action, NodeRef actionedUponNodeRef,
|
||||
boolean checkConditions)
|
||||
{
|
||||
fTransport.executeAction(fHolder.getTicket(), action, actionedUponNodeRef, checkConditions);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#executeAction(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef, boolean, boolean)
|
||||
*/
|
||||
public void executeAction(Action action, NodeRef actionedUponNodeRef,
|
||||
boolean checkConditions, boolean executeAsynchronously)
|
||||
{
|
||||
fTransport.executeAction(fHolder.getTicket(), action, actionedUponNodeRef, checkConditions);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#getAction(org.alfresco.service.cmr.repository.NodeRef, java.lang.String)
|
||||
*/
|
||||
public Action getAction(NodeRef nodeRef, String actionId)
|
||||
{
|
||||
return fTransport.getAction(fHolder.getTicket(), nodeRef, actionId);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#getActionConditionDefinition(java.lang.String)
|
||||
*/
|
||||
public ActionConditionDefinition getActionConditionDefinition(String name)
|
||||
{
|
||||
return fTransport.getActionConditionDefinition(fHolder.getTicket(), name);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#getActionConditionDefinitions()
|
||||
*/
|
||||
public List<ActionConditionDefinition> getActionConditionDefinitions()
|
||||
{
|
||||
return fTransport.getActionConditionDefinitions(fHolder.getTicket());
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#getActionDefinition(java.lang.String)
|
||||
*/
|
||||
public ActionDefinition getActionDefinition(String name)
|
||||
{
|
||||
return fTransport.getActionDefinition(fHolder.getTicket(), name);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#getActionDefinitions()
|
||||
*/
|
||||
public List<ActionDefinition> getActionDefinitions()
|
||||
{
|
||||
return fTransport.getActionDefinitions(fHolder.getTicket());
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#getActionDefinitions(org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public List<ActionDefinition> getActionDefinitions(NodeRef nodeRef)
|
||||
{
|
||||
return fTransport.getActionDefinitions(fHolder.getTicket(), nodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#getActions(org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public List<Action> getActions(NodeRef nodeRef)
|
||||
{
|
||||
return fTransport.getActions(fHolder.getTicket(), nodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#removeAction(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.action.Action)
|
||||
*/
|
||||
public void removeAction(NodeRef nodeRef, Action action)
|
||||
{
|
||||
fTransport.removeAction(fHolder.getTicket(), nodeRef, action);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#removeAllActions(org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public void removeAllActions(NodeRef nodeRef)
|
||||
{
|
||||
fTransport.removeAllActions(fHolder.getTicket(), nodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionService#saveAction(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.action.Action)
|
||||
*/
|
||||
public void saveAction(NodeRef nodeRef, Action action)
|
||||
{
|
||||
fTransport.saveAction(fHolder.getTicket(), nodeRef, action);
|
||||
}
|
||||
}
|
@@ -0,0 +1,252 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2007 Alfresco Software Limited.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
* As a special exception to the terms and conditions of version 2.0 of
|
||||
* the GPL, you may redistribute this Program in connection with Free/Libre
|
||||
* and Open Source Software ("FLOSS") applications as described in Alfresco's
|
||||
* FLOSS exception. You should have recieved a copy of the text describing
|
||||
* the FLOSS exception, and it is also available here:
|
||||
* http://www.alfresco.com/legal/licensing
|
||||
*/
|
||||
|
||||
package org.alfresco.repo.action;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.service.cmr.action.Action;
|
||||
import org.alfresco.service.cmr.action.ActionCondition;
|
||||
import org.alfresco.service.cmr.action.ActionConditionDefinition;
|
||||
import org.alfresco.service.cmr.action.ActionDefinition;
|
||||
import org.alfresco.service.cmr.action.ActionService;
|
||||
import org.alfresco.service.cmr.action.ActionServiceTransport;
|
||||
import org.alfresco.service.cmr.action.CompositeAction;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.security.AuthenticationService;
|
||||
|
||||
/**
|
||||
* Server side implementation for transport of ActionService.
|
||||
* @author britt
|
||||
*/
|
||||
public class ActionServiceTransportImpl implements ActionServiceTransport
|
||||
{
|
||||
private ActionService fActionService;
|
||||
|
||||
private AuthenticationService fAuthenticationService;
|
||||
|
||||
public void setActionService(ActionService service)
|
||||
{
|
||||
fActionService = service;
|
||||
}
|
||||
|
||||
public void setAuthenticationService(AuthenticationService service)
|
||||
{
|
||||
fAuthenticationService = service;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#createAction(java.lang.String, java.lang.String)
|
||||
*/
|
||||
public Action createAction(String ticket, String name)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.createAction(name);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#createAction(java.lang.String, java.lang.String, java.util.Map)
|
||||
*/
|
||||
public Action createAction(String ticket, String name,
|
||||
Map<String, Serializable> params)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.createAction(name, params);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#createActionCondition(java.lang.String, java.lang.String)
|
||||
*/
|
||||
public ActionCondition createActionCondition(String ticket, String name)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.createActionCondition(name);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#createActionCondition(java.lang.String, java.lang.String, java.util.Map)
|
||||
*/
|
||||
public ActionCondition createActionCondition(String ticket, String name,
|
||||
Map<String, Serializable> params)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.createActionCondition(name, params);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#createCompositeAction(java.lang.String)
|
||||
*/
|
||||
public CompositeAction createCompositeAction(String ticket)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.createCompositeAction();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#evaluateAction(java.lang.String, org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public boolean evaluateAction(String ticket, Action action,
|
||||
NodeRef actionedUponNodeRef)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.evaluateAction(action, actionedUponNodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#evaluateActionCondition(java.lang.String, org.alfresco.service.cmr.action.ActionCondition, org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public boolean evaluateActionCondition(String ticket,
|
||||
ActionCondition condition, NodeRef actionedUponNodeRef)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.evaluateActionCondition(condition, actionedUponNodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#executeAction(java.lang.String, org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public void executeAction(String ticket, Action action,
|
||||
NodeRef actionedUponNodeRef)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
fActionService.executeAction(action, actionedUponNodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#executeAction(java.lang.String, org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef, boolean)
|
||||
*/
|
||||
public void executeAction(String ticket, Action action,
|
||||
NodeRef actionedUponNodeRef, boolean checkConditions)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
fActionService.executeAction(action, actionedUponNodeRef, checkConditions);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#executeAction(java.lang.String, org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef, boolean, boolean)
|
||||
*/
|
||||
public void executeAction(String ticket, Action action,
|
||||
NodeRef actionedUponNodeRef, boolean checkConditions,
|
||||
boolean executeAsynchronously)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
fActionService.executeAction(action, actionedUponNodeRef, checkConditions, executeAsynchronously);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#getAction(java.lang.String, org.alfresco.service.cmr.repository.NodeRef, java.lang.String)
|
||||
*/
|
||||
public Action getAction(String ticket, NodeRef nodeRef, String actionId)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.getAction(nodeRef, actionId);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#getActionConditionDefinition(java.lang.String, java.lang.String)
|
||||
*/
|
||||
public ActionConditionDefinition getActionConditionDefinition(
|
||||
String ticket, String name)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.getActionConditionDefinition(name);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#getActionConditionDefinitions(java.lang.String)
|
||||
*/
|
||||
public List<ActionConditionDefinition> getActionConditionDefinitions(
|
||||
String ticket)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.getActionConditionDefinitions();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#getActionDefinition(java.lang.String, java.lang.String)
|
||||
*/
|
||||
public ActionDefinition getActionDefinition(String ticket, String name)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.getActionDefinition(name);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#getActionDefinitions(java.lang.String)
|
||||
*/
|
||||
public List<ActionDefinition> getActionDefinitions(String ticket)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.getActionDefinitions();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#getActionDefinitions(java.lang.String, org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public List<ActionDefinition> getActionDefinitions(String ticket,
|
||||
NodeRef nodeRef)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.getActionDefinitions(nodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#getActions(java.lang.String, org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public List<Action> getActions(String ticket, NodeRef nodeRef)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
return fActionService.getActions(nodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#removeAction(java.lang.String, org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.action.Action)
|
||||
*/
|
||||
public void removeAction(String ticket, NodeRef nodeRef, Action action)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
fActionService.removeAction(nodeRef, action);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#removeAllActions(java.lang.String, org.alfresco.service.cmr.repository.NodeRef)
|
||||
*/
|
||||
public void removeAllActions(String ticket, NodeRef nodeRef)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
fActionService.removeAllActions(nodeRef);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.action.ActionServiceTransport#saveAction(java.lang.String, org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.action.Action)
|
||||
*/
|
||||
public void saveAction(String ticket, NodeRef nodeRef, Action action)
|
||||
{
|
||||
fAuthenticationService.validate(ticket);
|
||||
fActionService.saveAction(nodeRef, action);
|
||||
}
|
||||
}
|
@@ -26,7 +26,6 @@ package org.alfresco.repo.avm;
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -36,6 +35,7 @@ import org.alfresco.repo.domain.PropertyValue;
|
||||
import org.alfresco.service.cmr.avm.AVMReadOnlyException;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.util.GUID;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
* Base class for all repository file system like objects.
|
||||
@@ -43,6 +43,8 @@ import org.alfresco.util.GUID;
|
||||
*/
|
||||
public abstract class AVMNodeImpl implements AVMNode, Serializable
|
||||
{
|
||||
private static Logger fgLogger = Logger.getLogger(AVMNodeImpl.class);
|
||||
|
||||
protected static final boolean DEBUG = true;
|
||||
|
||||
/**
|
||||
|
@@ -57,6 +57,8 @@ import org.alfresco.repo.search.impl.lucene.AVMLuceneIndexer;
|
||||
import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||
import org.alfresco.service.cmr.action.Action;
|
||||
import org.alfresco.service.cmr.action.ActionService;
|
||||
import org.alfresco.service.cmr.avm.AVMBadArgumentException;
|
||||
import org.alfresco.service.cmr.avm.AVMCycleException;
|
||||
import org.alfresco.service.cmr.avm.AVMException;
|
||||
@@ -490,12 +492,20 @@ public class AVMServiceTest extends AVMServiceTestBase
|
||||
assertNull(fService.lookup(-1, "target:/a/b/snarl.bak"));
|
||||
runQueriesAgainstBasicTreeWithAOnly("target");
|
||||
System.out.println(report);
|
||||
ActionService actionService = depService.getRemoteActionService("localhost", 50500, "admin", "admin");
|
||||
Map<String, Serializable> params = new HashMap<String, Serializable>();
|
||||
params.put("property", ContentModel.PROP_ADDRESSEE);
|
||||
params.put("value", "Santa Claus");
|
||||
assertEquals(fService.lookup(-1, "main:/a/b/c/foo").getGuid(), fService.lookup(-1, "target:/a/b/c/foo")
|
||||
.getGuid());
|
||||
assertEquals(fService.lookup(-1, "main:/a/b/c/bar").getGuid(), fService.lookup(-1, "target:/a/b/c/bar")
|
||||
.getGuid());
|
||||
ContentData srcCD = fService.getContentDataForRead(-1, "main:/a/b/c/foo");
|
||||
ContentData dstCD = fService.getContentDataForRead(-1, "target:/a/b/c/foo");
|
||||
NodeRef nodeRef = AVMNodeConverter.ToNodeRef(-1, "target:/a/b/c/foo");
|
||||
Action action = new ActionImpl(nodeRef, "set-property-value", "set-property-value", params);
|
||||
actionService.executeAction(action, nodeRef, false, false);
|
||||
assertEquals("Santa Claus", fService.getNodeProperty(-1, "target:/a/b/c/foo", ContentModel.PROP_ADDRESSEE).getStringValue());
|
||||
ContentData srcCD = fService.getContentDataForRead(-1, "main:/a/b/c/bar");
|
||||
ContentData dstCD = fService.getContentDataForRead(-1, "target:/a/b/c/bar");
|
||||
assertEquals(srcCD.getMimetype(), dstCD.getMimetype());
|
||||
fService.createFile("main:/a/b", "biz").close();
|
||||
report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", matcher,
|
||||
|
@@ -39,12 +39,15 @@ import org.alfresco.deployment.DeploymentReceiverTransport;
|
||||
import org.alfresco.deployment.FileDescriptor;
|
||||
import org.alfresco.deployment.FileType;
|
||||
import org.alfresco.deployment.impl.client.DeploymentReceiverServiceClient;
|
||||
import org.alfresco.repo.action.ActionServiceRemote;
|
||||
import org.alfresco.repo.avm.AVMNodeConverter;
|
||||
import org.alfresco.repo.avm.util.SimplePath;
|
||||
import org.alfresco.repo.domain.PropertyValue;
|
||||
import org.alfresco.repo.remote.AVMRemoteImpl;
|
||||
import org.alfresco.repo.remote.ClientTicketHolder;
|
||||
import org.alfresco.repo.remote.ClientTicketHolderThread;
|
||||
import org.alfresco.service.cmr.action.ActionService;
|
||||
import org.alfresco.service.cmr.action.ActionServiceTransport;
|
||||
import org.alfresco.service.cmr.avm.AVMException;
|
||||
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
|
||||
import org.alfresco.service.cmr.avm.AVMNotFoundException;
|
||||
@@ -556,6 +559,39 @@ public class DeploymentServiceImpl implements DeploymentService
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.service.cmr.avm.deploy.DeploymentService#getRemoteActionService(java.lang.String, int, java.lang.String, java.lang.String)
|
||||
*/
|
||||
public ActionService getRemoteActionService(String hostName, int port, String userName, String password)
|
||||
{
|
||||
try
|
||||
{
|
||||
RmiProxyFactoryBean authFactory = new RmiProxyFactoryBean();
|
||||
authFactory.setRefreshStubOnConnectFailure(true);
|
||||
authFactory.setServiceInterface(AuthenticationService.class);
|
||||
authFactory.setServiceUrl("rmi://" + hostName + ":" + port + "/authentication");
|
||||
authFactory.afterPropertiesSet();
|
||||
AuthenticationService authService = (AuthenticationService)authFactory.getObject();
|
||||
authService.authenticate(userName, password.toCharArray());
|
||||
String ticket = authService.getCurrentTicket();
|
||||
fTicketHolder.setTicket(ticket);
|
||||
RmiProxyFactoryBean remoteFactory = new RmiProxyFactoryBean();
|
||||
remoteFactory.setRefreshStubOnConnectFailure(true);
|
||||
remoteFactory.setServiceInterface(ActionServiceTransport.class);
|
||||
remoteFactory.setServiceUrl("rmi://" + hostName + ":" + port + "/action");
|
||||
remoteFactory.afterPropertiesSet();
|
||||
ActionServiceTransport transport = (ActionServiceTransport)remoteFactory.getObject();
|
||||
ActionServiceRemote remote = new ActionServiceRemote();
|
||||
remote.setActionServiceTransport(transport);
|
||||
remote.setClientTicketHolder(fTicketHolder);
|
||||
return remote;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new AVMException("Could not Initialize Remote Connection to " + hostName, e);
|
||||
}
|
||||
}
|
||||
|
||||
private DeploymentReceiverService getReceiver(String hostName, int port)
|
||||
{
|
||||
try
|
||||
|
@@ -0,0 +1,232 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2007 Alfresco Software Limited.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
* As a special exception to the terms and conditions of version 2.0 of
|
||||
* the GPL, you may redistribute this Program in connection with Free/Libre
|
||||
* and Open Source Software ("FLOSS") applications as described in Alfresco's
|
||||
* FLOSS exception. You should have recieved a copy of the text describing
|
||||
* the FLOSS exception, and it is also available here:
|
||||
* http://www.alfresco.com/legal/licensing
|
||||
*/
|
||||
|
||||
package org.alfresco.service.cmr.action;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.service.Auditable;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
|
||||
/**
|
||||
* This is the interface for over the transport of ActionService.
|
||||
* It's job is to tunnel an authentication token for each call.
|
||||
* @author britt
|
||||
*/
|
||||
public interface ActionServiceTransport
|
||||
{
|
||||
/**
|
||||
* Get a named action definition
|
||||
*
|
||||
* @param name the name of the action definition
|
||||
* @return the action definition
|
||||
*/
|
||||
ActionDefinition getActionDefinition(String ticket, String name);
|
||||
|
||||
/**
|
||||
* Get all the action definitions
|
||||
*
|
||||
* @return the list action definitions
|
||||
*/
|
||||
List<ActionDefinition> getActionDefinitions(String ticket);
|
||||
|
||||
/**
|
||||
* Get all the action definitions that are applicable for the given node, based on
|
||||
* its type and aspects.
|
||||
*
|
||||
* @param nodeRef the node reference
|
||||
* @return a list of applicable action definitions
|
||||
*/
|
||||
List<ActionDefinition> getActionDefinitions(String ticket, NodeRef nodeRef);
|
||||
|
||||
/**
|
||||
* Get a named action condition definition
|
||||
*
|
||||
* @param name the name of the action condition definition
|
||||
* @return the action condition definition
|
||||
*/
|
||||
ActionConditionDefinition getActionConditionDefinition(String ticket, String name);
|
||||
|
||||
/**
|
||||
* Get all the action condition definitions
|
||||
*
|
||||
* @return the list of aciton condition definitions
|
||||
*/
|
||||
List<ActionConditionDefinition> getActionConditionDefinitions(String ticket);
|
||||
|
||||
/**
|
||||
* Create a new action
|
||||
*
|
||||
* @param name the action definition name
|
||||
* @return the action
|
||||
*/
|
||||
Action createAction(String ticket, String name);
|
||||
|
||||
/**
|
||||
* Create a new action specifying the initial set of parameter values
|
||||
*
|
||||
* @param name the action definition name
|
||||
* @param params the parameter values
|
||||
* @return the action
|
||||
*/
|
||||
Action createAction(String ticket, String name, Map<String, Serializable> params);
|
||||
|
||||
/**
|
||||
* Create a composite action
|
||||
*
|
||||
* @return the composite action
|
||||
*/
|
||||
CompositeAction createCompositeAction(String ticket);
|
||||
|
||||
/**
|
||||
* Create an action condition
|
||||
*
|
||||
* @param name the action condition definition name
|
||||
* @return the action condition
|
||||
*/
|
||||
ActionCondition createActionCondition(String ticket, String name);
|
||||
|
||||
/**
|
||||
* Create an action condition specifying the initial set of parameter values
|
||||
*
|
||||
* @param name the action condition definition name
|
||||
* @param params the parameter values
|
||||
* @return the action condition
|
||||
*/
|
||||
ActionCondition createActionCondition(String ticket, String name, Map<String, Serializable> params);
|
||||
|
||||
/**
|
||||
* The actions conditions are always checked.
|
||||
*
|
||||
* @see ActionService#executeAction(Action, NodeRef, boolean)
|
||||
*
|
||||
* @param action the action
|
||||
* @param actionedUponNodeRef the actioned upon node reference
|
||||
*/
|
||||
void executeAction(String ticket, Action action, NodeRef actionedUponNodeRef);
|
||||
|
||||
/**
|
||||
* The action is executed based on the asynchronous attribute of the action.
|
||||
*
|
||||
* @see ActionService#executeAction(Action, NodeRef, boolean, boolean)
|
||||
*
|
||||
* @param action the action
|
||||
* @param actionedUponNodeRef the actioned upon node reference
|
||||
* @param checkConditions indicates whether the conditions should be checked
|
||||
*/
|
||||
void executeAction(String ticket, Action action, NodeRef actionedUponNodeRef, boolean checkConditions);
|
||||
|
||||
/**
|
||||
* Executes the specified action upon the node reference provided.
|
||||
* <p>
|
||||
* If specified that the conditions should be checked then any conditions
|
||||
* set on the action are evaluated.
|
||||
* <p>
|
||||
* If the conditions fail then the action is not executed.
|
||||
* <p>
|
||||
* If an action has no conditions then the action will always be executed.
|
||||
* <p>
|
||||
* If the conditions are not checked then the action will always be executed.
|
||||
*
|
||||
* @param action the action
|
||||
* @param actionedUponNodeRef the actioned upon node reference
|
||||
* @param checkConditions indicates whether the conditions should be checked before
|
||||
* executing the action
|
||||
* @param executeAsynchronously indicates whether the action should be executed asychronously or not, this value overrides
|
||||
* the value set on the action its self
|
||||
*/
|
||||
void executeAction(String ticket, Action action, NodeRef actionedUponNodeRef, boolean checkConditions, boolean executeAsynchronously);
|
||||
|
||||
/**
|
||||
* Evaluted the conditions set on an action.
|
||||
* <p>
|
||||
* Returns true if the action has no conditions.
|
||||
* <p>
|
||||
* If the action has more than one condition their results are combined using the 'AND'
|
||||
* logical operator.
|
||||
*
|
||||
* @param action the action
|
||||
* @param actionedUponNodeRef the actioned upon node reference
|
||||
* @return true if the condition succeeds, false otherwise
|
||||
*/
|
||||
boolean evaluateAction(String ticket, Action action, NodeRef actionedUponNodeRef);
|
||||
|
||||
/**
|
||||
* Evaluate an action condition.
|
||||
*
|
||||
* @param condition the action condition
|
||||
* @param actionedUponNodeRef the actioned upon node reference
|
||||
* @return true if the condition succeeds, false otherwise
|
||||
*/
|
||||
boolean evaluateActionCondition(String ticket, ActionCondition condition, NodeRef actionedUponNodeRef);
|
||||
|
||||
/**
|
||||
* Save an action against a node reference.
|
||||
* <p>
|
||||
* The node will be made configurable if it is not already.
|
||||
* <p>
|
||||
* If the action already exists then its details will be updated.
|
||||
*
|
||||
* @param nodeRef the node reference
|
||||
* @param action the action
|
||||
*/
|
||||
void saveAction(String ticket, NodeRef nodeRef, Action action);
|
||||
|
||||
/**
|
||||
* Gets all the actions currently saved on the given node reference.
|
||||
*
|
||||
* @param nodeRef the node reference
|
||||
* @return the list of actions
|
||||
*/
|
||||
List<Action> getActions(String ticket, NodeRef nodeRef);
|
||||
|
||||
/**
|
||||
* Gets an action stored against a given node reference.
|
||||
* <p>
|
||||
* Returns null if the action can not be found.
|
||||
*
|
||||
* @param nodeRef the node reference
|
||||
* @param actionId the action id
|
||||
* @return the action
|
||||
*/
|
||||
Action getAction(String ticket, NodeRef nodeRef, String actionId);
|
||||
|
||||
/**
|
||||
* Removes an action associated with a node reference.
|
||||
*
|
||||
* @param nodeRef the node reference
|
||||
* @param action the action
|
||||
*/
|
||||
void removeAction(String ticket, NodeRef nodeRef, Action action);
|
||||
|
||||
/**
|
||||
* Removes all actions associated with a node reference
|
||||
*
|
||||
* @param nodeRef the node reference
|
||||
*/
|
||||
void removeAllActions(String ticket, NodeRef nodeRef);
|
||||
}
|
@@ -3,6 +3,7 @@
|
||||
*/
|
||||
package org.alfresco.service.cmr.avm.deploy;
|
||||
|
||||
import org.alfresco.service.cmr.action.ActionService;
|
||||
import org.alfresco.util.NameMatcher;
|
||||
|
||||
/**
|
||||
@@ -35,6 +36,17 @@ public interface DeploymentService
|
||||
boolean dontDelete,
|
||||
boolean dontDo,
|
||||
DeploymentCallback callback);
|
||||
|
||||
/**
|
||||
* Get A reference to an ActionService instance on a remote Alfresco Server.
|
||||
* @param hostName
|
||||
* @param port
|
||||
* @param userName
|
||||
* @param password
|
||||
* @return
|
||||
*/
|
||||
public ActionService getRemoteActionService(String hostName, int port,
|
||||
String userName, String password);
|
||||
|
||||
/**
|
||||
* Deploy to a filesystem on another machine.
|
||||
|
Reference in New Issue
Block a user