From 2c89d68f98a379bf62b0351f781485564f9411a8 Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 2 Feb 2011 21:01:18 +0000 Subject: [PATCH] =?UTF-8?q?Name=20der=20Application=20f=C3=BCr=20SciPublic?= =?UTF-8?q?ations=20ge=C3=A4ndert.=20Die=20Application=20wird=20alle=20Fun?= =?UTF-8?q?ktionen=20(Export,=20Import,=20...)=20anbieten,=20es=20wird=20k?= =?UTF-8?q?eine=20eigenst=C3=A4ndigen=20Apps=20f=C3=BCr=20Import=20und=20E?= =?UTF-8?q?xport=20geben.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/trunk@729 8810af33-2d31-482b-a856-94f89814c4df --- .../bebop/page/BebopApplicationServlet.java | 3 +- .../src/com/arsdigita/web/BaseDispatcher.java | 1 - ...cationExporter.pdl => SciPublications.pdl} | 4 +- .../src/ccm-sci-publications.load | 4 +- .../PublicationExporterServlet.java | 27 ------- ...tionExporter.java => SciPublications.java} | 12 +-- ...r.java => SciPublicationsInitializer.java} | 4 +- ...Loader.java => SciPublicationsLoader.java} | 20 ++--- .../SciPublicationsServlet.java | 75 +++++++++++++++++++ .../web/WEB-INF/web.scipublications.xml | 8 +- 10 files changed, 103 insertions(+), 55 deletions(-) rename ccm-sci-publications/pdl/com/arsdigita/scipublications/{PublicationExporter.pdl => SciPublications.pdl} (89%) delete mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporterServlet.java rename ccm-sci-publications/src/com/arsdigita/cms/scipublications/{PublicationExporter.java => SciPublications.java} (59%) rename ccm-sci-publications/src/com/arsdigita/cms/scipublications/{PublicationExporterInitializer.java => SciPublicationsInitializer.java} (89%) rename ccm-sci-publications/src/com/arsdigita/cms/scipublications/{PublicationExporterLoader.java => SciPublicationsLoader.java} (74%) create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsServlet.java diff --git a/ccm-core/src/com/arsdigita/bebop/page/BebopApplicationServlet.java b/ccm-core/src/com/arsdigita/bebop/page/BebopApplicationServlet.java index 6b9f764ed..195516a63 100755 --- a/ccm-core/src/com/arsdigita/bebop/page/BebopApplicationServlet.java +++ b/ccm-core/src/com/arsdigita/bebop/page/BebopApplicationServlet.java @@ -62,6 +62,7 @@ public class BebopApplicationServlet extends BaseApplicationServlet { * * @throws ServletException */ + @Override public void init() throws ServletException { super.init(); } @@ -83,7 +84,7 @@ public class BebopApplicationServlet extends BaseApplicationServlet { /** * * disable client/middleware caching of specified page. - * @param pathinfo - the same path used to add the page when put was called + * @param pathInfo - the same path used to add the page when put was called */ protected final void disableClientCaching(String pathInfo) { Assert.exists(pathInfo, String.class); diff --git a/ccm-core/src/com/arsdigita/web/BaseDispatcher.java b/ccm-core/src/com/arsdigita/web/BaseDispatcher.java index 73d962f01..b60b89b50 100755 --- a/ccm-core/src/com/arsdigita/web/BaseDispatcher.java +++ b/ccm-core/src/com/arsdigita/web/BaseDispatcher.java @@ -26,7 +26,6 @@ import com.arsdigita.persistence.TransactionContext; import com.arsdigita.profiler.Profiler; import com.arsdigita.util.Assert; import com.arsdigita.util.StringUtils; -import com.arsdigita.web.Application; import java.io.IOException; import java.math.BigDecimal; diff --git a/ccm-sci-publications/pdl/com/arsdigita/scipublications/PublicationExporter.pdl b/ccm-sci-publications/pdl/com/arsdigita/scipublications/SciPublications.pdl similarity index 89% rename from ccm-sci-publications/pdl/com/arsdigita/scipublications/PublicationExporter.pdl rename to ccm-sci-publications/pdl/com/arsdigita/scipublications/SciPublications.pdl index fcc32f516..32aacb911 100644 --- a/ccm-sci-publications/pdl/com/arsdigita/scipublications/PublicationExporter.pdl +++ b/ccm-sci-publications/pdl/com/arsdigita/scipublications/SciPublications.pdl @@ -23,6 +23,6 @@ model com.arsdigita.cms.scipublications; import com.arsdigita.web.Application; -object type PublicationExporter extends Application { - reference key (publication_exporter.application_id); +object type SciPublications extends Application { + reference key (scipublications.application_id); } diff --git a/ccm-sci-publications/src/ccm-sci-publications.load b/ccm-sci-publications/src/ccm-sci-publications.load index f61d25620..6a1973b1e 100644 --- a/ccm-sci-publications/src/ccm-sci-publications.load +++ b/ccm-sci-publications/src/ccm-sci-publications.load @@ -42,7 +42,7 @@ - + @@ -64,6 +64,6 @@ - + diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporterServlet.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporterServlet.java deleted file mode 100644 index be326529d..000000000 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporterServlet.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.arsdigita.cms.scipublications; - -import com.arsdigita.web.Application; -import com.arsdigita.web.BaseApplicationServlet; -import java.io.IOException; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * - * @author Jens Pelzetter - */ -public class PublicationExporterServlet extends BaseApplicationServlet { - - private static final long serialVersionUID = -632365939651657874L; - - @Override - protected void doService(HttpServletRequest request, - HttpServletResponse response, - Application app) throws ServletException, - IOException { - response.setContentType("application/text"); - response.setHeader("Content-Disposition", "attachment; filename=ccm-publication-exporter.txt"); - response.getWriter().append("This is the sci-publication-exporter"); - } -} diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublications.java similarity index 59% rename from ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporter.java rename to ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublications.java index 51b416b21..e18364e25 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublications.java @@ -10,25 +10,25 @@ import java.math.BigDecimal; * * @author Jens Pelzetter */ -public class PublicationExporter extends Application { +public class SciPublications extends Application { - public static final String BASE_DATA_OBJECT_TYPE = "com.arsdigita.cms.scipublications.PublicationExporter"; + public static final String BASE_DATA_OBJECT_TYPE = "com.arsdigita.cms.scipublications.SciPublications"; - public PublicationExporter(DataObject dobj) { + public SciPublications(DataObject dobj) { super(dobj); } - public PublicationExporter(OID oid) throws DataObjectNotFoundException{ + public SciPublications(OID oid) throws DataObjectNotFoundException{ super(oid); } - public PublicationExporter(BigDecimal key) throws DataObjectNotFoundException { + public SciPublications(BigDecimal key) throws DataObjectNotFoundException { this(new OID(BASE_DATA_OBJECT_TYPE, key)); } @Override public String getServletPath() { - return "/scipublicationsexporter/"; + return "/scipublications/"; } } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporterInitializer.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsInitializer.java similarity index 89% rename from ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporterInitializer.java rename to ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsInitializer.java index 71d1965ad..66ee13206 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporterInitializer.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsInitializer.java @@ -12,9 +12,9 @@ import com.arsdigita.runtime.RuntimeConfig; * * @author Jens Pelzetter */ -public class PublicationExporterInitializer extends CompoundInitializer { +public class SciPublicationsInitializer extends CompoundInitializer { - public PublicationExporterInitializer() { + public SciPublicationsInitializer() { final String url = RuntimeConfig.getConfig().getJDBCURL(); final int database = DbHelper.getDatabaseFromURL(url); diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporterLoader.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsLoader.java similarity index 74% rename from ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporterLoader.java rename to ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsLoader.java index 1d9f70c5d..deec5dc0f 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/PublicationExporterLoader.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsLoader.java @@ -16,10 +16,10 @@ import org.apache.log4j.Logger; * * @author Jens Pelzetter */ -public class PublicationExporterLoader extends PackageLoader { +public class SciPublicationsLoader extends PackageLoader { private static final Logger logger = Logger.getLogger( - PublicationExporterLoader.class); + SciPublicationsLoader.class); @Override public void run(final ScriptContext ctx) { @@ -33,16 +33,16 @@ public class PublicationExporterLoader extends PackageLoader { ApplicationSetup setup = new ApplicationSetup(logger); setup.setApplicationObjectType( - PublicationExporter.BASE_DATA_OBJECT_TYPE); - setup.setKey("scipubliationsexporter"); - setup.setTitle("sci-publication Exporter"); + SciPublications.BASE_DATA_OBJECT_TYPE); + setup.setKey("scipubliations"); + setup.setTitle("sci-publications"); setup.setDescription( - "Exports publication data in various formats"); + "Provides several functions like export and import for publications."); //setup.setSingleton(true); setup.setInstantiator(new ACSObjectInstantiator() { @Override public DomainObject doNewInstance(DataObject dataObject) { - return new PublicationExporter(dataObject); + return new SciPublications(dataObject); } }); @@ -50,10 +50,10 @@ public class PublicationExporterLoader extends PackageLoader { type.save(); if (!Application.isInstalled( - PublicationExporter.BASE_DATA_OBJECT_TYPE, "/scipublicationsexporter/")) { + SciPublications.BASE_DATA_OBJECT_TYPE, "/scipublications/")) { Application app = Application.createApplication(type, - "scipublicationsexporter", - "PublicationExporter", + "scipublications", + "SciPublications", null); app.save(); } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsServlet.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsServlet.java new file mode 100644 index 000000000..8eedcf16f --- /dev/null +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsServlet.java @@ -0,0 +1,75 @@ +package com.arsdigita.cms.scipublications; + +import com.arsdigita.web.Application; +import com.arsdigita.web.BaseApplicationServlet; +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.log4j.Logger; + +/** + * + * @author Jens Pelzetter + */ +public class SciPublicationsServlet extends BaseApplicationServlet { + + private static final long serialVersionUID = -632365939651657874L; + private static final Logger logger = Logger.getLogger( + SciPublicationsServlet.class); + + @Override + protected void doService(HttpServletRequest request, + HttpServletResponse response, + Application app) throws ServletException, + IOException { + String path = ""; + + logger.debug("SciPublicationsServlet is starting..."); + logger.debug(String.format("pathInfo = '%s'", request.getPathInfo())); + + logger.debug("Extracting path from pathInfo by removing leading and " + + "trailing slashes..."); + if (request.getPathInfo() != null) { + if ("/".equals(request.getPathInfo())) { + path = ""; + } else if (request.getPathInfo().startsWith("/") + && request.getPathInfo().endsWith("/")) { + path = request.getPathInfo().substring(1, request.getPathInfo(). + length() - 1); + } else if (request.getPathInfo().startsWith("/")) { + path = request.getPathInfo().substring(1); + } else if (request.getPathInfo().endsWith("/")) { + path = request.getPathInfo().substring(0, request.getPathInfo(). + length() - 1); + } else { + path = request.getPathInfo(); + } + } + + logger.debug(String.format("path = %s", path)); + + if (path.isEmpty()) { + logger.debug("pathInfo is null, responding with default..."); + /*response.setContentType("application/text"); + response.setHeader("Content-Disposition", + "attachment; filename=ccm-publication-exporter.txt"); + response.getWriter().append("This is the sci-publication-exporter");*/ + + response.setContentType("text/plain"); + response.getWriter().append("Please choose an application."); + + //ToDo: Show a menu? + } else if("export".equals(path)) { + logger.debug("Export a publication"); + + response.setContentType("text/plain"); + response.getWriter().append("Calling exporter..."); + + //ToDo: Call the exporter here. + } else { + logger.debug("Unknown pathinfo, responding with 404..."); + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + } + } +} diff --git a/ccm-sci-publications/web/WEB-INF/web.scipublications.xml b/ccm-sci-publications/web/WEB-INF/web.scipublications.xml index 4d7927547..2c31f48fa 100644 --- a/ccm-sci-publications/web/WEB-INF/web.scipublications.xml +++ b/ccm-sci-publications/web/WEB-INF/web.scipublications.xml @@ -6,13 +6,13 @@ - PublicationExporter - com.arsdigita.cms.scipublications.PublicationExporterServlet + SciPublications + com.arsdigita.cms.scipublications.SciPublicationsServlet - PublicationExporter - /scipublicationsexporter/* + SciPublications + /scipublications/* \ No newline at end of file