You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by "Woonsan Ko (JIRA)" <je...@portals.apache.org> on 2011/02/02 20:29:29 UTC

[jira] Created: (JS2-1238) Pipeline mapper needed to find mapping path by a pipeline name

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 follows:

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 paths.

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


[jira] Commented: (JS2-1238) Pipeline mapper needed to find mapping path by a pipeline name

Posted by "Woonsan Ko (JIRA)" <je...@portals.apache.org>.
    [ 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);


Regards,

Woonsan

> 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 follows:
> 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 paths.
> 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


[jira] Resolved: (JS2-1238) Pipeline mapper needed to find mapping path by a pipeline name

Posted by "Woonsan Ko (JIRA)" <je...@portals.apache.org>.
     [ https://issues.apache.org/jira/browse/JS2-1238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Woonsan Ko resolved JS2-1238.
-----------------------------

    Resolution: Fixed

> 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 follows:
> 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 paths.
> 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