* Resolves #643, test cases failed due to presence of global state in CallsCount. Because AppTest was executed before B2BServiceTest, it scheduled 1 sec timer using ThrottleTimerImpl class. While resetting it used that global CallCount class reset() method, which reset all counters. So that causes thread safety issue because of unintended sharing of application state between test cases, which is not a good practice. * Updated class diagram png and added UCLS file
88 lines
5.2 KiB
XML
88 lines
5.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<class-diagram version="1.2.2" icons="true" always-add-relationships="false" generalizations="true" realizations="true"
|
|
associations="true" dependencies="false" nesting-relationships="true" router="FAN">
|
|
<class id="1" language="java" name="com.iluwatar.throttling.CallsCount" project="throttling"
|
|
file="/throttling/src/main/java/com/iluwatar/throttling/CallsCount.java" binary="false" corner="BOTTOM_RIGHT">
|
|
<position height="211" width="256" x="656" y="228"/>
|
|
<display autosize="false" stereotype="true" package="true" initial-value="false" signature="true"
|
|
sort-features="false" accessors="true" visibility="true">
|
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
|
</display>
|
|
</class>
|
|
<class id="2" language="java" name="com.iluwatar.throttling.Tenant" project="throttling"
|
|
file="/throttling/src/main/java/com/iluwatar/throttling/Tenant.java" binary="false" corner="BOTTOM_RIGHT">
|
|
<position height="-1" width="-1" x="465" y="524"/>
|
|
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
|
sort-features="false" accessors="true" visibility="true">
|
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
|
</display>
|
|
</class>
|
|
<class id="3" language="java" name="com.iluwatar.throttling.B2BService" project="throttling"
|
|
file="/throttling/src/main/java/com/iluwatar/throttling/B2BService.java" binary="false" corner="BOTTOM_RIGHT">
|
|
<position height="-1" width="-1" x="464" y="192"/>
|
|
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
|
sort-features="false" accessors="true" visibility="true">
|
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
|
</display>
|
|
</class>
|
|
<interface id="4" language="java" name="com.iluwatar.throttling.timer.Throttler" project="throttling"
|
|
file="/throttling/src/main/java/com/iluwatar/throttling/timer/Throttler.java" binary="false" corner="BOTTOM_RIGHT">
|
|
<position height="-1" width="-1" x="167" y="174"/>
|
|
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
|
sort-features="false" accessors="true" visibility="true">
|
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
|
</display>
|
|
</interface>
|
|
<class id="5" language="java" name="com.iluwatar.throttling.timer.ThrottleTimerImpl" project="throttling"
|
|
file="/throttling/src/main/java/com/iluwatar/throttling/timer/ThrottleTimerImpl.java" binary="false"
|
|
corner="BOTTOM_RIGHT">
|
|
<position height="-1" width="-1" x="166" y="396"/>
|
|
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
|
sort-features="false" accessors="true" visibility="true">
|
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
|
</display>
|
|
</class>
|
|
<association id="6">
|
|
<end type="SOURCE" refId="3" navigable="false">
|
|
<attribute id="7" name="callsCount"/>
|
|
<multiplicity id="8" minimum="0" maximum="1"/>
|
|
</end>
|
|
<end type="TARGET" refId="1" navigable="true"/>
|
|
<display labels="true" multiplicity="true"/>
|
|
</association>
|
|
<dependency id="9">
|
|
<end type="SOURCE" refId="3"/>
|
|
<end type="TARGET" refId="4"/>
|
|
</dependency>
|
|
<dependency id="10">
|
|
<end type="SOURCE" refId="3"/>
|
|
<end type="TARGET" refId="2"/>
|
|
</dependency>
|
|
<association id="11">
|
|
<end type="SOURCE" refId="5" navigable="false">
|
|
<attribute id="12" name="callsCount"/>
|
|
<multiplicity id="13" minimum="0" maximum="1"/>
|
|
</end>
|
|
<end type="TARGET" refId="1" navigable="true"/>
|
|
<display labels="true" multiplicity="true"/>
|
|
</association>
|
|
<dependency id="14">
|
|
<end type="SOURCE" refId="2"/>
|
|
<end type="TARGET" refId="1"/>
|
|
</dependency>
|
|
<realization id="15">
|
|
<end type="SOURCE" refId="5"/>
|
|
<end type="TARGET" refId="4"/>
|
|
</realization>
|
|
<classifier-display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
|
sort-features="false" accessors="true" visibility="true">
|
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
|
</classifier-display>
|
|
<association-display labels="true" multiplicity="true"/>
|
|
</class-diagram> |