cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Liu, Jervis" <j...@iona.com>
Subject RE: About the user defined configuration file
Date Fri, 29 Sep 2006 08:47:33 GMT
Andrea, yes, I am using Configurer to process @HandlerChain annotation files. The reason why
I create my own instance of  Configurer other than using the one from Bus is because I do
not want this HandlerChain Configurer is aware of any other jaxb property editors other than
the one of J2ee and I also do not want this HandlerChain Configurer picks up any other config
files other than the handler cfg file I provided.


> -----Original Message-----
> From: Smyth, Andrea 
> Sent: Friday, September 29, 2006 4:36 PM
> To: cxf-dev@incubator.apache.org
> Subject: Re: About the user defined configuration file
> 
> 
> Hi Jervis,
> 
> I honestly don't care - an application context can be 
> initialized with 
> any kind of resource: classpath, file, url, ...
> It's more a question of adding what parametrisations of createBus the 
> factory offers and passing the resp. parameters on  (system 
> properties 
> are only a fallback).
> 
> Why do you need your own Configurer to deal with handler chain cfg 
> specied in the J2ee syntax?
> To keep the number of different cfg file formats (wsdl, 
> spring etc) down 
> we should not encourage using such handler files by allowing 
> to specify 
> them as parameters to the bus. Instead we should limit 
> support of these 
> to processing  @HandlerChain annotation files.
> 
> Andrea.
> 
> Liu, Jervis wrote:
> 
> >Hi Andrea, I ran into a similar problem when I try to use 
> Configurer to load and parse my own config file (see 
> AnnotationHandlerChainBuilder.buildHandlerChainFromClass()). 
> In my case, I create a new Configure to do the job, as it 
> only needs to be aware of my handler config file and 
> corresponding jaxb property editor file. The problem I have 
> is that I can not specify my own classloader that is used to 
> load handler cfg file for ConfigurerImpl or 
> JaxbClassPathXmlApplicationContext.
> >
> >There might be two ways to fix it. One is allow passing URLs 
> into ConfigurerImpl (ConfigurerImpl  can only pass in one cfg 
> file, it better can deal with an array of cfg files). The 
> parameter type does not have to be URL type, but can be a URL 
> format string (eg., file://d:/handerls.xml), underlyingly we 
> first try to parse the input string using File format, if it 
> fails try URL. 
> >
> >Another way to fix the problem is to write my 
> HandlerChainClassPathXmlApplicationContext in jaxws/handler 
> package, this context can pass in a classloader to load 
> specified cfg file. 
> >
> >Which way do you prefer? I feel the first one can address a 
> more general requirement.
> >
> >Cheers,
> >Jervis
> >
> >  
> >
> >>-----Original Message-----
> >>From: Smyth, Andrea 
> >>Sent: Friday, September 29, 2006 4:05 PM
> >>To: cxf-dev@incubator.apache.org
> >>Subject: Re: About the user defined configuration file
> >>
> >>
> >>Jiang Ning wrote:
> >>
> >>    
> >>
> >>>Hi Andrea,
> >>>In current cxf user defined configuration file name was passed by 
> >>>System Properity
> >>>-Dcxf.config.file=user_defined_configuration
> >>>This user defined configuration file name will be treat as 
> >>>ClassPathResource.
> >>>
> >>> public ConfigurerImpl(String cfgFile) {
> >>>       if (null == cfgFile) {
> >>>           cfgFile = 
> >>>      
> >>>
> >>System.getProperty(USER_CFG_FILE_PROPERTY_NAME);
> >>    
> >>
> >>>       }
> >>>       if (null == cfgFile) {
> >>>           cfgFile = DEFAULT_USER_CFG_FILE;
> >>>       }
> >>>       ClassPathResource cpr = new ClassPathResource(cfgFile);
> >>>       if (cpr.exists()) {
> >>>           try {
> >>>               ApplicationContext ac = new 
> >>>JaxbClassPathXmlApplicationContext(cfgFile);
> >>>               setApplicationContext(ac);
> >>>           } catch (BeansException ex) {
> >>>               LogUtils.log(LOG, Level.WARNING, 
> >>>"APP_CONTEXT_CREATION_FAILED_MSG", ex, (Object[])null);
> >>>           }
> >>>       } else {
> >>>           LOG.log(Level.INFO, new 
> >>>Message("USER_CFG_FILE_NOT_FOUND_MSG", LOG, cfgFile).toString());
> >>>       }
> >>>   }
> >>>
> >>>There is an issue about the user defined configuration. If the 
> >>>user_defined_configuration file name is same as cxf.xml in 
> >>>      
> >>>
> >>the classpath
> >>    
> >>
> >>>or the user_defined_configuration file not in the classpath. The 
> >>>user_defined_configuration file would not be loaded rightly.
> >>>      
> >>>
> >>Hi Willem,
> >>
> >>What do you mean with  'same as cxf.xml on the classpath'? 
> >>The default 
> >>user cfg file (cxf.xml) is not the same as  META-INF/cxf/cxf.xml.
> >>I don't see a problem as there is no cxf.xml on the classpath 
> >>unless a 
> >>user puts one there.
> >>
> >>Andrea.
> >>
> >>    
> >>
> >>>My suggestion is configurer treats the 
> >>>      
> >>>
> >>user_defined_configuration file 
> >>    
> >>
> >>>as URL like Celtix had done before, to make sure the configuration 
> >>>file right there.
> >>>Any other thought?
> >>>
> >>>Willem.
> >>>
> >>>      
> >>>
> >>    
> >>
> 
> 

Mime
View raw message