[ 
https://issues.apache.org/jira/browse/JAMES-842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Jencks updated JAMES-842:
-------------------------------

    Attachment: JAMES-840-2.patch

While I think that the switch to ResourceLoader is a very good idea, based on 
my experience in the geronimo plugin I don't think it is working as you expect. 
  I believe that the JamesResourceLoader is rarely actually used, instead the 
AvalonApplicationContext implementation of ResourceLoader is being installed by 
spring as the actual service at runtime.  The only way I could find to work 
around this is to implement the ResourceLoader functionality directly in (my 
subclass of) AvalonApplicationContext.

There's another problem in that the AvalonApplicationContext constructor is 
calling refresh().  This effectively prevents remiplmenting   the 
ResourceLoader functionality in subclasses since refresh() involves use of that 
ResourceLoader functionality.  (this is a classic example of why calling (non 
static, non final) instance methods from a constructor is a bad idea)

I've proposed a patch that solves this latter problem by use of static factory 
methods.  It also makes FileSystemBridge ResourceLoaderAware.  It might be 
possible to solve these problems in another way by making 
AvalonConfigurationFileProvider no longer ResourceLoaderAware and explicitly 
configuring the use of the JamesResourceLoader; as it is now (before this 
patch), in the geronimo plugin the AvalonConfigurationFileProvider always got 
the resourceLoader set to the AvalonApplicationContext even when explicitly 
configured to the JamesResourceLoader.

My implementation of an AvalonApplicationContext subclass that implements the 
ResourceLoader functionality I need for geronimo is at

https://svn.apache.org/repos/asf/geronimo/plugins/james/trunk/geronimo-james/src/main/java/org/apache/geronimo/plugins/james/GeronimoAvalonApplicationContext.java

> Inconsistencies in spring integration
> -------------------------------------
>
>                 Key: JAMES-842
>                 URL: https://issues.apache.org/jira/browse/JAMES-842
>             Project: James
>          Issue Type: Bug
>    Affects Versions: 3.0
>            Reporter: David Jencks
>            Assignee: Stefano Bagnara
>             Fix For: 3.0
>
>         Attachments: JAMES-840-2.patch, JAMES-842.patch
>
>
> I've found a couple inconsistencies in the spring integration:
> in AvalonConfigurationFileProvider InputSource is supplied a systemId for the 
> james config files whereas in AvalonBeanDefinitionReader it is not.  In my 
> scenario this means that the entities in james-config.xml don't work because 
> for AvalonConfigurationFileProvider the entities are resolved relative to the 
> james-config.xml file location whereas for AvalonBeanDefinitionReader they 
> are resolved relative to some base directory.
> There's a FileSystem bean supplied to spring to locate stuff in the file 
> system but it is not used in AvalonConfigurationFileProvider; AFAICT this 
> means that configuration files must be in the classpath.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to