You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2005/03/31 14:49:54 UTC
svn commit: r159584 [1/3] - in lenya/trunk/src: java/org/apache/lenya/
java/org/apache/lenya/cms/ac/ java/org/apache/lenya/cms/ac/cocoon/
java/org/apache/lenya/cms/ac/workflow/ java/org/apache/lenya/cms/ant/
java/org/apache/lenya/cms/cocoon/acting/
java/org/apache/lenya/cms/cocoon/components/modules/input/
java/org/apache/lenya/cms/cocoon/flow/
java/org/apache/lenya/cms/cocoon/generation/
java/org/apache/lenya/cms/cocoon/scheduler/
java/org/apache/lenya/cms/cocoon/source/
java/org/apache/lenya/cms/cocoon/transformation/
java/org/apache/lenya/cms/metadata/dublincore/
java/org/apache/lenya/cms/publication/
java/org/apache/lenya/cms/publication/task/
java/org/apache/lenya/cms/publication/util/
java/org/apache/lenya/cms/scheduler/ java/org/apache/lenya/cms/site/tree/
java/org/apache/lenya/cms/site/usecases/ java/org/apache/lenya/cms/task/
java/org/apache/lenya/cms/usecase/ java/org/apache/lenya/transaction/
webapp/lenya/pubs/blog/java/src/org/apache/lenya/cms/site/usecases/
webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/
webapp/lenya/usecases/tab/
Author: andreas
Date: Thu Mar 31 04:49:41 2005
New Revision: 159584
URL: http://svn.apache.org/viewcvs?view=rev&rev=159584
Log:
UnitOfWork and IdentityMap are now generic
Added:
lenya/trunk/src/java/org/apache/lenya/transaction/
lenya/trunk/src/java/org/apache/lenya/transaction/AbstractOperation.java
lenya/trunk/src/java/org/apache/lenya/transaction/IdentityMap.java
lenya/trunk/src/java/org/apache/lenya/transaction/IdentityMapImpl.java
lenya/trunk/src/java/org/apache/lenya/transaction/LockException.java
lenya/trunk/src/java/org/apache/lenya/transaction/Operation.java
lenya/trunk/src/java/org/apache/lenya/transaction/TransactionException.java
lenya/trunk/src/java/org/apache/lenya/transaction/Transactionable.java
lenya/trunk/src/java/org/apache/lenya/transaction/TransactionableFactory.java
lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWork.java
lenya/trunk/src/java/org/apache/lenya/transaction/UnitOfWorkImpl.java
Removed:
lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractOperation.java
lenya/trunk/src/java/org/apache/lenya/cms/usecase/Operation.java
lenya/trunk/src/java/org/apache/lenya/cms/usecase/UnitOfWork.java
lenya/trunk/src/java/org/apache/lenya/cms/usecase/UnitOfWorkImpl.java
Modified:
lenya/trunk/src/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java
lenya/trunk/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/ac/workflow/WorkflowAuthorizer.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/ComputeNewDocumentId.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/CopyContentTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/CopyResourcesTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/DeactivateResourcesTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteContentTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteResourcesTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteSchedulerEntryTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/InitRCTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/LinkRewriteTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/MoveDocumentTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/MoveWorkflowTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/PublicationTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/ResourcePublisher.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/SetIdentifier.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/TestTask.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/WriteDCParametersTask.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/OperationModule.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/SitetreeModule.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/scheduler/SchedulerHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/DocumentIndexTransformer.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/LinkRewritingTransformer.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java
lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocument.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/Document.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentFactory.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentIdentityMap.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEnvelope.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/task/DocumentTask.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/task/PublicationTask.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/Collection.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/CollectionImpl.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentLanguagesHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentReferencesHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/LanguageVersions.java
lenya/trunk/src/java/org/apache/lenya/cms/scheduler/LoadQuartzServlet.java
lenya/trunk/src/java/org/apache/lenya/cms/site/tree/TreeSiteManager.java
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeNodeID.java
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Clipboard.java
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateDocument.java
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/CreateLanguage.java
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Delete.java
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/EmptyTrash.java
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/LinkRewriterImpl.java
lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Paste.java
lenya/trunk/src/java/org/apache/lenya/cms/task/WorkflowInvoker.java
lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java
lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java
lenya/trunk/src/java/org/apache/lenya/lenya.roles
lenya/trunk/src/webapp/lenya/pubs/blog/java/src/org/apache/lenya/cms/site/usecases/CreateBlogEntry.java
lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java
lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java
lenya/trunk/src/webapp/lenya/usecases/tab/sitetree.jx
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java Thu Mar 31 04:49:41 2005
@@ -58,7 +58,7 @@
* Ctor.
*/
public DocumentPolicyManagerWrapper() {
- // do nothing
+ // do nothing
}
private InheritingPolicyManager policyManager;
@@ -79,9 +79,9 @@
Publication publication = getPublication(webappUrl);
String url = null;
try {
- DocumentIdentityMap map = new DocumentIdentityMap(getServiceManager());
- if (map.getFactory().isDocument(publication, webappUrl)) {
- Document document = map.getFactory().getFromURL(publication, webappUrl);
+ DocumentIdentityMap map = new DocumentIdentityMap(getServiceManager(), getLogger());
+ if (map.isDocument(webappUrl)) {
+ Document document = map.getFromURL(webappUrl);
if (document.existsInAnyLanguage()) {
url = "/" + document.getArea() + document.getId();
if (getLogger().isDebugEnabled()) {
@@ -242,13 +242,12 @@
* @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
*/
public void configure(Configuration configuration) throws ConfigurationException {
- Configuration policyManagerConfiguration = configuration.getChild(
- this.ELEMENT_POLICY_MANAGER, false);
+ Configuration policyManagerConfiguration = configuration
+ .getChild(this.ELEMENT_POLICY_MANAGER, false);
if (policyManagerConfiguration != null) {
String type = null;
try {
- type = policyManagerConfiguration
- .getAttribute(this.ATTRIBUTE_TYPE);
+ type = policyManagerConfiguration.getAttribute(this.ATTRIBUTE_TYPE);
this.policyManagerSelector = (ServiceSelector) getServiceManager()
.lookup(PolicyManager.ROLE + "Selector");
@@ -257,8 +256,7 @@
.select(type);
if (!(_policyManager instanceof InheritingPolicyManager)) {
- throw new AccessControlException("The "
- + getClass().getName()
+ throw new AccessControlException("The " + getClass().getName()
+ " can only be used with an "
+ InheritingPolicyManager.class.getName() + ".");
}
@@ -267,21 +265,17 @@
policyManagerConfiguration);
setPolicyManager((InheritingPolicyManager) _policyManager);
} catch (final ConfigurationException e1) {
- throw new ConfigurationException(
- "Obtaining policy manager for type [" + type
- + "] failed: ", e1);
+ throw new ConfigurationException("Obtaining policy manager for type [" + type
+ + "] failed: ", e1);
} catch (final ServiceException e1) {
- throw new ConfigurationException(
- "Obtaining policy manager for type [" + type
- + "] failed: ", e1);
+ throw new ConfigurationException("Obtaining policy manager for type [" + type
+ + "] failed: ", e1);
} catch (final ParameterException e1) {
- throw new ConfigurationException(
- "Obtaining policy manager for type [" + type
- + "] failed: ", e1);
+ throw new ConfigurationException("Obtaining policy manager for type [" + type
+ + "] failed: ", e1);
} catch (final AccessControlException e1) {
- throw new ConfigurationException(
- "Obtaining policy manager for type [" + type
- + "] failed: ", e1);
+ throw new ConfigurationException("Obtaining policy manager for type [" + type
+ + "] failed: ", e1);
}
}
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java Thu Mar 31 04:49:41 2005
@@ -185,7 +185,7 @@
private String computeUrl(Map objectModel, String area) throws ProcessingException {
PageEnvelope envelope;
try {
- DocumentIdentityMap map = new DocumentIdentityMap(this.manager);
+ DocumentIdentityMap map = new DocumentIdentityMap(this.manager, getLogger());
envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(map, objectModel);
} catch (PageEnvelopeException e) {
throw new ProcessingException(e);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/workflow/WorkflowAuthorizer.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/workflow/WorkflowAuthorizer.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/workflow/WorkflowAuthorizer.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/workflow/WorkflowAuthorizer.java Thu Mar 31 04:49:41 2005
@@ -30,9 +30,6 @@
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentBuildException;
import org.apache.lenya.cms.publication.DocumentIdentityMap;
-import org.apache.lenya.cms.publication.Publication;
-import org.apache.lenya.cms.publication.PublicationException;
-import org.apache.lenya.cms.publication.PublicationFactory;
import org.apache.lenya.cms.workflow.WorkflowResolver;
import org.apache.lenya.util.ServletHelper;
import org.apache.lenya.workflow.Situation;
@@ -42,8 +39,8 @@
import org.apache.lenya.workflow.impl.WorkflowEngineImpl;
/**
- * If the client requested invoking a workflow event, this authorizer checks if
- * the current document state and identity roles allow this transition.
+ * If the client requested invoking a workflow event, this authorizer checks if the current document
+ * state and identity roles allow this transition.
*/
public class WorkflowAuthorizer extends AbstractLogEnabled implements Authorizer, Serviceable {
@@ -87,12 +84,10 @@
try {
resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
- PublicationFactory pubFactory = PublicationFactory.getInstance(getLogger());
- Publication publication = pubFactory.getPublication(resolver, request);
- DocumentIdentityMap map = new DocumentIdentityMap(this.manager);
- if (map.getFactory().isDocument(publication, webappUrl)) {
+ DocumentIdentityMap map = new DocumentIdentityMap(this.manager, getLogger());
+ if (map.isDocument(webappUrl)) {
- Document document = map.getFactory().getFromURL(publication, webappUrl);
+ Document document = map.getFromURL(webappUrl);
workflowResolver = (WorkflowResolver) this.manager
.lookup(WorkflowResolver.ROLE);
@@ -106,8 +101,6 @@
} catch (final ServiceException e) {
throw new AccessControlException(e);
} catch (final DocumentBuildException e) {
- throw new AccessControlException(e);
- } catch (final PublicationException e) {
throw new AccessControlException(e);
} catch (final WorkflowException e) {
throw new AccessControlException(e);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/ComputeNewDocumentId.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/ComputeNewDocumentId.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/ComputeNewDocumentId.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/ComputeNewDocumentId.java Thu Mar 31 04:49:41 2005
@@ -122,7 +122,7 @@
DocumentManager docManager = null;
try {
docManager = (DocumentManager) getServiceManager().lookup(DocumentManager.ROLE);
- Document document = getIdentityMap().getFactory().get(getPublication(), _area, documentid);
+ Document document = getIdentityMap().get(getPublication(), _area, documentid);
document = docManager.getAvailableDocument(document);
return document.getId();
} catch (Exception e) {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/CopyContentTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/CopyContentTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/CopyContentTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/CopyContentTask.java Thu Mar 31 04:49:41 2005
@@ -57,7 +57,7 @@
String language = labels[i].getLanguage();
Document srcDoc;
try {
- srcDoc = getIdentityMap().getFactory().get(getPublication(),
+ srcDoc = getIdentityMap().get(getPublication(),
getFirstarea(),
srcDocumentid,
language);
@@ -71,7 +71,7 @@
}
Document destDoc;
try {
- destDoc = getIdentityMap().getFactory().get(getPublication(),
+ destDoc = getIdentityMap().get(getPublication(),
getSecarea(),
destDocumentid,
language);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/CopyResourcesTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/CopyResourcesTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/CopyResourcesTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/CopyResourcesTask.java Thu Mar 31 04:49:41 2005
@@ -64,7 +64,7 @@
String language = labels[0].getLanguage();
Document srcDoc;
try {
- srcDoc = getIdentityMap().getFactory().get(getPublication(),
+ srcDoc = getIdentityMap().get(getPublication(),
getFirstarea(),
srcDocumentid,
language);
@@ -83,7 +83,7 @@
Document destDoc;
try {
- destDoc = getIdentityMap().getFactory().get(getPublication(),
+ destDoc = getIdentityMap().get(getPublication(),
getSecarea(),
destDocumentid,
language);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/DeactivateResourcesTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/DeactivateResourcesTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/DeactivateResourcesTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/DeactivateResourcesTask.java Thu Mar 31 04:49:41 2005
@@ -30,9 +30,9 @@
import org.apache.tools.ant.BuildException;
/**
- * Ant task to remove the resources belonging to a document with document id
- * <documentid>, area <area>and language <language>. The resources are removed
- * when no more version of this document is available.
+ * Ant task to remove the resources belonging to a document with document id <documentid>, area
+ * <area>and language <language>. The resources are removed when no more version of this document is
+ * available.
*/
public class DeactivateResourcesTask extends PublicationTask {
private String area;
@@ -47,9 +47,8 @@
}
/**
- * Remove the resources belonging to the document with document id
- * <documentid>, area <area>and language <language>, when no more version of
- * this document is available.
+ * Remove the resources belonging to the document with document id <documentid>, area <area>and
+ * language <language>, when no more version of this document is available.
* @param _language The language
* @param _documentid The document id
* @param _area The area
@@ -67,10 +66,7 @@
Document doc;
try {
- doc = getIdentityMap().getFactory().get(getPublication(),
- _area,
- _documentid,
- _language);
+ doc = getIdentityMap().get(getPublication(), _area, _documentid, _language);
} catch (DocumentBuildException e) {
throw new BuildException(e);
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteContentTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteContentTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteContentTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteContentTask.java Thu Mar 31 04:49:41 2005
@@ -31,9 +31,8 @@
import org.apache.tools.ant.BuildException;
/**
- * Ant task to delete the contents (xml files) of documents corresponding to a
- * defined subtree Visitor of the defined subtree (visitor pattern). The subtree
- * is reverse visited.
+ * Ant task to delete the contents (xml files) of documents corresponding to a defined subtree
+ * Visitor of the defined subtree (visitor pattern). The subtree is reverse visited.
*/
public class DeleteContentTask extends TwoDocumentsOperationTask {
@@ -58,7 +57,7 @@
String language = labels[i].getLanguage();
Document doc;
try {
- doc = getIdentityMap().getFactory().get(getPublication(),
+ doc = getIdentityMap().get(getPublication(),
getFirstarea(),
srcDocumentid,
language);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteResourcesTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteResourcesTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteResourcesTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteResourcesTask.java Thu Mar 31 04:49:41 2005
@@ -28,9 +28,8 @@
import org.apache.tools.ant.BuildException;
/**
- * Ant task to delete the resources of documents corresponding to a defined
- * subtree (Visitor pattern) Visitor of the subtree. The subtree is reverse
- * visited.
+ * Ant task to delete the resources of documents corresponding to a defined subtree (Visitor
+ * pattern) Visitor of the subtree. The subtree is reverse visited.
*/
public class DeleteResourcesTask extends TwoDocumentsOperationTask {
@@ -57,7 +56,7 @@
String language = labels[i].getLanguage();
Document srcDoc;
try {
- srcDoc = getIdentityMap().getFactory().get(getPublication(),
+ srcDoc = getIdentityMap().get(getPublication(),
getFirstarea(),
srcDocumentid,
language);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteSchedulerEntryTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteSchedulerEntryTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteSchedulerEntryTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/DeleteSchedulerEntryTask.java Thu Mar 31 04:49:41 2005
@@ -91,7 +91,7 @@
String language = labels[i].getLanguage();
try {
- Document document = getIdentityMap().getFactory().get(getPublication(),
+ Document document = getIdentityMap().get(getPublication(),
this.area,
this.documentId,
language);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/InitRCTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/InitRCTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/InitRCTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/InitRCTask.java Thu Mar 31 04:49:41 2005
@@ -29,9 +29,8 @@
import org.apache.tools.ant.BuildException;
/**
- * Ant task, to init the rc files of the destination's documents corresponding
- * to a given source subtree. Evry destination file is checked in. (Visitor
- * pattern)
+ * Ant task, to init the rc files of the destination's documents corresponding to a given source
+ * subtree. Evry destination file is checked in. (Visitor pattern)
*/
public class InitRCTask extends TwoDocumentsOperationTask {
private String rcmlDir = "";
@@ -89,7 +88,7 @@
for (int i = 0; i < labels.length; i++) {
String language = labels[i].getLanguage();
Document destDoc;
- destDoc = getIdentityMap().getFactory().get(getPublication(),
+ destDoc = getIdentityMap().get(getPublication(),
getSecarea(),
destDocumentid,
language);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/LinkRewriteTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/LinkRewriteTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/LinkRewriteTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/LinkRewriteTask.java Thu Mar 31 04:49:41 2005
@@ -41,13 +41,11 @@
import org.xml.sax.SAXException;
/**
- * This task is used to rewrite internal links after a cut'n'paste operation,
- * i.e. after a document has changed its document-id. It finds all relevant
- * documents which have a link to the document that changed its document-id and
- * changes this link with the help of an xslt.
+ * This task is used to rewrite internal links after a cut'n'paste operation, i.e. after a document
+ * has changed its document-id. It finds all relevant documents which have a link to the document
+ * that changed its document-id and changes this link with the help of an xslt.
*
- * @deprecated Use o.a.l.cms.site.usecases.LinkRewriter instead (see bug
- * #29861).
+ * @deprecated Use o.a.l.cms.site.usecases.LinkRewriter instead (see bug #29861).
*/
public class LinkRewriteTask extends PublicationTask {
@@ -222,8 +220,8 @@
}
/**
- * Rewrites links by traversing a directory tree and applying a rewrite
- * transformation to XML files in the directory.
+ * Rewrites links by traversing a directory tree and applying a rewrite transformation to XML
+ * files in the directory.
* @param rootDirName The root directory for the rewrite
* @param _stylesheet The stylesheet to use for rewriting
* @param _area The area to use for rewriting
@@ -273,10 +271,7 @@
protected String getUrl(String _area, String documentId, String language) {
org.apache.lenya.cms.publication.Document newDocument;
try {
- newDocument = getIdentityMap().getFactory().get(getPublication(),
- _area,
- documentId,
- language);
+ newDocument = getIdentityMap().get(getPublication(), _area, documentId, language);
} catch (DocumentBuildException e) {
throw new RuntimeException(e);
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/MoveDocumentTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/MoveDocumentTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/MoveDocumentTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/MoveDocumentTask.java Thu Mar 31 04:49:41 2005
@@ -128,11 +128,11 @@
log("move workflow history");
try {
- document = getIdentityMap().getFactory().get(getPublication(),
+ document = getIdentityMap().get(getPublication(),
this.firstarea,
srcDocumentid,
language);
- newDocument = getIdentityMap().getFactory().get(getPublication(),
+ newDocument = getIdentityMap().get(getPublication(),
this.secarea,
destDocumentid,
language);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/MoveWorkflowTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/MoveWorkflowTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/MoveWorkflowTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/MoveWorkflowTask.java Thu Mar 31 04:49:41 2005
@@ -20,7 +20,6 @@
package org.apache.lenya.cms.ant;
import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.DocumentBuildException;
import org.apache.lenya.cms.site.Label;
import org.apache.lenya.cms.site.tree.SiteTreeNode;
import org.apache.lenya.cms.workflow.WorkflowManager;
@@ -57,11 +56,11 @@
WorkflowManager wfManager = null;
try {
- srcDoc = getIdentityMap().getFactory().get(getPublication(),
+ srcDoc = getIdentityMap().get(getPublication(),
getFirstarea(),
srcDocumentid,
language);
- destDoc = getIdentityMap().getFactory().get(getPublication(),
+ destDoc = getIdentityMap().get(getPublication(),
getSecarea(),
destDocumentid,
language);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/PublicationTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/PublicationTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/PublicationTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/PublicationTask.java Thu Mar 31 04:49:41 2005
@@ -84,7 +84,7 @@
*/
protected DocumentIdentityMap getIdentityMap() {
if (this.identityMap == null) {
- this.identityMap = new DocumentIdentityMap(getServiceManager());
+ this.identityMap = new DocumentIdentityMap(getServiceManager(), new ConsoleLogger());
}
return this.identityMap;
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/ResourcePublisher.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/ResourcePublisher.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/ResourcePublisher.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/ResourcePublisher.java Thu Mar 31 04:49:41 2005
@@ -43,12 +43,12 @@
public void execute() throws BuildException {
try {
- Document authoringDocument = getIdentityMap().getFactory().get(getPublication(),
+ Document authoringDocument = getIdentityMap().get(getPublication(),
Publication.AUTHORING_AREA,
this.documentId);
ResourcesManager authoringManager = authoringDocument.getResourcesManager();
- Document liveDocument = getIdentityMap().getFactory().get(getPublication(),
+ Document liveDocument = getIdentityMap().get(getPublication(),
Publication.LIVE_AREA,
this.documentId);
ResourcesManager liveManager = liveDocument.getResourcesManager();
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/SetIdentifier.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/SetIdentifier.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/SetIdentifier.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/SetIdentifier.java Thu Mar 31 04:49:41 2005
@@ -102,13 +102,13 @@
try {
if (labels.length < 1) {
log("no languages found for the node with id : " + node.getId());
- writeDCIdentifier(getIdentityMap().getFactory().get(getPublication(),
+ writeDCIdentifier(getIdentityMap().get(getPublication(),
this.area,
this.documentid));
} else {
for (int i = 0; i < labels.length; i++) {
language = labels[i].getLanguage();
- writeDCIdentifier(getIdentityMap().getFactory().get(getPublication(),
+ writeDCIdentifier(getIdentityMap().get(getPublication(),
this.area,
this.documentid,
language));
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/TestTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/TestTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/TestTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/TestTask.java Thu Mar 31 04:49:41 2005
@@ -42,7 +42,7 @@
DocumentTypeResolver resolver = null;
try {
resolver = (DocumentTypeResolver) manager.lookup(DocumentTypeResolver.ROLE);
- Document document = getIdentityMap().getFactory().get(getPublication(), Publication.AUTHORING_AREA, "/index");
+ Document document = getIdentityMap().get(getPublication(), Publication.AUTHORING_AREA, "/index");
DocumentType doctype = resolver.resolve(document);
String message = "Document type of [" + document + "] is [" + doctype.getName() + "]";
log(message);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ant/WriteDCParametersTask.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ant/WriteDCParametersTask.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/WriteDCParametersTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/WriteDCParametersTask.java Thu Mar 31 04:49:41 2005
@@ -232,7 +232,7 @@
String _publisher, String _rights) throws BuildException, DocumentBuildException,
DocumentException {
- Document doc = getIdentityMap().getFactory()
+ Document doc = getIdentityMap()
.get(getPublication(), _area, _documentId, lang);
DublinCore dc = doc.getDublinCore();
dc.setValue(DublinCore.ELEMENT_CREATOR, _creator);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java Thu Mar 31 04:49:41 2005
@@ -66,7 +66,7 @@
public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source,
Parameters parameters) throws Exception {
- DocumentIdentityMap map = new DocumentIdentityMap(this.manager);
+ DocumentIdentityMap map = new DocumentIdentityMap(this.manager, getLogger());
PageEnvelope pageEnvelope = PageEnvelopeFactory.getInstance().getPageEnvelope(map,
objectModel);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java Thu Mar 31 04:49:41 2005
@@ -41,8 +41,7 @@
/**
* Revision controller action.
*
- * @version $Id: RevisionControllerAction.java 152682 2005-02-08 18:13:39Z
- * gregor $
+ * @version $Id$
*/
public class RevisionControllerAction extends ServiceableAction {
@@ -54,8 +53,8 @@
/**
* @see org.apache.cocoon.acting.Action#act(org.apache.cocoon.environment.Redirector,
- * org.apache.cocoon.environment.SourceResolver, java.util.Map,
- * java.lang.String, org.apache.avalon.framework.parameters.Parameters)
+ * org.apache.cocoon.environment.SourceResolver, java.util.Map, java.lang.String,
+ * org.apache.avalon.framework.parameters.Parameters)
*/
public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String src,
Parameters parameters) throws Exception {
@@ -71,7 +70,7 @@
PageEnvelope envelope = null;
PublicationFactory factory = PublicationFactory.getInstance(getLogger());
Publication publication = factory.getPublication(objectModel);
- DocumentIdentityMap map = new DocumentIdentityMap(this.manager);
+ DocumentIdentityMap map = new DocumentIdentityMap(this.manager, getLogger());
Document document = null;
try {
@@ -134,10 +133,7 @@
}
}
- Document srcDoc = map.getFactory().get(publication,
- document.getArea(),
- documentid,
- language);
+ Document srcDoc = map.get(publication, document.getArea(), documentid, language);
File newFile = srcDoc.getFile();
this.filename = newFile.getCanonicalPath();
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java Thu Mar 31 04:49:41 2005
@@ -114,7 +114,7 @@
Map results = new HashMap();
Request request = ObjectModelHelper.getRequest(objectModel);
- DocumentIdentityMap map = new DocumentIdentityMap(this.manager);
+ DocumentIdentityMap map = new DocumentIdentityMap(this.manager, getLogger());
this.pageEnvelope = PageEnvelopeFactory.getInstance().getPageEnvelope(map, objectModel);
this.document = this.pageEnvelope.getDocument();
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java Thu Mar 31 04:49:41 2005
@@ -87,8 +87,8 @@
PublicationFactory pubFactory = PublicationFactory.getInstance(getLogger());
Publication pub = pubFactory.getPublication(objectModel);
- DocumentIdentityMap map = new DocumentIdentityMap(this.manager);
- Document document = map.getFactory().get(pub, area, documentId, language);
+ DocumentIdentityMap map = new DocumentIdentityMap(this.manager, getLogger());
+ Document document = map.get(pub, area, documentId, language);
WorkflowResolver workflowResolver = null;
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/AbstractPageEnvelopeModule.java Thu Mar 31 04:49:41 2005
@@ -67,7 +67,7 @@
String servletContextPath = context.getRealPath("");
try {
- DocumentIdentityMap map = getUnitOfWork().getIdentityMap();
+ DocumentIdentityMap map = getDocumentIdentityMap();
envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(map,
contextPath,
webappUrl,
@@ -78,7 +78,7 @@
return envelope;
}
-
+
/**
* @param name The original attribute name.
* @return The attribute name without URL attachment.
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/OperationModule.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/OperationModule.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/OperationModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/OperationModule.java Thu Mar 31 04:49:41 2005
@@ -21,8 +21,9 @@
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.cocoon.components.modules.input.AbstractInputModule;
-import org.apache.lenya.cms.usecase.Operation;
-import org.apache.lenya.cms.usecase.UnitOfWork;
+import org.apache.lenya.cms.publication.DocumentIdentityMap;
+import org.apache.lenya.transaction.Operation;
+import org.apache.lenya.transaction.UnitOfWork;
/**
* Super class for operation-based input modules.
@@ -39,6 +40,15 @@
}
private UnitOfWork unitOfWork;
+
+ private DocumentIdentityMap documentIdentityMap;
+
+ protected DocumentIdentityMap getDocumentIdentityMap() {
+ if (this.documentIdentityMap == null) {
+ this.documentIdentityMap = new DocumentIdentityMap(this.manager, getLogger());
+ }
+ return this.documentIdentityMap;
+ }
/**
* Retrieves a unit-of-work, which gives the operation access to business
@@ -47,7 +57,7 @@
* @return a UnitOfWork, the interface to access the objects
* @throws ServiceException if the unit-of-work component can not be initialized by the component framework
*
- * @see org.apache.lenya.cms.usecase.Operation#getUnitOfWork()
+ * @see org.apache.lenya.transaction.Operation#getUnitOfWork()
*/
public UnitOfWork getUnitOfWork() throws ServiceException {
if (this.unitOfWork == null) {
@@ -55,6 +65,7 @@
getLogger().debug("OperationModule.getUnitOfWork() does not yet have instance, looking up role [" + UnitOfWork.ROLE + "]");
this.unitOfWork = (UnitOfWork) this.manager.lookup(UnitOfWork.ROLE);
+ this.unitOfWork.addIdentityMap(getDocumentIdentityMap());
}
return this.unitOfWork;
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/SitetreeModule.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/SitetreeModule.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/SitetreeModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/SitetreeModule.java Thu Mar 31 04:49:41 2005
@@ -77,7 +77,7 @@
selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
_manager = (TreeSiteManager) selector.select(publication.getSiteManagerHint());
- DocumentIdentityMap map = new DocumentIdentityMap(this.manager);
+ DocumentIdentityMap map = new DocumentIdentityMap(this.manager, getLogger());
if (name.equals(AUTHORING_NODE)) {
SiteTree authoringTree = _manager.getTree(map,
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java Thu Mar 31 04:49:41 2005
@@ -82,7 +82,7 @@
* @see org.apache.lenya.cms.cocoon.flow.FlowHelper#getPageEnvelope(org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon)
*/
public PageEnvelope getPageEnvelope(FOM_Cocoon cocoon) throws PageEnvelopeException {
- DocumentIdentityMap map = new DocumentIdentityMap(this.manager);
+ DocumentIdentityMap map = new DocumentIdentityMap(this.manager, getLogger());
PageEnvelopeFactory factory = PageEnvelopeFactory.getInstance();
return factory.getPageEnvelope(map, cocoon.getObjectModel());
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java Thu Mar 31 04:49:41 2005
@@ -149,7 +149,7 @@
}
try {
- this.identityMap = new DocumentIdentityMap(this.manager);
+ this.identityMap = new DocumentIdentityMap(this.manager, getLogger());
envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(this.identityMap,
_objectModel);
} catch (final PageEnvelopeException e) {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/scheduler/SchedulerHelper.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/scheduler/SchedulerHelper.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/scheduler/SchedulerHelper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/scheduler/SchedulerHelper.java Thu Mar 31 04:49:41 2005
@@ -73,7 +73,7 @@
NamespaceMap schedulerParameters = new NamespaceMap(LoadQuartzServlet.PREFIX);
- DocumentIdentityMap identityMap = new DocumentIdentityMap(null);
+ DocumentIdentityMap identityMap = new DocumentIdentityMap(null, null);
PageEnvelope envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(identityMap,
this.objectModel);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/FallbackSourceFactory.java Thu Mar 31 04:49:41 2005
@@ -40,7 +40,7 @@
import org.apache.lenya.cms.publication.URLInformation;
import org.apache.lenya.cms.publication.templating.ExistingSourceResolver;
import org.apache.lenya.cms.publication.templating.PublicationTemplateManager;
-import org.apache.lenya.cms.usecase.AbstractOperation;
+import org.apache.lenya.transaction.AbstractOperation;
/**
* Source factory following the fallback principle.
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java Thu Mar 31 04:49:41 2005
@@ -105,7 +105,7 @@
Map objectModel = ContextHelper.getObjectModel(this.context);
try {
- DocumentIdentityMap map = new DocumentIdentityMap(this.manager);
+ DocumentIdentityMap map = new DocumentIdentityMap(this.manager, getLogger());
PageEnvelopeFactory pageEnvelopeFactory = PageEnvelopeFactory.getInstance();
if (pageEnvelopeFactory != null) {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/DocumentIndexTransformer.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/DocumentIndexTransformer.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/DocumentIndexTransformer.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/DocumentIndexTransformer.java Thu Mar 31 04:49:41 2005
@@ -48,13 +48,12 @@
import org.xml.sax.helpers.AttributesImpl;
/**
- * This transformer lists the children of a document if the tag
- * <namespaceURI:children>is present in this document. The list of the children
- * is in the form :<namespaceURI:children><child href="....html> <ci:include
- * src="..." element="included"/> </child> ... </namespaceURI:children> Multiple
- * language : if a child doesn't exist in the parent language, then the version
- * in the default language will be considered. If it doesn't exist too, any
- * other existent language will be considered.
+ * This transformer lists the children of a document if the tag <namespaceURI:children>is present in
+ * this document. The list of the children is in the form :<namespaceURI:children><child
+ * href="....html> <ci:include src="..." element="included"/> </child> ... </namespaceURI:children>
+ * Multiple language : if a child doesn't exist in the parent language, then the version in the
+ * default language will be considered. If it doesn't exist too, any other existent language will be
+ * considered.
*/
public class DocumentIndexTransformer extends AbstractSAXTransformer implements Parameterizable {
@@ -94,8 +93,7 @@
/**
* @see org.apache.cocoon.sitemap.SitemapModelComponent#setup(org.apache.cocoon.environment.SourceResolver,
- * java.util.Map, java.lang.String,
- * org.apache.avalon.framework.parameters.Parameters)
+ * java.util.Map, java.lang.String, org.apache.avalon.framework.parameters.Parameters)
*/
public void setup(SourceResolver _resolver, Map _objectModel, String src, Parameters _parameters)
throws ProcessingException, SAXException, IOException {
@@ -110,13 +108,13 @@
PageEnvelope envelope = null;
PublicationFactory factory = PublicationFactory.getInstance(getLogger());
this.publication = factory.getPublication(_objectModel);
- this.identityMap = new DocumentIdentityMap(this.manager);
+ this.identityMap = new DocumentIdentityMap(this.manager, getLogger());
envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(this.identityMap,
_objectModel);
setDocument(envelope.getDocument());
setArea(this.document.getArea());
-
+
selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
siteManager = (TreeSiteManager) selector.select(this.publication.getSiteManagerHint());
@@ -130,8 +128,8 @@
}
/**
- * @see org.xml.sax.ContentHandler#startElement(java.lang.String,
- * java.lang.String, java.lang.String, org.xml.sax.Attributes)
+ * @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String,
+ * java.lang.String, org.xml.sax.Attributes)
*/
public void startElement(String uri, String localName, String raw, Attributes attr)
throws SAXException {
@@ -163,10 +161,7 @@
// document
Document doc;
try {
- doc = this.identityMap.getFactory().get(this.publication,
- this.area,
- childId,
- language);
+ doc = this.identityMap.get(this.publication, this.area, childId, language);
} catch (DocumentBuildException e) {
throw new SAXException(e);
}
@@ -206,7 +201,7 @@
while (!doc.exists() && j < languages.size()) {
String newlanguage = (String) languages.get(j);
try {
- doc = this.identityMap.getFactory().get(this.publication,
+ doc = this.identityMap.get(this.publication,
this.area,
childId,
newlanguage);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/LinkRewritingTransformer.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/LinkRewritingTransformer.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/LinkRewritingTransformer.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/LinkRewritingTransformer.java Thu Mar 31 04:49:41 2005
@@ -66,12 +66,10 @@
* These links are rewritten using the following rules:
* </p>
* <ul>
- * <li>The area is replaced by the current area (obtained from the page
- * envelope).</li>
- * <li>A URL prefix is added depending on the proxy configuration of the
- * publication.</li>
- * <li>If the target document does not exist, the <code><a/></code>
- * element is removed to disable the link.</li>
+ * <li>The area is replaced by the current area (obtained from the page envelope).</li>
+ * <li>A URL prefix is added depending on the proxy configuration of the publication.</li>
+ * <li>If the target document does not exist, the <code><a/></code> element is removed to
+ * disable the link.</li>
* </ul>
*
* $Id: LinkRewritingTransformer.java,v 1.7 2004/03/16 11:12:16 gregor
@@ -90,15 +88,14 @@
/**
* @see org.apache.cocoon.sitemap.SitemapModelComponent#setup(org.apache.cocoon.environment.SourceResolver,
- * java.util.Map, java.lang.String,
- * org.apache.avalon.framework.parameters.Parameters)
+ * java.util.Map, java.lang.String, org.apache.avalon.framework.parameters.Parameters)
*/
public void setup(SourceResolver _resolver, Map _objectModel, String _source,
Parameters _parameters) throws ProcessingException, SAXException, IOException {
super.setup(_resolver, _objectModel, _source, _parameters);
try {
- this.identityMap = new DocumentIdentityMap(this.manager);
+ this.identityMap = new DocumentIdentityMap(this.manager, getLogger());
PageEnvelope envelope = PageEnvelopeFactory.getInstance()
.getPageEnvelope(this.identityMap, _objectModel);
this.currentDocument = envelope.getDocument();
@@ -165,8 +162,8 @@
private String indent = "";
/**
- * @see org.xml.sax.ContentHandler#startElement(java.lang.String,
- * java.lang.String, java.lang.String, org.xml.sax.Attributes)
+ * @see org.xml.sax.ContentHandler#startElement(java.lang.String, java.lang.String,
+ * java.lang.String, org.xml.sax.Attributes)
*/
public void startElement(String uri, String name, String qname, Attributes attrs)
throws SAXException {
@@ -215,20 +212,18 @@
getLogger().debug(this.indent + "webapp URL: [" + webappUrl + "]");
getLogger().debug(this.indent + "anchor: [" + anchor + "]");
}
- if (this.identityMap.getFactory().isDocument(publication, webappUrl)) {
+ if (this.identityMap.isDocument(webappUrl)) {
- Document targetDocument = this.identityMap.getFactory()
- .getFromURL(publication, webappUrl);
+ Document targetDocument = this.identityMap.getFromURL(webappUrl);
if (getLogger().isDebugEnabled()) {
getLogger().debug(this.indent + "Resolved target document: ["
+ targetDocument + "]");
}
- targetDocument = this.identityMap.getFactory().get(publication,
- getCurrentDocument().getArea(),
- targetDocument.getId(),
- targetDocument.getLanguage());
+ targetDocument = this.identityMap.get(publication, getCurrentDocument()
+ .getArea(), targetDocument.getId(), targetDocument
+ .getLanguage());
if (targetDocument.exists()) {
rewriteLink(newAttrs, targetDocument, anchor);
@@ -308,8 +303,7 @@
*
* @param attr The attributes.
* @param value The value.
- * @throws IllegalArgumentException if the href attribute is not contained
- * in this attributes.
+ * @throws IllegalArgumentException if the href attribute is not contained in this attributes.
*/
protected void setHrefAttribute(AttributesImpl attr, String value) {
int position = attr.getIndex(ATTRIBUTE_HREF);
@@ -320,8 +314,8 @@
}
/**
- * @see org.xml.sax.ContentHandler#endElement(java.lang.String,
- * java.lang.String, java.lang.String)
+ * @see org.xml.sax.ContentHandler#endElement(java.lang.String, java.lang.String,
+ * java.lang.String)
*/
public void endElement(String uri, String name, String qname) throws SAXException {
if (getLogger().isDebugEnabled()) {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java Thu Mar 31 04:49:41 2005
@@ -121,7 +121,7 @@
WorkflowResolver workflowResolver = null;
try {
- DocumentIdentityMap map = new DocumentIdentityMap(this.manager);
+ DocumentIdentityMap map = new DocumentIdentityMap(this.manager, getLogger());
envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(map, _objectModel);
Document document = envelope.getDocument();
Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreHelper.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreHelper.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreHelper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/dublincore/DublinCoreHelper.java Thu Mar 31 04:49:41 2005
@@ -56,16 +56,13 @@
try {
identifier = null;
- Document baseDocument = map.getFactory().get(publication, area, documentId);
+ Document baseDocument = map.get(publication, area, documentId);
String[] languages = baseDocument.getLanguages();
int i = 0;
if (languages.length > 0) {
while (identifier == null && i < languages.length) {
- Document document = map.getFactory().get(publication,
- area,
- documentId,
- languages[i]);
+ Document document = map.get(publication, area, documentId, languages[i]);
log.debug("document file : " + document.getFile().getAbsolutePath());
DublinCore dublincore = document.getDublinCore();
log.debug("dublincore title : "
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocument.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocument.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocument.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocument.java Thu Mar 31 04:49:41 2005
@@ -35,6 +35,7 @@
import org.apache.lenya.cms.site.SiteManager;
import org.apache.lenya.cms.workflow.CMSHistory;
import org.apache.lenya.cms.workflow.History;
+import org.apache.lenya.transaction.TransactionException;
import org.apache.lenya.workflow.Situation;
import org.apache.lenya.workflow.Version;
import org.apache.lenya.workflow.Workflow;
@@ -179,7 +180,7 @@
for (int i = 0; i < allLanguages.length; i++) {
Document version;
try {
- version = getIdentityMap().getFactory().getLanguageVersion(this, allLanguages[i]);
+ version = getIdentityMap().getLanguageVersion(this, allLanguages[i]);
} catch (DocumentBuildException e) {
throw new DocumentException(e);
}
@@ -320,8 +321,7 @@
try {
String[] languages = getLanguages();
for (int i = 0; i < languages.length; i++) {
- Document languageVersion = getIdentityMap().getFactory().getLanguageVersion(this,
- languages[i]);
+ Document languageVersion = getIdentityMap().getLanguageVersion(this, languages[i]);
exists = exists || languageVersion.exists();
}
} catch (DocumentBuildException e) {
@@ -482,9 +482,64 @@
getHistory().newVersion(workflow, version, situation);
}
- protected void save() throws DocumentException {
- getDublinCore().save();
+ /**
+ * @see org.apache.lenya.transaction.Transactionable#save()
+ */
+ public void save() throws TransactionException {
+ try {
+ getDublinCore().save();
+ } catch (DocumentException e) {
+ throw new TransactionException(e);
+ }
getHistory().save();
+ }
+
+ /**
+ * @see org.apache.lenya.transaction.Transactionable#checkin()
+ */
+ public void checkin() throws TransactionException {
+ // TODO Auto-generated method stub
+
+ }
+
+ /**
+ * @see org.apache.lenya.transaction.Transactionable#checkout()
+ */
+ public void checkout() throws TransactionException {
+ // TODO Auto-generated method stub
+
+ }
+
+ /**
+ * @see org.apache.lenya.transaction.Transactionable#isCheckedOut()
+ */
+ public boolean isCheckedOut() throws TransactionException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /**
+ * @see org.apache.lenya.transaction.Transactionable#lock()
+ */
+ public void lock() throws TransactionException {
+ // TODO Auto-generated method stub
+
+ }
+
+ /**
+ * @see org.apache.lenya.transaction.Transactionable#unlock()
+ */
+ public void unlock() throws TransactionException {
+ // TODO Auto-generated method stub
+
+ }
+
+ /**
+ * @see org.apache.lenya.transaction.Transactionable#isLocked()
+ */
+ public boolean isLocked() throws TransactionException {
+ // TODO Auto-generated method stub
+ return false;
}
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/Document.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/Document.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/Document.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/Document.java Thu Mar 31 04:49:41 2005
@@ -24,12 +24,13 @@
import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.publication.util.DocumentVisitor;
+import org.apache.lenya.transaction.Transactionable;
import org.apache.lenya.workflow.Workflowable;
/**
* A CMS document.
*/
-public interface Document extends Workflowable {
+public interface Document extends Workflowable, Transactionable {
/**
* The document namespace URI.
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentFactory.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentFactory.java?view=diff&r1=159583&r2=159584
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentFactory.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DocumentFactory.java Thu Mar 31 04:49:41 2005
@@ -16,190 +16,146 @@
*/
package org.apache.lenya.cms.publication;
-import org.apache.avalon.framework.service.ServiceException;
+import java.io.File;
+
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.ServiceSelector;
+import org.apache.excalibur.source.Source;
+import org.apache.excalibur.source.SourceResolver;
+import org.apache.excalibur.source.SourceUtil;
+import org.apache.lenya.transaction.IdentityMap;
+import org.apache.lenya.transaction.Transactionable;
+import org.apache.lenya.transaction.TransactionableFactory;
/**
- *
+ * Document factory.
*/
-public class DocumentFactory {
+public class DocumentFactory extends AbstractLogEnabled implements TransactionableFactory {
- private DocumentIdentityMap identityMap;
protected ServiceManager manager;
/**
* Ctor.
* @param manager The service manager.
- * @param _identityMap The identity map.
*/
- protected DocumentFactory(ServiceManager manager, DocumentIdentityMap _identityMap) {
- this.identityMap = _identityMap;
+ public DocumentFactory(ServiceManager manager) {
this.manager = manager;
}
/**
- * Returns the identity map.
- * @return An identity map.
- */
- protected DocumentIdentityMap getIdentityMap() {
- return this.identityMap;
- }
-
- /**
- * Checks if a webapp URL represents a document.
- * @param publication The publication.
- * @param webappUrl A web application URL.
- * @return A boolean value.
- * @throws DocumentBuildException if an error occurs.
- */
- public boolean isDocument(Publication publication, String webappUrl)
- throws DocumentBuildException {
- if (publication.exists()) {
-
- ServiceSelector selector = null;
- DocumentBuilder builder = null;
- try {
- selector = (ServiceSelector) this.manager.lookup(DocumentBuilder.ROLE + "Selector");
- builder = (DocumentBuilder) selector.select(publication.getDocumentBuilderHint());
- return builder.isDocument(publication, webappUrl);
- } catch (ServiceException e) {
- throw new DocumentBuildException(e);
- }
- finally {
- if (selector != null) {
- if (builder != null) {
- selector.release(builder);
- }
- this.manager.release(selector);
- }
- }
- }
- else {
- return false;
- }
- }
-
- /**
- * Builds a document in the default language.
- * @param publication The publication.
- * @param area The area.
- * @param documentId The document ID.
- * @return A document.
- * @throws DocumentBuildException if an error occurs.
- */
- public Document get(Publication publication, String area, String documentId)
- throws DocumentBuildException {
- return get(publication, area, documentId, publication.getDefaultLanguage());
- }
-
- /**
- * Builds a document.
+ * Builds a document key.
* @param publication The publication.
* @param area The area.
* @param documentId The document ID.
* @param language The language.
- * @return A document.
- * @throws DocumentBuildException if an error occurs.
+ * @return A key.
*/
- public Document get(Publication publication, String area, String documentId, String language)
- throws DocumentBuildException {
- return this.identityMap.get(publication, area, documentId, language);
+ public Object getKey(Publication publication, String area, String documentId, String language) {
+ return publication.getId() + ":" + area + ":" + documentId + ":" + language;
}
/**
- * Builds a document from a URL.
- * @param publication The publication.
+ * Builds a document key.
+ * @param map The identity map.
* @param webappUrl The web application URL.
- * @return A document.
- * @throws DocumentBuildException if an error occurs.
- */
- public Document getFromURL(Publication publication, String webappUrl)
- throws DocumentBuildException {
- return this.identityMap.getFromURL(publication, webappUrl);
- }
-
- /**
- * Builds a clone of a document for another language.
- * @param document The document to clone.
- * @param language The language of the target document.
- * @return A document.
- * @throws DocumentBuildException if an error occurs.
+ * @return A key.
*/
- public Document getLanguageVersion(Document document, String language)
- throws DocumentBuildException {
- return get(document.getPublication(), document.getArea(), document.getId(), language);
- }
-
- /**
- * Builds a clone of a document for another area.
- * @param document The document to clone.
- * @param area The area of the target document.
- * @return A document.
- * @throws DocumentBuildException if an error occurs.
- */
- public Document getAreaVersion(Document document, String area) throws DocumentBuildException {
- return get(document.getPublication(), area, document.getId(), document.getLanguage());
- }
-
- /**
- * Returns the parent of a document.
- * @param document A document.
- * @return A document or <code>null</code> if the document has no parent.
- * @throws DocumentBuildException if an error occurs.
- */
- public Document getParent(Document document) throws DocumentBuildException {
- Document parent = null;
- int lastSlashIndex = document.getId().lastIndexOf("/");
- if (lastSlashIndex > 0) {
- String parentId = document.getId().substring(0, lastSlashIndex);
- parent = get(document.getPublication(), document.getArea(), parentId, document
- .getLanguage());
+ public Object getKey(DocumentIdentityMap map, String webappUrl) {
+ ServiceSelector selector = null;
+ DocumentBuilder builder = null;
+ SourceResolver resolver = null;
+ Source source = null;
+ Document document;
+ try {
+ resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
+ source = resolver.resolveURI("context://");
+ File servletContext = SourceUtil.getFile(source);
+
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ URLInformation info = new URLInformation(webappUrl);
+ String publicationId = info.getPublicationId();
+ Publication publication = factory.getPublication(publicationId, servletContext
+ .getAbsolutePath());
+
+ selector = (ServiceSelector) this.manager.lookup(DocumentBuilder.ROLE + "Selector");
+ builder = (DocumentBuilder) selector.select(publication.getDocumentBuilderHint());
+ document = builder.buildDocument(map, publication, webappUrl);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ if (selector != null) {
+ if (builder != null) {
+ selector.release(builder);
+ }
+ this.manager.release(selector);
+ }
+ if (resolver != null) {
+ if (source != null) {
+ resolver.release(source);
+ }
+ this.manager.release(resolver);
+ }
}
- return parent;
+ return getKey(document.getPublication(), document.getArea(), document.getId(), document
+ .getLanguage());
}
/**
- * Returns the parent of a document.
- * @param document A document.
- * @param defaultDocumentId The document ID to use if the document has no parent.
- * @return A document.
- * @throws DocumentBuildException if an error occurs.
+ * @see org.apache.lenya.transaction.TransactionableFactory#build(org.apache.lenya.transaction.IdentityMap,
+ * java.lang.Object)
*/
- public Document getParent(Document document, String defaultDocumentId)
- throws DocumentBuildException {
- Document parent = getParent(document);
- if (parent == null) {
- parent = get(document.getPublication(), document.getArea(), defaultDocumentId, document
- .getLanguage());
+ public Transactionable build(IdentityMap map, Object key) throws Exception {
+
+ String keyString = (String) key;
+ String[] snippets = keyString.split(":");
+ String publicationId = snippets[0];
+ String area = snippets[1];
+ String documentId = snippets[2];
+ String language = snippets[3];
+
+ ServiceSelector selector = null;
+ DocumentBuilder builder = null;
+ SourceResolver resolver = null;
+ Source source = null;
+ Document document;
+ try {
+ resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
+ source = resolver.resolveURI("context://");
+ File servletContext = SourceUtil.getFile(source);
+
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication publication = factory.getPublication(publicationId, servletContext
+ .getAbsolutePath());
+
+ selector = (ServiceSelector) this.manager.lookup(DocumentBuilder.ROLE + "Selector");
+ builder = (DocumentBuilder) selector.select(publication.getDocumentBuilderHint());
+ String webappUrl = builder.buildCanonicalUrl(publication, area, documentId, language);
+ document = builder.buildDocument((DocumentIdentityMap) map, publication, webappUrl);
+ } finally {
+ if (selector != null) {
+ if (builder != null) {
+ selector.release(builder);
+ }
+ this.manager.release(selector);
+ }
+ if (resolver != null) {
+ if (source != null) {
+ resolver.release(source);
+ }
+ this.manager.release(resolver);
+ }
}
- return parent;
+ return document;
}
/**
- * Checks if a string represents a valid document ID.
- * @param id The string.
- * @return A boolean value.
+ * @see org.apache.lenya.transaction.TransactionableFactory#getKey(org.apache.lenya.transaction.Transactionable)
*/
- public boolean isValidDocumentId(String id) {
-
- if (!id.startsWith("/")) {
- return false;
- }
-
- String[] snippets = id.split("/");
-
- if (snippets.length < 2) {
- return false;
- }
-
- for (int i = 1; i < snippets.length; i++) {
- if (!snippets[i].matches("[a-zA-Z0-9\\-]+")) {
- return false;
- }
- }
-
- return true;
+ public Object getKey(Transactionable transactionable) {
+ Document document = (Document) transactionable;
+ return getKey(document.getPublication(), document.getArea(), document.getId(), document
+ .getLanguage());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org