EMMA Coverage Report (generated Tue Jan 14 02:29:45 CET 2014)
[all classes][org.jdtaus.core.monitor.util]

COVERAGE SUMMARY FOR SOURCE FILE [TaskDurationLogger.java]

nameclass, %method, %block, %line, %
TaskDurationLogger.java0%   (0/1)0%   (0/8)0%   (0/117)0%   (0/19)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TaskDurationLogger0%   (0/1)0%   (0/8)0%   (0/117)0%   (0/19)
TaskDurationLogger (): void 0%   (0/1)0%   (0/3)0%   (0/2)
TaskDurationLogger (long): void 0%   (0/1)0%   (0/13)0%   (0/4)
getDefaultLoggingThresholdMillis (): Long 0%   (0/1)0%   (0/6)0%   (0/1)
getDurationInfoMessage (Locale, String, Date, Date, Number): String 0%   (0/1)0%   (0/24)0%   (0/1)
getLocale (): Locale 0%   (0/1)0%   (0/6)0%   (0/1)
getLogger (): Logger 0%   (0/1)0%   (0/6)0%   (0/1)
getLoggingThresholdMillis (): long 0%   (0/1)0%   (0/12)0%   (0/3)
onTaskEvent (TaskEvent): void 0%   (0/1)0%   (0/47)0%   (0/6)

