Yet another merge from head to WCM-DEV2.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3774 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Britt Park
2006-09-12 18:55:07 +00:00
parent e459c188f6
commit 39a18df7f2
65 changed files with 11344 additions and 8063 deletions

View File

@@ -1,275 +1,283 @@
/*
* Copyright (C) 2005 Alfresco, Inc.
*
* Licensed under the Mozilla Public License version 1.1
* with a permitted attribution clause. You may obtain a
* copy of the License at
*
* http://www.alfresco.org/legal/license.txt
*
* 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.alfresco.service;
import java.util.Collection;
import org.alfresco.service.cmr.action.ActionService;
import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.coci.CheckOutCheckInService;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.lock.LockService;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.repository.ContentService;
import org.alfresco.service.cmr.repository.CopyService;
import org.alfresco.service.cmr.repository.MimetypeService;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.ScriptService;
import org.alfresco.service.cmr.repository.TemplateService;
import org.alfresco.service.cmr.rule.RuleService;
import org.alfresco.service.cmr.search.CategoryService;
import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.cmr.security.AuthorityService;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.version.VersionService;
import org.alfresco.service.cmr.view.ExporterService;
import org.alfresco.service.cmr.view.ImporterService;
import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.descriptor.DescriptorService;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
/**
* This interface represents the registry of public Repository Services.
* The registry provides meta-data about each service and provides
* access to the service interface.
*
* @author David Caruana
*/
@PublicService
public interface ServiceRegistry
{
// Service Bean Names
static final String SERVICE_REGISTRY = "ServiceRegistry";
static final QName REGISTRY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ServiceRegistry");
static final QName DESCRIPTOR_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "DescriptorService");
static final QName TRANSACTION_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "TransactionService");
static final QName AUTHENTICATION_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "AuthenticationService");
static final QName NAMESPACE_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "NamespaceService");
static final QName DICTIONARY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "DictionaryService");
static final QName NODE_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "NodeService");
static final QName CONTENT_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ContentService");
static final QName MIMETYPE_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "MimetypeService");
static final QName SEARCH_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "SearchService");
static final QName CATEGORY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "CategoryService");
static final QName COPY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "CopyService");
static final QName LOCK_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "LockService");
static final QName VERSION_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "VersionService");
static final QName COCI_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "CheckoutCheckinService");
static final QName RULE_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "RuleService");
static final QName IMPORTER_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ImporterService");
static final QName EXPORTER_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ExporterService");
static final QName ACTION_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ActionService");
static final QName PERMISSIONS_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "PermissionService");
static final QName AUTHORITY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "AuthorityService");
static final QName TEMPLATE_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "TemplateService");
static final QName FILE_FOLDER_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "FileFolderService");
static final QName SCRIPT_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ScriptService");
static final QName WORKFLOW_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "WorkflowService");
static final QName AVM_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "AVMService");
/**
* Get the list of services provided by the Repository
*
* @return list of provided Services
*/
@NotAuditable
Collection<QName> getServices();
/**
* Is the specified service provided by the Repository?
*
* @param service name of service to test provision of
* @return true => provided, false => not provided
*/
@NotAuditable
boolean isServiceProvided(QName service);
/**
* Get meta-data about the specified service
*
* @param service name of service to retrieve meta data for
* @return the service meta data
*/
@NotAuditable
ServiceDescriptor getServiceDescriptor(QName service);
/**
* Get the specified service.
*
* @param service name of service to retrieve
* @return the service interface (must cast to interface as described in service meta-data)
*/
@NotAuditable
Object getService(QName service);
/**
* @return the descriptor service
*/
@NotAuditable
DescriptorService getDescriptorService();
/**
* @return the transaction service
*/
@NotAuditable
TransactionService getTransactionService();
/**
* @return the namespace service (or null, if one is not provided)
*/
@NotAuditable
NamespaceService getNamespaceService();
/**
* @return the authentication service (or null, if one is not provided)
*/
@NotAuditable
AuthenticationService getAuthenticationService();
/**
* @return the node service (or null, if one is not provided)
*/
@NotAuditable
NodeService getNodeService();
/**
* @return the content service (or null, if one is not provided)
*/
@NotAuditable
ContentService getContentService();
/**
* @return the mimetype service (or null, if one is not provided)
*/
@NotAuditable
MimetypeService getMimetypeService();
/**
* @return the search service (or null, if one is not provided)
*/
@NotAuditable
SearchService getSearchService();
/**
* @return the version service (or null, if one is not provided)
*/
@NotAuditable
VersionService getVersionService();
/**
* @return the lock service (or null, if one is not provided)
*/
@NotAuditable
LockService getLockService();
/**
* @return the dictionary service (or null, if one is not provided)
*/
@NotAuditable
DictionaryService getDictionaryService();
/**
* @return the copy service (or null, if one is not provided)
*/
@NotAuditable
CopyService getCopyService();
/**
* @return the checkout / checkin service (or null, if one is not provided)
*/
@NotAuditable
CheckOutCheckInService getCheckOutCheckInService();
/**
* @return the category service (or null, if one is not provided)
*/
@NotAuditable
CategoryService getCategoryService();
/**
* @return the importer service or null if not present
*/
@NotAuditable
ImporterService getImporterService();
/**
* @return the exporter service or null if not present
*/
@NotAuditable
ExporterService getExporterService();
/**
* @return the rule service (or null, if one is not provided)
*/
@NotAuditable
RuleService getRuleService();
/**
* @return the action service (or null if one is not provided)
*/
@NotAuditable
ActionService getActionService();
/**
* @return the permission service (or null if one is not provided)
*/
@NotAuditable
PermissionService getPermissionService();
/**
* @return the authority service (or null if one is not provided)
*/
@NotAuditable
AuthorityService getAuthorityService();
/**
* @return the template service (or null if one is not provided)
*/
@NotAuditable
TemplateService getTemplateService();
/**
* @return the file-folder manipulation service (or null if one is not provided)
*/
@NotAuditable
FileFolderService getFileFolderService();
/**
* @return the script execution service (or null if one is not provided)
*/
@NotAuditable
ScriptService getScriptService();
/**
* @return the workflow service (or null if one is not provided)
*/
@NotAuditable
WorkflowService getWorkflowService();
/**
* Get the AVMService.
* @return The AVM service (or null if one is not provided);
*/
@NotAuditable
AVMService getAVMService();
}
/*
* Copyright (C) 2005 Alfresco, Inc.
*
* Licensed under the Mozilla Public License version 1.1
* with a permitted attribution clause. You may obtain a
* copy of the License at
*
* http://www.alfresco.org/legal/license.txt
*
* 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.alfresco.service;
import java.util.Collection;
import org.alfresco.service.cmr.action.ActionService;
import org.alfresco.service.cmr.audit.AuditService;
import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.coci.CheckOutCheckInService;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.lock.LockService;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.service.cmr.repository.ContentService;
import org.alfresco.service.cmr.repository.CopyService;
import org.alfresco.service.cmr.repository.MimetypeService;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.ScriptService;
import org.alfresco.service.cmr.repository.TemplateService;
import org.alfresco.service.cmr.rule.RuleService;
import org.alfresco.service.cmr.search.CategoryService;
import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.cmr.security.AuthorityService;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.version.VersionService;
import org.alfresco.service.cmr.view.ExporterService;
import org.alfresco.service.cmr.view.ImporterService;
import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.descriptor.DescriptorService;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
/**
* This interface represents the registry of public Repository Services.
* The registry provides meta-data about each service and provides
* access to the service interface.
*
* @author David Caruana
*/
@PublicService
public interface ServiceRegistry
{
// Service Bean Names
static final String SERVICE_REGISTRY = "ServiceRegistry";
static final QName REGISTRY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ServiceRegistry");
static final QName DESCRIPTOR_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "DescriptorService");
static final QName TRANSACTION_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "TransactionService");
static final QName AUTHENTICATION_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "AuthenticationService");
static final QName NAMESPACE_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "NamespaceService");
static final QName DICTIONARY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "DictionaryService");
static final QName NODE_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "NodeService");
static final QName CONTENT_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ContentService");
static final QName MIMETYPE_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "MimetypeService");
static final QName SEARCH_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "SearchService");
static final QName CATEGORY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "CategoryService");
static final QName COPY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "CopyService");
static final QName LOCK_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "LockService");
static final QName VERSION_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "VersionService");
static final QName COCI_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "CheckoutCheckinService");
static final QName RULE_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "RuleService");
static final QName IMPORTER_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ImporterService");
static final QName EXPORTER_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ExporterService");
static final QName ACTION_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ActionService");
static final QName PERMISSIONS_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "PermissionService");
static final QName AUTHORITY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "AuthorityService");
static final QName TEMPLATE_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "TemplateService");
static final QName FILE_FOLDER_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "FileFolderService");
static final QName SCRIPT_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ScriptService");
static final QName WORKFLOW_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "WorkflowService");
static final QName AUDIT_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "AuditService");
static final QName AVM_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "AVMService");
/**
* Get the list of services provided by the Repository
*
* @return list of provided Services
*/
@NotAuditable
Collection<QName> getServices();
/**
* Is the specified service provided by the Repository?
*
* @param service name of service to test provision of
* @return true => provided, false => not provided
*/
@NotAuditable
boolean isServiceProvided(QName service);
/**
* Get meta-data about the specified service
*
* @param service name of service to retrieve meta data for
* @return the service meta data
*/
@NotAuditable
ServiceDescriptor getServiceDescriptor(QName service);
/**
* Get the specified service.
*
* @param service name of service to retrieve
* @return the service interface (must cast to interface as described in service meta-data)
*/
@NotAuditable
Object getService(QName service);
/**
* @return the descriptor service
*/
@NotAuditable
DescriptorService getDescriptorService();
/**
* @return the transaction service
*/
@NotAuditable
TransactionService getTransactionService();
/**
* @return the namespace service (or null, if one is not provided)
*/
@NotAuditable
NamespaceService getNamespaceService();
/**
* @return the authentication service (or null, if one is not provided)
*/
@NotAuditable
AuthenticationService getAuthenticationService();
/**
* @return the node service (or null, if one is not provided)
*/
@NotAuditable
NodeService getNodeService();
/**
* @return the content service (or null, if one is not provided)
*/
@NotAuditable
ContentService getContentService();
/**
* @return the mimetype service (or null, if one is not provided)
*/
@NotAuditable
MimetypeService getMimetypeService();
/**
* @return the search service (or null, if one is not provided)
*/
@NotAuditable
SearchService getSearchService();
/**
* @return the version service (or null, if one is not provided)
*/
@NotAuditable
VersionService getVersionService();
/**
* @return the lock service (or null, if one is not provided)
*/
@NotAuditable
LockService getLockService();
/**
* @return the dictionary service (or null, if one is not provided)
*/
@NotAuditable
DictionaryService getDictionaryService();
/**
* @return the copy service (or null, if one is not provided)
*/
@NotAuditable
CopyService getCopyService();
/**
* @return the checkout / checkin service (or null, if one is not provided)
*/
@NotAuditable
CheckOutCheckInService getCheckOutCheckInService();
/**
* @return the category service (or null, if one is not provided)
*/
@NotAuditable
CategoryService getCategoryService();
/**
* @return the importer service or null if not present
*/
@NotAuditable
ImporterService getImporterService();
/**
* @return the exporter service or null if not present
*/
@NotAuditable
ExporterService getExporterService();
/**
* @return the rule service (or null, if one is not provided)
*/
@NotAuditable
RuleService getRuleService();
/**
* @return the action service (or null if one is not provided)
*/
@NotAuditable
ActionService getActionService();
/**
* @return the permission service (or null if one is not provided)
*/
@NotAuditable
PermissionService getPermissionService();
/**
* @return the authority service (or null if one is not provided)
*/
@NotAuditable
AuthorityService getAuthorityService();
/**
* @return the template service (or null if one is not provided)
*/
@NotAuditable
TemplateService getTemplateService();
/**
* @return the file-folder manipulation service (or null if one is not provided)
*/
@NotAuditable
FileFolderService getFileFolderService();
/**
* @return the script execution service (or null if one is not provided)
*/
@NotAuditable
ScriptService getScriptService();
/**
* @return the workflow service (or null if one is not provided)
*/
@NotAuditable
WorkflowService getWorkflowService();
/**
* @return the audit service (or null if one is not provided)
*/
@NotAuditable
AuditService getAuditService();
/**
* Get the AVMService.
* @return The AVM service (or null if one is not provided);
*/
@NotAuditable
AVMService getAVMService();
}

