1   /*******************************************************************************
2    *  Copyright (c) 2005, 2006 Imola Informatica.
3    *  All rights reserved. This program and the accompanying materials
4    *  are made available under the terms of the LGPL License v2.1
5    *  which accompanies this distribution, and is available at
6    *  http://www.gnu.org/licenses/lgpl.html
7    *******************************************************************************/
8   package it.imolinfo.jbi4cics.test.webservices.runtime;
9   
10  import it.imolinfo.jbi4cics.commareaparser.CommareaLexer;
11  import it.imolinfo.jbi4cics.commareaparser.CommareaParser;
12  import it.imolinfo.jbi4cics.jbi.BCELClassLoader;
13  import it.imolinfo.jbi4cics.messageformat.commarea.CommareaBeanMappingDescriptor;
14  import it.imolinfo.jbi4cics.test.BaseCommareaTest;
15  import it.imolinfo.jbi4cics.webservices.descriptor.ServiceDescriptor;
16  import it.imolinfo.jbi4cics.webservices.runtime.ServiceCreator;
17  import it.imolinfo.jbi4cics.webservices.utils.generators.ServiceBeanGenerator;
18  import it.imolinfo.jbi4cics.webservices.utils.generators.ServiceInterfaceGenerator;
19  
20  import java.io.FileInputStream;
21  import java.io.InputStream;
22  
23  import org.apache.commons.logging.Log;
24  import org.apache.commons.logging.LogFactory;
25  import org.codehaus.xfire.XFire;
26  import org.codehaus.xfire.XFireFactory;
27  import org.codehaus.xfire.service.Service;
28  
29  public class ServiceCreatorTest extends BaseCommareaTest {
30    private static Log log = LogFactory.getLog(ServiceCreatorTest.class);
31  
32  
33  
34    public ServiceCreatorTest(String arg) {
35      super(arg);
36    }
37  
38    public void testServiceCreator() {
39      try {
40        // genero il mapping descriptor
41        InputStream is = new FileInputStream(testRootCommarea + "/" + "ProvaCommarea2.txt");
42        CommareaLexer lexer = new CommareaLexer(is);
43        CommareaParser parser = new CommareaParser(lexer);
44        CommareaBeanMappingDescriptor commareaBeanMappingDescriptor = parser.commarea_definition();
45        log.info("commareaBeanMappingDescriptor: " + commareaBeanMappingDescriptor);
46  
47        // creo il service desciptor
48        final ServiceDescriptor serviceDescriptor = new ServiceDescriptor();
49  
50        serviceDescriptor.setOperationName("provaOperation");
51        serviceDescriptor.setServiceName("ProvaService");
52        serviceDescriptor.setServiceInterfacePackageName("it.imolinfo.jbi4cics.test.webservices.utils.generators");
53        serviceDescriptor.setServiceInterfaceName("ProvaServiceBeanInterface");
54        serviceDescriptor.setServiceNameSpace("urn:it.imolinfo.jbi4cics.test.webservices.utils.generators");
55        serviceDescriptor.setInputBeanClassName("ProvaServiceBean");
56        serviceDescriptor.setOutputBeanClassName("ProvaServiceBean");
57        serviceDescriptor.setInputMappingDescriptor(commareaBeanMappingDescriptor);
58        serviceDescriptor.setOutputMappingDescriptor(commareaBeanMappingDescriptor);
59  
60        // creo il service bean
61        BCELClassLoader bcelClassLoader = new BCELClassLoader(Thread.currentThread().getContextClassLoader());
62        ServiceBeanGenerator serviceBeanGenerator = new ServiceBeanGenerator(serviceDescriptor, true);
63        serviceBeanGenerator.generateBeanClass(bcelClassLoader);
64  
65        // creo la service interface
66        ServiceInterfaceGenerator serviceInterfaceGenerator = new ServiceInterfaceGenerator(serviceDescriptor);
67        serviceInterfaceGenerator.generateServiceInterface(bcelClassLoader);
68        XFire xfire = XFireFactory.newInstance().getXFire();
69        ServiceCreator serviceCreator = new ServiceCreator();
70        Service service = serviceCreator.createService(serviceDescriptor, xfire);
71        log.debug("servizio creato: " + service);
72  
73        // TODO fare degli assert ragionevoli
74  
75      } catch (Throwable e) {
76        log.error("errore in test testServiceCreator", e);
77        fail(e.getMessage());
78      }
79    }
80  }