Hey Karl,

> Well, handlers are cached by the jvm so there shouldn't be any
> unstable handlers for a given protocol except that they are unstable
> by definition as you can just write a bundle that exposes a
> URLHandlers service. In this case, the framework will just delegate to
> that one as long as its there. Is that really not an option for you?

Do you mean writing a bundle?  I'm open to that.  At this point I don't know 
enough about bundles nor osgi in general to be able to make a call.  I'm really 
just trying to get everything working for the moment, noting down things that I 
feel are hacks so I can fix them up on a 2nd pass.  

As for the JVM option - it's working for the moment, and I realise that I can 
set up domain templates that remember this configuration for me so it's not 
like I'll be kicking myself in 6 months time.  

I'd really prefer that my application was fully contained within its WAR... As 
far as I can tell, unless I want to make my WAR a bundle that registers a 
URLHandlers service there's no way I'll be able to do this while I need URL 
handlers?  

> 
> I'm not necessarily against the idea of allowing the property to
> change during runtime but it needs careful testing as the URLHandlers
> are a minefield in regard to deadlocks, classloading cycles, and
> performance. Feel free to add a jira issue for this feature and I will
> try to look into it but it might take a while...

Actually, if it's not simple it's probably not worth the effort as this doesn't 
entirely solve my problem.  I'd still need to deploy extra jars in 
$DOMAINDIR/lib/ext, I believe.... I might as well write a bundle ;)

OTOH, seeing as the JVM consults the option at runtime, perhaps consistency is 
a compelling enough reason for you? I'd be happy to open a jira issue.  

Thanks for your responses, Karl =)

--Royce

> 
> On Thu, Nov 12, 2009 at 1:46 PM, Royce Ausburn <ro...@inomial.com> wrote:
>> Hi again,
>> 
>> I've got my handler working properly now, but I'm unhappy that I need to add 
>> the -Djava.protocol.handler.pkgs=my.pkg.prefix property to my application 
>> container's startup configuration.  Ideally I could update the system 
>> property in some startup code and have one less thing to make sure is 
>> configured.  This works when I run my application in a "standalone" mode 
>> where my application starts up Jetty and manually registers its servlets, 
>> and it seems to work without the jvm-option in glassfish 2.1.1 (pre felix, I 
>> believe).
>> 
>> I appreciate that this change may cause the handler for a particular 
>> protocol to be unstable depending upon when the system property is set, and 
>> that's a compelling reason to not do this, but I felt it'd be worth 
>> discussing.  I'm certainly no expert in your domain, so please feel free to 
>> get the hell off your mailing list ;)
>> 
>> I guess I'm reeling from how much configuration I'm finding I need to do as 
>> I move to Java EE... perhaps I just need to harden up ;)
>> 
>> Thoughts?
>> 
>> --Royce
>> 
>> On 11/11/2009, at 2:09 AM, Royce Ausburn wrote:
>> 
>>> 
>>> Just wanted to confirm I'm a fool and it's all working beautifully.  Sorry 
>>> for the false alarm =)
>>> 
>>> --Royce
>>> 
>>> On 10/11/2009, at 8:43 PM, Karl Pauls wrote:
>>> 
>>>> Yes, we do fallback to the java.protocol.handler.pkgs system property.
>>>> Let us know if you run into any difficulties with that as it would be
>>>> a bug if that doesn't work :-)
>>>> 
>>>> regards,
>>>> 
>>>> Karl
>>>> 
>>>> On Tue, Nov 10, 2009 at 8:16 AM, Royce Ausburn <ro...@inomial.com> wrote:
>>>>> Hi again,
>>>>> 
>>>>> I've been doing a little more reading of the code and I think I was 
>>>>> mistaken.  Looks like the lookup is done properly in 
>>>>> URLHandlers.getBuiltInStreamHandler().
>>>>> 
>>>>> Sorry - must have got a wire crossed.
>>>>> 
>>>>> --Royce
>>>>> 
>>>>> On 10/11/2009, at 2:13 PM, Royce Ausburn wrote:
>>>>> 
>>>>>> G'day all,
>>>>>> 
>>>>>> I'm porting a legacy application to Java EE and having trouble running 
>>>>>> my app under glassfish v3 prelude.
>>>>>> 
>>>>>> The problem is URL stream handlers.  My application used to register a 
>>>>>> URLStreamHandlerFactory against java.net.URL, but that doesn't work 
>>>>>> anymore as felix registers a factory before my app starts.  So I decided 
>>>>>> to use the java.protocol.handler.pkgs system property only to find that 
>>>>>> it's not effective.  After checking out Felix from svn I found the 
>>>>>> URLHandlers class honours handlers for some default protocols (file, 
>>>>>> ftp, http, https, jar), but it seems that any other protocols are 
>>>>>> discarded.
>>>>>> 
>>>>>> I'm not familiar with osgi... Is it intended behaviour to ignore the 
>>>>>> rest?  If so, I'm interested to know why.
>>>>>> 
>>>>>> I suppose I have the option to write a bundle and register that, but I'm 
>>>>>> not keen on it... The application's handlers use classes from the 
>>>>>> application and working out how this would work in a bundle isn't 
>>>>>> something I'd like to spend my time on as I have deadlines to meet =(
>>>>>> 
>>>>>> Is there any way I can get around this?  Would it be possible to have 
>>>>>> the URLHandler class fall back to the system properties if no bundle has 
>>>>>> been registered?
>>>>>> 
>>>>>> Cheers!
>>>>>> 
>>>>>> --Royce
>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Karl Pauls
>>>> karlpa...@gmail.com
>>>> 
>>> 
>> 
>> 
> 
> 
> 
> -- 
> Karl Pauls
> karlpa...@gmail.com
> 

Reply via email to