[ 
https://issues.apache.org/jira/browse/CXF-3160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966316#action_12966316
 ] 

Christian Schneider commented on CXF-3160:
------------------------------------------

Hi Sergey,

I am quite sure it is possible to at least almost remove the osgi code. I was 
preparing a larger refactoring first but got stuck at some point. In the other 
refactoring only the SpringOsgiServlet was left as it sets the context 
classloader which is not useful outside osgi. You said your examples were 
failing. Did you test with my patch or with yours? If you see some problems it 
would be great if you could supply me some sample code that shows them. Perhaps 
you could also attach your patch so I can check what ideas you pursue.

What I found in any case is that ServletTransportFactory checks for the last 
base path that the controller processed. The OSGI http transport does not do 
this. Do you know why there is this difference?

Btw. in the larger refactoring I tried to reuse the DestinationRegistry from 
the OSGI code for the other variants. I really like that it is separated from 
the TransportFactory. I also tried to extract the service listing into a 
separate class and reuse this for all variants. I would be really interested 
what you think about doing these two things. Still I would not like to do all 
these thing in once as they got me stuck.

On the mailing list Dan wrote that he considered also using a servlet for the 
http jetty transport. I am quite sure that we could use mostly the same code 
for servlet, jetty and osgi.

Christian


> Reduce Code duplication between http transport variants
> -------------------------------------------------------
>
>                 Key: CXF-3160
>                 URL: https://issues.apache.org/jira/browse/CXF-3160
>             Project: CXF
>          Issue Type: Improvement
>          Components: Transports
>    Affects Versions: 2.3.0
>            Reporter: Christian Schneider
>            Assignee: Christian Schneider
>         Attachments: CXF-3160-1.patch
>
>
> We still have to much duplicated or very similar code in the http transports. 
> Moving header code from AbstractHttpDestination to Headers
> Moving invokeDestination from ServletController to AbstractServletController 
> to share this code with http-osgi
> Moving invoke from ServletDestination to AbstractHttpDestination  to share 
> this code with http-osgi
> Removing doMessage from OsgiDestination
> Removing invokeDestination from OsgiServletcontroller
> Ignoring some mock based tests that do not work anymore. Will have to do some 
> work on them
> There are some small changes in the behaviour for http-osgi as we are now 
> using the servlet code here. It would be great if Sergey or Dan could review 
> this. Idon“t think the differences are important but I am not sure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to