View Javadoc
1   /**
2    * This Source Code Form is subject to the terms of the Mozilla Public
3    * License, v. 2.0. If a copy of the MPL was not distributed with this
4    * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5    *
6    * If it is not possible or desirable to put the notice in a particular
7    * file, then You may include the notice in a location (such as a LICENSE
8    * file in a relevant directory) where a recipient would be likely to look
9    * for such a notice.
10  
11   * 
12   */
13   
14  /*  ---------------------------------------------------------------------------
15   *  U.S. Government, Department of the Army
16   *  Army Materiel Command
17   *  Research Development Engineering Command
18   *  Communications Electronics Research Development and Engineering Center
19   *  ---------------------------------------------------------------------------
20   */
21  /*  ----------------------------------------------------------------------------
22   *  U.S. Government, Department of the Army
23   *  Army Materiel Command
24   *  Research Development Engineering Command
25   *  Communications Electronics Research Development and Engineering Command
26   *  Command, Power and Intergration Directorate
27   *  ----------------------------------------------------------------------------
28   *  fgsms - Government Open Source Software
29   *  ----------------------------------------------------------------------------
30   *  Author:     AO
31   *	Website: 	https://github.com/mil-oss/fgsms
32   *  ----------------------------------------------------------------------------
33   */
34  package org.miloss.fgsms.plugins.sla;
35  
36  import org.miloss.fgsms.services.interfaces.policyconfiguration.SLAAction;
37  import org.miloss.fgsms.services.interfaces.policyconfiguration.ServicePolicy;
38  import org.oasis_open.docs.wsdm.muws2_2.SituationCategoryType;
39  
40  /**
41   * A simple structure to make the processing of alerting
42   * easier fgsms processes alerts asynchronously either via a
43   * Singleton message processor that runs in a separate thread or via Jboss's
44   * Work Manager, depending on what's available. This container specifies
45   * everything necessary for an implementation action class to successfully
46   * process the action.
47   * 
48   * @see org.miloss.fgsms.helper.SLACommon
49   * @see org.miloss.fgsms.helper.SLAProcessorSingleton
50   * @see javax.resource.spi.work.WorkManager
51   *
52   * @author AO
53   * @since 6.0
54   */
55  public class AlertContainer {
56  
57      /**
58       * creates a new alert container
59       *
60       * @param faultMsg
61       * @param htmlEncodedFaultMessage
62       * @param modifiedurl the policy url
63       * @param relatedMessageId a specific transaction that triggered the action, may be null
64       * @param currentTimeMillis the time it was triggered
65       * @param incidentid this is the id that will or has been recorded in the sla table of the performance database. this is useful for providing web links to get more information
66       * @param pooled whether or not we are running in jboss and using jndi lookups for database connections
67       * @param sendtoAdminsOnly typically only used for email alerts
68       * @param slaActionBaseType this is a reference to the specific action being triggered in the SLA identified by SLAID. This is necessary as some Actions have context parameters
69       * @param SLAID a unique id of the SLA
70       * @param ServicePolicy of the thing this action was triggered on 
71       * @param typeofalert This is the type of alert, generally speaking, a AvailabilitySituation or PerformanceReport
72       * report
73       *
74       * @see org.oasis_open.docs.wsdm.muws2_2.PerformanceReport
75       * @see org.oasis_open.docs.wsdm.muws2_2.AvailabilitySituation
76       */
77      public AlertContainer(String faultMsg, String htmlEncodedFaultMessage, String modifiedurl, String relatedMessageId, long currentTimeMillis, String incidentid, boolean pooled, boolean sendtoAdminsOnly, SLAAction slaActionBaseType, String SLAID, ServicePolicy t,
78              SituationCategoryType typeofalert) {
79          this.faultMsg = faultMsg;
80          this.htmlEncodedFaultMessage = htmlEncodedFaultMessage;
81          this.modifiedurl = modifiedurl;
82          this.relatedMessageId = relatedMessageId;
83          this.currentTimeMillis = currentTimeMillis;
84          this.incidentid = incidentid;
85          this.pooled = pooled;
86          this.sendtoAdminsOnly = sendtoAdminsOnly;
87          this.slaActionBaseType = slaActionBaseType;
88          this.SLAID = SLAID;
89          this.t = t;
90          this.alerttype = typeofalert;
91      }
92  
93      /**
94       * This is the type of alert, generally speaking, a performance or status
95       * report
96       *
97       * @see org.oasis_open.docs.wsdm.muws2_2.PerformanceReport
98       * @see org.oasis_open.docs.wsdm.muws2_2.AvailabilitySituation
99       */
100     public SituationCategoryType getAlerttype() {
101         return alerttype;
102     }
103 
104     /**
105      * The fault message is usually a high readable string
106      */
107     public String getFaultMsg() {
108         return faultMsg;
109     }
110 
111     /**
112      * This is an html encoded fault message, usually with formatting for an
113      * email message or something similar.
114      */
115     public String getHtmlEncodedFaultMessage() {
116         return htmlEncodedFaultMessage;
117     }
118 
119     /**
120      * The url of the fgsms policy that this alert is related to
121      */
122     public String getModifiedurl() {
123         return modifiedurl;
124     }
125 
126     /**
127      * This is the id of the transaction that caused the SLA rule to trigger.
128      * There is no guarantee that this is defined. This ID is a UUID that may
129      * relate to a web service transaction, an availability ID or something
130      * else.
131      */
132     public String getRelatedMessageId() {
133         return relatedMessageId;
134     }
135 
136     /**
137      * The time this even occurred. fgsms processes SLAs asynchronously
138      */
139     public long getCurrentTimeMillis() {
140         return currentTimeMillis;
141     }
142 
143     /**
144      * a unique UUID of this alert, with is also recorded in the SLA table of
145      * the performance database.
146      */
147     public String getIncidentid() {
148         return incidentid;
149     }
150 
151     /**
152      * indicates that the current context is running inside of jboss, useful for
153      * accessing database connections
154      */
155     public boolean isPooled() {
156         return pooled;
157     }
158 
159     /**
160      * A reference to the action that will be processed by this alert container.
161      * This is used for asynchronous processes, do not modify
162      */
163     public boolean isSendtoAdminsOnly() {
164         return sendtoAdminsOnly;
165     }
166 
167     /**
168      * A reference to the action that will be processed by this alert container.
169      * This is used for asynchronous processes, do not modify
170      */
171     public SLAAction getSlaActionBaseType() {
172         return slaActionBaseType;
173     }
174 
175     /**
176      * this is the UUID of the SLA Rule/Action set. use this to find the
177      * corresponding record in the policy for further processing
178      */
179     public String getSLAID() {
180         return SLAID;
181     }
182 
183     /**
184      * a reference to the service policy for this object, do not modify it
185      */
186     public ServicePolicy getServicePolicy() {
187         return t;
188     }
189     /**
190      * This is the type of alert, generally speaking, a performance or status
191      * report
192      *
193      * @see org.oasis_open.docs.wsdm.muws2_2.PerformanceReport
194      * @see org.oasis_open.docs.wsdm.muws2_2.AvailabilitySituation
195      */
196     protected SituationCategoryType alerttype;
197     /**
198      * The fault message is usually a high readable string
199      */
200     protected String faultMsg;
201     /**
202      * This is an html encoded fault message, usually with formatting for an
203      * email message or something similar.
204      */
205     protected String htmlEncodedFaultMessage;
206     /**
207      * The url of the fgsms policy that this alert is related to
208      */
209     protected String modifiedurl;
210     /**
211      * This is the id of the transaction that caused the SLA rule to trigger.
212      * There is no guarantee that this is defined. This ID is a UUID that may
213      * relate to a web service transaction, an availability ID or something
214      * else.
215      */
216     protected String relatedMessageId;
217     /**
218      * The time this even occurred. fgsms processes SLAs asynchronously
219      */
220     protected long currentTimeMillis;
221     /**
222      * a unique UUID of this alert, with is also recorded in the SLA table of
223      * the performance database.
224      */
225     protected String incidentid;
226     /**
227      * indicates that the current context is running inside of jboss, useful for
228      * accessing database connections
229      */
230     protected boolean pooled;
231     protected boolean sendtoAdminsOnly;
232     /**
233      * A reference to the action that will be processed by this alert container.
234      * This is used for asynchronous processes, do not modify
235      */
236     protected SLAAction slaActionBaseType;
237     /**
238      * this is the UUID of the SLA Rule/Action set. use this to find the
239      * corresponding record in the policy for further processing
240      */
241     protected String SLAID;
242     /**
243      * a reference to the service policy for this object, do not modify it
244      */
245     protected ServicePolicy t;
246 }