You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2021/08/04 06:41:16 UTC
svn commit: r1076289 [13/25] - in
/websites/production/turbine/content/fulcrum/fulcrum-cache: ./ apidocs/
apidocs/jquery/ apidocs/jquery/external/ apidocs/jquery/external/jquery/
apidocs/jquery/images/ apidocs/jquery/jszip-utils/ apidocs/jquery/jszip-u...
Added: websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/jacoco.xml
==============================================================================
--- websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/jacoco.xml (added)
+++ websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/jacoco.xml Wed Aug 4 06:41:15 2021
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="Fulcrum Cache"><sessioninfo id="CEDIS144-f5dc0ff1" start="1628059076143" dump="1628059185408"/><package name="org/apache/fulcrum/cache/impl"><class name="org/apache/fulcrum/cache/impl/DefaultGlobalCacheService" sourcefilename="DefaultGlobalCacheService.java"><method name="<init>" desc="()V" line="84"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCacheCheckFrequency" desc="()J" line="114"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getObject" desc="(Ljava/lang/String;)Lorg/apache/fulcrum/cache/Cached
Object;" line="133"><counter type="INSTRUCTION" missed="25" covered="27"/><counter type="BRANCH" missed="6" covered="6"/><counter type="LINE" missed="9" covered="8"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addObject" desc="(Ljava/lang/String;Lorg/apache/fulcrum/cache/CachedObject;)V" line="183"><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="removeObject" desc="(Ljava/lang/String;)V" line="199"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getKeys" desc="()Ljava/util/List;" line="213"><counter type="INSTRUCTION" missed="
2" covered="31"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCachedObjects" desc="()Ljava/util/List;" line="238"><counter type="INSTRUCTION" missed="2" covered="35"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed="2" covered="9"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="run" desc="()V" line="267"><counter type="INSTRUCTION" missed="1" covered="19"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="1" covered="7"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="clearCache" desc="()V" line="292"><counter type="INSTRUCTION" missed="36" covered="42"/><counter type="BRANCH" missed="6" covered="6"/><counter type="LIN
E" missed="10" covered="9"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getNumberOfObjects" desc="()I" line="333"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCacheSize" desc="()I" line="344"><counter type="INSTRUCTION" missed="21" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="flushCache" desc="()V" line="362"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="configure" desc="(Lorg/apache/avalon/framework/configuration/Configuration;)V" li
ne="372"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="initialize" desc="()V" line="384"><counter type="INSTRUCTION" missed="0" covered="24"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="dispose" desc="()V" line="402"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="87" covered="244"/><counter type="BRANCH" missed="13" covered="21"/><counter type="LINE" missed="29" covered="67"/><counter type="COMPLEXITY" missed="10" covered="22"/><counter type="METHOD" missed="1" covered="14"/><counter type="CLASS" missed
="0" covered="1"/></class><class name="org/apache/fulcrum/cache/impl/EHCacheService" sourcefilename="EHCacheService.java"><method name="<init>" desc="()V" line="91"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="configure" desc="(Lorg/apache/avalon/framework/configuration/Configuration;)V" line="102"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="initialize" desc="()V" line="114"><counter type="INSTRUCTION" missed="7" covered="46"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="1" covered="11"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name
="dispose" desc="()V" line="147"><counter type="INSTRUCTION" missed="0" covered="20"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addObject" desc="(Ljava/lang/String;Lorg/apache/fulcrum/cache/CachedObject;)V" line="162"><counter type="INSTRUCTION" missed="4" covered="26"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="1" covered="6"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="flushCache" desc="()V" line="183"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCachedObjects" desc="()Ljava/util/List;" line="192"><counter type="INSTRUCTION" missed="0" covered="31"/><counter type="BRANCH" missed
="1" covered="3"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCacheSize" desc="()I" line="214"><counter type="INSTRUCTION" missed="5" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getKeys" desc="()Ljava/util/List;" line="224"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getNumberOfObjects" desc="()I" line="234"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getObject" desc="(Ljava/lang/String
;)Lorg/apache/fulcrum/cache/CachedObject;" line="243"><counter type="INSTRUCTION" missed="41" covered="23"/><counter type="BRANCH" missed="8" covered="4"/><counter type="LINE" missed="14" covered="7"/><counter type="COMPLEXITY" missed="5" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="removeObject" desc="(Ljava/lang/String;)V" line="299"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="run" desc="()V" line="309"><counter type="INSTRUCTION" missed="24" covered="38"/><counter type="BRANCH" missed="8" covered="6"/><counter type="LINE" missed="8" covered="12"/><counter type="COMPLEXITY" missed="6" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="81" covered="229"/><counter type="BRANCH" missed="19" covered="15"/><counter type="LIN
E" missed="25" covered="64"/><counter type="COMPLEXITY" missed="15" covered="15"/><counter type="METHOD" missed="1" covered="12"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/fulcrum/cache/impl/JCSCacheService" sourcefilename="JCSCacheService.java"><method name="<init>" desc="()V" line="95"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="configure" desc="(Lorg/apache/avalon/framework/configuration/Configuration;)V" line="107"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="initialize" desc="()V" line="120"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="LINE" missed="0" covered="9"/><counte
r type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="dispose" desc="()V" line="144"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getObject" desc="(Ljava/lang/String;)Lorg/apache/fulcrum/cache/CachedObject;" line="161"><counter type="INSTRUCTION" missed="41" covered="21"/><counter type="BRANCH" missed="8" covered="4"/><counter type="LINE" missed="14" covered="6"/><counter type="COMPLEXITY" missed="5" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addObject" desc="(Ljava/lang/String;Lorg/apache/fulcrum/cache/CachedObject;)V" line="217"><counter type="INSTRUCTION" missed="38" covered="59"/><counter type="BRANCH" missed="3" covered="3"/><counter type="LINE" missed="6" covered="12"/><counter type="COMPLEXITY" missed="3" c
overed="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="removeObject" desc="(Ljava/lang/String;)V" line="259"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getKeys" desc="()Ljava/util/List;" line="268"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCachedObjects" desc="()Ljava/util/List;" line="279"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="run" desc="()V" line="299"><counter type="INSTRUCTION" mi
ssed="17" covered="44"/><counter type="BRANCH" missed="6" covered="8"/><counter type="LINE" missed="5" covered="13"/><counter type="COMPLEXITY" missed="4" covered="4"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCacheSize" desc="()I" line="348"><counter type="INSTRUCTION" missed="43" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getNumberOfObjects" desc="()I" line="373"><counter type="INSTRUCTION" missed="0" covered="25"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="flushCache" desc="()V" line="392"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COM
PLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="<clinit>" desc="()V" line="86"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="139" covered="286"/><counter type="BRANCH" missed="21" covered="21"/><counter type="LINE" missed="33" covered="75"/><counter type="COMPLEXITY" missed="16" covered="19"/><counter type="METHOD" missed="1" covered="13"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="JCSCacheService.java"><line nr="86" mi="0" ci="3" mb="0" cb="0"/><line nr="95" mi="0" ci="2" mb="0" cb="0"/><line nr="97" mi="0" ci="1" mb="0" cb="0"/><line nr="107" mi="0" ci="5" mb="0" cb="0"/><line nr="108" mi="0" ci="2" mb="0" cb="0"/><line nr="109" mi="0" ci="7" mb="0" cb="0"/><line nr="110" mi="0" ci="7" mb="0" cb="0"/><
line nr="112" mi="0" ci="1" mb="0" cb="0"/><line nr="120" mi="0" ci="3" mb="0" cb="0"/><line nr="121" mi="0" ci="5" mb="0" cb="0"/><line nr="124" mi="0" ci="3" mb="0" cb="0"/><line nr="125" mi="0" ci="6" mb="0" cb="0"/><line nr="131" mi="0" ci="4" mb="0" cb="0"/><line nr="132" mi="0" ci="4" mb="0" cb="0"/><line nr="133" mi="0" ci="3" mb="0" cb="0"/><line nr="135" mi="0" ci="4" mb="0" cb="0"/><line nr="136" mi="0" ci="1" mb="0" cb="0"/><line nr="144" mi="0" ci="3" mb="0" cb="0"/><line nr="145" mi="0" ci="3" mb="0" cb="0"/><line nr="147" mi="0" ci="3" mb="0" cb="0"/><line nr="148" mi="0" ci="3" mb="0" cb="0"/><line nr="149" mi="0" ci="2" mb="0" cb="0"/><line nr="151" mi="0" ci="4" mb="0" cb="0"/><line nr="152" mi="0" ci="1" mb="0" cb="0"/><line nr="161" mi="0" ci="7" mb="0" cb="0"/><line nr="163" mi="0" ci="2" mb="0" cb="2"/><line nr="166" mi="0" ci="4" mb="0" cb="0"/><line nr="169" mi="0" ci="3" mb="1" cb="1"/><line nr="171" mi="3" ci="0" mb="2" cb="0"/><line nr="173" mi="3" ci="0" m
b="0" cb="0"/><line nr="174" mi="3" ci="0" mb="2" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="182" mi="2" ci="0" mb="0" cb="0"/><line nr="183" mi="3" ci="0" mb="2" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="4" ci="0" mb="0" cb="0"/><line nr="189" mi="1" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="4" ci="0" mb="0" cb="0"/><line nr="198" mi="0" ci="3" mb="1" cb="1"/><line nr="201" mi="3" ci="0" mb="0" cb="0"/><line nr="202" mi="2" ci="0" mb="0" cb="0"/><line nr="205" mi="0" ci="2" mb="0" cb="0"/><line nr="217" mi="0" ci="4" mb="1" cb="1"/><line nr="219" mi="12" ci="0" mb="0" cb="0"/><line nr="220" mi="1" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="0" cb="0"/><line nr="227" mi="0" ci="5" mb="0" cb="0"/><line nr="229" mi="0" ci="3" mb="1" cb="1"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="235" mi="0" ci="3" mb="0" cb="0"/><line nr="237"
mi="0" ci="8" mb="0" cb="0"/><line nr="238" mi="0" ci="12" mb="0" cb="0"/><line nr="239" mi="1" ci="11" mb="1" cb="1"/><line nr="242" mi="0" ci="2" mb="0" cb="0"/><line nr="243" mi="0" ci="2" mb="0" cb="0"/><line nr="245" mi="0" ci="7" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="14" ci="0" mb="0" cb="0"/><line nr="250" mi="0" ci="1" mb="0" cb="0"/><line nr="251" mi="0" ci="1" mb="0" cb="0"/><line nr="259" mi="0" ci="5" mb="0" cb="0"/><line nr="260" mi="0" ci="1" mb="0" cb="0"/><line nr="268" mi="0" ci="4" mb="0" cb="0"/><line nr="269" mi="0" ci="7" mb="0" cb="0"/><line nr="270" mi="0" ci="2" mb="0" cb="0"/><line nr="279" mi="0" ci="4" mb="0" cb="0"/><line nr="280" mi="0" ci="13" mb="0" cb="2"/><line nr="282" mi="0" ci="7" mb="0" cb="0"/><line nr="283" mi="0" ci="2" mb="1" cb="1"/><line nr="285" mi="0" ci="4" mb="0" cb="0"/><line nr="287" mi="0" ci="1" mb="0" cb="0"/><line nr="289" mi="0" ci="2" mb="0" cb="0"/><line nr="299" mi="0" ci="3" mb="0" cb=
"2"/><line nr="305" mi="0" ci="3" mb="0" cb="0"/><line nr="307" mi="0" ci="1" mb="0" cb="0"/><line nr="309" mi="0" ci="3" mb="1" cb="1"/><line nr="311" mi="0" ci="1" mb="0" cb="0"/><line nr="313" mi="0" ci="1" mb="0" cb="0"/><line nr="315" mi="0" ci="13" mb="0" cb="2"/><line nr="317" mi="0" ci="7" mb="0" cb="0"/><line nr="318" mi="0" ci="2" mb="0" cb="2"/><line nr="320" mi="0" ci="4" mb="0" cb="0"/><line nr="324" mi="0" ci="3" mb="1" cb="1"/><line nr="326" mi="3" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="329" mi="6" ci="0" mb="0" cb="0"/><line nr="331" mi="3" ci="0" mb="2" cb="0"/><line nr="333" mi="2" ci="0" mb="0" cb="0"/><line nr="337" mi="0" ci="2" mb="0" cb="0"/><line nr="339" mi="0" ci="1" mb="0" cb="0"/><line nr="348" mi="4" ci="0" mb="0" cb="0"/><line nr="349" mi="5" ci="0" mb="0" cb="0"/><line nr="350" mi="5" ci="0" mb="0" cb="0"/><line nr="352" mi="10" ci="0" mb="2" cb="0"/><line nr="354" mi="7" ci="0" mb="0" cb="0"/><line nr="355" mi="1"
ci="0" mb="0" cb="0"/><line nr="357" mi="2" ci="0" mb="0" cb="0"/><line nr="364" mi="9" ci="0" mb="0" cb="0"/><line nr="373" mi="0" ci="2" mb="0" cb="0"/><line nr="375" mi="0" ci="13" mb="0" cb="2"/><line nr="377" mi="0" ci="6" mb="1" cb="1"/><line nr="379" mi="0" ci="1" mb="0" cb="0"/><line nr="381" mi="0" ci="1" mb="0" cb="0"/><line nr="383" mi="0" ci="2" mb="0" cb="0"/><line nr="392" mi="0" ci="4" mb="0" cb="0"/><line nr="393" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="139" covered="286"/><counter type="BRANCH" missed="21" covered="21"/><counter type="LINE" missed="33" covered="75"/><counter type="COMPLEXITY" missed="16" covered="19"/><counter type="METHOD" missed="1" covered="13"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="EHCacheService.java"><line nr="91" mi="0" ci="2" mb="0" cb="0"/><line nr="93" mi="0" ci="1" mb="0" cb="0"/><line nr="102" mi="0" ci="5" mb="0" cb="0"/><line nr="103" mi="0" ci="2" mb="0" cb="0"/><line nr=
"104" mi="0" ci="7" mb="0" cb="0"/><line nr="105" mi="0" ci="7" mb="0" cb="0"/><line nr="106" mi="0" ci="1" mb="0" cb="0"/><line nr="114" mi="0" ci="3" mb="1" cb="1"/><line nr="116" mi="0" ci="5" mb="0" cb="0"/><line nr="117" mi="0" ci="6" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="0" cb="0"/><line nr="124" mi="0" ci="7" mb="0" cb="0"/><line nr="127" mi="0" ci="3" mb="0" cb="0"/><line nr="128" mi="0" ci="6" mb="0" cb="0"/><line nr="134" mi="0" ci="4" mb="0" cb="0"/><line nr="135" mi="0" ci="4" mb="0" cb="0"/><line nr="136" mi="0" ci="3" mb="0" cb="0"/><line nr="138" mi="0" ci="4" mb="0" cb="0"/><line nr="139" mi="0" ci="1" mb="0" cb="0"/><line nr="147" mi="0" ci="3" mb="0" cb="0"/><line nr="148" mi="0" ci="3" mb="0" cb="0"/><line nr="150" mi="0" ci="3" mb="0" cb="0"/><line nr="151" mi="0" ci="3" mb="0" cb="0"/><line nr="152" mi="0" ci="3" mb="0" cb="0"/><line nr="153" mi="0" ci="4" mb="0" cb="0"/><line nr="154" mi="0" ci="1" mb="0" cb="0"/><line nr="162" mi="0" ci="6" mb="0" cb
="0"/><line nr="164" mi="0" ci="3" mb="1" cb="1"/><line nr="166" mi="4" ci="0" mb="0" cb="0"/><line nr="170" mi="0" ci="3" mb="0" cb="0"/><line nr="171" mi="0" ci="9" mb="0" cb="0"/><line nr="174" mi="0" ci="4" mb="0" cb="0"/><line nr="175" mi="0" ci="1" mb="0" cb="0"/><line nr="183" mi="0" ci="3" mb="0" cb="0"/><line nr="184" mi="0" ci="1" mb="0" cb="0"/><line nr="192" mi="0" ci="4" mb="0" cb="0"/><line nr="194" mi="0" ci="11" mb="0" cb="2"/><line nr="196" mi="0" ci="5" mb="0" cb="0"/><line nr="198" mi="0" ci="2" mb="1" cb="1"/><line nr="200" mi="0" ci="6" mb="0" cb="0"/><line nr="202" mi="0" ci="1" mb="0" cb="0"/><line nr="204" mi="0" ci="2" mb="0" cb="0"/><line nr="214" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="0" ci="4" mb="0" cb="0"/><line nr="225" mi="0" ci="2" mb="0" cb="0"/><line nr="234" mi="0" ci="4" mb="0" cb="0"/><line nr="243" mi="0" ci="5" mb="0" cb="0"/><line nr="245" mi="0" ci="2" mb="0" cb="2"/><line nr="248" mi="0" ci="4" mb="0" cb="0"/><line nr="252" mi="0"
ci="4" mb="0" cb="0"/><line nr="254" mi="0" ci="3" mb="1" cb="1"/><line nr="256" mi="3" ci="0" mb="2" cb="0"/><line nr="258" mi="3" ci="0" mb="0" cb="0"/><line nr="259" mi="3" ci="0" mb="2" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="4" ci="0" mb="0" cb="0"/><line nr="267" mi="2" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="2" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="4" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="3" ci="0" mb="0" cb="0"/><line nr="279" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="0" ci="3" mb="1" cb="1"/><line nr="286" mi="3" ci="0" mb="0" cb="0"/><line nr="287" mi="2" ci="0" mb="0" cb="0"/><line nr="290" mi="0" ci="2" mb="0" cb="0"/><line nr="299" mi="0" ci="5" mb="0" cb="0"/><line nr="300" mi="0" ci="1" mb="0" cb="0"/><line nr="309" mi="0" ci="3" mb="1" cb="1"/><line nr="315" mi="0" ci="3" mb="0" cb="0"/><line nr="317" mi="0" ci="1" mb="0" cb="0"/><line n
r="319" mi="0" ci="3" mb="1" cb="1"/><line nr="321" mi="0" ci="1" mb="0" cb="0"/><line nr="323" mi="0" ci="1" mb="0" cb="0"/><line nr="325" mi="0" ci="11" mb="0" cb="2"/><line nr="327" mi="0" ci="5" mb="0" cb="0"/><line nr="329" mi="0" ci="2" mb="1" cb="1"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="0" ci="3" mb="0" cb="0"/><line nr="337" mi="0" ci="3" mb="1" cb="1"/><line nr="339" mi="3" ci="0" mb="0" cb="0"/><line nr="340" mi="3" ci="0" mb="2" cb="0"/><line nr="342" mi="6" ci="0" mb="0" cb="0"/><line nr="344" mi="3" ci="0" mb="2" cb="0"/><line nr="346" mi="2" ci="0" mb="0" cb="0"/><line nr="349" mi="0" ci="2" mb="0" cb="0"/><line nr="351" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="81" covered="229"/><counter type="BRANCH" missed="19" covered="15"/><counter type="LINE" missed="25" covered="64"/><counter type="COMPLEXITY" missed="15" covered="15"/><counter type="METHOD" missed="1" covered="12"/><co
unter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="DefaultGlobalCacheService.java"><line nr="84" mi="0" ci="3" mb="0" cb="0"/><line nr="103" mi="0" ci="2" mb="0" cb="0"/><line nr="105" mi="0" ci="1" mb="0" cb="0"/><line nr="114" mi="0" ci="3" mb="0" cb="0"/><line nr="133" mi="0" ci="6" mb="0" cb="0"/><line nr="134" mi="0" ci="2" mb="0" cb="2"/><line nr="137" mi="0" ci="4" mb="0" cb="0"/><line nr="139" mi="0" ci="3" mb="0" cb="2"/><line nr="141" mi="0" ci="3" mb="1" cb="1"/><line nr="143" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="2" cb="0"/><line nr="146" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="2" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="2" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="154" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="0" ci="4" mb="0" cb="0"/><line nr="161" mi="0" ci="3" mb="1" cb="1"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="2" ci="0" mb="0" cb="0"/><line nr="16
7" mi="0" ci="2" mb="0" cb="0"/><line nr="183" mi="0" ci="5" mb="0" cb="2"/><line nr="185" mi="0" ci="5" mb="0" cb="0"/><line nr="187" mi="0" ci="6" mb="0" cb="0"/><line nr="188" mi="0" ci="1" mb="0" cb="0"/><line nr="199" mi="0" ci="5" mb="0" cb="0"/><line nr="200" mi="0" ci="1" mb="0" cb="0"/><line nr="213" mi="0" ci="7" mb="0" cb="0"/><line nr="214" mi="0" ci="12" mb="0" cb="2"/><line nr="218" mi="0" ci="4" mb="0" cb="0"/><line nr="220" mi="1" ci="0" mb="0" cb="0"/><line nr="223" mi="1" ci="0" mb="0" cb="0"/><line nr="224" mi="0" ci="1" mb="0" cb="0"/><line nr="225" mi="0" ci="4" mb="0" cb="0"/><line nr="226" mi="0" ci="1" mb="0" cb="0"/><line nr="227" mi="0" ci="2" mb="0" cb="0"/><line nr="238" mi="0" ci="7" mb="0" cb="0"/><line nr="239" mi="0" ci="12" mb="0" cb="2"/><line nr="241" mi="0" ci="2" mb="0" cb="0"/><line nr="245" mi="0" ci="4" mb="0" cb="0"/><line nr="246" mi="0" ci="2" mb="1" cb="1"/><line nr="248" mi="0" ci="4" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb=
"0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="255" mi="0" ci="1" mb="0" cb="0"/><line nr="256" mi="0" ci="1" mb="0" cb="0"/><line nr="257" mi="0" ci="2" mb="0" cb="0"/><line nr="267" mi="0" ci="3" mb="0" cb="2"/><line nr="271" mi="0" ci="4" mb="0" cb="0"/><line nr="275" mi="0" ci="4" mb="0" cb="0"/><line nr="277" mi="1" ci="0" mb="0" cb="0"/><line nr="280" mi="0" ci="1" mb="0" cb="0"/><line nr="281" mi="0" ci="3" mb="0" cb="0"/><line nr="283" mi="0" ci="3" mb="0" cb="0"/><line nr="285" mi="0" ci="1" mb="0" cb="0"/><line nr="292" mi="0" ci="5" mb="0" cb="0"/><line nr="295" mi="0" ci="12" mb="0" cb="2"/><line nr="297" mi="0" ci="6" mb="0" cb="0"/><line nr="298" mi="0" ci="3" mb="1" cb="1"/><line nr="300" mi="3" ci="0" mb="0" cb="0"/><line nr="301" mi="3" ci="0" mb="2" cb="0"/><line nr="303" mi="6" ci="0" mb="0" cb="0"/><line nr="305" mi="3" ci="0" mb="2" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="310" mi="1" ci="0" mb="0" cb="0"/><line nr="311" mi="0" c
i="3" mb="0" cb="2"/><line nr="313" mi="0" ci="5" mb="0" cb="0"/><line nr="315" mi="0" ci="1" mb="0" cb="0"/><line nr="317" mi="4" ci="6" mb="1" cb="1"/><line nr="319" mi="6" ci="0" mb="0" cb="0"/><line nr="320" mi="3" ci="0" mb="0" cb="0"/><line nr="321" mi="2" ci="0" mb="0" cb="0"/><line nr="322" mi="1" ci="0" mb="0" cb="0"/><line nr="323" mi="0" ci="1" mb="0" cb="0"/><line nr="333" mi="0" ci="4" mb="0" cb="0"/><line nr="344" mi="4" ci="0" mb="0" cb="0"/><line nr="345" mi="5" ci="0" mb="0" cb="0"/><line nr="346" mi="4" ci="0" mb="0" cb="0"/><line nr="347" mi="2" ci="0" mb="0" cb="0"/><line nr="353" mi="6" ci="0" mb="0" cb="0"/><line nr="362" mi="0" ci="3" mb="0" cb="0"/><line nr="363" mi="0" ci="1" mb="0" cb="0"/><line nr="372" mi="0" ci="6" mb="0" cb="0"/><line nr="374" mi="0" ci="6" mb="0" cb="0"/><line nr="376" mi="0" ci="1" mb="0" cb="0"/><line nr="384" mi="0" ci="7" mb="0" cb="0"/><line nr="386" mi="0" ci="3" mb="0" cb="0"/><line nr="387" mi="0" ci="6" mb="0" cb="0"/><line nr
="392" mi="0" ci="4" mb="0" cb="0"/><line nr="393" mi="0" ci="3" mb="0" cb="0"/><line nr="394" mi="0" ci="1" mb="0" cb="0"/><line nr="402" mi="0" ci="4" mb="0" cb="0"/><line nr="404" mi="0" ci="3" mb="0" cb="0"/><line nr="405" mi="0" ci="2" mb="0" cb="0"/><line nr="406" mi="0" ci="3" mb="0" cb="0"/><line nr="407" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="87" covered="244"/><counter type="BRANCH" missed="13" covered="21"/><counter type="LINE" missed="29" covered="67"/><counter type="COMPLEXITY" missed="10" covered="22"/><counter type="METHOD" missed="1" covered="14"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="307" covered="759"/><counter type="BRANCH" missed="53" covered="57"/><counter type="LINE" missed="87" covered="206"/><counter type="COMPLEXITY" missed="41" covered="56"/><counter type="METHOD" missed="3" covered="39"/><counter type="CLASS" missed="0" covered="3"/></package><package name="org/apache/fulcru
m/cache"><class name="org/apache/fulcrum/cache/RefreshableCachedObject" sourcefilename="RefreshableCachedObject.java"><method name="<init>" desc="(Lorg/apache/fulcrum/cache/Refreshable;)V" line="53"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="<init>" desc="(Lorg/apache/fulcrum/cache/Refreshable;J)V" line="53"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setTTL" desc="(J)V" line="95"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTTL" desc="()J" line="107"><
counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="touch" desc="()V" line="117"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="isUntouched" desc="()Z" line="130"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="refresh" desc="()V" line="145"><counter type="INSTRUCTION" missed="17" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></me
thod><method name="getLastAccess" desc="()J" line="155"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLastAccess" desc="(J)V" line="160"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="96" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="31" covered="0"/><counter type="COMPLEXITY" missed="10" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="org/apache/fulcrum/cache/CachedObject" sourcefilename="CachedObject.java"><method name="<init>" desc="(Ljava/lang/Object;)V" line="76"><counter type="INSTRUCTION"
missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="<init>" desc="(Ljava/lang/Object;J)V" line="54"><counter type="INSTRUCTION" missed="0" covered="30"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="9"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getContents" desc="()Ljava/lang/Object;" line="109"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCreated" desc="()J" line="119"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" c
overed="0"/></method><method name="getExpires" desc="()J" line="129"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setExpires" desc="(J)V" line="140"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setStale" desc="(Z)V" line="166"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isStale" desc="()Z" line="177"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed
="0" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="37" covered="72"/><counter type="BRANCH" missed="7" covered="5"/><counter type="LINE" missed="8" covered="20"/><counter type="COMPLEXITY" missed="6" covered="8"/><counter type="METHOD" missed="2" covered="6"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/fulcrum/cache/GlobalCacheService" sourcefilename="GlobalCacheService.java"><method name="<clinit>" desc="()V" line="35"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/><counter type="CLASS" mi
ssed="0" covered="1"/></class><class name="org/apache/fulcrum/cache/ObjectExpiredException" sourcefilename="ObjectExpiredException.java"><method name="<init>" desc="()V" line="29"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/fulcrum/cache/Refreshable" sourcefilename="Refreshable.java"/><sourcefile name="CachedObject.java"><line nr="54" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="76" mi="0" ci="4" mb="0" cb="0"/><line nr="77" mi="0" ci="1" mb="0" cb="0"/><line nr="89" mi="0" ci="2" mb="0" cb="0"/><line nr="90" mi="0"
ci="4" mb="0" cb="2"/><line nr="92" mi="0" ci="6" mb="0" cb="0"/><line nr="94" mi="0" ci="3" mb="0" cb="0"/><line nr="97" mi="0" ci="3" mb="0" cb="0"/><line nr="99" mi="0" ci="3" mb="0" cb="0"/><line nr="100" mi="0" ci="1" mb="0" cb="0"/><line nr="109" mi="0" ci="3" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="129" mi="0" ci="3" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="2" cb="0"/><line nr="142" mi="6" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="2" cb="0"/><line nr="150" mi="4" ci="0" mb="0" cb="0"/><line nr="154" mi="12" ci="0" mb="2" cb="0"/><line nr="156" mi="1" ci="0" mb="0" cb="0"/><line nr="166" mi="0" ci="4" mb="0" cb="0"/><line nr="167" mi="0" ci="1" mb="0" cb="0"/><line nr="177" mi="0" ci="2" mb="0" cb="0"/><line nr="178" mi="0" ci="5" mb="1" cb="1"/><line nr="180" mi="0" ci="13" mb="0" cb="2"/><line nr="181" mi="0" ci="4" mb="0" cb="0"/><line nr="183" mi="0" ci="2" mb="0" cb="0"/><counter
type="INSTRUCTION" missed="37" covered="72"/><counter type="BRANCH" missed="7" covered="5"/><counter type="LINE" missed="8" covered="20"/><counter type="COMPLEXITY" missed="6" covered="8"/><counter type="METHOD" missed="2" covered="6"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Refreshable.java"/><sourcefile name="GlobalCacheService.java"><line nr="35" mi="0" ci="4" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="ObjectExpiredException.java"><line nr="29" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/><counter type="CLASS" missed="0" covere
d="1"/></sourcefile><sourcefile name="RefreshableCachedObject.java"><line nr="53" mi="6" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="3" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><line nr="107" mi="4" ci="0" mb="0" cb="0"/><line nr="108" mi="5" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="8" ci="0" mb="2" cb="0"/><line nr="134" mi="2" ci="0" mb="0" cb="0"/><line nr="136" m
i="4" ci="0" mb="0" cb="0"/><line nr="145" mi="4" ci="0" mb="0" cb="0"/><line nr="146" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="3" ci="0" mb="0" cb="0"/><line nr="149" mi="2" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="155" mi="3" ci="0" mb="0" cb="0"/><line nr="160" mi="3" ci="0" mb="0" cb="0"/><line nr="161" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="96" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="31" covered="0"/><counter type="COMPLEXITY" missed="10" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="133" covered="79"/><counter type="BRANCH" missed="9" covered="5"/><counter type="LINE" missed="39" covered="22"/><counter type="COMPLEXITY" missed="16" covered="10"/><counter type="METHOD" missed="11" covered="8"/><counter type="CLAS
S" missed="1" covered="3"/></package><counter type="INSTRUCTION" missed="440" covered="838"/><counter type="BRANCH" missed="62" covered="62"/><counter type="LINE" missed="126" covered="228"/><counter type="COMPLEXITY" missed="57" covered="66"/><counter type="METHOD" missed="14" covered="47"/><counter type="CLASS" missed="1" covered="6"/></report>
\ No newline at end of file
Added: websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/org.apache.fulcrum.cache.impl/DefaultGlobalCacheService.html
==============================================================================
--- websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/org.apache.fulcrum.cache.impl/DefaultGlobalCacheService.html (added)
+++ websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/org.apache.fulcrum.cache.impl/DefaultGlobalCacheService.html Wed Aug 4 06:41:15 2021
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DefaultGlobalCacheService</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Fulcrum Cache</a> > <a href="index.html" class="el_package">org.apache.fulcrum.cache.impl</a> > <span class="el_class">DefaultGlobalCacheService</span></div><h1>DefaultGlobalCacheService</h1><table class="coverage" cellsp
acing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">87 of 331</td><td class="ctr2">73%</td><td class="bar">13 of 34</td><td class="ctr2">61%</td><td class="ctr
1">10</td><td class="ctr2">32</td><td class="ctr1">29</td><td class="ctr2">96</td><td class="ctr1">1</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a1"><a href="DefaultGlobalCacheService.java.html#L292" class="el_method">clearCache()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="55" height="10" title="36" alt="36"/><img src="../jacoco-resources/greenbar.gif" width="64" height="10" title="42" alt="42"/></td><td class="ctr2" id="c12">53%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" title="6" alt="6"/></td><td class="ctr2" id="e4">50%</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">10</td><td class="ctr2" id="i0">19</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a11"><a href="DefaultGlobalCacheService.java.html#L133" class="el_me
thod">getObject(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="38" height="10" title="25" alt="25"/><img src="../jacoco-resources/greenbar.gif" width="41" height="10" title="27" alt="27"/></td><td class="ctr2" id="c13">51%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">50%</td><td class="ctr1" id="f1">4</td><td class="ctr2" id="g1">7</td><td class="ctr1" id="h1">9</td><td class="ctr2" id="i1">17</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a8"><a href="DefaultGlobalCacheService.java.html#L344" class="el_method">getCacheSize()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="32" height="10" title="21" alt="21"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6
">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i6">5</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a7"><a href="DefaultGlobalCacheService.java.html#L238" class="el_method">getCachedObjects()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="53" height="10" title="35" alt="35"/></td><td class="ctr2" id="c10">94%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="30" height="10" title="3" alt="3"/></td><td class="ctr2" id="e3">75%</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i2">11</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a9"><a href="D
efaultGlobalCacheService.java.html#L213" class="el_method">getKeys()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="47" height="10" title="31" alt="31"/></td><td class="ctr2" id="c11">93%</td><td class="bar" id="d3"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i3">9</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a14"><a href="DefaultGlobalCacheService.java.html#L267" class="el_method">run()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="29" height="10" title="19" alt="19"/></td><td class="ctr2" id="c9">95%</td><td class="ba
r" id="d4"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i4">8</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a12"><a href="DefaultGlobalCacheService.java.html#L384" class="el_method">initialize()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="24" alt="24"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i5">6</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a0"><a href="DefaultGlobalCacheService.java.html#L183" class="el_method">addObject(String, CachedObject)</a></td><td class="bar" id="b7"><img src="../j
acoco-resources/greenbar.gif" width="26" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i8">4</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a2"><a href="DefaultGlobalCacheService.java.html#L372" class="el_method">configure(Configuration)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="13" alt="13"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i9">3</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a4"><a href="D
efaultGlobalCacheService.java.html#L402" class="el_method">dispose()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="13" alt="13"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i7">5</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a3"><a href="DefaultGlobalCacheService.java.html#L84" class="el_method">DefaultGlobalCacheService()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="6" alt="6"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i10">3</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k10">1</td
></tr><tr><td id="a13"><a href="DefaultGlobalCacheService.java.html#L199" class="el_method">removeObject(String)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="6" alt="6"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a10"><a href="DefaultGlobalCacheService.java.html#L333" class="el_method">getNumberOfObjects()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i13">1</td><td class="ctr1" i
d="j12">0</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a5"><a href="DefaultGlobalCacheService.java.html#L362" class="el_method">flushCache()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a6"><a href="DefaultGlobalCacheService.java.html#L114" class="el_method">getCacheCheckFrequency()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">0</td><td class="
ctr2" id="i14">1</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.6.202009150832</span></div></body></html>
\ No newline at end of file
Added: websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/org.apache.fulcrum.cache.impl/DefaultGlobalCacheService.java.html
==============================================================================
--- websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/org.apache.fulcrum.cache.impl/DefaultGlobalCacheService.java.html (added)
+++ websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/org.apache.fulcrum.cache.impl/DefaultGlobalCacheService.java.html Wed Aug 4 06:41:15 2021
@@ -0,0 +1,409 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DefaultGlobalCacheService.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Fulcrum Cache</a> > <a href="index.source.html" class="el_package">org.apache.fulcrum.cache.impl</a> > <span class="el_so
urce">DefaultGlobalCacheService.java</span></div><h1>DefaultGlobalCacheService.java</h1><pre class="source lang-java linenums">package org.apache.fulcrum.cache.impl;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.fulcrum.cache.CachedObject;
+import org.apache.fulcrum.cache.GlobalCacheService;
+import org.apache.fulcrum.cache.ObjectExpiredException;
+import org.apache.fulcrum.cache.RefreshableCachedObject;
+
+/**
+ * This Service functions as a Global Cache. A global cache is a good place to
+ * store items that you may need to access often but don't necessarily need (or
+ * want) to fetch from the database everytime. A good example would be a look up
+ * table of States that you store in a database and use throughout your
+ * application. Since information about States doesn't change very often, you
+ * could store this information in the Global Cache and decrease the overhead of
+ * hitting the database everytime you need State information.
+ *
+ * @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
+ * @author <a href="mailto:jon@clearink.com">Jon S. Stevens</a>
+ * @author <a href="mailto:john@zenplex.com">John Thorhauer</a>
+ * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
+ * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
+ * @author <a href="mailto:peter@courefreshableCachedObjectux.biz">Peter CourefreshableCachedObjectux</a>
+ * @version $Id: DefaultGlobalCacheService.java 1890338 2021-05-31 10:31:19Z gk $
+ */
+public class DefaultGlobalCacheService extends AbstractLogEnabled implements
+ GlobalCacheService, Runnable, Configurable, Initializable, Disposable,
+ ThreadSafe
+{
+ /**
+ * Initial size of hash table Value must be &gt; 0. Default = 20
+ */
+ public static final int DEFAULT_INITIAL_CACHE_SIZE = 20;
+
+ /**
+ * The property for the InitalCacheSize
+ */
+ public static final String INITIAL_CACHE_SIZE = "cacheInitialSize";
+
+ /**
+ * The property for the Cache check frequency
+ */
+ public static final String CACHE_CHECK_FREQUENCY = "cacheCheckFrequency";
+
+ /**
+ * Cache check frequency in Millis (1000 Millis = 1 second). Value must be &gt;
+ * 0. Default = 5 seconds
+ */
+ public static final long DEFAULT_CACHE_CHECK_FREQUENCY = 5000; // 5 seconds
+
+ /** The cache. */
+<span class="fc" id="L84"> protected transient ConcurrentHashMap<String, CachedObject<?>> cache = null;</span>
+
+ /**
+ * cacheCheckFrequency (default - 5 seconds)
+ */
+ private transient long cacheCheckFrequency;
+
+ /**
+ * cacheInitialSize (default - 20)
+ */
+ private transient int cacheInitialSize;
+
+ /** thread for removing stale items from the cache */
+ private transient Thread houseKeepingThread;
+
+ /** flag to stop the housekeeping thread when the component is disposed. */
+ private transient boolean continueThread;
+
+ public DefaultGlobalCacheService()
+<span class="fc" id="L103"> {</span>
+
+<span class="fc" id="L105"> }</span>
+
+ /**
+ * Get the Cache Check Frequency in milliseconds
+ *
+ * @return the time between two cache check runs in milliseconds
+ */
+ public long getCacheCheckFrequency()
+ {
+<span class="fc" id="L114"> return this.cacheCheckFrequency;</span>
+ }
+
+ /**
+ * Returns an item from the cache. /** Returns an item from the cache.
+ * RefreshableCachedObject will be refreshed if it is expired and not
+ * untouched.
+ *
+ * @param objectId
+ * The key of the stored object.
+ * @return The object from the cache.
+ * @throws ObjectExpiredException
+ * when either the object is not in the cache or it has
+ * expired.
+ */
+ @Override
+ public <T> CachedObject<T> getObject(String objectId) throws ObjectExpiredException
+ {
+ @SuppressWarnings("unchecked")
+<span class="fc" id="L133"> final CachedObject<T> cachedObject = (CachedObject<T>) this.cache.get(objectId);</span>
+<span class="fc bfc" id="L134" title="All 2 branches covered."> if (cachedObject == null)</span>
+ {
+ // Not in the cache.
+<span class="fc" id="L137"> throw new ObjectExpiredException();</span>
+ }
+<span class="fc bfc" id="L139" title="All 2 branches covered."> if (cachedObject.isStale())</span>
+ {
+<span class="pc bpc" id="L141" title="1 of 2 branches missed."> if (cachedObject instanceof RefreshableCachedObject)</span>
+ {
+<span class="nc" id="L143"> RefreshableCachedObject<?> refreshableCachedObj = (RefreshableCachedObject<?>) cachedObject;</span>
+<span class="nc bnc" id="L144" title="All 2 branches missed."> if (refreshableCachedObj.isUntouched())</span>
+ {
+<span class="nc" id="L146"> throw new ObjectExpiredException();</span>
+ }
+ // Refresh Object
+<span class="nc" id="L149"> refreshableCachedObj.refresh();</span>
+<span class="nc bnc" id="L150" title="All 2 branches missed."> if (refreshableCachedObj.isStale())</span>
+ {
+<span class="nc" id="L152"> throw new ObjectExpiredException();</span>
+ }
+<span class="nc" id="L154"> }</span>
+ else
+ {
+ // Expired.
+<span class="fc" id="L158"> throw new ObjectExpiredException();</span>
+ }
+ }
+<span class="pc bpc" id="L161" title="1 of 2 branches missed."> if (cachedObject instanceof RefreshableCachedObject)</span>
+ {
+ // notify it that it's being accessed.
+<span class="nc" id="L164"> RefreshableCachedObject<?> refreshableCachedObj = (RefreshableCachedObject<?>) cachedObject;</span>
+<span class="nc" id="L165"> refreshableCachedObj.touch();</span>
+ }
+<span class="fc" id="L167"> return cachedObject;</span>
+ }
+
+ /**
+ * Adds an object to the cache.
+ *
+ * @param objectId
+ * The key to store the object by.
+ * @param object
+ * The object to cache.
+ */
+ @Override
+ public <T> void addObject(final String objectId, final CachedObject<T> object)
+ {
+ // If the cache already contains the key, remove it and add
+ // the fresh one.
+<span class="fc bfc" id="L183" title="All 2 branches covered."> if (this.cache.containsKey(objectId))</span>
+ {
+<span class="fc" id="L185"> this.cache.remove(objectId);</span>
+ }
+<span class="fc" id="L187"> this.cache.put(objectId, object);</span>
+<span class="fc" id="L188"> }</span>
+
+ /**
+ * Removes an object from the cache.
+ *
+ * @param objectId
+ * The String id for the object.
+ */
+ @Override
+ public void removeObject(String objectId)
+ {
+<span class="fc" id="L199"> this.cache.remove(objectId);</span>
+<span class="fc" id="L200"> }</span>
+
+ /**
+ * Returns a copy of keys to objects in the cache as a list.
+ *
+ * Note that keys to expired objects are not returned.
+ *
+ * @return A List of <code>String</code>'s representing the keys to
+ * objects in the cache.
+ */
+ @Override
+ public List<String> getKeys()
+ {
+<span class="fc" id="L213"> ArrayList<String> keys = new ArrayList<>(this.cache.size());</span>
+<span class="fc bfc" id="L214" title="All 2 branches covered."> for (String key : this.cache.keySet())</span>
+ {
+ try
+ {
+<span class="fc" id="L218"> getObject(key);</span>
+ }
+<span class="nc" id="L220"> catch (ObjectExpiredException oee)</span>
+ {
+ // this is OK we just do not want this key
+<span class="nc" id="L223"> continue;</span>
+<span class="fc" id="L224"> }</span>
+<span class="fc" id="L225"> keys.add(key);</span>
+<span class="fc" id="L226"> }</span>
+<span class="fc" id="L227"> return keys;</span>
+ }
+
+ /**
+ * Returns a copy of the non-expired CachedObjects in the cache as a list.
+ *
+ * @return A List of <code>CachedObject</code> objects held in the cache
+ */
+ @Override
+ public List<CachedObject<?>> getCachedObjects()
+ {
+<span class="fc" id="L238"> final ArrayList<CachedObject<?>> objects = new ArrayList<>(this.cache.size());</span>
+<span class="fc bfc" id="L239" title="All 2 branches covered."> for (String key : this.cache.keySet())</span>
+ {
+<span class="fc" id="L241"> CachedObject<?> cachedObject = null;</span>
+ try
+ {
+ // only add non-null objects
+<span class="fc" id="L245"> cachedObject = getObject(key);</span>
+<span class="pc bpc" id="L246" title="1 of 2 branches missed."> if ( cachedObject != null )</span>
+ {
+<span class="fc" id="L248"> objects.add(cachedObject);</span>
+ }
+ }
+<span class="nc" id="L251"> catch (ObjectExpiredException oee)</span>
+ {
+ // this is OK we just do not want this object
+<span class="nc" id="L254"> continue;</span>
+<span class="fc" id="L255"> }</span>
+<span class="fc" id="L256"> }</span>
+<span class="fc" id="L257"> return objects;</span>
+ }
+
+ /**
+ * Circle through the cache and remove stale objects. Frequency is
+ * determined by the cacheCheckFrequency property.
+ */
+ @Override
+ public void run()
+ {
+<span class="fc bfc" id="L267" title="All 2 branches covered."> while (this.continueThread)</span>
+ {
+ // Sleep for amount of time set in cacheCheckFrequency -
+ // default = 5 seconds.
+<span class="fc" id="L271"> synchronized (this)</span>
+ {
+ try
+ {
+<span class="fc" id="L275"> wait(this.cacheCheckFrequency);</span>
+ }
+<span class="nc" id="L277"> catch (InterruptedException exc)</span>
+ {
+ // to be expected
+<span class="fc" id="L280"> }</span>
+<span class="fc" id="L281"> }</span>
+
+<span class="fc" id="L283"> clearCache();</span>
+ }
+<span class="fc" id="L285"> }</span>
+
+ /**
+ * Iterate through the cache and remove or refresh stale objects.
+ */
+ public void clearCache()
+ {
+<span class="fc" id="L292"> List<String> refreshThese = new ArrayList<>(20);</span>
+ // Sync on this object so that other threads do not
+ // change the Hashtable while enumerating over it.
+<span class="fc bfc" id="L295" title="All 2 branches covered."> for (String key : this.cache.keySet())</span>
+ {
+<span class="fc" id="L297"> final CachedObject<?> cachedObject = this.cache.get(key);</span>
+<span class="pc bpc" id="L298" title="1 of 2 branches missed."> if (cachedObject instanceof RefreshableCachedObject)</span>
+ {
+<span class="nc" id="L300"> RefreshableCachedObject<?> refreshableObject = (RefreshableCachedObject<?>) cachedObject;</span>
+<span class="nc bnc" id="L301" title="All 2 branches missed."> if (refreshableObject.isUntouched())</span>
+ {
+<span class="nc" id="L303"> this.cache.remove(key);</span>
+ }
+<span class="nc bnc" id="L305" title="All 2 branches missed."> else if (refreshableObject.isStale())</span>
+ {
+ // to prolong holding the lock on this object
+<span class="nc" id="L308"> refreshThese.add(key);</span>
+ }
+<span class="nc" id="L310"> }</span>
+<span class="fc bfc" id="L311" title="All 2 branches covered."> else if (cachedObject.isStale())</span>
+ {
+<span class="fc" id="L313"> this.cache.remove(key);</span>
+ }
+<span class="fc" id="L315"> }</span>
+
+<span class="pc bpc" id="L317" title="1 of 2 branches missed."> for (String key : refreshThese)</span>
+ {
+<span class="nc" id="L319"> CachedObject<?> cachedObject = this.cache.get(key);</span>
+<span class="nc" id="L320"> RefreshableCachedObject<?> refreshableCachedObject = (RefreshableCachedObject<?>) cachedObject;</span>
+<span class="nc" id="L321"> refreshableCachedObject.refresh();</span>
+<span class="nc" id="L322"> }</span>
+<span class="fc" id="L323"> }</span>
+
+ /**
+ * Returns the number of objects currently stored in the cache
+ *
+ * @return int number of object in the cache
+ */
+ @Override
+ public int getNumberOfObjects()
+ {
+<span class="fc" id="L333"> return this.cache.size();</span>
+ }
+
+ /**
+ * Returns the current size of the cache.
+ *
+ * @return int representing current cache size in number of bytes
+ */
+ @Override
+ public int getCacheSize() throws IOException
+ {
+<span class="nc" id="L344"> final ByteArrayOutputStream baos = new ByteArrayOutputStream();</span>
+<span class="nc" id="L345"> final ObjectOutputStream out = new ObjectOutputStream(baos);</span>
+<span class="nc" id="L346"> out.writeObject(this.cache);</span>
+<span class="nc" id="L347"> out.flush();</span>
+ //
+ // Subtract 4 bytes from the length, because the serialization
+ // magic number (2 bytes) and version number (2 bytes) are
+ // both written to the stream before the object
+ //
+<span class="nc" id="L353"> return baos.toByteArray().length - 4;</span>
+ }
+
+ /**
+ * Flush the cache of all objects.
+ */
+ @Override
+ public void flushCache()
+ {
+<span class="fc" id="L362"> this.cache.clear();</span>
+<span class="fc" id="L363"> }</span>
+
+ // ---------------- Avalon Lifecycle Methods ---------------------
+ /**
+ * Avalon component lifecycle method
+ */
+ @Override
+ public void configure(Configuration conf) throws ConfigurationException
+ {
+<span class="fc" id="L372"> this.cacheCheckFrequency = conf.getAttributeAsLong(</span>
+ CACHE_CHECK_FREQUENCY, DEFAULT_CACHE_CHECK_FREQUENCY);
+<span class="fc" id="L374"> this.cacheInitialSize = conf.getAttributeAsInteger(INITIAL_CACHE_SIZE,</span>
+ DEFAULT_INITIAL_CACHE_SIZE);
+<span class="fc" id="L376"> }</span>
+
+ /**
+ * Avalon component lifecycle method
+ */
+ @Override
+ public void initialize() throws Exception
+ {
+<span class="fc" id="L384"> this.cache = new ConcurrentHashMap<>(this.cacheInitialSize);</span>
+ // Start housekeeping thread.
+<span class="fc" id="L386"> this.continueThread = true;</span>
+<span class="fc" id="L387"> this.houseKeepingThread = new Thread(this);</span>
+ // Indicate that this is a system thread. JVM will quit only when
+ // there are no more active user threads. Settings threads spawned
+ // internally by Turbine as daemons allows commandline applications
+ // using Turbine to terminate in an orderly manner.
+<span class="fc" id="L392"> this.houseKeepingThread.setDaemon(true);</span>
+<span class="fc" id="L393"> this.houseKeepingThread.start();</span>
+<span class="fc" id="L394"> }</span>
+
+ /**
+ * Avalon component lifecycle method
+ */
+ @Override
+ public void dispose()
+ {
+<span class="fc" id="L402"> synchronized (this)</span>
+ {
+<span class="fc" id="L404"> this.continueThread = false;</span>
+<span class="fc" id="L405"> notifyAll();</span>
+<span class="fc" id="L406"> }</span>
+<span class="fc" id="L407"> }</span>
+}
+</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.6.202009150832</span></div></body></html>
\ No newline at end of file
Added: websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/org.apache.fulcrum.cache.impl/EHCacheService.html
==============================================================================
--- websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/org.apache.fulcrum.cache.impl/EHCacheService.html (added)
+++ websites/production/turbine/content/fulcrum/fulcrum-cache/jacoco/org.apache.fulcrum.cache.impl/EHCacheService.html Wed Aug 4 06:41:15 2021
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EHCacheService</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Fulcrum Cache</a> > <a href="index.html" class="el_package">org.apache.fulcrum.cache.impl</a> > <span class="el_class">EHCacheService</span></div><h1>EHCacheService</h1><table class="coverage" cellspacing="0" id="coveragetable"><the
ad><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">81 of 310</td><td class="ctr2">73%</td><td class="bar">19 of 34</td><td class="ctr2">44%</td><td class="ctr1">15</td><td class="ctr2">30</td
><td class="ctr1">25</td><td class="ctr2">89</td><td class="ctr1">1</td><td class="ctr2">13</td></tr></tfoot><tbody><tr><td id="a9"><a href="EHCacheService.java.html#L243" class="el_method">getObject(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="76" height="10" title="41" alt="41"/><img src="../jacoco-resources/greenbar.gif" width="43" height="10" title="23" alt="23"/></td><td class="ctr2" id="c11">35%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e4">33%</td><td class="ctr1" id="f1">5</td><td class="ctr2" id="g1">7</td><td class="ctr1" id="h0">14</td><td class="ctr2" id="i0">21</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a12"><a href="EHCacheService.java.html#L309" class="el_method">run()</a></td><td class="bar" id="b1"><img s
rc="../jacoco-resources/redbar.gif" width="45" height="10" title="24" alt="24"/><img src="../jacoco-resources/greenbar.gif" width="71" height="10" title="38" alt="38"/></td><td class="ctr2" id="c10">61%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="51" height="10" title="6" alt="6"/></td><td class="ctr2" id="e3">42%</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">8</td><td class="ctr1" id="h1">8</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a10"><a href="EHCacheService.java.html#L114" class="el_method">initialize()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="7" alt="7"/><img src="../jacoco-resources/greenbar.gif" width="86" height="10" title="46" alt="46"/></td><td class="ctr2" id="c8">86%</td><td class="bar" id="d3"><img src="..
/jacoco-resources/redbar.gif" width="8" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="1" alt="1"/></td><td class="ctr2" id="e1">50%</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">12</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="EHCacheService.java.html#L214" class="el_method">getCacheSize()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i11">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="EHCacheService.java.html#L162" class="el_method">addObject(String, CachedObject)</a></td><td c
lass="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="48" height="10" title="26" alt="26"/></td><td class="ctr2" id="c9">86%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="1" alt="1"/></td><td class="ctr2" id="e2">50%</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="EHCacheService.java.html#L192" class="el_method">getCachedObjects()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="58" height="10" title="31" alt="31"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="1
" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="3" alt="3"/></td><td class="ctr2" id="e0">75%</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="EHCacheService.java.html#L102" class="el_method">configure(Configuration)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="41" height="10" title="22" alt="22"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i6">5</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a2"><a href="EHCacheService.java.html#L147" class="el_method">dispose()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" widt
h="37" height="10" title="20" alt="20"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i5">7</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a7"><a href="EHCacheService.java.html#L224" class="el_method">getKeys()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="11" height="10" title="6" alt="6"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a11"><a href="EHCacheService.java.html#L299" class="el_method">removeObject(String)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="
11" height="10" title="6" alt="6"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a4"><a href="EHCacheService.java.html#L183" class="el_method">flushCache()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a8"><a href="EHCacheService.java.html#L234" class="el_method">getNumberOfObjects()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" wi
dth="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a3"><a href="EHCacheService.java.html#L91" class="el_method">EHCacheService()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k12">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.6.202009150832</span></div></body><
/html>
\ No newline at end of file