01: /**
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */package org.apache.geronimo.j2ee.deployment;
17:
18: import java.util.Map;
19:
20: import org.apache.geronimo.common.DeploymentException;
21: import org.apache.geronimo.deployment.DeploymentContext;
22: import org.apache.geronimo.gbean.GBeanData;
23: import org.apache.geronimo.kernel.repository.Environment;
24:
25: /**
26: * @version $Rev: 539121 $ $Date: 2007-05-17 14:20:58 -0700 (Thu, 17 May 2007) $
27: */
28: public interface WebServiceBuilder {
29:
30: /**
31: * Introspects on the module file to locate web service for deployment.
32: *
33: * @param moduleFile J2EE module
34: * @param isEJB is this an EJB archive?
35: * @param correctedPortLocations mapping between port locations and paths.
36: * @param environment
37: * @param sharedContext map of builder-specific key to map of servlet names to port information, or an
38: * empty map if no web services found. Port information is opaque
39: * to all except the WebServiceBuilder itself.
40: * @throws DeploymentException if error encountered while introspecting the module.
41: */
42: void findWebServices(Module module, boolean isEJB,
43: Map correctedPortLocations, Environment environment,
44: Map sharedContext) throws DeploymentException;
45:
46: //obviously these need the deployment descriptors, but I'm not sure in what form yet.
47: /**
48: * configure the supplied GBeanData to implement the POJO web service described in the deployment descriptor.
49: * The GBeanData will be for a ServletHolder like gbean that is adapted to holding a ws stack that talks to a
50: * POJO web service. The web deployer is responsible for filling in the standard servlet info such as init params.
51: * @param targetGBean
52: * @param servletName
53: * @param module
54: * @param seiClassName
55: * @param context
56: * @return true if this builder configured this pojo
57: * @throws DeploymentException
58: */
59: boolean configurePOJO(GBeanData targetGBean, String servletName,
60: Module module, String seiClassName,
61: DeploymentContext context) throws DeploymentException;
62:
63: /**
64: * configure the supplied EJBContainer gbeandata to implement the ejb web service described in the deployment descriptor
65: * N.B. this method is a complete guess and should be replaced by something useable right away!
66: * @param targetGBean
67: * @param ejbName
68: * @param moduleFile
69: * @param sharedContext
70: * @param classLoader
71: * @throws DeploymentException
72: */
73: boolean configureEJB(GBeanData targetGBean, String ejbName,
74: Module module, Map sharedContext, ClassLoader classLoader)
75: throws DeploymentException;
76:
77: }
|