Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/everest/WeatherStationSoapService.java


1   package org.everest;
2   
3   import org.apache.ws.XmlObjectWrapper;
4   import org.apache.ws.mows.v1_0.MowsConstants;
5   import org.apache.ws.muws.impl.CategoryImpl;
6   import org.apache.ws.muws.v1_0.MuwsConstants;
7   import org.apache.ws.muws.v1_0.events.Situation;
8   import org.apache.ws.muws.v1_0.events.impl.SituationImpl;
9   import org.apache.ws.muws.v1_0.events.impl.XmlBeansManagementEvent;
10  import org.apache.ws.notification.topics.Topic;
11  import org.apache.ws.resource.ResourceContext;
12  import org.apache.ws.resource.example.InteropConstants;
13  import org.apache.ws.resource.impl.SimpleTypeResourceKey;
14  import org.apache.ws.util.XmlBeanUtils;
15  import org.apache.xmlbeans.XmlObject;
16  import org.everestWeather.wsdm.samples.x2005.x04.schema.WeatherstationHome;
17  import org.everestWeather.wsdm.samples.x2005.x04.schema.WeatherstationPropertyQNames;
18  import org.everestWeather.wsdm.samples.x2005.x04.schema.WeatherstationResource;
19  import org.oasisOpen.docs.wsdm.x2004.x12.mows.wsdmMows.AnyXmlContentsType;
20  import org.oasisOpen.docs.wsdm.x2004.x12.mows.wsdmMows.GetManageabilityReferencesDocument;
21  import org.oasisOpen.docs.wsdm.x2004.x12.mows.wsdmMows.GetManageabilityReferencesResponseDocument;
22  import org.oasisOpen.docs.wsdm.x2004.x12.mows.wsdmMows.MessageContentType;
23  import org.oasisOpen.docs.wsdm.x2004.x12.mows.wsdmMows.MessageInformationType;
24  import org.oasisOpen.docs.wsdm.x2004.x12.mows.wsdmMows.RequestProcessingNotificationDocument;
25  import org.oasisOpen.docs.wsdm.x2004.x12.mows.wsdmMows.RequestProcessingStateInformationType;
26  import org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManagementEventDocument;
27  import org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.StateTransitionType;
28  import org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart2.StateType;
29  import org.xmlsoap.schemas.ws.x2004.x08.addressing.AttributedURI;
30  import org.xmlsoap.schemas.ws.x2004.x08.addressing.EndpointReferenceType;
31  import org.xmlsoap.schemas.ws.x2004.x08.addressing.ReferencePropertiesType;
32  
33  import javax.naming.InitialContext;
34  import javax.xml.namespace.QName;
35  import java.util.Calendar;
36  
37  /**
38   * This class should be generated ONCE (and not overwritten) to maintain user-added code. If there is a change to the
39   * WSDL, then the generated implemented interfaces (representing the "base" portTypes) will change, thus showing a
40   * compile error to the user.
41   * <p/>
42   * NOTE: This class is generated. However, it will not be overwritten by subsequent calls to the code generator.
43   */
44  public class WeatherStationSoapService
45          extends AbstractWeatherStationSoapService
46          implements WeatherStationSoapCustomOperationsPortType
47  {
48  
49      private ResourceContext m_resourceContext;
50  
51      /**
52       * Creates a new {@link WeatherStationSoapService } object.
53       *
54       * @param resourceContext DOCUMENT_ME
55       */
56      public WeatherStationSoapService(ResourceContext resourceContext)
57      {
58          m_resourceContext = resourceContext;
59          init();
60      }
61  
62      /**
63       * DOCUMENT_ME
64       *
65       * @return DOCUMENT_ME
66       */
67      public ResourceContext getResourceContext()
68      {
69          return m_resourceContext;
70      }
71  
72      public GetManageabilityReferencesResponseDocument getManageabilityReferences(GetManageabilityReferencesDocument request)
73      {
74          GetManageabilityReferencesResponseDocument getManageabilityReferencesResponseDocument = GetManageabilityReferencesResponseDocument.Factory.newInstance();
75          GetManageabilityReferencesResponseDocument.GetManageabilityReferencesResponse getManageabilityReferencesResponse = getManageabilityReferencesResponseDocument.addNewGetManageabilityReferencesResponse();
76          QName resourceKeyName = QName.valueOf("{" + WeatherstationPropertyQNames.FCCID.getNamespaceURI() + "}ResourceID");
77          EndpointReferenceType endpointReferenceType = getManageabilityReferencesResponse.addNewManageabilityEndpointReference();
78          AttributedURI attributedURI = endpointReferenceType.addNewAddress();
79          attributedURI.setStringValue(InteropConstants.SERVICES_URL + "/" + InteropConstants.WEATHERSTATION_SERVICE_NAME);
80          ReferencePropertiesType referencePropertiesType = endpointReferenceType.addNewReferenceProperties();
81          XmlObject key1 = XmlBeanUtils.addChildElement(referencePropertiesType, resourceKeyName);
82          XmlBeanUtils.setValue(key1, InteropConstants.WEATHERSTATION_KEY1);
83  
84          EndpointReferenceType endpointReferenceType2 = getManageabilityReferencesResponse.addNewManageabilityEndpointReference();
85          attributedURI = endpointReferenceType2.addNewAddress();
86          attributedURI.setStringValue(InteropConstants.SERVICES_URL + "/" + InteropConstants.WEATHERSTATION_SERVICE_NAME);
87          referencePropertiesType = endpointReferenceType2.addNewReferenceProperties();
88          key1 = XmlBeanUtils.addChildElement(referencePropertiesType, resourceKeyName);
89          XmlBeanUtils.setValue(key1, InteropConstants.WEATHERSTATION_KEY2);
90  
91          return getManageabilityReferencesResponseDocument;
92      }
93  
94      public org.everest.GetCurrentTemperatureResponseDocument GetCurrentTemperature(org.everest.GetCurrentTemperatureDocument getCurrentTemperatureRequestDoc)
95      {
96          GetCurrentTemperatureResponseDocument getCurrentTemperatureResponseDocument = GetCurrentTemperatureResponseDocument.Factory.newInstance();
97          GetCurrentTemperatureResponseDocument.GetCurrentTemperatureResponse getCurrentTemperatureResponse = getCurrentTemperatureResponseDocument.addNewGetCurrentTemperatureResponse();
98          Double aDouble = new Double(101);
99          getCurrentTemperatureResponse.setGetCurrentTemperatureResult(aDouble.doubleValue());
100 
101         try
102         {
103             InitialContext initialContext = new InitialContext();
104             WeatherstationHome home = (WeatherstationHome) initialContext.lookup(WeatherstationHome.HOME_LOCATION);
105             SimpleTypeResourceKey simpleTypeResourceKey = new SimpleTypeResourceKey(new QName(WeatherstationPropertyQNames.FCCID.getNamespaceURI(), "ResourceID"),
106                                                                                     InteropConstants.WEATHERSTATION_KEY1);
107             WeatherstationResource resource = (WeatherstationResource) home.find(simpleTypeResourceKey);
108             Topic topic = resource.getTopicSpaceSet().getTopicSpace(MowsConstants.NSURI_MOWS_TOPICS).getTopic("RequestProcessingObservations");
109             Calendar currentTime = Calendar.getInstance();
110 
111             //RequestProcessingNotification
112             RequestProcessingNotificationDocument notifDocument = RequestProcessingNotificationDocument.Factory.newInstance();
113             RequestProcessingNotificationDocument.RequestProcessingNotification notif = notifDocument.addNewRequestProcessingNotification();
114 
115             //request message
116             MessageInformationType requestInformationType = notif.addNewRequest();
117             MessageContentType requestMessage = requestInformationType.addNewMessage();
118             AnyXmlContentsType requestAnyXmlContentsType = requestMessage.addNewXml();
119             XmlBeanUtils.addChildElement(requestAnyXmlContentsType, getCurrentTemperatureRequestDoc);
120 
121             //reply message
122             MessageInformationType replyInformationType = notif.addNewReply();
123             MessageContentType replyMessage = replyInformationType.addNewMessage();
124             AnyXmlContentsType replyAnyXmlContentsType = replyMessage.addNewXml();
125             XmlBeanUtils.addChildElement(replyAnyXmlContentsType, getCurrentTemperatureResponseDocument);
126 
127             //todo flesh out
128             //StateInformation
129             RequestProcessingStateInformationType requestProcessingStateInformationType = notif.addNewStateInformation();
130             StateTransitionType stateTransitionType = requestProcessingStateInformationType.addNewStateTransition();
131 
132             XmlObject currentState = XmlObject.Factory.parse("<tns:temp xmlns:tns=\"http://tempcentral.com/temps\">Cool</tns:temp>");
133 
134             StateType enteredState = stateTransitionType.addNewEnteredState();
135             XmlBeanUtils.addChildElement(enteredState, currentState);
136 
137             StateType prevState = stateTransitionType.addNewPreviousState();
138             XmlBeanUtils.addChildElement(prevState, currentState);
139 
140             stateTransitionType.setTransitionIdentifier("urn:NONE");
141             stateTransitionType.setTime(currentTime);
142             notif.setCurrentTime(currentTime);
143 
144             Situation situation = new SituationImpl(new CategoryImpl(MuwsConstants.SITUATION_OTHER));
145             XmlBeansManagementEvent xme = new XmlBeansManagementEvent(situation);
146             ManagementEventDocument mgmtEvent = (ManagementEventDocument) ((XmlObjectWrapper) xme).getXmlObject();
147             org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManagementEventType managementEvent = mgmtEvent.getManagementEvent();
148             XmlBeanUtils.addChildElement(managementEvent, notifDocument);
149 
150             topic.publish(mgmtEvent);
151         }
152         catch (Exception e)
153         {
154             e.printStackTrace();
155         }
156 
157         return getCurrentTemperatureResponseDocument;
158     }
159 
160 }