dev@grizzly.java.net

Re: [Issue 758] Deplyer refactorinf regression issue

From: Survivant 00 <survivant00_at_gmail.com>
Date: Mon, 9 Nov 2009 18:39:42 -0500

thanks.

I'll generate a jar file for the guy so I can continue to use Grizzly. and
take more time to do it correctly.



2009/11/9 Hubert Iwaniuk <neotyk_at_kungfoo.pl>

> I couldn't find time to fix it, and see that user is asking for it, so
> Sebastien if you have free cycle please help.
> General idea I've had for this fix was:
> 1. in WarDeployer modify fromURI method to call createWarCLJarBased to
> create warCL
> 2. add method createWarCLJarBased similar to createWarCL only making sure
> that we choose jar:file protocol over file: protocol if we can.
>
> That is based on observation that both classpaths differ only in protocol
> part for / and /WEB-INF/classes
>
> Though I'm not sure any more about it, as I failed to create a test case
> that would isolate this issue.
>
> HTH,
> Hubert.
>
>
>
> On Thu, Nov 5, 2009 at 11:48 PM, Survivant 00 <survivant00_at_gmail.com>wrote:
>
>> thanks.
>>
>> I'll provide backup if you need. and do regression test on my side after
>> we patch it.
>>
>>
>>
>> 2009/11/5 Hubert Iwaniuk <neotyk_at_kungfoo.pl>
>>
>>> First look at classloaders produced by old and new approach shows
>>> following differences:
>>> war contents in old is referenced vis jar:file: protocol while with new
>>> one via file: protocol to exploded location.
>>> Same stands for WEB-INF/classes.
>>> So it should not produce any difference, but apparently it somehow does.
>>> I'll try looking into it a bit more.
>>>
>>> Cheers,
>>> Hubert
>>>
>>>
>>>
>>> On Thu, Nov 5, 2009 at 8:27 PM, Survivant 00 <survivant00_at_gmail.com>wrote:
>>>
>>>> I couldn't wait until tonight.
>>>>
>>>> I been able to make it works, but I had to change a little code. (now
>>>> I'm pretty sure that something missing in the ClassLoader).
>>>>
>>>> here what I changed : (call the older classloader instead for this test)
>>>>
>>>> public void deployWar(
>>>> String location, String context, URLClassLoader
>>>> serverLibLoader, WebApp defaultWebApp) throws DeployException {
>>>> String ctx = context;
>>>> if (ctx == null) {
>>>> ctx = getContext(location);
>>>> int i = ctx.lastIndexOf('.');
>>>> if (i > 0) {
>>>> ctx = ctx.substring(0, i);
>>>> }
>>>> }
>>>> Map.Entry<String, URLClassLoader> loaderEntry = null;
>>>> try {
>>>> loaderEntry = explodeAndCreateWebAppClassLoader(location,
>>>> serverLibLoader);
>>>> } catch(Exception e){
>>>> e.printStackTrace();
>>>> }
>>>>
>>>> WarDeploymentConfiguration config = new
>>>> WarDeploymentConfiguration(ctx, loaderEntry.getValue(), defaultWebApp);
>>>> if (logger.isLoggable(Level.FINER)) {
>>>> logger.log(Level.FINER, String.format("Configuration for
>>>> deployment: %s.", config));
>>>> }
>>>> deployer.deploy(ws, new File(location).toURI(), config);
>>>> }
>>>>
>>>>
>>>> and spring found the files.
>>>>
>>>>
>>>> Do you want me to go deeper ? (into the code :0 )
>>>>
>>>
>>>
>>
>>
>> --
>>
>> Vous pouvez me suivre sur Twitter / You can follow me on Twitter :
>> http://twitter.com/survivant
>>
>
>


-- 
Vous pouvez me suivre sur Twitter / You can follow me on Twitter :
http://twitter.com/survivant