View File

@@ -0,0 +1,202 @@
/*
* Copyright (C) 2005 Alfresco, Inc.
*
* Licensed under the Mozilla Public License version 1.1
* with a permitted attribution clause. You may obtain a
* copy of the License at
*
* http://www.alfresco.org/legal/license.txt
*
* 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.alfresco.service.cmr.audit;
import java.io.Serializable;
import java.net.InetAddress;
import java.util.Date;
import java.util.Map;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.namespace.QName;
/**
* A single entry in an audit trail
*
* @author Andy Hind
*/
public interface AuditInfo
{
/**
* The identifier for the application that performed the audit. Method interceptors around public services will use the string 'SystemMethodInterceptor'.
*
* @return - the application (may not be null).
*/
public String getAuditApplication();
/**
* The name of the method executed on a public service.
*
* @return - the method name - this may be null for external audit entries.
*/
public String getAuditMethod();
/**
* The public service on which a method was invoked.
*
* @return - the service name - this may be null for external audit entries.
*/
public String getAuditService();
/**
* The address for the client. (This will be null in version 1.4)
*
* @return - the client address - may be null.
*/
public String getClientAddress();
/**
* The timestamp for the audit entry.
*
* @return
*/
public Date getDate();
/**
* Is this entry recording an error?
*
* @return
*/
public boolean isFail();
/**
* Was this audit entry subject to filtering (which must have been met if an entry is found). Filters are not applied in version 1.4.
*
* @return
*/
public boolean isFiltered();
/**
* Get the host address of the server machine.
*
* @return
*/
public String getHostAddress();
/**
* Get the ID of the key node.
*
* @return - the id of the key node - this may be null if there is no key or the key is not a node ref.
*/
public String getKeyGUID();
/**
* The serialized properties on the key node, if one exists, after the method invocation. Note these values are serialized before the method is called so they are unaffected by
* the method invocation. In V1.4 these are not stored.
*
* @return
*/
public Map<QName, Serializable> getKeyPropertiesAfter();
/**
* The serialized properties on the key node, if one exists, before the method invocation. In V1.4 these are not stored.
*
* @return
*/
public Map<QName, Serializable> getKeyPropertiesBefore();
/**
* The store ref for the key.
*
* @return - the store ref - this may be null if there is no key.
*/
public StoreRef getKeyStore();
/**
* The message entered for application audit entries.
*
* @return - the audit message. This may be null, and will be null for audit entries generated from method invocations.
*/
public String getMessage();
/**
* Get the serailized mehod arguments.
*
* These are not stored in V1.4.
*
* @return
*/
public Serializable[] getMethodArguments();
/**
* Get the method arguments as strings.
*
* @return
*/
public String[] getMethodArgumentsAsStrings();
/**
* Get the path to the key node, if one exists.
*
* @return - the path or null.
*/
public String getPath();
/**
* The serialized value of the return object.
*
* This is not available in V1.4.
*
* @return
*/
public Serializable getReturnObject();
/**
* Get the return object string value.
*
* @return - the string value of the return object. May be null if the method is of type void or returns null.
*/
public String getReturnObjectAsString();
/**
* Get the session id.
*
* This is not stored in V1.4.
*
* @return
*/
public String getSessionId();
/**
* Get the deserialized error, if one occurred.
*
* @return the throwable or null.
*/
public Throwable getThrowable();
/**
* In 1.4, get the error message (no stack trace).
*
* @return - the error message
*/
public String getThrowableAsString();
/**
* Get the transaction id which caused the audit.
*
* @return the Tx id (not null).
*/
public String getTxId();
/**
* Get the name of the user who caused the audit entry.
*
* @return - the user name / user authority (not null)
*/
public String getUserIdentifier();
}

