KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nanocontainer > webcontainer > groovy > WebContainerBuilder


1 /*****************************************************************************
2  * Copyright (C) NanoContainer Organization. All rights reserved. *
3  * ------------------------------------------------------------------------- *
4  * The software in this package is published under the terms of the BSD *
5  * style license a copy of which has been included with this distribution in *
6  * the LICENSE.txt file. *
7  * *
8  * *
9  *****************************************************************************/

10
11 package org.nanocontainer.webcontainer.groovy;
12
13 import org.picocontainer.MutablePicoContainer;
14 import org.nanocontainer.webcontainer.PicoJettyServer;
15 import org.nanocontainer.script.groovy.buildernodes.AbstractBuilderNode;
16 import org.nanocontainer.NanoContainer;
17
18 import java.util.Map JavaDoc;
19
20 public class WebContainerBuilder extends AbstractBuilderNode {
21
22
23     public WebContainerBuilder() {
24         super("webContainer");
25     }
26
27     public Object JavaDoc createNewNode(Object JavaDoc current, Map JavaDoc map) {
28         int port =0;
29         if (map.containsKey("port")) {
30             port = ((Integer JavaDoc) map.remove("port")).intValue();
31         }
32         String JavaDoc host;
33         if (map.containsKey("host")) {
34             host = (String JavaDoc) map.remove("host");
35         } else {
36             host = "localhost";
37         }
38
39         NanoContainer parentNano = (NanoContainer) current;
40         MutablePicoContainer parentContainer = parentNano.getPico();
41
42         if (port != 0) {
43             PicoJettyServer server = new PicoJettyServer(host, port, parentContainer);
44             parentContainer.addChildContainer(server);
45             return new ServerBuilder(server, parentContainer);
46         } else {
47             PicoJettyServer server = new PicoJettyServer(parentContainer);
48             parentContainer.addChildContainer(server);
49             return new ServerBuilder(server, parentContainer);
50         }
51     }
52
53
54 }
55
56
57
Popular Tags