portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Woonsan Ko (JIRA)" <jetspeed-...@portals.apache.org>
Subject [jira] Commented: (JS2-1238) Pipeline mapper needed to find mapping path by a pipeline name
Date Wed, 02 Feb 2011 23:54:29 GMT

    [ https://issues.apache.org/jira/browse/JS2-1238?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12989903#comment-12989903

Woonsan Ko commented on JS2-1238:

In configurations we already use pipeline bean IDs instead of their names. So, I'll keep those
as it is.
I've committed my patch, the interface looks like this:
- Pipeline getPipelineByMappedPath(String mappedPath);
- Pipeline getPipelineById(String id);
- String getMappedPathByPipelineId(String pipelineId);
- String [] getMappedPathsByPipelineId(String pipelineId);

So, for example, if a site has a custom filter which is responsible for forwarding to one
of portal pipelines, it can now use PipelineMapper to find physical servlet mapping paths
instead of hard-coded paths.
Here's an example code:

import org.apache.jetspeed.engine.JetspeedEngineConstants;
import org.apache.jetspeed.pipeline.PipelineMapper;

PipelineMapper mapper = (PipelineMapper) Jetspeed.getComponentManager().getComponent("pipeline-mapper");
String defaultPipelineId = Jetspeed.getConfiguration().getString(JetspeedEngineConstants.PIPELINE_DEFAULT);
//defaultPipelineId = "jetui-pipeline";
String pipelinePath = mapper.getMappedPathByPipelineId(defaultPipelineId);
servletContext.getRequestDispatcher(pipelinePath + "/default-page.psml").forward(req, res);



> Pipeline mapper needed to find mapping path by a pipeline name
> --------------------------------------------------------------
>                 Key: JS2-1238
>                 URL: https://issues.apache.org/jira/browse/JS2-1238
>             Project: Jetspeed 2
>          Issue Type: Improvement
>          Components: Components Core
>    Affects Versions: 2.2.1
>            Reporter: Woonsan Ko
>            Assignee: Woonsan Ko
>            Priority: Minor
>             Fix For: 2.2.2
> Currently we have a configuration for the default pipeline in jetspeed.properties as
> pipeline.default = jetspeed-pipeline
> Also, the default pipeline name is used in JetspeedEngine to find a default pipeline
component when there's no servlet path mapping is found.
> Obviously, this is a good feature because we don't have to stick to physical servlet
> I think this should be extended as a separate component like PipelineMapper to allow
some custom servlet filters to leverage it.
> For example, when a custom servlet filter is responsible for choosing a pipeline for
the request and forwarding the request, then the servlet filter should be able to find the
servlet path mapped to a pipeline because the servlet filter needs to use ServletContext.getRequestDispatcher(contextRelativePath).forward().
> Therefore, I think we can add PipelineMapper component like this:
> interface PipelineMapper {
>     /** Finds pipeline which bean id is equals to pipelineId. */
>     Pipeline getPipelineById(String pipelineId);      // ex) getPipelineById("jetspeed-pipeline");
>     /** Finds pipeline which name is equals to pipelineName. */
>     Pipeline getPipelineByName(String pipelineName);    // ex) getPipelineByName("JetspeedPipeline")
>     /** Find the servlet mapping path by pipeline bean id. */
>     String getPathByPipelineId(String pipelineId);     // ex) getPathByPipelineId("jetspeed-pipeline");
>     /** Find the servlet mapping path by pipeline name. */
>     String getPathByPipelineName(String pipelineId);     // ex) getPathByPipelineName("JetspeedPipeline");
> }
> FYI, personally, I think it's better to use pipeline name consistently, but it is necessary
to keep operations with pipeline bean IDs for backward compatibility.
> This could modify pipelines.xml slightly by wrapping the existing 'pipeline-map' bean,
and add one pair of interface/default impl.
> If there's any objection, please let me know.
> Regards,
> Woonsan

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org

View raw message