dev@grizzly.java.net

Re: Embedding WebAppAdapter was RFC Deployer refactoring

From: Hubert Iwaniuk <neotyk_at_kungfoo.pl>
Date: Tue, 22 Sep 2009 07:19:14 +0200

+100 for github

Hubert


On Tue, Sep 22, 2009 at 12:50 AM, Jeanfrancois Arcand <
Jeanfrancois.Arcand_at_sun.com> wrote:

> We can probably do both ..... I looking inside to see if we can move to
> gitub so we have choice with kenai...
>
> A+-- jeanfrancois
>
> Le 2009-09-21 à 3:43 PM, Survivant 00 <survivant00_at_gmail.com> a écrit :
>
> 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 <http://java.net>
>> java.net and use some decent project hosting.
>>
>> Hubert
>>
>>
>>
>> On Mon, Sep 21, 2009 at 9:36 PM, Survivant 00 < <survivant00_at_gmail.com>
>> 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>
>>>> 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>
>>>>>> 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>
>>>>>>>> Jeanfrancois.Arcand_at_sun.com <mailto: <Jeanfrancois.Arcand_at_sun.com>
>>>>>>>> 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>
>>>>>>>> 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>
>>>>>>> dev-unsubscribe_at_grizzly.dev.java.net
>>>>>>> For additional commands, e-mail: <dev-help_at_grizzly.dev.java.net>
>>>>>>> dev-help_at_grizzly.dev.java.net
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Vous pouvez me suivre sur Twitter / You can follow me on Twitter :
>>>>> <http://twitter.com/survivant>http://twitter.com/survivant
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> Vous pouvez me suivre sur Twitter / You can follow me on Twitter :
>>> <http://twitter.com/survivant>http://twitter.com/survivant
>>>
>>
>>
>
>
> --
>
> Vous pouvez me suivre sur Twitter / You can follow me on Twitter :
> <http://twitter.com/survivant>http://twitter.com/survivant
>
>