Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/content/hierarchical/HierarchicalContent.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/content/hierarchical/HierarchicalContent.java?rev=617035&r1=617034&r2=617035&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/content/hierarchical/HierarchicalContent.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/content/hierarchical/HierarchicalContent.java Wed Jan 30 23:44:03 2008
@@ -1,49 +1,50 @@
package org.apache.lenya.cms.content.hierarchical;
-
import java.io.File;
-import org.apache.excalibur.source.Source;
-import org.apache.excalibur.source.SourceNotFoundException;
import org.apache.lenya.cms.content.Content;
import org.apache.lenya.cms.content.Resource;
-import org.apache.lenya.cms.publication.Publication;
-
-public class HierarchicalContent implements Content{
+/**
+ *
+ * @author solprovider
+ * @since 1.3
+ */
+public class HierarchicalContent implements Content {
File directory;
- String[] languages = { "en" };
-
- public HierarchicalContent(File pdirectory, String[] planguages){
+ String[] languages = {"en"};
+ public HierarchicalContent(File pdirectory, String[] planguages) {
directory = pdirectory;
languages = planguages;
}
-/* Content API */
- public String getIndexFilename(String indexName, String language){
- return new File(directory, indexName + File.separator + "sitetree.xml").getPath();
-//WORK? Filter by language and transform sitetree to index XML.
+ /* Content API */
+ public String getIndexFilename(String indexName, String language) {
+ return new File(directory, indexName + File.separator + "sitetree.xml").getPath();
+ // WORK? Filter by language and transform sitetree to index XML.
}
- public String getUNID(String structure, String id){
+ public String getUNID(String structure, String id) {
return id;
}
- public String[] getLanguages(){
+ public String[] getLanguages() {
return languages;
}
- public String getURI(String unid, String language, String revision){
+ public String getURI(String unid, String language, String revision) {
String area = revision;
- if(area.equalsIgnoreCase("edit")) area = "authoring";
- return new File(directory, area + unid + File.separator + "index_" + language +".xml").getPath();
+ if(area.equalsIgnoreCase("edit"))
+ area = "authoring";
+ return new File(directory, area + unid + File.separator + "index_" + language + ".xml").getPath();
}
- public String getMetaURI(String unid, String language, String revision){
+ public String getMetaURI(String unid, String language, String revision) {
String area = revision;
- if(area.equalsIgnoreCase("edit")) area = "authoring";
- return new File(directory, area + unid + File.separator + "index_" + language +".xml").getPath();
+ if(area.equalsIgnoreCase("edit"))
+ area = "authoring";
+ return new File(directory, area + unid + File.separator + "index_" + language + ".xml").getPath();
}
- public String getNewURI(String unid, String language){
- return new File(directory, "live" + unid + File.separator + getDateString() + "_" + language +".xml").getPath();
+ public String getNewURI(String unid, String language) {
+ return new File(directory, "live" + unid + File.separator + getDateString() + "_" + language + ".xml").getPath();
}
- private String getDateString(){
+ private String getDateString() {
return Long.toString(new java.util.Date().getTime());
}
- public Resource getResource(String unid){
-//TODO: HierarchicalResource
+ public Resource getResource(String unid) {
+ // TODO: HierarchicalResource
return (Resource) null;
}
}
Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/mail/MailTask.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/mail/MailTask.java?rev=617035&r1=617034&r2=617035&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/mail/MailTask.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/mail/MailTask.java Wed Jan 30 23:44:03 2008
@@ -14,166 +14,126 @@
* limitations under the License.
*
*/
-
/* $Id$ */
-
package org.apache.lenya.cms.mail;
-
-
import java.io.File;
import java.net.URL;
import java.util.Arrays;
-
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.lenya.cms.task.AbstractTask;
import org.apache.lenya.net.SMTP;
import org.apache.lenya.xml.DocumentHelper;
import org.apache.lenya.xml.NamespaceHelper;
-import org.apache.log4j.Category;
+import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.Text;
-
-
/**
- * A task that sends an e-mail. Each parameter can either be provided as a task parameter or
- * extracted from an XML document. If the parameter "uri" starts with a <code>http://</code> or
- * <code>ftp://</code> prefix, the absolute URI is used. If not, the URI is interpreted as
- * relative to the local publication. <br/
- * ><br/
- * > The task parameters are:<br/
- * ><code><strong>uri</strong></code>: the URI to get the XML file from<br/
- * ><code><strong>server</strong></code>: the SMTP server<br/
- * ><code><strong>from</strong></code>:<br/
- * ><code><strong>to</strong></code>:<br/
- * ><code><strong>cc</strong></code>:<br/
- * ><code><strong>bcc</strong></code>:<br/
- * ><code><strong>subject</strong></code>:<br/
- * ><code><strong>body</strong></code>:<br/
- * ><br/
- * > All parameters are optional. If the uri parameter is provided, the document is fetched from
- * the URI and the parameters are extracted. Task parameters have a higher priority than elements
- * of the document. <br/
- * ><br/
- * > The document has the following form:<br/
- * ><br/
- * ><code> <mail:mail xmlns:mail="http://apache.org/cocoon/lenya/mail/1.0"><br/
+ * A task that sends an e-mail. Each parameter can either be provided as a task parameter or extracted from an XML document. If the parameter "uri" starts with a <code>http://</code> or <code>ftp://</code> prefix, the absolute URI is used. If not, the URI is interpreted as relative to the local publication. <br/ ><br/ > The task parameters are:<br/ ><code><strong>uri</strong></code>: the URI to get the XML file from<br/ ><code><strong>server</strong></code>: the SMTP server<br/ ><code><strong>from</strong></code>:<br/ ><code><strong>to</strong></code>:<br/ ><code><strong>cc</strong></code>:<br/ ><code><strong>bcc</strong></code>:<br/ ><code><strong>subject</strong></code>:<br/ ><code><strong>body</strong></code>:<br/ ><br/ > All parameters are optional. If the uri parameter is provided, t
he document is fetched from the URI and the parameters are extracted. Task parameters have a higher priority than elements of the document. <br/ ><br/ >
+ * The document has the following form:<br/ ><br/ ><code> <mail:mail xmlns:mail="http://apache.org/cocoon/lenya/mail/1.0"><br/
* >   <mail:server>mail.yourhost.com</mail:server><br/
* >   ...<br/
* > </mail:mail><br/></code>
*/
public class MailTask extends AbstractTask {
- private static Category log = Category.getInstance(MailTask.class);
-
- public static final String ELEMENT_TO = "to";
- public static final String ELEMENT_CC = "cc";
- public static final String ELEMENT_BCC = "bcc";
- public static final String ELEMENT_SUBJECT = "subject";
- public static final String ELEMENT_BODY = "body";
- public static final String ELEMENT_FROM = "from";
- public static final String ELEMENT_SERVER = "server";
- public static final String PARAMETER_URI = "uri";
- public static final String NAMESPACE_URI = "http://apache.org/cocoon/lenya/mail/1.0";
-
- /**
- * DOCUMENT ME!
- *
- * @param contextPath DOCUMENT ME!
- */
- public void execute(String contextPath) {
- log.debug("\n---------------------------" + "\n- Sending mail" +
- "\n---------------------------");
- try {
- Parameters taskParameters = new Parameters();
-
- String uri = getParameters().getParameter(PARAMETER_URI, "");
- log.debug("\nURI: " + uri);
-
- if (!uri.equals("")) {
- // generate absolute URI from relative URI
- if (!uri.startsWith("http://") && !uri.startsWith("ftp://") &&
- !uri.startsWith("file://")) {
- String absoluteUri = "http://127.0.0.1";
- String serverPort = getParameters().getParameter(PARAMETER_SERVER_PORT, "");
-
- if (!serverPort.equals("")) {
- absoluteUri += (":" + Integer.parseInt(serverPort));
- }
-
- absoluteUri += (getParameters().getParameter(PARAMETER_CONTEXT_PREFIX) + File.separator +
- getParameters().getParameter(PARAMETER_PUBLICATION_ID) + uri);
- uri = absoluteUri;
- }
- Document document = DocumentHelper.readDocument(new URL(uri));
- Element root = document.getDocumentElement();
-
- NamespaceHelper helper = new NamespaceHelper(NAMESPACE_URI, "mail", document);
-
- String[] keys = {
- ELEMENT_SERVER, ELEMENT_FROM, ELEMENT_TO, ELEMENT_CC, ELEMENT_BCC,
- ELEMENT_SUBJECT, ELEMENT_BODY
- };
-
- Element[] elements = helper.getChildren(root);
-
- for (int i = 0; i < elements.length; i++) {
- if (elements[i].getChildNodes().getLength() > 0) {
- Node firstChild = elements[i].getChildNodes().item(0);
-
- if (firstChild instanceof Text) {
- Text text = (Text) firstChild;
- String key = elements[i].getLocalName();
-
- if (Arrays.asList(keys).contains(key)) {
- taskParameters.setParameter(key, text.getNodeValue());
- }
- }
- }
- }
+ private static Logger log = Logger.getLogger(MailTask.class);
+ public static final String ELEMENT_TO = "to";
+ public static final String ELEMENT_CC = "cc";
+ public static final String ELEMENT_BCC = "bcc";
+ public static final String ELEMENT_SUBJECT = "subject";
+ public static final String ELEMENT_BODY = "body";
+ public static final String ELEMENT_FROM = "from";
+ public static final String ELEMENT_SERVER = "server";
+ public static final String PARAMETER_URI = "uri";
+ public static final String NAMESPACE_URI = "http://apache.org/cocoon/lenya/mail/1.0";
+ /**
+ * DOCUMENT ME!
+ *
+ * @param contextPath
+ * DOCUMENT ME!
+ */
+ public void execute(String contextPath) {
+ log.debug("\n---------------------------" + "\n- Sending mail" + "\n---------------------------");
+ try{
+ Parameters taskParameters = new Parameters();
+ String uri = getParameters().getParameter(PARAMETER_URI, "");
+ log.debug("\nURI: " + uri);
+ if(!uri.equals("")){
+ // generate absolute URI from relative URI
+ if(!uri.startsWith("http://") && !uri.startsWith("ftp://") && !uri.startsWith("file://")){
+ String absoluteUri = "http://127.0.0.1";
+ String serverPort = getParameters().getParameter(PARAMETER_SERVER_PORT, "");
+ if(!serverPort.equals("")){
+ absoluteUri += (":" + Integer.parseInt(serverPort));
+ }
+ absoluteUri += (getParameters().getParameter(PARAMETER_CONTEXT_PREFIX) + File.separator + getParameters().getParameter(PARAMETER_PUBLICATION_ID) + uri);
+ uri = absoluteUri;
}
-
- // task parameters have a higher priority than XML elements
- taskParameters = taskParameters.merge(getParameters());
-
- sendMail(taskParameters.getParameter(ELEMENT_SERVER),
- taskParameters.getParameter(ELEMENT_FROM), taskParameters.getParameter(ELEMENT_TO),
- taskParameters.getParameter(ELEMENT_CC, ""),
- taskParameters.getParameter(ELEMENT_BCC, ""),
- taskParameters.getParameter(ELEMENT_SUBJECT, ""),
- taskParameters.getParameter(ELEMENT_BODY, ""));
- } catch (Exception e) {
- log.error("Sending mail failed: ", e);
- throw new RuntimeException (e);
- }
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param host DOCUMENT ME!
- * @param from DOCUMENT ME!
- * @param to DOCUMENT ME!
- * @param cc DOCUMENT ME!
- * @param bcc DOCUMENT ME!
- * @param subject DOCUMENT ME!
- * @param body DOCUMENT ME!
- */
- public void sendMail(String host, String from, String to, String cc, String bcc,
- String subject, String body) {
- SMTP smtp = new SMTP();
- smtp.send(from, to, cc, bcc, subject, body);
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param host DOCUMENT ME!
- * @param from DOCUMENT ME!
- * @param to DOCUMENT ME!
- * @param cc DOCUMENT ME!
- * @param bcc DOCUMENT ME!
- * @param subject DOCUMENT ME!
- * @param body DOCUMENT ME!
- */
+ Document document = DocumentHelper.readDocument(new URL(uri));
+ Element root = document.getDocumentElement();
+ NamespaceHelper helper = new NamespaceHelper(NAMESPACE_URI, "mail", document);
+ String[] keys = {ELEMENT_SERVER, ELEMENT_FROM, ELEMENT_TO, ELEMENT_CC, ELEMENT_BCC, ELEMENT_SUBJECT, ELEMENT_BODY};
+ Element[] elements = helper.getChildren(root);
+ for(int i = 0; i < elements.length; i++){
+ if(elements[i].getChildNodes().getLength() > 0){
+ Node firstChild = elements[i].getChildNodes().item(0);
+ if(firstChild instanceof Text){
+ Text text = (Text) firstChild;
+ String key = elements[i].getLocalName();
+ if(Arrays.asList(keys).contains(key)){
+ taskParameters.setParameter(key, text.getNodeValue());
+ }
+ }
+ }
+ }
+ }
+ // task parameters have a higher priority than XML elements
+ taskParameters = taskParameters.merge(getParameters());
+ sendMail(taskParameters.getParameter(ELEMENT_SERVER), taskParameters.getParameter(ELEMENT_FROM), taskParameters.getParameter(ELEMENT_TO), taskParameters.getParameter(ELEMENT_CC, ""), taskParameters.getParameter(ELEMENT_BCC, ""), taskParameters.getParameter(ELEMENT_SUBJECT, ""), taskParameters.getParameter(ELEMENT_BODY, ""));
+ }catch(Exception e){
+ log.error("Sending mail failed: ", e);
+ throw new RuntimeException(e);
+ }
+ }
+ /**
+ * DOCUMENT ME!
+ *
+ * @param host
+ * DOCUMENT ME!
+ * @param from
+ * DOCUMENT ME!
+ * @param to
+ * DOCUMENT ME!
+ * @param cc
+ * DOCUMENT ME!
+ * @param bcc
+ * DOCUMENT ME!
+ * @param subject
+ * DOCUMENT ME!
+ * @param body
+ * DOCUMENT ME!
+ */
+ public void sendMail(String host, String from, String to, String cc, String bcc, String subject, String body) {
+ SMTP smtp = new SMTP();
+ smtp.send(from, to, cc, bcc, subject, body);
+ }
+ /**
+ * DOCUMENT ME!
+ *
+ * @param host
+ * DOCUMENT ME!
+ * @param from
+ * DOCUMENT ME!
+ * @param to
+ * DOCUMENT ME!
+ * @param cc
+ * DOCUMENT ME!
+ * @param bcc
+ * DOCUMENT ME!
+ * @param subject
+ * DOCUMENT ME!
+ * @param body
+ * DOCUMENT ME!
+ */
}
Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/Module.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/Module.java?rev=617035&r1=617034&r2=617035&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/Module.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/Module.java Wed Jan 30 23:44:03 2008
@@ -13,6 +13,10 @@
import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
import org.apache.lenya.cms.content.Content;
import org.xml.sax.SAXException;
+/**
+ * @author solprovider
+ * @since 1.3
+ */
public abstract class Module {
public static final String MODULE_XML = "module.xml";
Map inheritList; // String names of other Modules in this publication.
Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleGlobal.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleGlobal.java?rev=617035&r1=617034&r2=617035&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleGlobal.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleGlobal.java Wed Jan 30 23:44:03 2008
@@ -1,5 +1,10 @@
package org.apache.lenya.cms.modules;
import java.io.File;
+/**
+ *
+ * @author solprovider
+ * @since 1.3
+ */
public class ModuleGlobal extends Module {
public ModuleGlobal(File moduleDirectory) {
super(moduleDirectory, "");
Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleInputModule.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleInputModule.java?rev=617035&r1=617034&r2=617035&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleInputModule.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleInputModule.java Wed Jan 30 23:44:03 2008
@@ -2,26 +2,25 @@
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
-import java.util.StringTokenizer;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.excalibur.source.Source;
-import org.apache.excalibur.source.SourceResolver;
import org.apache.lenya.cms.cocoon.components.modules.input.AbstractPageEnvelopeModule;
import org.apache.lenya.cms.publication.PageEnvelope;
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.publication.PublicationModules;
+import org.apache.lenya.util.Globals;
/**
* Retrieves Module Variables from publication.xconf and module.xml.
*
* Variables are specified as <module name="modulename"><variable name="{variablename}">{value}</variable></module>
+ *
+ * @author solprovider
+ * @since 1.3
*/
-public class ModuleInputModule extends AbstractPageEnvelopeModule implements Serviceable, ThreadSafe {
- private ServiceManager manager;
+public class ModuleInputModule extends AbstractPageEnvelopeModule implements ThreadSafe {
+ // public class ModuleInputModule extends AbstractPageEnvelopeModule implements Serviceable, ThreadSafe {
+ // private ServiceManager manager;
/**
* @see org.apache.cocoon.components.modules.input.InputModule#getAttribute(java.lang.String, org.apache.avalon.framework.configuration.Configuration, java.util.Map)
*/
@@ -30,16 +29,17 @@
if(getLogger().isDebugEnabled()){
getLogger().debug("Resolving [" + name + "]");
}
- init();
+ // init();
+ moduleId = Globals.getModule();
// Standard Variables
- if(name.equalsIgnoreCase("module"))
+ if(name.equalsIgnoreCase("module")){
return moduleId;
+ }
// Module Variables
PageEnvelope pe = getEnvelope(objectModel);
Publication pub = pe.getPublication();
PublicationModules modules = pub.getModules();
return modules.getVariable(moduleId, name);
-// return Modules.getModule(pub.getId(), moduleId, pub.getContentType()).getVariable(name);
}
/**
* @see org.apache.cocoon.components.modules.input.InputModule#getAttributeNames(org.apache.avalon.framework.configuration.Configuration, java.util.Map)
@@ -54,12 +54,12 @@
Object[] objects = {getAttribute(name, modeConf, objectModel)};
return objects;
}
- /**
- * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
- */
- public void service(ServiceManager manager) throws ServiceException {
- this.manager = manager;
- }
+ // /**
+ // * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
+ // */
+ // public void service(ServiceManager manager) throws ServiceException {
+ // this.manager = manager;
+ // }
/**
* @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
*/
@@ -67,24 +67,29 @@
super.configure(conf);
}
private void init() {
- String uri = "";
- try{
- SourceResolver resolver = (SourceResolver) manager.lookup(SourceResolver.ROLE);
- Source source = resolver.resolveURI("");
- uri = source.getURI();
- if(resolver != null)
- manager.release(resolver);
- }catch(org.apache.avalon.framework.service.ServiceException se){
- // Report Error?
- }catch(java.net.MalformedURLException mue){
- // Report Error?
- }catch(java.io.IOException ioe){
- // Report Error?
- }
- // TODO: Release resolver
- StringTokenizer tokens = new StringTokenizer(uri, "/");
- while(tokens.hasMoreTokens() && !(tokens.nextToken().equals("modules")));
- if(tokens.hasMoreTokens())
- moduleId = tokens.nextToken();
+ // ## Set ModuleId
+ // OBSOLETE: Following code replaced by Globals.getModule()
+ // String uri = "";
+ // try{
+ // SourceResolver resolver = (SourceResolver) manager.lookup(SourceResolver.ROLE);
+ // Source source = resolver.resolveURI("");
+ // uri = source.getURI();
+ // if(resolver != null)
+ // manager.release(resolver);
+ // }catch(org.apache.avalon.framework.service.ServiceException se){
+ // // Report Error?
+ // }catch(java.net.MalformedURLException mue){
+ // // Report Error?
+ // }catch(java.io.IOException ioe){
+ // // Report Error?
+ // }
+ // // XTODO: Release resolver
+ // StringTokenizer tokens = new StringTokenizer(uri, "/");
+ // while(tokens.hasMoreTokens() && !(tokens.nextToken().equals("modules")));
+ // if(tokens.hasMoreTokens()){
+ // moduleId = tokens.nextToken();
+ // }
+ // END OBSOLETE
+ moduleId = Globals.getModule();
}
}
Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleSet.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleSet.java?rev=617035&r1=617034&r2=617035&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleSet.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleSet.java Wed Jan 30 23:44:03 2008
@@ -1,5 +1,10 @@
package org.apache.lenya.cms.modules;
import org.apache.lenya.cms.content.Content;
+/**
+ *
+ * @author solprovider
+ * @since 1.3
+ */
public class ModuleSet {
Module flat = null;
Module hierarchical = null;
Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleSourceFactory.java?rev=617035&r1=617034&r2=617035&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleSourceFactory.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/ModuleSourceFactory.java Wed Jan 30 23:44:03 2008
@@ -1,5 +1,4 @@
package org.apache.lenya.cms.modules;
-import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Map;
@@ -23,7 +22,7 @@
* 2000125: Integrated with org.apache.lenya.cms.modules
*
* @author solprovider
- *
+ * @since 1.3
*/
public class ModuleSourceFactory implements SourceFactory, ThreadSafe, URIAbsolutizer, Contextualizable {
protected org.apache.avalon.framework.context.Context context;
@@ -119,19 +118,11 @@
// BUG ALERT: See description above about no default
if(filepath.length() < 1)
filepath = "module.xmap";
- // ## Get Module - BEGIN
- // System.out.println("GetFile P=" + publication + " M=" + moduleId + " R=" + filepath);
String newlocation = pub.getModules().getFile(moduleId, filepath, needsReset);
- // System.out.println("GetModule F=" + newlocation);
if(newlocation.length() < 1)
throw new SourceNotFoundException("Not found: " + location + " -> " + newlocation);
- System.out.println("ModuleSource: " + newlocation);
- FileSource source = new FileSource("file://" + newlocation);
- System.out.println("FileSource: " + source.getURI());
- File file = source.getFile();
- System.out.println("File: " + file.getAbsolutePath());
- return source;
- // return new FileSource(newlocation);
+ // System.out.println("ModuleSource: " + newlocation);
+ return new FileSource("file://" + newlocation);
}
public void release(Source source1) {
}
Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/Modules.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/Modules.java?rev=617035&r1=617034&r2=617035&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/Modules.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/modules/Modules.java Wed Jan 30 23:44:03 2008
@@ -8,6 +8,7 @@
* Singleton class containing all Modules.
*
* @author solprovider
+ * @since 1.3
*/
public class Modules {
static Map modules;
Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/publication/AbstractPublication.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/publication/AbstractPublication.java?rev=617035&r1=617034&r2=617035&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/publication/AbstractPublication.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/publication/AbstractPublication.java Wed Jan 30 23:44:03 2008
@@ -62,7 +62,7 @@
private File contentDirectory;
private String contentType = Content.TYPE_HIERARCHICAL;
// Lenya1.3 - END
- //TODO: Reload Publication
+ // TODO: Reload Publication
/**
* Creates a new instance of Publication
*
@@ -165,7 +165,7 @@
content = (Content) new HierarchicalContent(contentDirectory, getLanguages());
}
// Modules
- modules = new PublicationModules(id, contentType, servletContextPath, config.getChild("modules"));
+ modules = new PublicationModules(id, contentType, config.getChild("modules"));
// Lenya1.3 - END
}catch(PublicationException e){
throw e;
Modified: lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/publication/CollectionImpl.java
URL: http://svn.apache.org/viewvc/lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/publication/CollectionImpl.java?rev=617035&r1=617034&r2=617035&view=diff
==============================================================================
--- lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/publication/CollectionImpl.java (original)
+++ lenya/branches/revolution/1.3.x/src/java/org/apache/lenya/cms/publication/CollectionImpl.java Wed Jan 30 23:44:03 2008
@@ -14,265 +14,245 @@
* limitations under the License.
*
*/
-
/* $Id$ */
-
package org.apache.lenya.cms.publication;
-
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-
import javax.xml.parsers.ParserConfigurationException;
-
import org.apache.lenya.xml.DocumentHelper;
import org.apache.lenya.xml.NamespaceHelper;
-import org.apache.log4j.Category;
+import org.apache.log4j.Logger;
import org.apache.xpath.XPathAPI;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
-
/**
* Implementation of a Collection.
*/
public class CollectionImpl extends DefaultDocument implements Collection {
-
- private static final Category log = Category.getInstance(CollectionImpl.class);
-
- /**
- * Ctor.
- * @param publication A publication.
- * @param id The document ID.
- * @param area The area the document belongs to.
- * @throws DocumentException when something went wrong.
- */
- public CollectionImpl(Publication publication, String id, String area) throws DocumentException {
- super(publication, id, area);
- }
-
- /**
- * Ctor.
- * @param publication A publication.
- * @param id The document ID.
- * @param area The area the document belongs to.
- * @param language The language of the document.
- * @throws DocumentException when something went wrong.
- */
- public CollectionImpl(Publication publication, String id, String area, String language) throws DocumentException {
- super(publication, id, area, language);
- }
-
- private List documentsList = new ArrayList();
-
- /**
- * Returns the list that holds the documents. Use this method to invoke lazy loading.
- * @return A list.
- * @throws DocumentException when something went wrong.
- */
- protected List documents() throws DocumentException {
- load();
- return documentsList;
- }
-
- /**
- * @see org.apache.lenya.cms.publication.Collection#getDocuments()
- */
- public Document[] getDocuments() throws DocumentException {
- return (Document[]) documents().toArray(new Document[documents().size()]);
- }
-
- /**
- * @see org.apache.lenya.cms.publication.Collection#add(org.apache.lenya.cms.publication.Document)
- */
- public void add(Document document) throws DocumentException {
- documents().add(document);
- save();
- }
-
- /**
- * @see org.apache.lenya.cms.publication.Collection#add(int, org.apache.lenya.cms.publication.Document)
- */
- public void add(int position, Document document) throws DocumentException {
- documents().add(position, document);
- save();
- }
-
- /**
- * @see org.apache.lenya.cms.publication.Collection#remove(org.apache.lenya.cms.publication.Document)
- */
- public void remove(Document document) throws DocumentException {
- if (!documents().contains(document)) {
- throw new DocumentException(
- "Collection [" + this +"] does not contain document [" + document + "]");
- }
- documents().remove(document);
- save();
- }
-
- private boolean isLoaded = false;
-
- /**
- * Loads the collection from its XML source.
- * @throws DocumentException when something went wrong.
- */
- protected void load() throws DocumentException {
- if (!isLoaded) {
- log.debug("Loading: ", new DocumentException());
- NamespaceHelper helper;
- try {
- helper = getNamespaceHelper();
-
- Element collectionElement = helper.getDocument().getDocumentElement();
- Element[] documentElements =
- helper.getChildren(collectionElement, ELEMENT_DOCUMENT);
-
- for (int i = 0; i < documentElements.length; i++) {
- Element documentElement = documentElements[i];
- Document document = loadDocument(documentElement);
- documentsList.add(document);
- }
- } catch (DocumentException e) {
- throw e;
- } catch (Exception e) {
- throw new DocumentException(e);
- }
- isLoaded = true;
- }
- }
-
- /**
- * Loads a document from an XML element.
- * @param documentElement The XML element.
- * @return A document.
- * @throws DocumentBuildException when something went wrong.
- */
- protected Document loadDocument(Element documentElement) throws DocumentBuildException {
- DocumentBuilder builder = getPublication().getDocumentBuilder();
- String documentId = documentElement.getAttribute(ATTRIBUTE_ID);
- String url =
- builder.buildCanonicalUrl(
- getPublication(),
- getArea(),
- documentId,
- getLanguage());
- Document document = builder.buildDocument(getPublication(), url);
- return document;
- }
-
- /**
- * Saves the XML source of this collection.
- * @throws DocumentException when something went wrong.
- */
- public void save() throws DocumentException {
- try {
-
- NamespaceHelper helper = getNamespaceHelper();
+ private static Logger log = Logger.getLogger(CollectionImpl.class);
+ /**
+ * Ctor.
+ *
+ * @param publication
+ * A publication.
+ * @param id
+ * The document ID.
+ * @param area
+ * The area the document belongs to.
+ * @throws DocumentException
+ * when something went wrong.
+ */
+ public CollectionImpl(Publication publication, String id, String area) throws DocumentException {
+ super(publication, id, area);
+ }
+ /**
+ * Ctor.
+ *
+ * @param publication
+ * A publication.
+ * @param id
+ * The document ID.
+ * @param area
+ * The area the document belongs to.
+ * @param language
+ * The language of the document.
+ * @throws DocumentException
+ * when something went wrong.
+ */
+ public CollectionImpl(Publication publication, String id, String area, String language) throws DocumentException {
+ super(publication, id, area, language);
+ }
+ private List documentsList = new ArrayList();
+ /**
+ * Returns the list that holds the documents. Use this method to invoke lazy loading.
+ *
+ * @return A list.
+ * @throws DocumentException
+ * when something went wrong.
+ */
+ protected List documents() throws DocumentException {
+ load();
+ return documentsList;
+ }
+ /**
+ * @see org.apache.lenya.cms.publication.Collection#getDocuments()
+ */
+ public Document[] getDocuments() throws DocumentException {
+ return (Document[]) documents().toArray(new Document[documents().size()]);
+ }
+ /**
+ * @see org.apache.lenya.cms.publication.Collection#add(org.apache.lenya.cms.publication.Document)
+ */
+ public void add(Document document) throws DocumentException {
+ documents().add(document);
+ save();
+ }
+ /**
+ * @see org.apache.lenya.cms.publication.Collection#add(int, org.apache.lenya.cms.publication.Document)
+ */
+ public void add(int position, Document document) throws DocumentException {
+ documents().add(position, document);
+ save();
+ }
+ /**
+ * @see org.apache.lenya.cms.publication.Collection#remove(org.apache.lenya.cms.publication.Document)
+ */
+ public void remove(Document document) throws DocumentException {
+ if(!documents().contains(document)){
+ throw new DocumentException("Collection [" + this + "] does not contain document [" + document + "]");
+ }
+ documents().remove(document);
+ save();
+ }
+ private boolean isLoaded = false;
+ /**
+ * Loads the collection from its XML source.
+ *
+ * @throws DocumentException
+ * when something went wrong.
+ */
+ protected void load() throws DocumentException {
+ if(!isLoaded){
+ log.debug("Loading: ", new DocumentException());
+ NamespaceHelper helper;
+ try{
+ helper = getNamespaceHelper();
Element collectionElement = helper.getDocument().getDocumentElement();
- if (collectionElement.getAttributeNS(null, ATTRIBUTE_ID) == null | collectionElement.getAttribute(ATTRIBUTE_ID).equals("")) {
- collectionElement.setAttributeNS(null, ATTRIBUTE_ID, this.getId());
- }
- Element[] existingDocumentElements = helper.getChildren(collectionElement, ELEMENT_DOCUMENT);
- for (int i = 0; i < existingDocumentElements.length; i++) {
- collectionElement.removeChild(existingDocumentElements[i]);
- }
-
- collectionElement.normalize();
-
- NodeList emptyTextNodes = XPathAPI.selectNodeList(collectionElement, "text()");
- for (int i = 0; i < emptyTextNodes.getLength(); i++) {
- Node node = emptyTextNodes.item(i);
- node = collectionElement.removeChild(node);
- }
-
- Document[] documents = getDocuments();
- for (int i = 0; i < documents.length; i++) {
- Element documentElement = createDocumentElement(documents[i], helper);
- collectionElement.appendChild(documentElement);
+ Element[] documentElements = helper.getChildren(collectionElement, ELEMENT_DOCUMENT);
+ for(int i = 0; i < documentElements.length; i++){
+ Element documentElement = documentElements[i];
+ Document document = loadDocument(documentElement);
+ documentsList.add(document);
}
- DocumentHelper.writeDocument(helper.getDocument(), getFile());
-
- } catch (DocumentException e) {
+ }catch(DocumentException e){
throw e;
- } catch (Exception e) {
+ }catch(Exception e){
throw new DocumentException(e);
- }
- }
-
- /**
- * Creates an element to store a document.
- * @param helper The namespace helper of the document.
- * @param document The document.
- * @return An XML element.
- * @throws DocumentException when something went wrong.
- */
- protected Element createDocumentElement(Document document, NamespaceHelper helper)
- throws DocumentException {
- Element documentElement = helper.createElement(ELEMENT_DOCUMENT);
- documentElement.setAttributeNS(null, ATTRIBUTE_ID, document.getId());
- return documentElement;
- }
-
- /**
- * Returns the namespace helper for the XML source.
- * @return A namespace helper.
- * @throws DocumentException when something went wrong.
- * @throws ParserConfigurationException when something went wrong.
- * @throws SAXException when something went wrong.
- * @throws IOException when something went wrong.
- */
- protected NamespaceHelper getNamespaceHelper()
- throws DocumentException, ParserConfigurationException, SAXException, IOException {
-
- NamespaceHelper helper;
-
- if (exists()) {
- File file = getFile();
- org.w3c.dom.Document document = DocumentHelper.readDocument(file);
- helper = new NamespaceHelper(Collection.NAMESPACE, Collection.DEFAULT_PREFIX, document);
- } else {
- helper =
- new NamespaceHelper(
- Collection.NAMESPACE,
- Collection.DEFAULT_PREFIX,
- ELEMENT_COLLECTION);
- }
- return helper;
- }
-
- /**
- * @see org.apache.lenya.cms.publication.Collection#contains(org.apache.lenya.cms.publication.Document)
- */
- public boolean contains(Document document) throws DocumentException {
- return documents().contains(document);
- }
-
- /**
- * @see org.apache.lenya.cms.publication.Collection#clear()
- */
- public void clear() throws DocumentException {
- documents().clear();
- }
-
- /**
- * @see org.apache.lenya.cms.publication.Collection#getFirstPosition(org.apache.lenya.cms.publication.Document)
- */
- public int getFirstPosition(Document document) throws DocumentException {
- load();
- if (!contains(document)) {
- throw new DocumentException(
- "The collection [" + this +"] does not contain the document [" + document + "]");
- }
- return documents().indexOf(document);
- }
-
- /**
- * @see org.apache.lenya.cms.publication.Collection#size()
- */
- public int size() throws DocumentException {
- return documents().size();
- }
-
+ }
+ isLoaded = true;
+ }
+ }
+ /**
+ * Loads a document from an XML element.
+ *
+ * @param documentElement
+ * The XML element.
+ * @return A document.
+ * @throws DocumentBuildException
+ * when something went wrong.
+ */
+ protected Document loadDocument(Element documentElement) throws DocumentBuildException {
+ DocumentBuilder builder = getPublication().getDocumentBuilder();
+ String documentId = documentElement.getAttribute(ATTRIBUTE_ID);
+ String url = builder.buildCanonicalUrl(getPublication(), getArea(), documentId, getLanguage());
+ Document document = builder.buildDocument(getPublication(), url);
+ return document;
+ }
+ /**
+ * Saves the XML source of this collection.
+ *
+ * @throws DocumentException
+ * when something went wrong.
+ */
+ public void save() throws DocumentException {
+ try{
+ NamespaceHelper helper = getNamespaceHelper();
+ Element collectionElement = helper.getDocument().getDocumentElement();
+ if(collectionElement.getAttributeNS(null, ATTRIBUTE_ID) == null | collectionElement.getAttribute(ATTRIBUTE_ID).equals("")){
+ collectionElement.setAttributeNS(null, ATTRIBUTE_ID, this.getId());
+ }
+ Element[] existingDocumentElements = helper.getChildren(collectionElement, ELEMENT_DOCUMENT);
+ for(int i = 0; i < existingDocumentElements.length; i++){
+ collectionElement.removeChild(existingDocumentElements[i]);
+ }
+ collectionElement.normalize();
+ NodeList emptyTextNodes = XPathAPI.selectNodeList(collectionElement, "text()");
+ for(int i = 0; i < emptyTextNodes.getLength(); i++){
+ Node node = emptyTextNodes.item(i);
+ node = collectionElement.removeChild(node);
+ }
+ Document[] documents = getDocuments();
+ for(int i = 0; i < documents.length; i++){
+ Element documentElement = createDocumentElement(documents[i], helper);
+ collectionElement.appendChild(documentElement);
+ }
+ DocumentHelper.writeDocument(helper.getDocument(), getFile());
+ }catch(DocumentException e){
+ throw e;
+ }catch(Exception e){
+ throw new DocumentException(e);
+ }
+ }
+ /**
+ * Creates an element to store a document.
+ *
+ * @param helper
+ * The namespace helper of the document.
+ * @param document
+ * The document.
+ * @return An XML element.
+ * @throws DocumentException
+ * when something went wrong.
+ */
+ protected Element createDocumentElement(Document document, NamespaceHelper helper) throws DocumentException {
+ Element documentElement = helper.createElement(ELEMENT_DOCUMENT);
+ documentElement.setAttributeNS(null, ATTRIBUTE_ID, document.getId());
+ return documentElement;
+ }
+ /**
+ * Returns the namespace helper for the XML source.
+ *
+ * @return A namespace helper.
+ * @throws DocumentException
+ * when something went wrong.
+ * @throws ParserConfigurationException
+ * when something went wrong.
+ * @throws SAXException
+ * when something went wrong.
+ * @throws IOException
+ * when something went wrong.
+ */
+ protected NamespaceHelper getNamespaceHelper() throws DocumentException, ParserConfigurationException, SAXException, IOException {
+ NamespaceHelper helper;
+ if(exists()){
+ File file = getFile();
+ org.w3c.dom.Document document = DocumentHelper.readDocument(file);
+ helper = new NamespaceHelper(Collection.NAMESPACE, Collection.DEFAULT_PREFIX, document);
+ }else{
+ helper = new NamespaceHelper(Collection.NAMESPACE, Collection.DEFAULT_PREFIX, ELEMENT_COLLECTION);
+ }
+ return helper;
+ }
+ /**
+ * @see org.apache.lenya.cms.publication.Collection#contains(org.apache.lenya.cms.publication.Document)
+ */
+ public boolean contains(Document document) throws DocumentException {
+ return documents().contains(document);
+ }
+ /**
+ * @see org.apache.lenya.cms.publication.Collection#clear()
+ */
+ public void clear() throws DocumentException {
+ documents().clear();
+ }
+ /**
+ * @see org.apache.lenya.cms.publication.Collection#getFirstPosition(org.apache.lenya.cms.publication.Document)
+ */
+ public int getFirstPosition(Document document) throws DocumentException {
+ load();
+ if(!contains(document)){
+ throw new DocumentException("The collection [" + this + "] does not contain the document [" + document + "]");
+ }
+ return documents().indexOf(document);
+ }
+ /**
+ * @see org.apache.lenya.cms.publication.Collection#size()
+ */
+ public int size() throws DocumentException {
+ return documents().size();
+ }
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.