dev@grizzly.java.net

Re: Embedding WebAppAdapter was RFC Deployer refactoring

From: Survivant 00 <survivant00_at_gmail.com>
Date: Mon, 21 Sep 2009 15:43:26 -0400

I just prefer that we want until we get a roadmap. Maybe we will need a
ServletAdapter refactoring so it will be better to put all that on paper
first.



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

> you mean project wise?
> If so I'd prefer to wait until we can move out from java.net and use some
> decent project hosting.
>
> Hubert
>
>
>
> On Mon, Sep 21, 2009 at 9:36 PM, Survivant 00 <survivant00_at_gmail.com>wrote:
>
>> fine with me.. but do we want to do that in Deployer or start from scrash
>> in the next servlet-container ?
>>
>>
>>
>> 2009/9/21 Hubert Iwaniuk <neotyk_at_kungfoo.pl>
>>
>>> So maybe some eventing model for converted deployables could be useful.
>>> Events fired around abstract methods of deployers.
>>> So in simple case potential events:
>>>
>>> 1. Deployable deployed under id
>>> 2. Undeployed deploy id.
>>> 3. Before converting Deployable to Map<GA,Set<String>> (potential
>>> customization point, not sure if needed)
>>> 4. After converting Deployable to Map<GA,Set<String>> (potential
>>> customization point, not sure if needed)
>>>
>>> In case of additional URI support additional two events:
>>>
>>> 1. Before converting URI to Deployable
>>> 2. After conversion.
>>>
>>> That way manager application could register itself as listener for
>>> some/all of those events and have all information available.
>>>
>>> What do you think of it?
>>> Hubert
>>>
>>>
>>>
>>> On Mon, Sep 21, 2009 at 9:07 PM, Survivant 00 <survivant00_at_gmail.com>wrote:
>>>
>>>> nice
>>>>
>>>> Just as a remainder, I would like to create a admin webpage (not
>>>> packaged with deployer, but more a addon), that will allow the users to
>>>> deploy/undeploy applications, activate/desactivate Comet support...
>>>>
>>>> something like that, so Deployer has to be able to allow that..
>>>>
>>>> 2009/9/21 Hubert Iwaniuk <neotyk_at_kungfoo.pl>
>>>>
>>>> Hi,
>>>>>
>>>>> I'll improve documentation.
>>>>>
>>>>> This loading war file from remote location can be used for distribution
>>>>> in clustered/ha environment.
>>>>> Just a thought.
>>>>>
>>>>> Cheers,
>>>>> Hubert
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Sep 21, 2009 at 8:36 PM, Jeanfrancois Arcand <
>>>>> Jeanfrancois.Arcand_at_sun.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> Hubert Iwaniuk wrote:
>>>>>>
>>>>>>> Thanks for you reply.
>>>>>>> See comments inline.
>>>>>>>
>>>>>>> On Mon, Sep 21, 2009 at 5:31 PM, Jeanfrancois Arcand <
>>>>>>> Jeanfrancois.Arcand_at_sun.com <mailto:Jeanfrancois.Arcand_at_sun.com>>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Salut,
>>>>>>>
>>>>>>> Index:
>>>>>>>
>>>>>>> modules/http/src/main/java/com/sun/grizzly/http/deployer/FromURIDeployer.java
>>>>>>> +public abstract class FromURIDeployer<V> extends Deployer<V>
>>>>>>> {
>>>>>>> +
>>>>>>> + /**
>>>>>>> + * Deploy deployable to gws.
>>>>>>> + *
>>>>>>> + * @param gws Grizzly to deploy to.
>>>>>>> + * @param deployFrom URI ofr deployable to be deployed.
>>>>>>> + *
>>>>>>> + * @return Deployment identification.
>>>>>>> + *
>>>>>>> + * @throws DeployException Error in deployment.
>>>>>>> + */
>>>>>>> + public final Integer deploy(GrizzlyWebServer gws, URI
>>>>>>> deployFrom) throws DeployException {
>>>>>>> + return super.deploy(gws, fromURI(deployFrom));
>>>>>>> + }
>>>>>>> +
>>>>>>> + /**
>>>>>>> + * Create object to deploy from uri.
>>>>>>> + *
>>>>>>> + * @param uri of deployable object.
>>>>>>> + *
>>>>>>> + * @return Deployable object.
>>>>>>> + */
>>>>>>> + public abstract V fromURI(URI uri);
>>>>>>>
>>>>>>>
>>>>>>> Do we needs that method to be abstract? I would think all URI
>>>>>>> should
>>>>>>> be deployed the same way. Can you elaborate?
>>>>>>>
>>>>>>> URI is just location of we have no idea what. It might be WAR file
>>>>>>> location it might be some other Deployable type.
>>>>>>> What do you mean by all URI should be deployed the same way?
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> OK then I agree, but we need to improve the documentation explaining
>>>>>> what it does exactly, e.g will resolve the URI and deploy a war, directory
>>>>>> or a remote was file. This is great!
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> +}
>>>>>>> Index:
>>>>>>>
>>>>>>> modules/http/src/main/java/com/sun/grizzly/http/deployer/Deployer.java
>>>>>>>
>>>>>>> ===================================================================
>>>>>>> ---
>>>>>>>
>>>>>>> modules/http/src/main/java/com/sun/grizzly/http/deployer/Deployer.java
>>>>>>> Fri Sep 18 16:52:22 CEST 2009
>>>>>>> +++
>>>>>>>
>>>>>>> modules/http/src/main/java/com/sun/grizzly/http/deployer/Deployer.java
>>>>>>> Fri Sep 18 16:52:22 CEST 2009
>>>>>>> @@ -0,0 +1,93 @@
>>>>>>> +/*
>>>>>>> + * The contents of this file are subject to the terms
>>>>>>> + * of the Common Development and Distribution License
>>>>>>> + * (the License). You may not use this file except in
>>>>>>> + * compliance with the License.
>>>>>>> + *
>>>>>>> + * You can obtain a copy of the license at
>>>>>>> + * https://glassfish.dev.java.net/public/CDDLv1.0.html or
>>>>>>> + * glassfish/bootstrap/legal/CDDLv1.0.txt.
>>>>>>> + * See the License for the specific language governing
>>>>>>> + * permissions and limitations under the License.
>>>>>>> + *
>>>>>>> + * When distributing Covered Code, include this CDDL
>>>>>>> + * Header Notice in each file and include the License file
>>>>>>> + * at glassfish/bootstrap/legal/CDDLv1.0.txt.
>>>>>>> + * If applicable, add the following below the CDDL Header,
>>>>>>> + * with the fields enclosed by brackets [] replaced by
>>>>>>> + * you own identifying information:
>>>>>>> + * "Portions Copyrighted [year] [name of copyright owner]"
>>>>>>> + *
>>>>>>> + * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
>>>>>>> + */
>>>>>>> +package com.sun.grizzly.http.deployer;
>>>>>>> +
>>>>>>> +import com.sun.grizzly.http.embed.GrizzlyWebServer;
>>>>>>> +import com.sun.grizzly.tcp.http11.GrizzlyAdapter;
>>>>>>> +
>>>>>>> +import java.util.Map;
>>>>>>> +import java.util.Set;
>>>>>>> +import java.util.HashMap;
>>>>>>> +
>>>>>>> +/**
>>>>>>> + * Deployer abstraction.
>>>>>>> + *
>>>>>>> + * @author Hubert Iwaniuk
>>>>>>> + * @param <V> Type of object deployed by this deployer.
>>>>>>> + * @since Sep 17, 2009
>>>>>>> + */
>>>>>>> +public abstract class Deployer<V> {
>>>>>>> +
>>>>>>> + private Map<Integer, Set<GrizzlyAdapter>> deployed
>>>>>>> + = new HashMap<Integer, Set<GrizzlyAdapter>>();
>>>>>>> +
>>>>>>> + /**
>>>>>>> + * Deploy deployable to gws.
>>>>>>> + *
>>>>>>> + * @param gws Grizzly to deploy to.
>>>>>>> + * @param toDeploy Deployable to be deployed.
>>>>>>> + *
>>>>>>> + * @return Deployment identification.
>>>>>>> + *
>>>>>>> + * @throws DeployException Error in deployment.
>>>>>>> + */
>>>>>>> + public final Integer deploy(GrizzlyWebServer gws, V
>>>>>>> toDeploy) throws DeployException {
>>>>>>> + Map<GrizzlyAdapter, Set<String>> map =
>>>>>>> convert(toDeploy);
>>>>>>>
>>>>>>>
>>>>>>> Here the convert role will consist of doing something similar to
>>>>>>> what the current GWSD does right now, e.g. populate
>>>>>>> GrizzlyAdapter/ServletAdapter instances, right?
>>>>>>>
>>>>>>> Exactly. This convert method is abstract and produces mapping of GA
>>>>>>> to strings to map it to.
>>>>>>>
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>> -- Jeanfrancois
>>>>>>
>>>>>>
>>>>>>
>>>>>>> A+
>>>>>>>
>>>>>>> --Jeanfrancois
>>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Hubert.
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_grizzly.dev.java.net
>>>>>> For additional commands, e-mail: dev-help_at_grizzly.dev.java.net
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> 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
>>
>
>


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