View File

@@ -16,6 +16,9 @@
*/
package org.alfresco.service.cmr.audit;
import java.util.List;
import org.alfresco.repo.audit.AuditState;
import org.alfresco.service.NotAuditable;
import org.alfresco.service.PublicService;
import org.alfresco.service.cmr.repository.NodeRef;
@@ -81,5 +84,14 @@ public interface AuditService
*/
@NotAuditable
public void audit(String source, String description, NodeRef key, Object... args);
/**
* Get the audit trail for a node ref.
*
* @param nodeRef - the node ref for which to get the audit trail.
* @return - tha audit trail
*/
@NotAuditable
public List<AuditInfo> getAuditTrail(NodeRef nodeRef);
}

View File

@@ -59,6 +59,11 @@ public interface CopyService
* not copied.
* <p>
* Source association are not copied.
* <p>
* <b>NOTE:</b> The top-level node has it's <b>cm:name</b> property removed for
* associations that do not allow duplicately named children in order
* to prevent any chance of a duplicate name clash. Reassign the
* <b>cm:name</b> property and catch the {@link DuplicateChildNodeNameException}.
*
* @param sourceNodeRef the node reference used as the source of the copy
* @param destinationParent the intended parent of the new node

View File

@@ -34,6 +34,7 @@ import org.alfresco.repo.template.NodeSearchResultsMap;
import org.alfresco.repo.template.SavedSearchResultsMap;
import org.alfresco.repo.template.XPathResultsMap;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.audit.AuditInfo;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.lock.LockStatus;
import org.alfresco.service.cmr.security.AccessPermission;
@@ -495,7 +496,7 @@ public final class TemplateNode implements Serializable
}
/**
* @return Display path to this node
* @return Display path to this node - the path built of 'cm:name' attribute values.
*/
public String getDisplayPath()
{
@@ -514,6 +515,14 @@ public final class TemplateNode implements Serializable
return displayPath;
}
/**
* @return QName path to this node. This can be used for Lucene PATH: style queries
*/
public String getQnamePath()
{
return this.services.getNodeService().getPath(this.nodeRef).toPrefixString(this.services.getNamespaceService());
}
/**
* @return the small icon image for this node
*/
@@ -652,6 +661,14 @@ public final class TemplateNode implements Serializable
}
// Audit API
public List<AuditInfo> getAuditTrail()
{
return this.services.getAuditService().getAuditTrail(this.nodeRef);
}
// ------------------------------------------------------------------------------
// Misc helpers

View File

@@ -21,6 +21,7 @@ import java.util.Map;
import java.util.Set;
import org.alfresco.service.Auditable;
import org.alfresco.service.NotAuditable;
import org.alfresco.service.PublicService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
@@ -171,7 +172,7 @@ public interface PersonService
* @param caseSensitiveUserName
* @return
*/
@NotAuditable
public String getUserIdentifier(String caseSensitiveUserName);
}

View File

@@ -111,6 +111,7 @@ public interface WorkflowService
* @param workflowName workflow name e.g. jbpm://review
* @return the deployed workflow definition
*/
@Auditable(parameters = {"workflowName"})
public WorkflowDefinition getDefinitionByName(String workflowName);