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/01/25 18:51:57 UTC
svn commit: r126400 - in lenya/trunk/src/java/org/apache/lenya: . cms/ac cms/ac/cocoon cms/ac/usecase cms/ac/workflow cms/ant cms/cocoon/acting cms/cocoon/components/modules/input cms/cocoon/flow cms/cocoon/scheduler cms/cocoon/source cms/cocoon/task cms/cocoon/transformation cms/publication cms/publication/task cms/publication/templating cms/publication/util cms/scheduler cms/site/tree cms/task cms/usecase cms/workflow/usecases
Author: andreas
Date: Tue Jan 25 09:51:54 2005
New Revision: 126400
URL: http://svn.apache.org/viewcvs?view=rev&rev=126400
Log:
switch to AbstractLogEnabled
Added:
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java
Modified:
lenya/trunk/src/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java
lenya/trunk/src/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java
lenya/trunk/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizer.java
lenya/trunk/src/java/org/apache/lenya/cms/ac/workflow/WorkflowAuthorizer.java
lenya/trunk/src/java/org/apache/lenya/cms/ant/PublicationTask.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.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/PublicationTemplateFallbackModule.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/scheduler/SchedulerHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/task/CocoonTaskWrapper.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/UsecaseMenuTransformer.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/AbstractPublication.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocument.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationFactory.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/ResourcesManager.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/task/PublicationTask.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentHelper.java
lenya/trunk/src/java/org/apache/lenya/cms/scheduler/LoadQuartzServlet.java
lenya/trunk/src/java/org/apache/lenya/cms/scheduler/SchedulerWrapper.java
lenya/trunk/src/java/org/apache/lenya/cms/site/tree/TreeSiteManager.java
lenya/trunk/src/java/org/apache/lenya/cms/task/TaskParameters.java
lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java
lenya/trunk/src/java/org/apache/lenya/cms/usecase/UnitOfWorkImpl.java
lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java
lenya/trunk/src/java/org/apache/lenya/cms/usecase/WorkflowUsecase.java
lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java
lenya/trunk/src/java/org/apache/lenya/lenya.roles
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/DocumentPolicyManagerWrapper.java Tue Jan 25 09:51:54 2005
@@ -126,7 +126,8 @@
File servletContext = SourceUtil.getFile(source);
getLogger().debug(" Webapp URL: [" + url + "]");
getLogger().debug(" Serlvet context: [" + servletContext.getAbsolutePath() + "]");
- publication = PublicationFactory.getPublication(url, servletContext);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ publication = factory.getPublication(url, servletContext);
} catch (Exception e) {
throw new AccessControlException(e);
} finally {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java Tue Jan 25 09:51:54 2005
@@ -37,30 +37,31 @@
import org.apache.lenya.cms.publication.URLInformation;
/**
- * Resolves the access controller according to the <code>ac.xconf</code> file of a publication.
+ * Resolves the access controller according to the <code>ac.xconf</code> file
+ * of a publication.
*/
-public class PublicationAccessControllerResolver
- extends AbstractAccessControllerResolver
- implements Initializable {
+public class PublicationAccessControllerResolver extends AbstractAccessControllerResolver implements
+ Initializable {
- protected static final String CONFIGURATION_FILE =
- "config/ac/ac.xconf".replace('/', File.separatorChar);
+ protected static final String CONFIGURATION_FILE = "config/ac/ac.xconf".replace('/',
+ File.separatorChar);
protected static final String TYPE_ATTRIBUTE = "type";
/**
- * This implementation uses the publication ID in combination with the context path
- * as cache key.
- * @see org.apache.lenya.ac.impl.AbstractAccessControllerResolver#generateCacheKey(java.lang.String, org.apache.excalibur.source.SourceResolver)
+ * This implementation uses the publication ID in combination with the
+ * context path as cache key.
+ * @see org.apache.lenya.ac.impl.AbstractAccessControllerResolver#generateCacheKey(java.lang.String,
+ * org.apache.excalibur.source.SourceResolver)
*/
protected Object generateCacheKey(String webappUrl, SourceResolver resolver)
- throws AccessControlException {
-
+ throws AccessControlException {
+
URLInformation info = new URLInformation(webappUrl);
String publicationId = info.getPublicationId();
if (getLogger().isDebugEnabled()) {
- getLogger().debug(
- "Using first URL step (might be publication ID) as cache key: [" + publicationId + "]");
+ getLogger().debug("Using first URL step (might be publication ID) as cache key: ["
+ + publicationId + "]");
}
return super.generateCacheKey(publicationId, resolver);
@@ -70,7 +71,7 @@
* @see org.apache.lenya.ac.impl.AbstractAccessControllerResolver#doResolveAccessController(java.lang.String)
*/
public AccessController doResolveAccessController(String webappUrl)
- throws AccessControlException {
+ throws AccessControlException {
getLogger().debug("Resolving controller for URL [" + webappUrl + "]");
AccessController controller = null;
@@ -84,8 +85,8 @@
}
/**
- * Returns the publication for the webapp URL or null if the URL is not included
- * in a publication.
+ * Returns the publication for the webapp URL or null if the URL is not
+ * included in a publication.
* @param webappUrl The webapp URL.
* @return A publication.
* @throws AccessControlException when something went wrong.
@@ -99,19 +100,17 @@
if (url.length() > 0) {
- URLInformation info = new URLInformation(webappUrl);
+ URLInformation info = new URLInformation(webappUrl);
String publicationId = info.getPublicationId();
File contextDir = getContext();
- if (PublicationFactory
- .existsPublication(publicationId, contextDir.getAbsolutePath())) {
+ if (PublicationFactory.existsPublication(publicationId, contextDir.getAbsolutePath())) {
getLogger().debug("Publication [" + publicationId + "] exists.");
try {
- publication =
- PublicationFactory.getPublication(
- publicationId,
- contextDir.getAbsolutePath());
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ publication = factory.getPublication(publicationId, contextDir
+ .getAbsolutePath());
} catch (PublicationException e) {
throw new AccessControlException(e);
}
@@ -124,12 +123,12 @@
}
/**
- * Returns the servlet context.
+ * Returns the servlet context.
* @return A file.
* @throws AccessControlException when something went wrong.
*/
protected File getContext() throws AccessControlException {
- return context;
+ return this.context;
}
private File context;
@@ -142,7 +141,7 @@
* @throws AccessControlException when something went wrong.
*/
public AccessController resolveAccessController(Publication publication, String url)
- throws AccessControlException {
+ throws AccessControlException {
assert publication != null;
@@ -151,12 +150,12 @@
if (configurationFile.isFile()) {
try {
- Configuration configuration =
- new DefaultConfigurationBuilder().buildFromFile(configurationFile);
+ Configuration configuration = new DefaultConfigurationBuilder()
+ .buildFromFile(configurationFile);
String type = configuration.getAttribute(TYPE_ATTRIBUTE);
- accessController =
- (AccessController) getManager().lookup(AccessController.ROLE + "/" + type);
+ accessController = (AccessController) getManager().lookup(AccessController.ROLE
+ + "/" + type);
if (accessController instanceof Configurable) {
((Configurable) accessController).configure(configuration);
@@ -181,11 +180,11 @@
resolver = (SourceResolver) getManager().lookup(SourceResolver.ROLE);
contextSource = resolver.resolveURI("context:///");
contextDir = SourceUtil.getFile(contextSource);
-
+
if (contextDir == null || !contextDir.isDirectory()) {
throw new AccessControlException("The servlet context is not a directory!");
}
-
+
} finally {
if (resolver != null) {
if (contextSource != null) {
@@ -197,4 +196,4 @@
this.context = contextDir;
}
-}
+}
\ No newline at end of file
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -74,7 +74,7 @@
* @return A logger.
*/
protected Logger getLogger() {
- return logger;
+ return this.logger;
}
/**
@@ -89,22 +89,23 @@
this.manager = manager;
- accessController = null;
- selector = null;
- resolver = null;
- policyManager = null;
+ this.accessController = null;
+ this.selector = null;
+ this.resolver = null;
+ this.policyManager = null;
- url = computeUrl(objectModel, area);
+ this.url = computeUrl(objectModel, area);
try {
- selector = (ComponentSelector) manager.lookup(AccessControllerResolver.ROLE
+ this.selector = (ComponentSelector) manager.lookup(AccessControllerResolver.ROLE
+ "Selector");
- resolver = (AccessControllerResolver) selector
+ this.resolver = (AccessControllerResolver) this.selector
.select(AccessControllerResolver.DEFAULT_RESOLVER);
- accessController = (DefaultAccessController) resolver.resolveAccessController(url);
+ this.accessController = (DefaultAccessController) this.resolver
+ .resolveAccessController(this.url);
- policyManager = (InheritingPolicyManager) accessController.getPolicyManager();
+ this.policyManager = (InheritingPolicyManager) this.accessController.getPolicyManager();
} catch (Exception e) {
throw new ProcessingException("Obtaining credentials failed: ", e);
}
@@ -135,8 +136,8 @@
}
/**
- * Returns the credential wrappers for the parent URI of the URL belonging to the request of
- * this object model.
+ * Returns the credential wrappers for the parent URI of the URL belonging
+ * to the request of this object model.
* @return An array of CredentialWrappers.
* @throws ProcessingException when something went wrong.
*/
@@ -146,8 +147,8 @@
/**
* Returns the credentials of the policy of the selected URL.
- * @param urlOnly If true, the URL policy credentials are returned. If false, the credentials of
- * all ancestor policies are returned.
+ * @param urlOnly If true, the URL policy credentials are returned. If
+ * false, the credentials of all ancestor policies are returned.
* @return An array of CredentialWrappers.
* @throws ProcessingException when something went wrong.
*/
@@ -175,16 +176,18 @@
}
/**
- * Computes the webapp URL belonging to an object model with respect to the selected area.
+ * Computes the webapp URL belonging to an object model with respect to the
+ * selected area.
* @param objectModel The Cocoon object model.
* @param area The selected area.
* @return A string.
* @throws ProcessingException when something went wrong.
*/
- private static String computeUrl(Map objectModel, String area) throws ProcessingException {
+ private String computeUrl(Map objectModel, String area) throws ProcessingException {
PageEnvelope envelope;
try {
- Publication publication = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication publication = factory.getPublication(objectModel);
DocumentIdentityMap map = new DocumentIdentityMap(publication);
envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(map, objectModel);
} catch (Exception e) {
@@ -197,8 +200,8 @@
/**
* Returns the policies for a certain URL.
- * @param onlyUrl If true, only the URL policies are returned. Otherwise, all ancestor policies
- * are returned.
+ * @param onlyUrl If true, only the URL policies are returned. Otherwise,
+ * all ancestor policies are returned.
* @return An array of DefaultPolicy objects.
* @throws ProcessingException when something went wrong.
*/
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizer.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizer.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizer.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizer.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizer.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizer.java Tue Jan 25 09:51:54 2005
@@ -93,7 +93,8 @@
if (getConfigurationURI() != null) {
configurationUri = getConfigurationURI();
} else {
- Publication publication = PublicationFactory.getPublication(resolver, request);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication publication = factory.getPublication(resolver, request);
configurationUri = getConfigurationURI(publication);
}
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/ac/workflow/WorkflowAuthorizer.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/ac/workflow/WorkflowAuthorizer.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -72,7 +72,8 @@
try {
resolver = (SourceResolver) manager.lookup(SourceResolver.ROLE);
- Publication publication = PublicationFactory.getPublication(resolver, request);
+ PublicationFactory pubFactory = PublicationFactory.getInstance(getLogger());
+ Publication publication = pubFactory.getPublication(resolver, request);
DocumentIdentityMap map = new DocumentIdentityMap(publication);
if (map.getFactory().isDocument(url)) {
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/ant/PublicationTask.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/ant/PublicationTask.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ant/PublicationTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ant/PublicationTask.java Tue Jan 25 09:51:54 2005
@@ -22,6 +22,9 @@
import java.io.File;
import java.io.IOException;
+import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.logger.Log4JLogger;
+import org.apache.avalon.framework.logger.Logger;
import org.apache.lenya.cms.publication.DocumentIdentityMap;
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.publication.PublicationException;
@@ -30,6 +33,7 @@
import org.apache.lenya.cms.site.tree.SiteTree;
import org.apache.lenya.cms.site.tree.TreeSiteManager;
import org.apache.lenya.cms.task.AntTask;
+import org.apache.log4j.Category;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
@@ -85,7 +89,8 @@
protected DocumentIdentityMap getIdentityMap() {
if (this.identityMap == null) {
try {
- Publication publication = PublicationFactory.getPublication(getPublicationId(),
+ PublicationFactory factory = PublicationFactory.getInstance(new ConsoleLogger());
+ Publication publication = factory.getPublication(getPublicationId(),
getServletContext().getCanonicalPath());
this.identityMap = new DocumentIdentityMap(publication);
} catch (IOException e) {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/DocumentIdExistsAction.java Tue Jan 25 09:51:54 2005
@@ -76,7 +76,8 @@
return null;
}
- Publication publication = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication publication = factory.getPublication(objectModel);
DocumentIdentityMap map = new DocumentIdentityMap(publication);
PageEnvelope envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(map, objectModel);
Document document = map.getFactory().get(envelope.getDocument().getArea(), documentId);
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/LanguageExistsAction.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -67,7 +67,8 @@
public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, String source,
Parameters parameters) throws Exception {
- Publication pub = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication pub = factory.getPublication(objectModel);
DocumentIdentityMap map = new DocumentIdentityMap(pub);
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/RevisionControllerAction.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -68,7 +68,8 @@
}
PageEnvelope envelope = null;
- Publication publication = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication publication = factory.getPublication(objectModel);
DocumentIdentityMap map = new DocumentIdentityMap(publication);
Document document = null;
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/UploadAction.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -100,7 +100,8 @@
Map results = new HashMap();
Request request = ObjectModelHelper.getRequest(objectModel);
- Publication pub = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication pub = factory.getPublication(objectModel);
DocumentIdentityMap map = new DocumentIdentityMap(pub);
pageEnvelope = PageEnvelopeFactory.getInstance().getPageEnvelope(map, objectModel);
document = 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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/WorkflowInvokerAction.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -73,7 +73,8 @@
getLogger().debug(" Event: [" + eventName + "]");
}
- Publication pub = PublicationFactory.getPublication(objectModel);
+ PublicationFactory pubFactory = PublicationFactory.getInstance(getLogger());
+ Publication pub = pubFactory.getPublication(objectModel);
DocumentIdentityMap map = new DocumentIdentityMap(pub);
Document document = map.getFactory().get(area, documentId, language);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationTemplateFallbackModule.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationTemplateFallbackModule.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationTemplateFallbackModule.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationTemplateFallbackModule.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationTemplateFallbackModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/PublicationTemplateFallbackModule.java Tue Jan 25 09:51:54 2005
@@ -49,7 +49,8 @@
try {
PublicationTemplateManager templateManager = (PublicationTemplateManager) this.manager
.lookup(PublicationTemplateManager.ROLE);
- Publication publication = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication publication = factory.getPublication(objectModel);
templateManager.setup(publication);
ExistingSourceResolver resolver = new ExistingSourceResolver();
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelper.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelper.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelper.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelper.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelper.java Tue Jan 25 09:51:54 2005
@@ -14,9 +14,6 @@
* limitations under the License.
*
*/
-
-/* $Id$ */
-
package org.apache.lenya.cms.cocoon.flow;
import java.io.File;
@@ -27,20 +24,11 @@
import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
-import org.apache.cocoon.environment.Session;
import org.apache.lenya.ac.AccessControlException;
import org.apache.lenya.ac.Identity;
-import org.apache.lenya.ac.Machine;
-import org.apache.lenya.ac.Role;
-import org.apache.lenya.ac.User;
-import org.apache.lenya.ac.impl.PolicyAuthorizer;
-import org.apache.lenya.cms.publication.DocumentIdentityMap;
import org.apache.lenya.cms.publication.PageEnvelope;
import org.apache.lenya.cms.publication.PageEnvelopeException;
-import org.apache.lenya.cms.publication.PageEnvelopeFactory;
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.publication.util.DocumentHelper;
import org.apache.lenya.cms.rc.FileReservedCheckInException;
import org.apache.lenya.cms.rc.RCEnvironment;
@@ -49,23 +37,11 @@
import org.apache.lenya.cms.workflow.WorkflowFactory;
import org.apache.lenya.workflow.Situation;
import org.apache.lenya.workflow.WorkflowException;
-import org.apache.log4j.Category;
/**
* Flowscript utility class.
- * The FOM_Cocoon object is not passed in the constructor to avoid
- * errors. This way, not the initial, but the current FOM_Cocoon
- * object is used by the methods.
*/
-public class FlowHelper {
-
- private static final Category log = Category.getInstance(FlowHelper.class);
-
- /**
- * Ctor.
- */
- public FlowHelper() {
- }
+public interface FlowHelper {
/**
* Returns the current workflow situation.
@@ -73,34 +49,7 @@
* @return A situation.
* @throws AccessControlException when something went wrong.
*/
- public Situation getSituation(FOM_Cocoon cocoon) throws AccessControlException {
- Request request = ObjectModelHelper.getRequest(cocoon.getObjectModel());
- Session session = request.getSession();
- Identity identity = (Identity) session.getAttribute(Identity.class.getName());
-
- String userId = "";
- String ipAddress = "";
-
- User user = identity.getUser();
- if (user != null) {
- userId = user.getId();
- }
-
- Machine machine = identity.getMachine();
- if (machine != null) {
- ipAddress = machine.getIp();
- }
-
- Role[] roles = PolicyAuthorizer.getRoles(request);
- String[] roleIds = new String[roles.length];
- for (int i = 0; i < roles.length; i++) {
- roleIds[i] = roles[i].getId();
- }
-
- WorkflowFactory factory = WorkflowFactory.newInstance();
- Situation situation = factory.buildSituation(roleIds, userId, ipAddress);
- return situation;
- }
+ Situation getSituation(FOM_Cocoon cocoon) throws AccessControlException;
/**
* Returns the current page envelope.
@@ -108,104 +57,59 @@
* @return A page envelope.
* @throws PageEnvelopeException when something went wrong.
*/
- public PageEnvelope getPageEnvelope(FOM_Cocoon cocoon) throws PageEnvelopeException {
-
- Publication pub;
- try {
- pub = PublicationFactory.getPublication(cocoon.getObjectModel());
- } catch (PublicationException e) {
- throw new PageEnvelopeException(e);
- }
- DocumentIdentityMap map = new DocumentIdentityMap(pub);
- PageEnvelopeFactory factory = PageEnvelopeFactory.getInstance();
- return factory.getPageEnvelope(map, cocoon.getObjectModel());
- }
+ PageEnvelope getPageEnvelope(FOM_Cocoon cocoon) throws PageEnvelopeException;
/**
* Returns the request URI of the current request.
* @param cocoon The FOM_Cocoon object.
* @return A string.
*/
- public String getRequestURI(FOM_Cocoon cocoon) {
- return cocoon.getRequest().getRequestURI();
- }
-
+ String getRequestURI(FOM_Cocoon cocoon);
+
/**
* Returns the request object of the current request.
* @param cocoon The FOM_Cocoon object.
* @return A request object.
*/
- public Request getRequest(FOM_Cocoon cocoon) {
- return cocoon.getRequest();
- }
+ Request getRequest(FOM_Cocoon cocoon);
/**
* Returns the Cocoon Object Model
* @param cocoon The Flow Object Model of Cocoon
* @return The object model
*/
- public Map getObjectModel(FOM_Cocoon cocoon) {
- return cocoon.getObjectModel();
- }
-
+ Map getObjectModel(FOM_Cocoon cocoon);
+
/**
- * Returns a DocumentHelper instance.
- * @param cocoon The Flow Object Model of Cocoon
+ * Returns a DocumentHelper instance.
+ * @param cocoon The Flow Object Model of Cocoon
* @return The document helper
* @see DocumentHelper
*/
- public DocumentHelper getDocumentHelper(FOM_Cocoon cocoon) {
- return new DocumentHelper(cocoon.getObjectModel());
- }
-
- public static final String SEPARATOR = ":";
+ DocumentHelper getDocumentHelper(FOM_Cocoon cocoon);
/**
- * Resolves the request parameter value for a specific name.
- * The parameter names are encoded as <code>{name}:{value}.{axis}</code>.
- * This is a workaround for the <input type="image"/>
- * bug in Internet Explorer.
+ * Resolves the request parameter value for a specific name. The parameter
+ * names are encoded as <code>{name}:{value}.{axis}</code>. This is a
+ * workaround for the <input type="image"/> bug in Internet Explorer.
* @param cocoon The FOM_Cocoon object.
* @param parameterName The request parameter name.
* @return A string.
*/
- public String getImageParameterValue(FOM_Cocoon cocoon, String parameterName) {
-
- log.debug("Resolving parameter value for name [" + parameterName + "]");
+ String getImageParameterValue(FOM_Cocoon cocoon, String parameterName);
- Request request = cocoon.getRequest();
- String value = request.getParameter(parameterName);
-
- if (value == null) {
- String prefix = parameterName + SEPARATOR;
- Enumeration e = request.getParameterNames();
- while (e.hasMoreElements() && value == null) {
- String name = (String) e.nextElement();
- if (name.startsWith(prefix)) {
- log.debug("Complete parameter name: [" + name + "]");
- value = name.substring(prefix.length(), name.length() - 2);
- log.debug("Resolved value: [" + value + "]");
- }
- }
- }
-
- return value;
- }
-
/**
- * Trigger a workflow event for the document associated with the current PageEnvelope.
+ * Trigger a workflow event for the document associated with the current
+ * PageEnvelope.
* @param cocoon The Cocoon Flow Object Model
* @param event The name of the workflow event to trigger.
* @throws WorkflowException If an workflow error occurs
* @throws PageEnvelopeException Page envelope can not operate properly.
* @throws AccessControlException If an access control violation occurs.
*/
- public void triggerWorkflow(FOM_Cocoon cocoon, String event)
- throws WorkflowException, PageEnvelopeException, AccessControlException {
- final WorkflowDocument wf = (WorkflowDocument)WorkflowFactory.newInstance().buildInstance(getPageEnvelope(cocoon).getDocument());
- wf.invoke(getSituation(cocoon), event);
- }
-
+ void triggerWorkflow(FOM_Cocoon cocoon, String event) throws WorkflowException,
+ PageEnvelopeException, AccessControlException;
+
/**
* Get a RevisionController instance.
* @param cocoon The Cocoon Flow Object Model
@@ -214,35 +118,17 @@
* @see PageEnvelope
* @see RevisionController
*/
- public RevisionController getRevisionController(FOM_Cocoon cocoon)
- throws PageEnvelopeException, IOException {
- final RevisionController rc = null;
- final Publication publication = getPageEnvelope(cocoon).getPublication();
- final String publicationPath = publication.getDirectory().getCanonicalPath();
- final RCEnvironment rcEnvironment = RCEnvironment.getInstance(publication.getServletContext().getCanonicalPath());
- String rcmlDirectory = rcEnvironment.getRCMLDirectory();
- rcmlDirectory = publicationPath + File.separator + rcmlDirectory;
- String backupDirectory = rcEnvironment.getBackupDirectory();
- backupDirectory = publicationPath + File.separator + backupDirectory;
-
- return new RevisionController(rcmlDirectory, backupDirectory, publicationPath);
- }
-
+ RevisionController getRevisionController(FOM_Cocoon cocoon) throws PageEnvelopeException,
+ IOException;
+
/**
* Checkis in the current document from the PageEnvelope context.
* @param cocoon The Cocoon Flow Object Model
* @param backup Wether a new revision should be created.
- * @throws FileReservedCheckInException
+ * @throws FileReservedCheckInException
* @throws Exception
* @see RevisionController#reservedCheckIn(String, String, boolean)
*/
- public void reservedCheckIn(FOM_Cocoon cocoon, boolean backup)
- throws FileReservedCheckInException, Exception
- {
- final Identity identity = (Identity) ObjectModelHelper.getRequest(cocoon.getObjectModel()).getSession().getAttribute(Identity.class.getName());
- final PageEnvelope pageEnvelope = getPageEnvelope(cocoon);
- final Publication publication = getPageEnvelope(cocoon).getPublication();
- final String filename = pageEnvelope.getDocument().getFile().getCanonicalPath().substring(publication.getDirectory().getCanonicalPath().length());
- getRevisionController(cocoon).reservedCheckIn(filename, identity.getUser().getId(), backup);
- }
-}
+ void reservedCheckIn(FOM_Cocoon cocoon, boolean backup) throws FileReservedCheckInException,
+ Exception;
+}
\ No newline at end of file
Added: 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=auto&rev=126400
==============================================================================
--- (empty file)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java Tue Jan 25 09:51:54 2005
@@ -0,0 +1,216 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/* $Id: FlowHelper.java 123348 2004-12-25 22:49:57Z gregor $ */
+
+package org.apache.lenya.cms.cocoon.flow;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.Map;
+
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon;
+import org.apache.cocoon.environment.ObjectModelHelper;
+import org.apache.cocoon.environment.Request;
+import org.apache.cocoon.environment.Session;
+import org.apache.lenya.ac.AccessControlException;
+import org.apache.lenya.ac.Identity;
+import org.apache.lenya.ac.Machine;
+import org.apache.lenya.ac.Role;
+import org.apache.lenya.ac.User;
+import org.apache.lenya.ac.impl.PolicyAuthorizer;
+import org.apache.lenya.cms.publication.DocumentIdentityMap;
+import org.apache.lenya.cms.publication.PageEnvelope;
+import org.apache.lenya.cms.publication.PageEnvelopeException;
+import org.apache.lenya.cms.publication.PageEnvelopeFactory;
+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.publication.util.DocumentHelper;
+import org.apache.lenya.cms.rc.FileReservedCheckInException;
+import org.apache.lenya.cms.rc.RCEnvironment;
+import org.apache.lenya.cms.rc.RevisionController;
+import org.apache.lenya.cms.workflow.WorkflowDocument;
+import org.apache.lenya.cms.workflow.WorkflowFactory;
+import org.apache.lenya.workflow.Situation;
+import org.apache.lenya.workflow.WorkflowException;
+
+/**
+ * Flowscript utility class. The FOM_Cocoon object is not passed in the
+ * constructor to avoid errors. This way, not the initial, but the current
+ * FOM_Cocoon object is used by the methods.
+ */
+public class FlowHelperImpl extends AbstractLogEnabled implements FlowHelper {
+
+ /**
+ * Ctor.
+ */
+ public FlowHelperImpl() {
+ }
+
+ /**
+ * @see org.apache.lenya.cms.cocoon.flow.FlowHelper#getSituation(org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon)
+ */
+ public Situation getSituation(FOM_Cocoon cocoon) throws AccessControlException {
+ Request request = ObjectModelHelper.getRequest(cocoon.getObjectModel());
+ Session session = request.getSession();
+ Identity identity = (Identity) session.getAttribute(Identity.class.getName());
+
+ String userId = "";
+ String ipAddress = "";
+
+ User user = identity.getUser();
+ if (user != null) {
+ userId = user.getId();
+ }
+
+ Machine machine = identity.getMachine();
+ if (machine != null) {
+ ipAddress = machine.getIp();
+ }
+
+ Role[] roles = PolicyAuthorizer.getRoles(request);
+ String[] roleIds = new String[roles.length];
+ for (int i = 0; i < roles.length; i++) {
+ roleIds[i] = roles[i].getId();
+ }
+
+ WorkflowFactory factory = WorkflowFactory.newInstance();
+ Situation situation = factory.buildSituation(roleIds, userId, ipAddress);
+ return situation;
+ }
+
+ /**
+ * @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 {
+
+ Publication pub;
+ try {
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ pub = factory.getPublication(cocoon.getObjectModel());
+ } catch (PublicationException e) {
+ throw new PageEnvelopeException(e);
+ }
+ DocumentIdentityMap map = new DocumentIdentityMap(pub);
+ PageEnvelopeFactory factory = PageEnvelopeFactory.getInstance();
+ return factory.getPageEnvelope(map, cocoon.getObjectModel());
+ }
+
+ /**
+ * @see org.apache.lenya.cms.cocoon.flow.FlowHelper#getRequestURI(org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon)
+ */
+ public String getRequestURI(FOM_Cocoon cocoon) {
+ return cocoon.getRequest().getRequestURI();
+ }
+
+ /**
+ * @see org.apache.lenya.cms.cocoon.flow.FlowHelper#getRequest(org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon)
+ */
+ public Request getRequest(FOM_Cocoon cocoon) {
+ return cocoon.getRequest();
+ }
+
+ /**
+ * @see org.apache.lenya.cms.cocoon.flow.FlowHelper#getObjectModel(org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon)
+ */
+ public Map getObjectModel(FOM_Cocoon cocoon) {
+ return cocoon.getObjectModel();
+ }
+
+ /**
+ * @see org.apache.lenya.cms.cocoon.flow.FlowHelper#getDocumentHelper(org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon)
+ */
+ public DocumentHelper getDocumentHelper(FOM_Cocoon cocoon) {
+ return new DocumentHelper(cocoon.getObjectModel());
+ }
+
+ public static final String SEPARATOR = ":";
+
+ /**
+ * @see org.apache.lenya.cms.cocoon.flow.FlowHelper#getImageParameterValue(org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon,
+ * java.lang.String)
+ */
+ public String getImageParameterValue(FOM_Cocoon cocoon, String parameterName) {
+
+ getLogger().debug("Resolving parameter value for name [" + parameterName + "]");
+
+ Request request = cocoon.getRequest();
+ String value = request.getParameter(parameterName);
+
+ if (value == null) {
+ String prefix = parameterName + SEPARATOR;
+ Enumeration e = request.getParameterNames();
+ while (e.hasMoreElements() && value == null) {
+ String name = (String) e.nextElement();
+ if (name.startsWith(prefix)) {
+ getLogger().debug("Complete parameter name: [" + name + "]");
+ value = name.substring(prefix.length(), name.length() - 2);
+ getLogger().debug("Resolved value: [" + value + "]");
+ }
+ }
+ }
+
+ return value;
+ }
+
+ /**
+ * @see org.apache.lenya.cms.cocoon.flow.FlowHelper#triggerWorkflow(org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon,
+ * java.lang.String)
+ */
+ public void triggerWorkflow(FOM_Cocoon cocoon, String event) throws WorkflowException,
+ PageEnvelopeException, AccessControlException {
+ final WorkflowDocument wf = (WorkflowDocument) WorkflowFactory.newInstance()
+ .buildInstance(getPageEnvelope(cocoon).getDocument());
+ wf.invoke(getSituation(cocoon), event);
+ }
+
+ /**
+ * @see org.apache.lenya.cms.cocoon.flow.FlowHelper#getRevisionController(org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon)
+ */
+ public RevisionController getRevisionController(FOM_Cocoon cocoon)
+ throws PageEnvelopeException, IOException {
+ final RevisionController rc = null;
+ final Publication publication = getPageEnvelope(cocoon).getPublication();
+ final String publicationPath = publication.getDirectory().getCanonicalPath();
+ final RCEnvironment rcEnvironment = RCEnvironment.getInstance(publication
+ .getServletContext().getCanonicalPath());
+ String rcmlDirectory = rcEnvironment.getRCMLDirectory();
+ rcmlDirectory = publicationPath + File.separator + rcmlDirectory;
+ String backupDirectory = rcEnvironment.getBackupDirectory();
+ backupDirectory = publicationPath + File.separator + backupDirectory;
+
+ return new RevisionController(rcmlDirectory, backupDirectory, publicationPath);
+ }
+
+ /**
+ * @see org.apache.lenya.cms.cocoon.flow.FlowHelper#reservedCheckIn(org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon,
+ * boolean)
+ */
+ public void reservedCheckIn(FOM_Cocoon cocoon, boolean backup)
+ throws FileReservedCheckInException, Exception {
+ final Identity identity = (Identity) ObjectModelHelper.getRequest(cocoon.getObjectModel())
+ .getSession().getAttribute(Identity.class.getName());
+ final PageEnvelope pageEnvelope = getPageEnvelope(cocoon);
+ final Publication publication = getPageEnvelope(cocoon).getPublication();
+ final String filename = pageEnvelope.getDocument().getFile().getCanonicalPath()
+ .substring(publication.getDirectory().getCanonicalPath().length());
+ getRevisionController(cocoon).reservedCheckIn(filename, identity.getUser().getId(), backup);
+ }
+}
\ No newline at end of file
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/scheduler/SchedulerHelper.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/scheduler/SchedulerHelper.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -20,6 +20,7 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.ProcessingException;
@@ -70,7 +71,8 @@
NamespaceMap schedulerParameters = new NamespaceMap(LoadQuartzServlet.PREFIX);
- Publication pub = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(new ConsoleLogger());
+ Publication pub = factory.getPublication(objectModel);
DocumentIdentityMap identityMap = new DocumentIdentityMap(pub);
PageEnvelope envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(identityMap,
objectModel);
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -101,7 +101,8 @@
Map objectModel = ContextHelper.getObjectModel(this.context);
try {
- Publication pub = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication pub = factory.getPublication(objectModel);
DocumentIdentityMap map = new DocumentIdentityMap(pub);
PageEnvelopeFactory pageEnvelopeFactory = PageEnvelopeFactory.getInstance();
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/task/CocoonTaskWrapper.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/task/CocoonTaskWrapper.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/task/CocoonTaskWrapper.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/task/CocoonTaskWrapper.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/task/CocoonTaskWrapper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/task/CocoonTaskWrapper.java Tue Jan 25 09:51:54 2005
@@ -22,6 +22,7 @@
import java.util.Iterator;
import java.util.Map;
+import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
@@ -62,7 +63,8 @@
Publication publication;
try {
- publication = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(new ConsoleLogger());
+ publication = factory.getPublication(objectModel);
} catch (PublicationException e) {
throw new ExecutionException(e);
}
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/DocumentIndexTransformer.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/DocumentIndexTransformer.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -99,7 +99,8 @@
parameterize(parameters);
PageEnvelope envelope = null;
- Publication pub = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication pub = factory.getPublication(objectModel);
this.identityMap = new DocumentIdentityMap(pub);
envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(this.identityMap,
objectModel);
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/LinkRewritingTransformer.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/LinkRewritingTransformer.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -93,7 +93,8 @@
super.setup(resolver, objectModel, source, parameters);
try {
- Publication pub = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication pub = factory.getPublication(objectModel);
this.identityMap = new DocumentIdentityMap(pub);
PageEnvelope envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(
this.identityMap, objectModel);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java Tue Jan 25 09:51:54 2005
@@ -115,7 +115,8 @@
try {
roles = PolicyAuthorizer.getRoles(request);
- publication = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ publication = factory.getPublication(objectModel);
serviceSelector =
(ServiceSelector) manager.lookup(AccessControllerResolver.ROLE + "Selector");
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/cocoon/transformation/WorkflowMenuTransformer.java&r2=126400
==============================================================================
--- 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 Tue Jan 25 09:51:54 2005
@@ -113,7 +113,8 @@
PageEnvelope envelope = null;
try {
- Publication pub = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication pub = factory.getPublication(objectModel);
DocumentIdentityMap map = new DocumentIdentityMap(pub);
envelope = PageEnvelopeFactory.getInstance().getPageEnvelope(map, objectModel);
} catch (Exception e) {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/AbstractPublication.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/AbstractPublication.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/publication/AbstractPublication.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/publication/AbstractPublication.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/AbstractPublication.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/AbstractPublication.java Tue Jan 25 09:51:54 2005
@@ -27,6 +27,8 @@
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
+import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.lenya.cms.site.SiteException;
import org.apache.lenya.cms.site.SiteManager;
import org.apache.lenya.cms.site.tree.TreeSiteManager;
@@ -35,7 +37,7 @@
/**
* A publication.
*/
-public abstract class AbstractPublication implements Publication {
+public abstract class AbstractPublication extends AbstractLogEnabled implements Publication {
private static Category log = Category.getInstance(AbstractPublication.class);
@@ -264,12 +266,12 @@
*/
public DocumentBuilder getDocumentBuilder() {
- if (documentBuilder == null) {
+ if (this.documentBuilder == null) {
throw new IllegalStateException(
"The document builder was not defined in publication.xconf!");
}
-
- return documentBuilder;
+ ContainerUtil.enableLogging(this.documentBuilder, getLogger());
+ return this.documentBuilder;
}
/**
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&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocument.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocument.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocument.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocument.java Tue Jan 25 09:51:54 2005
@@ -25,6 +25,9 @@
import java.util.Date;
import java.util.List;
+import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.LogEnabled;
import org.apache.lenya.cms.metadata.dublincore.DublinCore;
import org.apache.lenya.cms.metadata.dublincore.DublinCoreProxy;
import org.apache.lenya.cms.site.SiteException;
@@ -33,7 +36,7 @@
/**
* A typical CMS document.
*/
-public class DefaultDocument implements Document {
+public class DefaultDocument extends AbstractLogEnabled implements Document {
private String id;
private DublinCore dublincore;
@@ -41,8 +44,8 @@
private ResourcesManager resourcesManager;
/**
- * Creates a new instance of DefaultDocument. The language of the document is the default
- * language of the publication.
+ * Creates a new instance of DefaultDocument. The language of the document
+ * is the default language of the publication.
* @param map The identity map the document belongs to.
* @param id The document ID (starting with a slash).
* @param area The area.
@@ -59,10 +62,9 @@
this.identityMap = map;
setArea(area);
- setLanguage(identityMap.getPublication().getDefaultLanguage());
+ setLanguage(this.identityMap.getPublication().getDefaultLanguage());
this.dublincore = new DublinCoreProxy(this);
-
}
/**
@@ -87,8 +89,6 @@
setArea(area);
this.dublincore = new DublinCoreProxy(this);
- this.resourcesManager = new DefaultResourcesManager(this);
-
}
/**
@@ -134,7 +134,9 @@
* @return A file object.
*/
public File getFile() {
- return getPublication().getPathMapper().getFile(getPublication(), getArea(), getId(),
+ return getPublication().getPathMapper().getFile(getPublication(),
+ getArea(),
+ getId(),
getLanguage());
}
@@ -212,7 +214,6 @@
+ getCanonicalDocumentURL();
}
-
/**
* Sets the area.
* @param area A string.
@@ -333,6 +334,10 @@
* @see org.apache.lenya.cms.publication.Document#getResourcesManager()
*/
public ResourcesManager getResourcesManager() {
+ if (this.resourcesManager == null) {
+ this.resourcesManager = new DefaultResourcesManager(this);
+ ContainerUtil.enableLogging(this.resourcesManager, getLogger());
+ }
return this.resourcesManager;
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java Tue Jan 25 09:51:54 2005
@@ -17,31 +17,20 @@
package org.apache.lenya.cms.publication;
+import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.Logger;
+
/**
* Default document builder implementation.
*
* @version $Id$
*/
-public class DefaultDocumentBuilder implements DocumentBuilder {
+public class DefaultDocumentBuilder extends AbstractLogEnabled implements DocumentBuilder {
/**
* Non-public constructor.
*/
- protected DefaultDocumentBuilder() {
- }
-
- private static DefaultDocumentBuilder instance;
-
- /**
- * Returns the singleton instance.
- *
- * @return A document builder.
- */
- public static DefaultDocumentBuilder getInstance() {
- if (instance == null) {
- instance = new DefaultDocumentBuilder();
- }
-
- return instance;
+ public DefaultDocumentBuilder() {
}
/**
@@ -75,6 +64,7 @@
}
DefaultDocument document = createDocument(map, info.getArea(), documentId, language);
+ ContainerUtil.enableLogging(document, getLogger());
document.setExtension(extension);
document.setDocumentURL(originalURL);
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java Tue Jan 25 09:51:54 2005
@@ -24,10 +24,10 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import javax.xml.parsers.ParserConfigurationException;
@@ -38,24 +38,17 @@
import org.apache.avalon.excalibur.io.FileUtil;
-import org.apache.cocoon.environment.SourceResolver;
import org.apache.cocoon.servlet.multipart.Part;
-import org.apache.cocoon.servlet.multipart.PartInMemory;
-import org.apache.cocoon.servlet.multipart.PartOnDisk;
-import org.apache.lenya.xml.DocumentHelper;
-import org.apache.lenya.xml.NamespaceHelper;
import org.apache.lenya.cms.metadata.dublincore.DublinCoreImpl;
-import org.w3c.dom.Element;
/**
* Manager for resources of a CMS document.
*/
-public class DefaultResourcesManager extends AbstractLogEnabled
- implements ResourcesManager {
+public class DefaultResourcesManager extends AbstractLogEnabled implements ResourcesManager {
- private Document document = null;
- private DublinCoreImpl dc = null;
+ private Document document = null;
+ private DublinCoreImpl dc = null;
/**
* Create a new instance of Resources.
@@ -66,7 +59,6 @@
this.document = document;
}
-
/**
* Add the file in the Part either as a resource or content
* @param part The Part
@@ -82,7 +74,7 @@
if (!fileName.matches(FILE_NAME_REGEXP)) {
// the file name contains characters which mean trouble
// and are therefore not allowed.
- getLogger().warn("The filename [" + fileName + "]�is not valid for an asset.");
+ getLogger().warn("The filename [" + fileName + "]� is not valid for an asset.");
}
// convert spaces in the file name to underscores
fileName = fileName.replace(' ', '_');
@@ -92,25 +84,23 @@
metadata.put("format", mimeType);
metadata.put("extent", Integer.toString(fileSize));
-/* if (type.equals("resource")) { */
- resourceFile = new File(this.getPath(), fileName);
-
- if (!this.getPath().exists()) {
- this.getPath().mkdirs();
- }
+ /* if (type.equals("resource")) { */
+ resourceFile = new File(this.getPath(), fileName);
- // create an extra file containing the meta description for
- // the resource.
- File metaDataFile = new File(this.getPath(), fileName + RESOURCES_META_SUFFIX);
- createMetaData(metaDataFile, metadata);
-
-/* }
- // must be a content upload then
- else {
- resourceFile = new File(document.getFile().getParent(), fileName);
- getLogger().debug("resourceFile: " + resourceFile);
+ if (!this.getPath().exists()) {
+ this.getPath().mkdirs();
}
-*/
+
+ // create an extra file containing the meta description for
+ // the resource.
+ File metaDataFile = new File(this.getPath(), fileName + RESOURCES_META_SUFFIX);
+ createMetaData(metaDataFile, metadata);
+
+ /*
+ * } // must be a content upload then else { resourceFile = new
+ * File(document.getFile().getParent(), fileName);
+ * getLogger().debug("resourceFile: " + resourceFile); }
+ */
saveResource(resourceFile, part);
}
@@ -125,7 +115,7 @@
if (!resourceFile.exists()) {
boolean created = resourceFile.createNewFile();
if (!created) {
- throw new RuntimeException("The file [" + resourceFile + "]�could not be created.");
+ throw new RuntimeException("The file [" + resourceFile + "]�could not be created.");
}
}
@@ -160,17 +150,17 @@
assert (metaDataFile.getParentFile().exists());
try {
- dc = new DublinCoreImpl(metaDataFile);
- Iterator iter = metadata.keySet().iterator();
-
- while (iter.hasNext()) {
- String key = (String) iter.next();
- String value = (String) metadata.get(key);
- dc.setValue(key, value);
- }
- dc.save();
- } catch(Exception e) {
- getLogger().error("Saving of [" + metaDataFile + "]�failed.");
+ dc = new DublinCoreImpl(metaDataFile);
+ Iterator iter = metadata.keySet().iterator();
+
+ while (iter.hasNext()) {
+ String key = (String) iter.next();
+ String value = (String) metadata.get(key);
+ dc.setValue(key, value);
+ }
+ dc.save();
+ } catch (Exception e) {
+ getLogger().error("Saving of [" + metaDataFile + "]�failed.");
}
}
@@ -200,15 +190,10 @@
* @return The path of a resource relative to the context prefix.
*/
public String getResourceUrl(File resource) {
- return
- getDocument().getPublication().getId()
- + "/"
- + getDocument().getArea()
- + getDocument().getId()
- + "/"
- + resource.getName();
+ return getDocument().getPublication().getId() + "/" + getDocument().getArea()
+ + getDocument().getId() + "/" + resource.getName();
}
-
+
/**
* Get all resources for the associated document.
*
@@ -232,16 +217,16 @@
* @return All image resources.
*/
public File[] getImageResources() {
- return getFiles( new FileFilter() {
- public boolean accept(File file) {
- for(int i=0; i<IMAGE_FILE_EXTENSIONS.length; i++)
- if (file.getName().toLowerCase().endsWith(IMAGE_FILE_EXTENSIONS[i]))
- return true;
- return false;
- }
- });
+ return getFiles(new FileFilter() {
+ public boolean accept(File file) {
+ for (int i = 0; i < IMAGE_FILE_EXTENSIONS.length; i++)
+ if (file.getName().toLowerCase().endsWith(IMAGE_FILE_EXTENSIONS[i]))
+ return true;
+ return false;
+ }
+ });
}
-
+
/**
* Returns the resources that are matched by a certain file filter.
* @param filter A file filter.
@@ -259,7 +244,8 @@
/**
* Get the meta data for all resources for the associated document.
*
- * @return all meta data files for the resources for the associated document.
+ * @return all meta data files for the resources for the associated
+ * document.
*/
public File[] getMetaFiles() {
FileFilter filter = new FileFilter() {
@@ -274,47 +260,78 @@
/**
* Returns a meta file for a given resource.
* @param resource A resource the meta file should be returned for.
- * @return A file containing meta information about a resource.
- * Returns null if no meta file was found.
+ * @return A file containing meta information about a resource. Returns null
+ * if no meta file was found.
* @throws IllegalArgumentException If resource is a meta file itself.
*/
public File getMetaFile(final File resource) throws IllegalArgumentException {
- if(resource.getName().endsWith(RESOURCES_META_SUFFIX))
+ if (resource.getName().endsWith(RESOURCES_META_SUFFIX))
throw new IllegalArgumentException("File is itself a meta file.");
-
+
final FileFilter filter = new FileFilter() {
public boolean accept(File file) {
- return file.isFile() &&
- file.getName().equals(resource.getName().concat(RESOURCES_META_SUFFIX));
+ return file.isFile()
+ && file.getName().equals(resource.getName().concat(RESOURCES_META_SUFFIX));
}
};
-
+
final File[] metaFiles = getFiles(filter);
- assert(metaFiles.length == 0);
+ assert (metaFiles.length == 0);
return metaFiles[0];
}
-
+
/**
* Deletes all resources.
*/
public void deleteResources() {
- File stopDirectory = new File(getDocument().getPublication().getDirectory(), RESOURCES_PREFIX);
+ File stopDirectory = new File(getDocument().getPublication().getDirectory(),
+ RESOURCES_PREFIX);
File[] resources = getResources();
for (int i = 0; i < resources.length; i++) {
resources[i].delete();
- //TODO replace with excalibur FileUtil.deleteParentDirs(resources[i], stopDirectory);
+ //TODO replace with excalibur
+ // FileUtil.deleteParentDirs(resources[i], stopDirectory);
}
File[] metas = getMetaFiles();
for (int i = 0; i < metas.length; i++) {
metas[i].delete();
- //TODO replace with excalibur FileUtil.deleteParentDirs(metas[i], stopDirectory);
+ //TODO replace with excalibur FileUtil.deleteParentDirs(metas[i],
+ // stopDirectory);
}
}
public Document getDocument() {
return document;
}
+
+ /**
+ * @see org.apache.lenya.cms.publication.ResourcesManager#copyResourcesTo(org.apache.lenya.cms.publication.Document)
+ */
+ public void copyResourcesTo(Document destinationDocument) throws Exception {
+
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug("Copying resources of document [" + getDocument() + "]");
+ }
+
+ ResourcesManager destinationManager = destinationDocument.getResourcesManager();
+
+ List resourcesList = new ArrayList(Arrays.asList(getResources()));
+ resourcesList.addAll(Arrays.asList(getMetaFiles()));
+ File[] resources = (File[]) resourcesList.toArray(new File[resourcesList.size()]);
+ File destinationDirectory = destinationManager.getPath();
+
+ for (int i = 0; i < resources.length; i++) {
+ File destinationResource = new File(destinationDirectory, resources[i].getName());
+
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug("Copy file [" + resources[i].getAbsolutePath() + "] to ["
+ + destinationResource.getAbsolutePath() + "]");
+ }
+ FileUtil.copyFile(resources[i], destinationResource);
+ }
+ }
+
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationFactory.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationFactory.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationFactory.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationFactory.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationFactory.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/PublicationFactory.java Tue Jan 25 09:51:54 2005
@@ -24,6 +24,9 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.Logger;
import org.apache.cocoon.environment.Context;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
@@ -32,19 +35,32 @@
import org.apache.excalibur.source.SourceUtil;
import org.apache.lenya.cms.publication.file.FilePublication;
import org.apache.lenya.util.ServletHelper;
-import org.apache.log4j.Category;
/**
* Factory for creating publication objects.
*/
-public final class PublicationFactory {
-
- private static Category log = Category.getInstance(PublicationFactory.class);
+public final class PublicationFactory extends AbstractLogEnabled {
/**
* Create a new <code>PublicationFactory</code>.
+ * @param logger The logger to use.
*/
- private PublicationFactory() {
+ private PublicationFactory(Logger logger) {
+ ContainerUtil.enableLogging(this, logger);
+ }
+
+ private static PublicationFactory instance;
+
+ /**
+ * Returns the publication factory instance.
+ * @param logger The logger to use.
+ * @return A publication factory.
+ */
+ public static PublicationFactory getInstance(Logger logger) {
+ if (instance == null) {
+ instance = new PublicationFactory(logger);
+ }
+ return instance;
}
private static Map keyToPublication = new HashMap();
@@ -60,7 +76,7 @@
*
* @throws PublicationException if there was a problem creating the publication.
*/
- public static Publication getPublication(Map objectModel) throws PublicationException {
+ public Publication getPublication(Map objectModel) throws PublicationException {
assert objectModel != null;
Request request = ObjectModelHelper.getRequest(objectModel);
@@ -79,7 +95,7 @@
*
* @throws PublicationException if there was a problem creating the publication.
*/
- public static Publication getPublication(String id, String servletContextPath)
+ public Publication getPublication(String id, String servletContextPath)
throws PublicationException {
assert id != null;
@@ -93,6 +109,7 @@
} else {
if (PublicationFactory.existsPublication(id, servletContextPath)) {
publication = new FilePublication(id, servletContextPath);
+ ContainerUtil.enableLogging(publication, getLogger());
keyToPublication.put(key, publication);
}
}
@@ -137,10 +154,10 @@
*
* @throws PublicationException if there was a problem creating the publication.
*/
- public static Publication getPublication(Request request, Context context)
+ public Publication getPublication(Request request, Context context)
throws PublicationException {
- log.debug("Creating publication from Cocoon object model");
+ getLogger().debug("Creating publication from Cocoon object model");
String webappUrl = ServletHelper.getWebappURI(request);
String servletContextPath = context.getRealPath("");
return getPublication(webappUrl, new File(servletContextPath));
@@ -153,11 +170,11 @@
* @return A publication
* @throws PublicationException when something went wrong
*/
- public static Publication getPublication(String webappUrl, File servletContext)
+ public Publication getPublication(String webappUrl, File servletContext)
throws PublicationException {
- log.debug("Creating publication from webapp URL and servlet context");
+ getLogger().debug("Creating publication from webapp URL and servlet context");
- log.debug(" Webapp URL: [" + webappUrl + "]");
+ getLogger().debug(" Webapp URL: [" + webappUrl + "]");
String publicationId = new URLInformation(webappUrl).getPublicationId();
Publication publication = getPublication(publicationId, servletContext.getAbsolutePath());
return publication;
@@ -197,16 +214,16 @@
* @return A publication.
* @throws PublicationException when something went wrong.
*/
- public static Publication getPublication(SourceResolver resolver, Request request)
+ public Publication getPublication(SourceResolver resolver, Request request)
throws PublicationException {
- log.debug("Creating publication from resolver and request");
+ getLogger().debug("Creating publication from resolver and request");
Publication publication;
String webappUri = ServletHelper.getWebappURI(request);
Source source = null;
try {
source = resolver.resolveURI("context:///");
File servletContext = SourceUtil.getFile(source);
- publication = PublicationFactory.getPublication(webappUri, servletContext);
+ publication = getPublication(webappUri, servletContext);
} catch (Exception e) {
throw new PublicationException(e);
} finally {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/ResourcesManager.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/ResourcesManager.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/publication/ResourcesManager.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/publication/ResourcesManager.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/ResourcesManager.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/ResourcesManager.java Tue Jan 25 09:51:54 2005
@@ -29,30 +29,30 @@
*/
public interface ResourcesManager {
- public static final String CONTENT_PREFIX = "content";
- public static final String RESOURCES_PREFIX = "resources";
- public static final String RESOURCES_META_SUFFIX = ".meta";
+ final String CONTENT_PREFIX = "content";
+ final String RESOURCES_PREFIX = "resources";
+ final String RESOURCES_META_SUFFIX = ".meta";
- public static final String UPLOADASSET_PARAM_NAME = "properties.asset.data";
- public static final String UPLOADASSET_PARAM_PREFIX = "properties.asset.";
+ final String UPLOADASSET_PARAM_NAME = "properties.asset.data";
+ final String UPLOADASSET_PARAM_PREFIX = "properties.asset.";
- public static final String UPLOADASSET_RETURN_FILESIZE = "file-size";
- public static final String UPLOADASSET_RETURN_MIMETYPE = "mime-type";
+ final String UPLOADASSET_RETURN_FILESIZE = "file-size";
+ final String UPLOADASSET_RETURN_MIMETYPE = "mime-type";
- public static final String FILE_NAME_REGEXP = "[-a-zA-Z0-9_.]+";
- public static final String[] IMAGE_FILE_EXTENSIONS = {".jpg", ".png", ".bmp", ".gif", ".svg"};
+ final String FILE_NAME_REGEXP = "[-a-zA-Z0-9_.]+";
+ final String[] IMAGE_FILE_EXTENSIONS = { ".jpg", ".png", ".bmp", ".gif", ".svg" };
// optional parameters for meta data according to dublin core
- public static final String[] DUBLIN_CORE_PARAMETERS = { "title", "creator", "subject",
- "description", "publisher", "contributor", "date", "type", "format", "identifier",
- "source", "language", "relation", "coverage", "rights" };
+ final String[] DUBLIN_CORE_PARAMETERS = { "title", "creator", "subject", "description",
+ "publisher", "contributor", "date", "type", "format", "identifier", "source",
+ "language", "relation", "coverage", "rights" };
/**
* Add a resource to the document.
* @param part the part that contains the uploaded file
* @param metadata the metadata for the resource
*/
- public void addResource(Part part, Map metadata) throws Exception;
+ void addResource(Part part, Map metadata) throws Exception;
/**
* Get the path to the resources.
@@ -60,50 +60,59 @@
* @return the path to the resources
* @deprecated the resource manager should not expose storage details.
*/
- public File getPath();
+ File getPath();
/**
* Returns the path of a resource relative to the context prefix.
* @return The path of a resource relative to the context prefix.
*/
- public String getResourceUrl(File resource);
-
+ String getResourceUrl(File resource);
+
/**
* Get all resources for the associated document.
*
* @return all resources of the associated document
*/
- public File[] getResources();
+ File[] getResources();
/**
* Return all resources which are images.
* @return All image resources.
*/
- public File[] getImageResources();
-
+ File[] getImageResources();
+
/**
* Get the meta data for all resources for the associated document.
*
- * @return all meta data files for the resources for the associated document.
+ * @return all meta data files for the resources for the associated
+ * document.
*/
- public File[] getMetaFiles();
+ File[] getMetaFiles();
/**
* Returns a meta file for a given resource.
* @param resource A resource the meta file should be returned for.
- * @return A file containing meta information about a resource.
- * Returns null if no meta file was found.
+ * @return A file containing meta information about a resource. Returns null
+ * if no meta file was found.
* @throws IllegalArgumentException If resource is a meta file itself.
*/
- public File getMetaFile(final File resource) throws IllegalArgumentException;
-
+ File getMetaFile(final File resource) throws IllegalArgumentException;
+
/**
* Deletes all resources.
*/
- public void deleteResources();
+ void deleteResources();
/**
* Gets the document this resource manager belongs to.
*/
- public Document getDocument();
+ Document getDocument();
+
+ /**
+ * Copies the resources of a document to another document.
+ * @param destinationDocument The destination document.
+ * @throws Exception when something went wrong.
+ */
+ void copyResourcesTo(Document destinationDocument) throws Exception;
+
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/task/PublicationTask.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/task/PublicationTask.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/publication/task/PublicationTask.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/publication/task/PublicationTask.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/task/PublicationTask.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/task/PublicationTask.java Tue Jan 25 09:51:54 2005
@@ -26,6 +26,7 @@
import java.util.List;
import org.apache.avalon.excalibur.io.FileUtil;
+import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentIdentityMap;
@@ -72,10 +73,10 @@
if (this.map == null) {
try {
String publicationId = getParameters().getParameter(Task.PARAMETER_PUBLICATION_ID);
- String servletContextPath = getParameters().getParameter(
- Task.PARAMETER_SERVLET_CONTEXT);
- Publication publication = PublicationFactory.getPublication(publicationId,
- servletContextPath);
+ String servletContextPath = getParameters()
+ .getParameter(Task.PARAMETER_SERVLET_CONTEXT);
+ PublicationFactory factory = PublicationFactory.getInstance(new ConsoleLogger());
+ Publication publication = factory.getPublication(publicationId, servletContextPath);
this.map = new DocumentIdentityMap(publication);
} catch (Exception e) {
throw new ExecutionException(e);
@@ -225,13 +226,14 @@
}
/**
- * Returns the executable event for the provided {@link #PARAMETER_WORKFLOW_EVENT}parameter.
+ * Returns the executable event for the provided
+ * {@link #PARAMETER_WORKFLOW_EVENT}parameter.
* @param instance The workflow instance.
* @param situation The situation.
* @return An event.
* @throws WorkflowException when something went wrong.
- * @throws ParameterException when the {@link #PARAMETER_WORKFLOW_EVENT}parameter could not be
- * resolved.
+ * @throws ParameterException when the {@link #PARAMETER_WORKFLOW_EVENT}
+ * parameter could not be resolved.
*/
protected Event getExecutableEvent(SynchronizedWorkflowInstances instance, Situation situation)
throws WorkflowException, ParameterException {
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/templating/PublicationTemplateManagerImpl.java Tue Jan 25 09:51:54 2005
@@ -36,7 +36,8 @@
/**
* Manager for publication templates.
*
- * @version $Id$
+ * @version $Id: PublicationTemplateManagerImpl.java 123348 2004-12-25 22:49:57Z
+ * gregor $
*/
public class PublicationTemplateManagerImpl extends AbstractLogEnabled implements
PublicationTemplateManager, Serviceable {
@@ -72,8 +73,9 @@
Configuration[] templateConfigs = templatesConfig.getChildren(ELEMENT_TEMPLATE);
for (int i = 0; i < templateConfigs.length; i++) {
String templateId = templateConfigs[i].getAttribute(ATTRIBUTE_ID);
- Publication template = PublicationFactory.getPublication(templateId,
- publication.getServletContext().getAbsolutePath());
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ Publication template = factory.getPublication(templateId, publication
+ .getServletContext().getAbsolutePath());
templates.add(template);
}
this.templatePublications = (Publication[]) templates
@@ -162,7 +164,7 @@
for (int i = 0; i < publications.length; i++) {
uris.add(getBaseURI(publications[i]));
}
-
+
String coreBaseURI = "context://";
uris.add(coreBaseURI);
@@ -220,7 +222,7 @@
for (int i = 0; i < templates.length; i++) {
publications.add(templates[i]);
}
-
+
return (Publication[]) publications.toArray(new Publication[publications.size()]);
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentHelper.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentHelper.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentHelper.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentHelper.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentHelper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/util/DocumentHelper.java Tue Jan 25 09:51:54 2005
@@ -23,6 +23,7 @@
import java.util.List;
import java.util.Map;
+import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
@@ -55,7 +56,8 @@
this.objectModel = objectModel;
Publication publication;
try {
- publication = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(new ConsoleLogger());
+ publication = factory.getPublication(objectModel);
} catch (PublicationException e) {
throw new RuntimeException(e);
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/scheduler/LoadQuartzServlet.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/scheduler/LoadQuartzServlet.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/scheduler/LoadQuartzServlet.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/scheduler/LoadQuartzServlet.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/scheduler/LoadQuartzServlet.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/scheduler/LoadQuartzServlet.java Tue Jan 25 09:51:54 2005
@@ -39,6 +39,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.lenya.cms.publication.DocumentBuildException;
import org.apache.lenya.cms.publication.DocumentIdentityMap;
import org.apache.lenya.cms.publication.Publication;
@@ -150,8 +151,8 @@
}
/**
- * This method sets a ShutdownHook to the system This traps the CTRL+C or kill signal and
- * shutdows Correctly the system.
+ * This method sets a ShutdownHook to the system This traps the CTRL+C or
+ * kill signal and shutdows Correctly the system.
*
* @throws Exception when something went wrong.
*/
@@ -239,13 +240,14 @@
getScheduler().deleteJob(jobId, publicationId);
} else if (action.equals(DOCUMENT_DELETED)) {
- Publication publication = PublicationFactory.getPublication(publicationId,
+ PublicationFactory factory = PublicationFactory.getInstance(new ConsoleLogger());
+ Publication publication = factory.getPublication(publicationId,
getServletContextDirectory().getAbsolutePath());
String documentUrl = (String) schedulerParameters.get(PARAMETER_DOCUMENT_URL);
DocumentIdentityMap map = new DocumentIdentityMap(publication);
- org.apache.lenya.cms.publication.Document document = map.getFactory().getFromURL(
- documentUrl);
+ org.apache.lenya.cms.publication.Document document = map.getFactory()
+ .getFromURL(documentUrl);
deleteDocumentJobs(document);
}
@@ -300,7 +302,8 @@
*/
public void deleteDocumentJobs(org.apache.lenya.cms.publication.Document document)
throws DocumentBuildException, SchedulerException, PublicationException {
- log.debug("Requested to delete jobs for document URL [" + document.getCanonicalWebappURL() + "]");
+ log.debug("Requested to delete jobs for document URL [" + document.getCanonicalWebappURL()
+ + "]");
getScheduler().deleteJobs(document);
}
@@ -382,7 +385,8 @@
}
/**
- * Generates the request URI needed to delete the jobs for a certain document.
+ * Generates the request URI needed to delete the jobs for a certain
+ * document.
* @param document The document.
* @return A string.
*/
Modified: lenya/trunk/src/java/org/apache/lenya/cms/scheduler/SchedulerWrapper.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/scheduler/SchedulerWrapper.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/scheduler/SchedulerWrapper.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/scheduler/SchedulerWrapper.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/scheduler/SchedulerWrapper.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/scheduler/SchedulerWrapper.java Tue Jan 25 09:51:54 2005
@@ -31,6 +31,7 @@
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
+import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.publication.PublicationException;
import org.apache.lenya.cms.publication.PublicationFactory;
@@ -217,7 +218,8 @@
* @throws PublicationException when the publication does not exist.
*/
protected Publication getPublication(String jobGroup) throws PublicationException {
- return PublicationFactory.getPublication(jobGroup, getServletContextPath());
+ PublicationFactory factory = PublicationFactory.getInstance(new ConsoleLogger());
+ return factory.getPublication(jobGroup, getServletContextPath());
}
/**
Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/tree/TreeSiteManager.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/tree/TreeSiteManager.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/site/tree/TreeSiteManager.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/site/tree/TreeSiteManager.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/tree/TreeSiteManager.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/tree/TreeSiteManager.java Tue Jan 25 09:51:54 2005
@@ -173,7 +173,11 @@
} else {
SiteTreeNode[] siblings = sourceNode.getNextSiblings();
- String parentId = sourceNode.getParent().getAbsoluteId();
+ SiteTreeNode parent = sourceNode.getParent();
+ String parentId = "";
+ if (parent != null) {
+ parentId = parent.getAbsoluteId();
+ }
SiteTreeNode sibling = null;
String siblingDocId = null;
Modified: lenya/trunk/src/java/org/apache/lenya/cms/task/TaskParameters.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/task/TaskParameters.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/task/TaskParameters.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/task/TaskParameters.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/task/TaskParameters.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/task/TaskParameters.java Tue Jan 25 09:51:54 2005
@@ -1,37 +1,34 @@
/*
- * Copyright 1999-2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
+ * Copyright 1999-2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ *
*/
-/* $Id$ */
+/* $Id$ */
package org.apache.lenya.cms.task;
import java.util.Map;
+import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.publication.PublicationException;
import org.apache.lenya.cms.publication.PublicationFactory;
public class TaskParameters extends ParameterWrapper {
- public static final String[] REQUIRED_KEYS =
- {
- Task.PARAMETER_SERVLET_CONTEXT,
- Task.PARAMETER_SERVER_URI,
- Task.PARAMETER_SERVER_PORT,
- Task.PARAMETER_CONTEXT_PREFIX,
+ public static final String[] REQUIRED_KEYS = { Task.PARAMETER_SERVLET_CONTEXT,
+ Task.PARAMETER_SERVER_URI, Task.PARAMETER_SERVER_PORT, Task.PARAMETER_CONTEXT_PREFIX,
Task.PARAMETER_PUBLICATION_ID };
/**
@@ -66,9 +63,8 @@
public Publication getPublication() throws ExecutionException {
Publication publication;
try {
- publication =
- PublicationFactory.getPublication(
- get(Task.PARAMETER_PUBLICATION_ID),
+ PublicationFactory factory = PublicationFactory.getInstance(new ConsoleLogger());
+ publication = factory.getPublication(get(Task.PARAMETER_PUBLICATION_ID),
get(Task.PARAMETER_SERVLET_CONTEXT));
} catch (PublicationException e) {
throw new ExecutionException(e);
@@ -93,4 +89,4 @@
put(Task.PARAMETER_SERVLET_CONTEXT, servletContextPath);
}
-}
+}
\ No newline at end of file
Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/DocumentUsecase.java Tue Jan 25 09:51:54 2005
@@ -77,7 +77,8 @@
/**
* Returns the document to be redirected to after the usecase has been
- * completed.
+ * completed. If the parameter <code>success</code> is false, the source
+ * document is returned (override this method to change this behaviour).
* @param success If the usecase was successfully completed.
* @return A document.
*/
@@ -130,6 +131,15 @@
*/
protected void triggerWorkflow(String event) {
triggerWorkflow(event, getSourceDocument());
+ }
+
+ /**
+ * Checks if an event can be executed on the source document.
+ * @param event The event.
+ * @return A boolean value.
+ */
+ protected boolean canExecuteWorkflow(String event) {
+ return canExecuteWorkflow(event, getSourceDocument());
}
/**
Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/UnitOfWorkImpl.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/UnitOfWorkImpl.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/usecase/UnitOfWorkImpl.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/usecase/UnitOfWorkImpl.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/UnitOfWorkImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/UnitOfWorkImpl.java Tue Jan 25 09:51:54 2005
@@ -31,7 +31,7 @@
/**
* Abstract base class for operations on documents.
*
- * @version $Id: UnitOfWork.java,v 1.2 2004/06/28 20:25:32 andreas Exp $
+ * @version $Id$
*/
public class UnitOfWorkImpl extends AbstractLogEnabled implements UnitOfWork, Contextualizable {
@@ -53,7 +53,8 @@
Map objectModel = ContextHelper.getObjectModel(this.context);
Publication publication;
try {
- publication = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ publication = factory.getPublication(objectModel);
} catch (PublicationException e) {
throw new RuntimeException(e);
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java Tue Jan 25 09:51:54 2005
@@ -136,7 +136,8 @@
Map objectModel = ContextHelper.getObjectModel(getContext());
Publication publication;
try {
- publication = PublicationFactory.getPublication(objectModel);
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ publication = factory.getPublication(objectModel);
} catch (PublicationException e) {
throw new RuntimeException(e);
}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/WorkflowUsecase.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/WorkflowUsecase.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/usecase/WorkflowUsecase.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/usecase/WorkflowUsecase.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/WorkflowUsecase.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/WorkflowUsecase.java Tue Jan 25 09:51:54 2005
@@ -63,10 +63,9 @@
* @param document The document.
*/
protected void triggerWorkflow(String event, Document document) {
- WorkflowFactory factory = WorkflowFactory.newInstance();
try {
- WorkflowInstance instance = factory.buildInstance(document);
- Event executableEvent = getExecutableEvent(instance, event);
+ WorkflowInstance instance = getWorkflowInstance(document);
+ Event executableEvent = getExecutableEvent(event, document);
if (executableEvent == null) {
throw new RuntimeException("The event [" + event
@@ -79,14 +78,30 @@
}
/**
+ * Returns the workflow instance for a document.
+ * @param document The document.
+ * @return A workflow instance.
+ * @throws WorkflowException if an error occurs.
+ */
+ protected WorkflowInstance getWorkflowInstance(Document document) throws WorkflowException {
+ WorkflowFactory factory = WorkflowFactory.newInstance();
+ WorkflowInstance instance = factory.buildInstance(document);
+ return instance;
+ }
+
+ /**
* Returns the event object if an event is exectuable.
- * @param instance The workflow instance.
+ * @param document The document.
* @param event The name of the event.
* @return An event or <code>null</code> if the event is not executable.
- * @throws WorkflowException if an error occurs.
*/
- protected Event getExecutableEvent(WorkflowInstance instance, String event) throws WorkflowException {
- Event[] events = instance.getExecutableEvents(getSituation());
+ protected Event getExecutableEvent(String event, Document document) {
+ Event[] events;
+ try {
+ events = getWorkflowInstance(document).getExecutableEvents(getSituation());
+ } catch (WorkflowException e) {
+ throw new RuntimeException(e);
+ }
Event executableEvent = null;
for (int i = 0; i < events.length; i++) {
if (events[i].getName().equals(event)) {
@@ -96,4 +111,14 @@
return executableEvent;
}
-}
+ /**
+ * Checks if a certain event can be executed on a workflow instance.
+ * @param document The document.
+ * @param event The event.
+ * @return A boolean value.
+ */
+ protected boolean canExecuteWorkflow(String event, Document document) {
+ return getExecutableEvent(event, document) != null;
+ }
+
+}
\ No newline at end of file
Modified: lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/workflow/usecases/InvokeWorkflow.java Tue Jan 25 09:51:54 2005
@@ -29,7 +29,7 @@
*/
public class InvokeWorkflow extends DocumentUsecase {
- protected static final String EVENT = "lenya.event";
+ public static final String EVENT = "lenya.event";
/**
* @return The workflow event to use.
@@ -45,11 +45,7 @@
super.doCheckPreconditions();
String eventName = getParameterAsString(EVENT);
- WorkflowInstance instance = WorkflowFactory.newInstance()
- .buildInstance(getSourceDocument());
- Event event = getExecutableEvent(instance, eventName);
-
- if (event == null) {
+ if (canExecuteWorkflow(eventName, getSourceDocument())) {
addErrorMessage("The event [" + eventName + "] is not executable on document ["
+ getSourceDocument() + "].");
}
Modified: lenya/trunk/src/java/org/apache/lenya/lenya.roles
Url: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/lenya.roles?view=diff&rev=126400&p1=lenya/trunk/src/java/org/apache/lenya/lenya.roles&r1=126399&p2=lenya/trunk/src/java/org/apache/lenya/lenya.roles&r2=126400
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/lenya.roles (original)
+++ lenya/trunk/src/java/org/apache/lenya/lenya.roles Tue Jan 25 09:51:54 2005
@@ -98,4 +98,8 @@
shorthand="usecase-resolver"
default-class="org.apache.lenya.cms.publication.DocumentTypeResolverImpl"/>
+ <role name="org.apache.lenya.cms.cocoon.flow.FlowHelper"
+ shorthand="flowhelper"
+ default-class="org.apache.lenya.cms.cocoon.flow.FlowHelperImpl"/>
+
</role-list>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org