1/*
2 *  jDTAUS Core Utilities
3 *  Copyright (C) 2005 Christian Schulte
4 *  <cs@schulte.it>
5 *
6 *  This library is free software; you can redistribute it and/or
7 *  modify it under the terms of the GNU Lesser General Public
8 *  License as published by the Free Software Foundation; either
9 *  version 2.1 of the License, or any later version.
10 *
11 *  This library is distributed in the hope that it will be useful,
12 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 *  Lesser General Public License for more details.
15 *
16 *  You should have received a copy of the GNU Lesser General Public
17 *  License along with this library; if not, write to the Free Software
18 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19 *
20 */
21package org.jdtaus.core.monitor.util;
22 
23import java.util.Date;
24import java.util.Locale;
25import org.jdtaus.core.container.ContainerFactory;
26import org.jdtaus.core.logging.spi.Logger;
27import org.jdtaus.core.monitor.TaskEvent;
28import org.jdtaus.core.monitor.TaskListener;
29 
30/**
31 * {@code TaskListener} logging the duration of an operation performed by
32 * a {@code Task}.
33 *
34 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
35 * @version $JDTAUS: TaskDurationLogger.java 8641 2012-09-27 06:45:17Z schulte $
36 *
37 * @see #onTaskEvent(TaskEvent)
38 */
39public final class TaskDurationLogger implements TaskListener
40{
41    //--Dependencies------------------------------------------------------------
42 
43// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausDependencies
44    // This section is managed by jdtaus-container-mojo.
45 
46    /**
47     * Gets the configured <code>Logger</code> implementation.
48     *
49     * @return The configured <code>Logger</code> implementation.
50     */
51    private Logger getLogger()
52    {
53        return (Logger) ContainerFactory.getContainer().
54            getDependency( this, "Logger" );
55 
56    }
57 
58    /**
59     * Gets the configured <code>Locale</code> implementation.
60     *
61     * @return The configured <code>Locale</code> implementation.
62     */
63    private Locale getLocale()
64    {
65        return (Locale) ContainerFactory.getContainer().
66            getDependency( this, "Locale" );
67 
68    }
69 
70// </editor-fold>//GEN-END:jdtausDependencies
71 
72    //------------------------------------------------------------Dependencies--
73    //--Properties--------------------------------------------------------------
74 
75// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausProperties
76    // This section is managed by jdtaus-container-mojo.
77 
78    /**
79     * Gets the value of property <code>defaultLoggingThresholdMillis</code>.
80     *
81     * @return Default number of milliseconds a task at least needs to run to trigger a message when finished.
82     */
83    private java.lang.Long getDefaultLoggingThresholdMillis()
84    {
85        return (java.lang.Long) ContainerFactory.getContainer().
86            getProperty( this, "defaultLoggingThresholdMillis" );
87 
88    }
89 
90// </editor-fold>//GEN-END:jdtausProperties
91 
92    //--------------------------------------------------------------Properties--
93    //--TaskListener------------------------------------------------------------
94 
95    /**
96     * {@inheritDoc}
97     * <p>This method measures the time a task is running and logs
98     * information for tasks running longer than specified by configuration
99     * property {@code loggingThresholdMillis} (defaults to 60000).</p>
100     *
101     * @param event the event send by a {@code Task}.
102     */
103    public void onTaskEvent( final TaskEvent event )
104    {
105        if ( event != null )
106        {
107            final long now = System.currentTimeMillis();
108            final long start = event.getTask().getTimestamp();
109 
110            if ( TaskEvent.ENDED == event.getType() &&
111                 now - start > this.getLoggingThresholdMillis() )
112            {
113                this.getLogger().info(
114                    this.getDurationInfoMessage(
115                    this.getLocale(),
116                    event.getTask().getDescription().
117                    getText( this.getLocale() ),
118                    new Date( start ),
119                    new Date( now ),
120                    new Long( now - start ) ) );
121 
122            }
123        }
124    }
125 
126    //------------------------------------------------------------TaskListener--
127    //--TaskDurationLogger------------------------------------------------------
128 
129    /**
130     * The number of milliseconds a task at least needs to run to trigger a
131     * message when finished.
132     */
133    private Long loggingTresholdMillis;
134 
135    /** Creates a new {@code TaskDurationLogger} instance. */
136    public TaskDurationLogger()
137    {
138        super();
139    }
140 
141    /**
142     * Creates a new {@code TaskDurationLogger} instance taking the number of
143     * milliseconds a task at least needs to run to trigger a message when
144     * finished.
145     *
146     * @param loggingThresholdMillis the number of milliseconds a task at least
147     * needs to run to trigger a message when finished.
148     */
149    public TaskDurationLogger( final long loggingThresholdMillis )
150    {
151        super();
152 
153        if ( loggingThresholdMillis > 0 )
154        {
155            this.loggingTresholdMillis = new Long( loggingThresholdMillis );
156        }
157    }
158 
159    /**
160     * Gets the number of milliseconds a task at least needs to run to trigger
161     * a message when finished.
162     *
163     * @return the number of milliseconds a task at least needs to run to
164     * trigger a message when finished.
165     */
166    public long getLoggingThresholdMillis()
167    {
168        if ( this.loggingTresholdMillis == null )
169        {
170            this.loggingTresholdMillis =
171                this.getDefaultLoggingThresholdMillis();
172 
173        }
174 
175        return this.loggingTresholdMillis.intValue();
176    }
177 
178    //------------------------------------------------------TaskDurationLogger--
179    //--Messages----------------------------------------------------------------
180 
181// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausMessages
182    // This section is managed by jdtaus-container-mojo.
183 
184    /**
185     * Gets the text of message <code>durationInfo</code>.
186     * <blockquote><pre>Taskinformation:
187     *Beschreibung ... : {0}
188     *Start .......... : {1,date,long} um {1,time,long}
189     *Ende ........... : {2,date,long} um {2,time,long}
190     *Laufzeit ....... : {3}ms</pre></blockquote>
191     * <blockquote><pre>Taskinformation:
192     *Description ... : {0}
193     *Start ......... : {1,date,long} at {1,time,long}
194     *End ........... : {2,date,long} at {2,time,long}
195     *Duration ...... : {3}ms</pre></blockquote>
196     *
197     * @param locale The locale of the message instance to return.
198     * @param taskDescription The description of the task.
199     * @param startDate The start date of the task.
200     * @param endDate The end date of the task.
201     * @param durationMillis The number of milliseconds the task ran.
202     *
203     * @return Information about a task.
204     */
205    private String getDurationInfoMessage( final Locale locale,
206            final java.lang.String taskDescription,
207            final java.util.Date startDate,
208            final java.util.Date endDate,
209            final java.lang.Number durationMillis )
210    {
211        return ContainerFactory.getContainer().
212            getMessage( this, "durationInfo", locale,
213                new Object[]
214                {
215                    taskDescription,
216                    startDate,
217                    endDate,
218                    durationMillis
219                });
220 
221    }
222 
223// </editor-fold>//GEN-END:jdtausMessages
224 
225    //----------------------------------------------------------------Messages--
226}

[all classes][org.jdtaus.core.monitor.util]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov