Looking forward to have this in the next release 2.0.5 or 2.1 :)

On Tue, Mar 4, 2008 at 11:55 PM, Daniel Kulp <[EMAIL PROTECTED]> wrote:

>
> Willem,
>
> The issue is that they CAN be modified after that.   One popular
> modification is to grab the EndpointInfo out of it and change the
> address.   Other things like adding interceptors to the BindingInfo,
> changing properties on the service (like to enable schema validation),
> etc... are all modifications that affect the servicemodel.
>
> Databinding is "less" of an issue, but still one.   For example, the
> databinding has an "mtomThreshold" and a namespaceMap that can be set
> programatically.
>
> In both of those cases, a modification should only affect the proxy on
> which the modification is made.   Thus, the servicemodel would need a
> full "clone", which may not be easy to do.   It's certainly a lot more
> code to add.
>
> That said, I don't think it's a bad idea at all.  On the contrary, it's a
> good idea.   It's just a bit of work.
>
> Dan
>
>
> On Tuesday 04 March 2008, Willem Jiang wrote:
> > Hi Dan,
> >
> > I think we could cache the ServiceInfo object and DataBinding object
> > which will take lots of time to be created and can't be modified after
> > that. Any thought?
> >
> > Willem
> >
> > Daniel Kulp wrote:
> > > On Tuesday 04 March 2008, Christopher Cheng wrote:
> > >> I haven't read the codes of Axis, but I have been using it for 2
> > >> years and it doesn't have this problem.
> > >> Having an overhead for 5-8 seconds is not an option for a
> > >> production system in term of performance
> > >>
> > >> What you are saying is that all the services must implement
> > >> Clonable interface?
> > >
> > > No, not the services themselves.   Just our interal service model
> > > stuff that holds all the metadata.  Basically, when creating a new
> > > service, we need to calculate the metadata.   We should cache that
> > > if possible.
> > >
> > > Dan
> > >
> > >> On Tue, Mar 4, 2008 at 4:48 AM, Daniel Kulp <[EMAIL PROTECTED]>
> wrote:
> > >>> Christopher,
> > >>>
> > >>> We cannot just "reuse" the Service model objects as they are
> > >>> completely modifiable at runtime. For example, one proxy could be
> > >>> reconfigured with new address or have additional interceptors
> > >>> added or similar.  Those shouldn't affect others.
> > >>>
> > >>> On option that propably would make sense is to add a fast "clone"
> > >>> functionality to the entire service model so we could cache one,
> > >>> and then clone it whenever one is really needed.   All the
> > >>> individual versions could be modified and not affect the original.
> > >>>   However, doing that would be quite a bit of work as there are a
> > >>> LOT of classes that would need to be updated to support that.
> > >>>
> > >>> Patches towards that end would be great.   :-)
> > >>>
> > >>> Dan
> > >>>
> > >>> On Monday 03 March 2008, Christopher Cheng wrote:
> > >>>> wsdl is indeed cached in WSDLManagerImpl.definitionsMap
> > >>>>
> > >>>> After reading the codes, I have some questions. My workstation is
> > >>>> a PentiumD 3GHz with 1.5GB RAM
> > >>>>
> > >>>> In the class
> > >>>> "org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buil
> > >>>>d Serv iceFromWSDL(String url)",
> > >>>> "setService(factory.create());" takes 3 seconds
> > >>>> "getDataBinding().initialize(getService());" takes 2 seconds
> > >>>>
> > >>>> These 2 methods are called even in 2nd calls. Can you also cache
> > >>>> the services perhaps using jakarta commons-pool? or eh-cache?
> > >>>>
> > >>>> By the way, I found that the wsdl is put into the definitionMap
> > >>>> twice if " WSDLManagerImpl.getDefinition(URL url)" is called.
> > >>>> First in "getDefintion(URL url)" at line 147 and second in
> > >>>> "loadDefinition(String url)" at line 201.
> > >>>>
> > >>>>
> > >>>> On Mon, Mar 3, 2008 at 4:22 PM, Christopher Cheng <
> > >>>>
> > >>>> [EMAIL PROTECTED]> wrote:
> > >>>>> wsdl is indeed cached in WSDLManagerImpl.definitionsMap
> > >>>>>
> > >>>>> After reading the codes, I have some questions. My workstation
> > >>>>> is a PentiumD 3GHz with 1.5GB RAM
> > >>>>>
> > >>>>> In the class "
> > >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buil
> > >>>>> dSer viceFromWSDL(String url)",
> > >>>>> "setService(factory.create());" takes 3 seconds
> > >>>>> "getDataBinding().initialize(getService());" takes 2 seconds
> > >>>>>
> > >>>>> These 2 methods are called even in 2nd calls. Can you also cache
> > >>>>> the services perhaps using jakarta commons-pool? or eh-cache?
> > >>>>>
> > >>>>> By the way, I found that the wsdl is put into the definitionMap
> > >>>>> twice if " WSDLManagerImpl.getDefinition(URL url)" is called.
> > >>>>> First in "getDefintion(URL url)" at line 147 and second in
> > >>>>> "loadDefinition(String url)" at line 201.
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>> On Mon, Mar 3, 2008 at 9:43 AM, Willem Jiang
> > >>>>> <[EMAIL PROTECTED]>
> > >>>>>
> > >>>>> wrote:
> > >>>>>> Hi,
> > >>>>>>
> > >>>>>> I just went through the code, we really cache the WSDL
> > >>>>>> definition in CXF.
> > >>>>>> Could you send your test case and wsdl file to me ? I may need
> > >>>>>> to trace it for more information.
> > >>>>>>
> > >>>>>> Regards,
> > >>>>>>
> > >>>>>> Willem
> > >>>>>>
> > >>>>>> Christopher Cheng wrote:
> > >>>>>>> I think the issue is still there. I used a for loop to
> > >>>>>>> execute the
> > >>>>>>
> > >>>>>> same
> > >>>>>>
> > >>>>>>> call, all takes approximately the same time to create
> > >>>>>>> service. I guess
> > >>>>>>
> > >>>>>> that
> > >>>>>>
> > >>>>>>> the service itself is not cached.
> > >>>>>>>
> > >>>>>>> On Sun, Mar 2, 2008 at 11:43 AM, Willem Jiang
> > >>>>>>> <[EMAIL PROTECTED]>
> > >>>>>>>
> > >>>>>>> wrote:
> > >>>>>>>> Here is the JIRA[1] which describe the same thing that you
> > >>>>>>>> want. I don't know if it was really resolved, could you try
> > >>>>>>>> the latest released CXF 2.0.4 for it.
> > >>>>>>>>
> > >>>>>>>> If the issue is still there, please let me know , I will
> > >>>>>>>> put it to my next week todo list.
> > >>>>>>>>
> > >>>>>>>> [1]https://issues.apache.org/jira/browse/CXF-699
> > >>>>>>>> [2]http://cwiki.apache.org/CXF/download.html
> > >>>>>>>>
> > >>>>>>>> Willem.
> > >>>>>>>>
> > >>>>>>>> Christopher Cheng wrote:
> > >>>>>>>>> I am migrating from Axis1.2 to CXF 2.0.3
> > >>>>>>>>>
> > >>>>>>>>> I understand that it will take a long time to build for
> > >>>>>>>>> the first
> > >>>>>>
> > >>>>>> time.
> > >>>>>>
> > >>>>>>>> What
> > >>>>>>>>
> > >>>>>>>>> I am wondering is that why it takes so long for the second
> > >>>>>>>>> and third
> > >>>>>>>>
> > >>>>>>>> time?
> > >>>>>>>>
> > >>>>>>>>> Is there any caching of services? Axis does not seem to
> > >>>>>>>>> have this
> > >>>>>>
> > >>>>>> issue.
> > >>>>>>
> > >>>>>>>>> Christopher Cheng wrote:
> > >>>>>>>>>> Attached is the log
> > >>>>>>>>>>
> > >>>>>>>>>> ----- Original Message -----
> > >>>>>>>>>> From: "Willem Jiang" <[EMAIL PROTECTED]>
> > >>>>>>>>>> To: <[email protected]>
> > >>>>>>>>>> Sent: Saturday, March 01, 2008 8:53 PM
> > >>>>>>>>>> Subject: Re: service caching?
> > >>>>>>>>>>
> > >>>>>>>>>>> Hi
> > >>>>>>>>>>>
> > >>>>>>>>>>> Could you set the logger level to FINE ?
> > >>>>>>>>>>> So we can get more information about the service
> > >>>>>>>>>>> publishing.
> > >>>>>>>>>>>
> > >>>>>>>>>>> Willem.
> > >>>>>>>>>>>
> > >>>>>>>>>>> Christopher Cheng wrote:
> > >>>>>>>>>>>> When I call the service as a client, it takes 5 seconds
> > >>>>>>>>>>>> to load.
> > >>>>>>
> > >>>>>> I am
> > >>>>>>
> > >>>>>>>>>>>> not
> > >>>>>>>>>>>> sure whether it takes 5 seconds to create the service
> > >>>>>>>>>>>> or it takes
> > >>>>>>
> > >>>>>> 5
> > >>>>>>
> > >>>>>>>>>>>> seconds
> > >>>>>>>>>>>> to look up for ciper filters. I am wondering if the
> > >>>>>>>>>>>> services are cached...
> > >>>>>>>>>>>>  Feb 29, 2008 2:14:42 PM
> > >>>>>>>>>>>> org.apache.cxf.service.factory.ReflectionServiceFactory
> > >>>>>>>>>>>> Bean buildServiceFromWSDL
> > >>>>>>>>>>>> INFO: Creating Service
> > >>>>>>>>>>>> {https://webservices.sabre.com/websvc}OTA_HotelAvailSer<https://webservices.sabre.com/websvc%7DOTA_HotelAvailSer>
> > >>>>>>>>>>>> vice<https://webservices.sabre.com/websvc%7DOTA_HotelAva
> > >>>>>>>>>>>> ilService>
> > >>>>>>>>>>>> <https://webservices.sabre.com/websvc%7DOTA_HotelAvailS
> > >>>>>>>>>>>> ervic e>
> > >>>>>>
> > >>>>>> <https://webservices.sabre.com/websvc%7DOTA_HotelAvailService>
> > >>>>>> from
> > >>>
> > >>> WSDL:
> > >>>>>>>>>>>> file:/C:/Java/abacus-webconnect-1.14.0.rc1
> > >>>>>>>>
> > >>>>>>>> /wsdl/OTA_HotelAvailLLS1.4.1RQ.wsdl
> > >>>>>>>>
> > >>>>>>>>>>>> Feb 29, 2008 2:14:47 PM
> > >>>>>>>>>>>> org.apache.cxf.transport.https.SSLUtils getCiphersuites
> > >>>>>>>>>>>> INFO: The cipher suites have not been configured,
> > >>>>>>>>>>>> falling back to
> > >>>>>>>>
> > >>>>>>>> cipher
> > >>>>>>>>
> > >>>>>>>>>>>> suite filters.
> > >>>>>>>>>>>> Feb 29, 2008 2:14:47 PM
> > >>>>>>>>>>>> org.apache.cxf.transport.https.SSLUtils
> > >>>>>>>>>>>> getCiphersFromList INFO: The cipher suites have been
> > >>>>>>>>>>>> set to
> > >>>>>>
> > >>>>>> SSL_RSA_WITH_RC4_128_MD5,
> > >>>>>>
> > >>>>>>>>>>>> SSL_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_DES_CBC_SHA,
> > >>>>>>>>>>>> SSL_DHE_RSA_WITH_DES_CBC_SHA,
> > >>>>>>>>>>>> SSL_DHE_DSS_WITH_DES_CBC_SHA,
> > >>>>>>>>>>>> SSL_RSA_EXPORT_WITH_RC4_40_MD5,
> > >>>>>>
> > >>>>>> SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,
> > >>>>>>
> > >>>>>>>>>>>> SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,
> > >>>>>>>>>>>> SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,
> > >>>>>>>>>>>> SSL_RSA_WITH_NULL_MD5, SSL_RSA_WITH_NULL_SHA,
> > >>>>>>>>>>>> SSL_DH_anon_WITH_RC4_128_MD5,
> > >>>>>>>>>>>> TLS_DH_anon_WITH_AES_128_CBC_SHA,
> > >>>>>>
> > >>>>>> SSL_DH_anon_WITH_3DES_EDE_CBC_SHA,
> > >>>>>>
> > >>>>>>>>>>>> SSL_DH_anon_WITH_DES_CBC_SHA,
> > >>>>>>>>>>>> SSL_DH_anon_EXPORT_WITH_RC4_40_MD5,
> > >>>>>>>>>>>> SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA,
> > >>>>>>>>>>>> TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5,
> > >>>>>>>>>>>> TLS_KRB5_EXPORT_WITH_RC4_40_SHA,
> > >>>>>>>>>>>> TLS_KRB5_EXPORT_WITH_RC4_40_MD5,
> > >>>>>>
> > >>>>>> TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA,
> > >>>>>>
> > >>>>>>>>>>>> TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5.  Feb 29, 2008
> > >>>>>>>>>>>> 2:14:48 PM
> > >>>>>>
> > >>>>>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallba
> > >>>>>> ckon Close
> > >>>>>>
> > >>>>>>>>>>>>  I have put this in my cxf.xml as in
> > >>>>>>>>>>>> http://cwiki.apache.org/CXF20DOC/client-http-transport.
> > >>>>>>>>>>>> html , but
> > >>>>>>
> > >>>>>> it
> > >>>>>>
> > >>>>>>>>>>>> doesn't
> > >>>>>>>>>>>> help... <http:conduit name="*.http-conduit">
> > >>>>>>>>>>>>             <http:tlsClientParameters
> > >>>>>>>>>>>> secureSocketProtocol="SSL"> <sec:cipherSuitesFilter>
> > >>>>>>>>>>>>                 <!-- these filters ensure that a
> > >>>>>>>>>>>> ciphersuite with export-suitable or null encryption is
> > >>>>>>>>>>>> used, but exclude anonymous Diffie-Hellman key change
> > >>>>>>
> > >>>>>> as
> > >>>>>>
> > >>>>>>>>>>>>                 this is vulnerable to man-in-the-middle
> > >>>>>>>>>>>> attacks
> > >>>>>>
> > >>>>>> -->
> > >>>>>>
> > >>>>>>>>>>>>                 <sec:include>.*_EXPORT_.*</sec:include>
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> <sec:include>.*_EXPORT1024_.*</sec:include>
> > >>>>>>>>>>>> <sec:include>.*_WITH_DES_.*</sec:include>
> > >>>>>>>>>>>> <sec:include>.*_WITH_NULL_.*</sec:include>
> > >>>>>>>>>>>> <sec:exclude>.*_DH_anon_.*</sec:exclude>
> > >>>>>>>>>>>> </sec:cipherSuitesFilter>
> > >>>>>>>>>>>>         </http:tlsClientParameters>
> > >>>>>>>>>>>> </http:conduit>
> > >>>>>>>>>>
> > >>>>>>>>>>  http://www.nabble.com/file/p15773252/cxf.log cxf.log
> > >>>
> > >>> --
> > >>> J. Daniel Kulp
> > >>> Principal Engineer, IONA
> > >>> [EMAIL PROTECTED]
> > >>> http://www.dankulp.com/blog
>
>
>
> --
> J. Daniel Kulp
> Principal Engineer, IONA
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog
>

Reply via email to