Verschiedene kleinere Formatierungen / Kommentierungen.
git-svn-id: https://svn.libreccm.org/ccm/trunk@662 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
932060e3d2
commit
fbc7372b64
|
|
@ -18,8 +18,6 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.cms.dispatcher;
|
package com.arsdigita.cms.dispatcher;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import com.arsdigita.categorization.Category;
|
import com.arsdigita.categorization.Category;
|
||||||
import com.arsdigita.cms.ContentBundle;
|
import com.arsdigita.cms.ContentBundle;
|
||||||
import com.arsdigita.cms.ContentItem;
|
import com.arsdigita.cms.ContentItem;
|
||||||
|
|
@ -39,11 +37,29 @@ import com.arsdigita.web.ParameterMap;
|
||||||
import com.arsdigita.web.URL;
|
import com.arsdigita.web.URL;
|
||||||
import com.arsdigita.web.Web;
|
import com.arsdigita.web.Web;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implementation of {@link com.arsdigita.kernel.URLFinder} for content types,
|
||||||
|
* necessary for ccm dispatcher to find a concrete content item for an url
|
||||||
|
* provided by a client request.
|
||||||
|
*
|
||||||
|
* Specifically it is a helper class for {@link com.arsdigita.web.OIDRedirectServlet}
|
||||||
|
* to map an OID to an URL.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class ItemURLFinder implements URLFinder {
|
public class ItemURLFinder implements URLFinder {
|
||||||
|
|
||||||
private static final Logger s_log = Logger.getLogger(ItemURLFinder.class);
|
private static final Logger s_log = Logger.getLogger(ItemURLFinder.class);
|
||||||
|
|
||||||
public String find(OID oid,String context) throws NoValidURLException {
|
/**
|
||||||
|
*
|
||||||
|
* @param oid
|
||||||
|
* @param context publication status ['live'|'draft']
|
||||||
|
* @return
|
||||||
|
* @throws NoValidURLException
|
||||||
|
*/
|
||||||
|
public String find(OID oid, String context) throws NoValidURLException {
|
||||||
if (s_log.isDebugEnabled()) {
|
if (s_log.isDebugEnabled()) {
|
||||||
s_log.debug("Locating " + oid + " in " + context);
|
s_log.debug("Locating " + oid + " in " + context);
|
||||||
}
|
}
|
||||||
|
|
@ -78,6 +94,12 @@ public class ItemURLFinder implements URLFinder {
|
||||||
return find(item, context);
|
return find(item, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param oid
|
||||||
|
* @return
|
||||||
|
* @throws NoValidURLException
|
||||||
|
*/
|
||||||
public String find(OID oid) throws NoValidURLException {
|
public String find(OID oid) throws NoValidURLException {
|
||||||
if (s_log.isDebugEnabled()) {
|
if (s_log.isDebugEnabled()) {
|
||||||
s_log.debug("Locating " + oid);
|
s_log.debug("Locating " + oid);
|
||||||
|
|
@ -98,14 +120,18 @@ public class ItemURLFinder implements URLFinder {
|
||||||
s_log.debug("Item version is " + item.getVersion());
|
s_log.debug("Item version is " + item.getVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Revert to the behavior before change# 41315. Clients relied on the behavior that
|
// Revert to the behavior before change #41315.
|
||||||
// links with no context defaulted to the live version (if one existed). Changing
|
// Clients relied on the behavior that links with no context
|
||||||
// that behavior broke a lot of links in static content that couldn't easily be updated.
|
// defaulted to the live version (if one existed). Changing
|
||||||
// This change restores the old behavior. We don't get a regression of bz 116226
|
// that behavior broke a lot of links in static content that couldn't
|
||||||
// (which bz 41315 was intended to fix) because the CMS search.xsl has been updated to
|
// easily be updated.
|
||||||
// append "&context=draft" to the search results. The CMS DHTML editor has also been
|
// This change restores the old behavior. We don't get a regression of
|
||||||
// updated to append generated links with "&context=live". If at some point in the future
|
// bz 116226 (which bz 41315 was intended to fix) because the CMS
|
||||||
// all unqualified links have been removed, then this fix could be removed as well.
|
// search.xsl has been updated to append "&context=draft" to the search
|
||||||
|
// results. The CMS DHTML editor has also been updated to append
|
||||||
|
// generated links with "&context=live". If at some point in the future
|
||||||
|
// all unqualified links have been removed, then this fix could be
|
||||||
|
// removed as well.
|
||||||
if (item.isLive() && !item.isLiveVersion()) {
|
if (item.isLive() && !item.isLiveVersion()) {
|
||||||
item = item.getLiveVersion();
|
item = item.getLiveVersion();
|
||||||
if (s_log.isDebugEnabled()) {
|
if (s_log.isDebugEnabled()) {
|
||||||
|
|
@ -116,8 +142,16 @@ public class ItemURLFinder implements URLFinder {
|
||||||
return find(item, item.getVersion());
|
return find(item, item.getVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String find(ContentItem item,
|
/**
|
||||||
String context) throws NoValidURLException {
|
*
|
||||||
|
* @param item
|
||||||
|
* @param context publication status ['live'|'draft']
|
||||||
|
* @return
|
||||||
|
* @throws NoValidURLException
|
||||||
|
*/
|
||||||
|
private String find(ContentItem item, String context)
|
||||||
|
throws NoValidURLException {
|
||||||
|
|
||||||
ContentSection section = item.getContentSection();
|
ContentSection section = item.getContentSection();
|
||||||
ItemResolver resolver = section.getItemResolver();
|
ItemResolver resolver = section.getItemResolver();
|
||||||
|
|
||||||
|
|
@ -127,7 +161,7 @@ public class ItemURLFinder implements URLFinder {
|
||||||
// always send to the admin screen (that's for results of the admin
|
// always send to the admin screen (that's for results of the admin
|
||||||
// search)
|
// search)
|
||||||
|
|
||||||
if (!ContentItem.DRAFT.equals(context)) {
|
if (!ContentItem.DRAFT.equals(context)) { // LIVE context
|
||||||
ACSObject parent = item.getParent();
|
ACSObject parent = item.getParent();
|
||||||
ContentBundle bundle = null;
|
ContentBundle bundle = null;
|
||||||
if (parent instanceof ContentBundle) {
|
if (parent instanceof ContentBundle) {
|
||||||
|
|
@ -137,14 +171,19 @@ public class ItemURLFinder implements URLFinder {
|
||||||
DataAssociationCursor categories =
|
DataAssociationCursor categories =
|
||||||
((DataAssociation) DomainServiceInterfaceExposer.
|
((DataAssociation) DomainServiceInterfaceExposer.
|
||||||
get(bundle, Category.CATEGORIES)).cursor();
|
get(bundle, Category.CATEGORIES)).cursor();
|
||||||
|
// XXX pb (2010.12.15) ToDO
|
||||||
|
// solution is currently not subsite aware!
|
||||||
|
// provides an index url even if the category tree is not part
|
||||||
|
// of subsite (which results in a resource not found exception)
|
||||||
categories.addEqualsFilter("link." + Category.IS_INDEX, Boolean.TRUE);
|
categories.addEqualsFilter("link." + Category.IS_INDEX, Boolean.TRUE);
|
||||||
if (categories.next()) {
|
if (categories.next()) {
|
||||||
Category indexCat = (Category) DomainObjectFactory.
|
Category indexCat = (Category) DomainObjectFactory.
|
||||||
newInstance(categories.getDataObject());
|
newInstance(categories.getDataObject());
|
||||||
categories.close();
|
categories.close();
|
||||||
try {
|
try {
|
||||||
if (s_log.isDebugEnabled()) {
|
if (s_log.isDebugEnabled()) {
|
||||||
s_log.debug(item + " is a Category index item. Resolving URL for " + indexCat);
|
s_log.debug(item + " is a Category index item. " +
|
||||||
|
"Resolving URL for " + indexCat);
|
||||||
}
|
}
|
||||||
return URLService.locate(indexCat.getOID(), context);
|
return URLService.locate(indexCat.getOID(), context);
|
||||||
} catch (URLFinderNotFoundException ufnfe) {
|
} catch (URLFinderNotFoundException ufnfe) {
|
||||||
|
|
@ -165,12 +204,14 @@ public class ItemURLFinder implements URLFinder {
|
||||||
} else { // DRAFT context
|
} else { // DRAFT context
|
||||||
// public users get 404 when item gets unpublished
|
// public users get 404 when item gets unpublished
|
||||||
// if com.arsdigita.cms.unpublished_not_found=true
|
// if com.arsdigita.cms.unpublished_not_found=true
|
||||||
if (ContentSection.getConfig().isUnpublishedNotFound() && !Web.getUserContext().isLoggedIn()) {
|
if (ContentSection.getConfig().isUnpublishedNotFound()
|
||||||
|
&& !Web.getUserContext().isLoggedIn()) {
|
||||||
throw new NoValidURLException("user must be logged-in to get draft");
|
throw new NoValidURLException("user must be logged-in to get draft");
|
||||||
} else {
|
} else {
|
||||||
// force the switch to draft version at this point
|
// force the switch to draft version at this point
|
||||||
// otherwise resolver below breaks with:
|
// otherwise resolver below breaks with:
|
||||||
// java.lang.IllegalStateException: Generating draft url: item must be draft version
|
// java.lang.IllegalStateException: Generating draft url:
|
||||||
|
// item must be draft version
|
||||||
if (!item.isDraftVersion()) {
|
if (!item.isDraftVersion()) {
|
||||||
item = item.getDraftVersion();
|
item = item.getDraftVersion();
|
||||||
s_log.debug("switching to draft version");
|
s_log.debug("switching to draft version");
|
||||||
|
|
|
||||||
|
|
@ -21,13 +21,16 @@ package com.arsdigita.bebop.parameters;
|
||||||
import com.arsdigita.bebop.FormProcessException;
|
import com.arsdigita.bebop.FormProcessException;
|
||||||
import com.arsdigita.bebop.event.ParameterEvent;
|
import com.arsdigita.bebop.event.ParameterEvent;
|
||||||
import com.arsdigita.bebop.event.ParameterListener;
|
import com.arsdigita.bebop.event.ParameterListener;
|
||||||
import com.arsdigita.util.Assert;
|
|
||||||
import com.arsdigita.globalization.Globalization;
|
import com.arsdigita.globalization.Globalization;
|
||||||
|
import com.arsdigita.util.Assert;
|
||||||
import com.arsdigita.util.Lockable;
|
import com.arsdigita.util.Lockable;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,6 @@ import javax.servlet.http.HttpUtils;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* A URLFinder that can be registered for most object types. The
|
* A URLFinder that can be registered for most object types. The
|
||||||
* GenericURLFinder is constructed with a specified URL pattern such
|
* GenericURLFinder is constructed with a specified URL pattern such
|
||||||
* as <code>one-ticket?ticket_id=:id</code>. For a given OID, the
|
* as <code>one-ticket?ticket_id=:id</code>. For a given OID, the
|
||||||
|
|
@ -102,12 +101,10 @@ import java.net.URLEncoder;
|
||||||
* <code>PackageInstance</code>.
|
* <code>PackageInstance</code>.
|
||||||
*
|
*
|
||||||
* @author Oumi Mehrotra
|
* @author Oumi Mehrotra
|
||||||
*
|
* @version $Id: GenericURLFinder.java 287 2005-02-22 00:29:02Z sskracic $
|
||||||
*/
|
*/
|
||||||
public class GenericURLFinder implements URLFinder {
|
public class GenericURLFinder implements URLFinder {
|
||||||
|
|
||||||
public static final String versionId = "$Id: GenericURLFinder.java 287 2005-02-22 00:29:02Z sskracic $ by $Author: sskracic $, $DateTime: 2004/08/16 18:10:38 $";
|
|
||||||
|
|
||||||
private String m_base;
|
private String m_base;
|
||||||
private Map m_params;
|
private Map m_params;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,12 +35,9 @@ import org.apache.log4j.Logger;
|
||||||
* Initializes the Kernel and bootstraps the rest of the system.
|
* Initializes the Kernel and bootstraps the rest of the system.
|
||||||
*
|
*
|
||||||
* @version $Revision: #39 $ $Date: 2004/08/16 $
|
* @version $Revision: #39 $ $Date: 2004/08/16 $
|
||||||
|
* @version $Id: Initializer.java 1169 2006-06-14 13:08:25Z fabrice $
|
||||||
*/
|
*/
|
||||||
public class Initializer extends BaseInitializer {
|
public class Initializer extends BaseInitializer {
|
||||||
public static final String versionId =
|
|
||||||
"$Id: Initializer.java 1169 2006-06-14 13:08:25Z fabrice $" +
|
|
||||||
"$Author: fabrice $" +
|
|
||||||
"$DateTime: 2004/08/16 18:10:38 $";
|
|
||||||
|
|
||||||
private static final Logger s_log = Logger.getLogger(Initializer.class);
|
private static final Logger s_log = Logger.getLogger(Initializer.class);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,11 +37,10 @@ import com.arsdigita.persistence.OID;
|
||||||
* should write a new URLFinder that uses application-specific logic.
|
* should write a new URLFinder that uses application-specific logic.
|
||||||
*
|
*
|
||||||
* @author Oumi Mehrotra
|
* @author Oumi Mehrotra
|
||||||
**/
|
* @version $Id: URLFinder.java 287 2005-02-22 00:29:02Z sskracic $
|
||||||
|
*/
|
||||||
public interface URLFinder {
|
public interface URLFinder {
|
||||||
|
|
||||||
public static final String versionId = "$Id: URLFinder.java 287 2005-02-22 00:29:02Z sskracic $ by $Author: sskracic $, $DateTime: 2004/08/16 18:10:38 $";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a URL path to a page that displays the object identified by
|
* Returns a URL path to a page that displays the object identified by
|
||||||
* the given OID. The URL path is relative to the server root.
|
* the given OID. The URL path is relative to the server root.
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Supports generically locating a domain object on the site.
|
* Supports generically locating a domain object on the site.
|
||||||
|
*
|
||||||
* The URLService can produce the path (relative to the root URL) to a page
|
* The URLService can produce the path (relative to the root URL) to a page
|
||||||
* that displays the domain object identified by a given OID.
|
* that displays the domain object identified by a given OID.
|
||||||
* <P>
|
* <P>
|
||||||
|
|
@ -82,11 +83,12 @@ public class URLService {
|
||||||
* @throws NoValidURLException when the
|
* @throws NoValidURLException when the
|
||||||
* URLFinder registered for the given <i>oid</i>'s object type is unable
|
* URLFinder registered for the given <i>oid</i>'s object type is unable
|
||||||
* to produce a valid non-null URL.
|
* to produce a valid non-null URL.
|
||||||
**/
|
*/
|
||||||
public static String locate(OID oid)
|
public static String locate(OID oid)
|
||||||
throws URLFinderNotFoundException, NoValidURLException {
|
throws URLFinderNotFoundException, NoValidURLException {
|
||||||
return locate(oid,null);
|
return locate(oid,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a URL path to a page that displays the object identified by
|
* Returns a URL path to a page that displays the object identified by
|
||||||
* the given <i>oid</i>. The URL path is relative to the server root.
|
* the given <i>oid</i>. The URL path is relative to the server root.
|
||||||
|
|
@ -100,10 +102,10 @@ public class URLService {
|
||||||
* @throws NoValidURLException when the
|
* @throws NoValidURLException when the
|
||||||
* URLFinder registered for the given <i>oid</i>'s object type is unable
|
* URLFinder registered for the given <i>oid</i>'s object type is unable
|
||||||
* to produce a valid non-null URL.
|
* to produce a valid non-null URL.
|
||||||
**/
|
*/
|
||||||
public static String locate(OID oid, String context)
|
public static String locate(OID oid, String context)
|
||||||
throws URLFinderNotFoundException, NoValidURLException
|
throws URLFinderNotFoundException, NoValidURLException{
|
||||||
{
|
|
||||||
URLFinder f = getFinder(oid.getObjectType());
|
URLFinder f = getFinder(oid.getObjectType());
|
||||||
if (f==null) {
|
if (f==null) {
|
||||||
throw new URLFinderNotFoundException("There is no URLFinder " +
|
throw new URLFinderNotFoundException("There is no URLFinder " +
|
||||||
|
|
@ -112,6 +114,7 @@ public class URLService {
|
||||||
oid.getObjectType().getQualifiedName());
|
oid.getObjectType().getQualifiedName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Determine the URL using the objects URLFinder
|
||||||
String url = (context == null) ? f.find(oid) : f.find(oid,context);
|
String url = (context == null) ? f.find(oid) : f.find(oid,context);
|
||||||
|
|
||||||
if (url == null) {
|
if (url == null) {
|
||||||
|
|
@ -149,7 +152,7 @@ public class URLService {
|
||||||
*
|
*
|
||||||
* @return the previous finder that was
|
* @return the previous finder that was
|
||||||
* registered with this service for this object type.
|
* registered with this service for this object type.
|
||||||
**/
|
*/
|
||||||
public synchronized static URLFinder registerFinder(ObjectType objectType,
|
public synchronized static URLFinder registerFinder(ObjectType objectType,
|
||||||
URLFinder finder) {
|
URLFinder finder) {
|
||||||
return (URLFinder) s_finders.put(objectType, finder);
|
return (URLFinder) s_finders.put(objectType, finder);
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
import com.arsdigita.persistence.OID;
|
import com.arsdigita.persistence.OID;
|
||||||
import com.arsdigita.bebop.parameters.ParameterModel;
|
import com.arsdigita.bebop.parameters.ParameterModel;
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* A {@link com.arsdigita.bebop.parameters.ParameterModel} for an
|
* A {@link com.arsdigita.bebop.parameters.ParameterModel} for an
|
||||||
* {@link com.arsdigita.persistence.OID}
|
* {@link com.arsdigita.persistence.OID}
|
||||||
*
|
*
|
||||||
|
|
@ -31,6 +31,7 @@ import com.arsdigita.bebop.parameters.ParameterModel;
|
||||||
* @since Iteration 1
|
* @since Iteration 1
|
||||||
*/
|
*/
|
||||||
public class OIDParameter extends ParameterModel {
|
public class OIDParameter extends ParameterModel {
|
||||||
|
|
||||||
public OIDParameter(String name) {
|
public OIDParameter(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,22 +18,39 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.web;
|
package com.arsdigita.web;
|
||||||
|
|
||||||
|
import com.arsdigita.kernel.URLService;
|
||||||
|
import com.arsdigita.kernel.NoValidURLException;
|
||||||
|
import com.arsdigita.kernel.URLFinderNotFoundException;
|
||||||
|
import com.arsdigita.persistence.OID;
|
||||||
|
import com.arsdigita.toolbox.ui.OIDParameter;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import com.arsdigita.kernel.URLService;
|
|
||||||
import com.arsdigita.kernel.NoValidURLException;
|
|
||||||
import com.arsdigita.kernel.URLFinderNotFoundException;
|
|
||||||
|
|
||||||
import com.arsdigita.persistence.OID;
|
|
||||||
import com.arsdigita.toolbox.ui.OIDParameter;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Servlet to redirect an OID based request to a complete url in an application's
|
||||||
|
* url tree and is one of the basic servlets required by any ccm-core application
|
||||||
|
* instance to work correctly.
|
||||||
|
*
|
||||||
|
* It has to be declared in an application web.xml, typically:
|
||||||
|
* <servlet>
|
||||||
|
* <servlet-name>oid-redirect</servlet-name>
|
||||||
|
* <servlet-class>com.arsdigita.web.OIDRedirectServlet</servlet-class>
|
||||||
|
* </servlet>
|
||||||
|
* ....
|
||||||
|
* ....
|
||||||
|
* <servlet-mapping>
|
||||||
|
* <servlet-name>oid-redirect</servlet-name>
|
||||||
|
* <url-pattern>/redirect/*</url-pattern>
|
||||||
|
* </servlet-mapping>
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class OIDRedirectServlet extends BaseServlet {
|
public class OIDRedirectServlet extends BaseServlet {
|
||||||
|
|
||||||
private static final Logger s_log =
|
private static final Logger s_log =
|
||||||
|
|
@ -48,6 +65,8 @@ public class OIDRedirectServlet extends BaseServlet {
|
||||||
|
|
||||||
OID oid = null;
|
OID oid = null;
|
||||||
try {
|
try {
|
||||||
|
// extract parameter named OID_PARAM (="oid") from sreq object
|
||||||
|
// searches for something like oid=Article-id-167013
|
||||||
oid = (OID) param.transformValue(sreq);
|
oid = (OID) param.transformValue(sreq);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// invalid OID value, return 400 Bad Request
|
// invalid OID value, return 400 Bad Request
|
||||||
|
|
@ -65,6 +84,7 @@ public class OIDRedirectServlet extends BaseServlet {
|
||||||
sresp.sendError(HttpServletResponse.SC_BAD_REQUEST);
|
sresp.sendError(HttpServletResponse.SC_BAD_REQUEST);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s_log.isDebugEnabled()) {
|
if (s_log.isDebugEnabled()) {
|
||||||
s_log.debug("Tried to read non encoded OID, result: " + oid);
|
s_log.debug("Tried to read non encoded OID, result: " + oid);
|
||||||
}
|
}
|
||||||
|
|
@ -82,6 +102,7 @@ public class OIDRedirectServlet extends BaseServlet {
|
||||||
String context = sreq.getParameter("context");
|
String context = sreq.getParameter("context");
|
||||||
String url = URLService.locate(oid, context);
|
String url = URLService.locate(oid, context);
|
||||||
|
|
||||||
|
/* Addition by JensP: */
|
||||||
Map<?, ?> parameters = sreq.getParameterMap();
|
Map<?, ?> parameters = sreq.getParameterMap();
|
||||||
StringBuilder urlParams = new StringBuilder();
|
StringBuilder urlParams = new StringBuilder();
|
||||||
for (Map.Entry<?, ?> entry : parameters.entrySet()) {
|
for (Map.Entry<?, ?> entry : parameters.entrySet()) {
|
||||||
|
|
@ -98,20 +119,21 @@ public class OIDRedirectServlet extends BaseServlet {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
url = url.concat(urlParams.toString());
|
url = url.concat(urlParams.toString());
|
||||||
|
/* JensP END */
|
||||||
|
|
||||||
if (s_log.isDebugEnabled()) {
|
if (s_log.isDebugEnabled()) {
|
||||||
s_log.debug("Redirecting oid " + oid + " to " + url);
|
s_log.debug("Redirecting oid " + oid + " to " + url);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new RedirectSignal(url, false);
|
throw new RedirectSignal(url, false);
|
||||||
|
|
||||||
} catch (URLFinderNotFoundException ex) {
|
} catch (URLFinderNotFoundException ex) {
|
||||||
if (s_log.isDebugEnabled()) {
|
if (s_log.isDebugEnabled()) {
|
||||||
s_log.debug("No URL finder for oid " + oid);
|
s_log.debug("No URL finder for oid " + oid);
|
||||||
}
|
}
|
||||||
sresp.sendError(HttpServletResponse.SC_NOT_FOUND);
|
sresp.sendError(HttpServletResponse.SC_NOT_FOUND);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
} catch (NoValidURLException ex) {
|
} catch (NoValidURLException ex) {
|
||||||
if (s_log.isDebugEnabled()) {
|
if (s_log.isDebugEnabled()) {
|
||||||
s_log.debug("No URL for oid " + oid);
|
s_log.debug("No URL for oid " + oid);
|
||||||
|
|
|
||||||
|
|
@ -4,19 +4,20 @@
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
|
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
|
||||||
version="2.4">
|
version="2.4">
|
||||||
|
|
||||||
<!--
|
<!--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - basic web.xml for ccm-core and basic functions. If
|
basic web.xml for ccm-core and basic functions. If
|
||||||
additional modules provide specific web.xml snippets they must be integrated before CCM is ready to work. Alternatively a
|
additional modules provide specific web.xml snippets they must be
|
||||||
complete web.xml file from an installation bundle may be used. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
integrated before CCM is ready to work. Alternatively a
|
||||||
- - - - -
|
complete web.xml file from an installation bundle may be used.
|
||||||
-->
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||||
|
|
||||||
|
|
||||||
<display-name>CCM</display-name>
|
<display-name>CCM</display-name>
|
||||||
<description>Content and Collaboration Management</description>
|
<description>Content and Collaboration Management</description>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
path and filename of the log4j user accessible config file WEB-INF/conf/log4j.properties is the built-in default value
|
path and filename of the log4j user accessible config file
|
||||||
|
WEB-INF/conf/log4j.properties is the built-in default value
|
||||||
-->
|
-->
|
||||||
<context-param>
|
<context-param>
|
||||||
<param-name>log4j-conf-file</param-name>
|
<param-name>log4j-conf-file</param-name>
|
||||||
|
|
@ -24,20 +25,18 @@
|
||||||
</context-param>
|
</context-param>
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Context Listener required and used to
|
Context Listener required and used to initialize the runtime environment
|
||||||
initialize the runtime environment before any other task is performed or any servlet initialized. - - - - - - - - - - - -
|
before any other task is performed or any servlet initialized.
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - -
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||||
-->
|
|
||||||
<listener>
|
<listener>
|
||||||
<listener-class>com.arsdigita.web.CCMApplicationContextListener</listener-class>
|
<listener-class>com.arsdigita.web.CCMApplicationContextListener</listener-class>
|
||||||
</listener>
|
</listener>
|
||||||
|
|
||||||
<!--
|
<!--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BASE SERVLET DECLARATIONS SECTION basically
|
BASE SERVLET DECLARATIONS SECTION
|
||||||
requirred by ccm-core - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
basically requirred by ANY ccm-core application to work correctly!
|
||||||
-->
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||||
|
|
||||||
<servlet>
|
<servlet>
|
||||||
<servlet-name>reg</servlet-name>
|
<servlet-name>reg</servlet-name>
|
||||||
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
|
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
|
||||||
|
|
@ -95,10 +94,11 @@
|
||||||
</servlet>
|
</servlet>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ADDITIONAL SERVLET DECLARATIONS SECTION
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
basically requirred by ccm-cms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
ADDITIONAL SERVLET DECLARATIONS SECTION
|
||||||
|
basically requirred by ccm-cms
|
||||||
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<servlet>
|
<servlet>
|
||||||
<servlet-name>content-section</servlet-name>
|
<servlet-name>content-section</servlet-name>
|
||||||
<servlet-class>com.arsdigita.cms.ContentSectionServlet</servlet-class>
|
<servlet-class>com.arsdigita.cms.ContentSectionServlet</servlet-class>
|
||||||
|
|
@ -140,8 +140,10 @@
|
||||||
</servlet>
|
</servlet>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BASE SERVLET MAPPINGS SECTION basically
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
requirred by ccm-core - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
BASE SERVLET MAPPINGS SECTION basically
|
||||||
|
requirred by ccm-core
|
||||||
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<servlet-mapping>
|
<servlet-mapping>
|
||||||
|
|
@ -185,8 +187,10 @@
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ADDITIONAL SERVLET MAPPINGS SECTION basically
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
requirred by ccm-cms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
ADDITIONAL SERVLET MAPPINGS SECTION basically
|
||||||
|
requirred by ccm-cms
|
||||||
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<servlet-mapping>
|
<servlet-mapping>
|
||||||
|
|
@ -220,8 +224,9 @@
|
||||||
</servlet-mapping>
|
</servlet-mapping>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ERROR PAGES - - - - - - - - - - - - - - - - -
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
- - - - - - - - - - - - - - - - - - - - -
|
ERROR PAGES
|
||||||
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<error-page>
|
<error-page>
|
||||||
|
|
@ -260,8 +265,9 @@
|
||||||
</error-page>
|
</error-page>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TAG LIBS - - - - - - - - - - - - - - - - - - -
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
- - - - - - - - - - - - - - - - - - -
|
TAG LIBS
|
||||||
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<jsp-config>
|
<jsp-config>
|
||||||
|
|
|
||||||
|
|
@ -22,14 +22,16 @@ import com.arsdigita.cms.Folder;
|
||||||
import com.arsdigita.cms.ContentItem;
|
import com.arsdigita.cms.ContentItem;
|
||||||
import com.arsdigita.cms.ContentSection;
|
import com.arsdigita.cms.ContentSection;
|
||||||
import com.arsdigita.cms.TemplateManager;
|
import com.arsdigita.cms.TemplateManager;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
|
|
||||||
import com.arsdigita.cms.dispatcher.DefaultTemplateResolver;
|
import com.arsdigita.cms.dispatcher.DefaultTemplateResolver;
|
||||||
import com.arsdigita.util.ResourceManager;
|
import com.arsdigita.util.ResourceManager;
|
||||||
import java.io.File;
|
|
||||||
import com.arsdigita.london.subsite.Site;
|
import com.arsdigita.london.subsite.Site;
|
||||||
import com.arsdigita.london.subsite.Subsite;
|
import com.arsdigita.london.subsite.Subsite;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue