Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
net.anyflow.lannister | 10 | 9 | 1 | 8 | 22 | 10.0% | 73.0% | 17.0% | 1 |
net.anyflow.lannister.client | 6 | 5 | 1 | 0 | 18 | 17.0% | 100.0% | 17.0% | 1 |
net.anyflow.lannister.cluster | 18 | 16 | 2 | 5 | 15 | 11.0% | 75.0% | 14.0% | 1 |
net.anyflow.lannister.http | 18 | 14 | 4 | 4 | 27 | 22.0% | 87.0% | 9.0% | 1 |
net.anyflow.lannister.httphandler | 1 | 1 | 0 | 0 | 3 | 0.0% | 100.0% | 0.0% | 1 |
net.anyflow.lannister.httphandler.admin | 1 | 1 | 0 | 0 | 3 | 0.0% | 100.0% | 0.0% | 1 |
net.anyflow.lannister.httphandler.api | 3 | 3 | 0 | 0 | 12 | 0.0% | 100.0% | 0.0% | 1 |
net.anyflow.lannister.message | 9 | 8 | 1 | 6 | 16 | 11.0% | 73.0% | 16.0% | 1 |
net.anyflow.lannister.packetreceiver | 14 | 14 | 0 | 2 | 12 | 0.0% | 86.0% | 14.0% | 1 |
net.anyflow.lannister.plugin | 8 | 8 | 0 | 6 | 2 | 0.0% | 25.0% | 75.0% | 1 |
net.anyflow.lannister.serialization | 4 | 4 | 0 | 3 | 12 | 0.0% | 80.0% | 20.0% | 1 |
net.anyflow.lannister.server | 5 | 5 | 0 | 1 | 19 | 0.0% | 95.0% | 5.0% | 1 |
net.anyflow.lannister.session | 3 | 3 | 0 | 3 | 12 | 0.0% | 80.0% | 20.0% | 1 |
net.anyflow.lannister.topic | 6 | 6 | 0 | 3 | 12 | 0.0% | 80.0% | 20.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
8 | 22 | 10.0% | 73.0% | 17.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.anyflow.lannister.Statistics$SysValue |
net.anyflow.lannister.AbnormalDisconnectEventArgs net.anyflow.lannister.Application net.anyflow.lannister.Application$1 net.anyflow.lannister.Literals net.anyflow.lannister.NettyUtil net.anyflow.lannister.Settings net.anyflow.lannister.Statistics$1 net.anyflow.lannister.Statistics$Criterion net.anyflow.lannister.Statistics$RawSysValue |
net.anyflow.lannister.client net.anyflow.lannister.cluster net.anyflow.lannister.http net.anyflow.lannister.httphandler.api net.anyflow.lannister.message net.anyflow.lannister.serialization net.anyflow.lannister.server net.anyflow.lannister.topic |
com.fasterxml.jackson.databind com.google.common.base com.google.common.collect io.netty.buffer io.netty.channel io.netty.channel.epoll io.netty.channel.nio io.netty.handler.ssl.util io.netty.util.concurrent java.io java.lang java.security.cert java.text java.util java.util.concurrent net.anyflow.lannister.cluster net.anyflow.lannister.http net.anyflow.lannister.plugin net.anyflow.lannister.server net.anyflow.lannister.topic org.apache.log4j.xml org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 18 | 17.0% | 100.0% | 17.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.anyflow.lannister.client.MessageReceiver |
net.anyflow.lannister.client.MqttClient net.anyflow.lannister.client.MqttClient$1 net.anyflow.lannister.client.MqttPacketReceiver net.anyflow.lannister.client.MqttPacketReceiver$1 net.anyflow.lannister.client.SharedObject |
None | io.netty.bootstrap io.netty.channel io.netty.channel.epoll io.netty.channel.nio io.netty.channel.socket io.netty.channel.socket.nio io.netty.handler.codec.mqtt io.netty.handler.ssl io.netty.handler.ssl.util io.netty.util.concurrent java.lang java.net javax.net.ssl net.anyflow.lannister net.anyflow.lannister.message net.anyflow.lannister.packetreceiver net.anyflow.lannister.plugin org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
5 | 15 | 11.0% | 75.0% | 14.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.anyflow.lannister.cluster.Map net.anyflow.lannister.cluster.Set |
net.anyflow.lannister.cluster.ClusterDataDisposer net.anyflow.lannister.cluster.ClusterDataDisposer$1 net.anyflow.lannister.cluster.ClusterDataFactory net.anyflow.lannister.cluster.ClusterDataFactory$1 net.anyflow.lannister.cluster.Hazelcast net.anyflow.lannister.cluster.HazelcastMap net.anyflow.lannister.cluster.HazelcastSet net.anyflow.lannister.cluster.HazelcastSetValueMap net.anyflow.lannister.cluster.Ignite net.anyflow.lannister.cluster.Mode net.anyflow.lannister.cluster.NativeMap net.anyflow.lannister.cluster.NativeSet net.anyflow.lannister.cluster.NativeSetValueMap net.anyflow.lannister.cluster.SerializableIntegerSet net.anyflow.lannister.cluster.SerializableStringSet net.anyflow.lannister.cluster.SingleIdGenerator |
net.anyflow.lannister net.anyflow.lannister.httphandler.api net.anyflow.lannister.message net.anyflow.lannister.serialization net.anyflow.lannister.session |
com.fasterxml.jackson.databind com.google.common.collect com.hazelcast.config com.hazelcast.core com.hazelcast.nio com.hazelcast.nio.serialization java.io java.lang java.util java.util.concurrent.locks java.util.stream net.anyflow.lannister net.anyflow.lannister.serialization org.apache.ignite org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
4 | 27 | 22.0% | 87.0% | 9.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.anyflow.lannister.http.HttpRequestHandler$Handles net.anyflow.lannister.http.IHttpClient net.anyflow.lannister.http.MessageReceiver net.anyflow.lannister.http.WebsocketFrameHandler |
net.anyflow.lannister.http.HtmlGenerator net.anyflow.lannister.http.HttpClient net.anyflow.lannister.http.HttpClient$1 net.anyflow.lannister.http.HttpClient$2 net.anyflow.lannister.http.HttpClientHandler net.anyflow.lannister.http.HttpConstants net.anyflow.lannister.http.HttpConstants$HeaderValues net.anyflow.lannister.http.HttpRequest net.anyflow.lannister.http.HttpRequestHandler$1 net.anyflow.lannister.http.HttpRequestHandler$MatchedCriterion net.anyflow.lannister.http.HttpRequestHandler$ReturnWrapper net.anyflow.lannister.http.HttpResponse net.anyflow.lannister.http.WebServer net.anyflow.lannister.http.WebServerChannelInitializer |
net.anyflow.lannister net.anyflow.lannister.httphandler net.anyflow.lannister.httphandler.admin net.anyflow.lannister.httphandler.api |
com.google.common.base com.google.common.collect io.netty.bootstrap io.netty.buffer io.netty.channel io.netty.channel.epoll io.netty.channel.nio io.netty.channel.socket io.netty.channel.socket.nio io.netty.handler.codec io.netty.handler.codec.http io.netty.handler.codec.http.cookie io.netty.handler.codec.http.websocketx io.netty.handler.logging io.netty.handler.ssl io.netty.handler.ssl.util io.netty.util io.netty.util.concurrent java.io java.lang java.lang.annotation java.net java.util javax.net.ssl net.anyflow.lannister org.slf4j org.w3c.tidy |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 3 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.anyflow.lannister.httphandler.Index |
None | java.lang net.anyflow.lannister.http org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 3 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.anyflow.lannister.httphandler.admin.Index |
None | java.lang net.anyflow.lannister.http org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 12 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.anyflow.lannister.httphandler.api.Clients net.anyflow.lannister.httphandler.api.MessageReferenceCounts net.anyflow.lannister.httphandler.api.Statistics |
None | com.fasterxml.jackson.core com.fasterxml.jackson.databind com.google.common.base com.hazelcast.core io.netty.handler.codec.http java.lang net.anyflow.lannister net.anyflow.lannister.cluster net.anyflow.lannister.http net.anyflow.lannister.message net.anyflow.lannister.session org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
6 | 16 | 11.0% | 73.0% | 16.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
net.anyflow.lannister.message.MessageStatus |
net.anyflow.lannister.message.ConnectOptions net.anyflow.lannister.message.InboundMessageStatus net.anyflow.lannister.message.InboundMessageStatus$Status net.anyflow.lannister.message.InboundMessageStatuses net.anyflow.lannister.message.Message net.anyflow.lannister.message.Messages net.anyflow.lannister.message.OutboundMessageStatus net.anyflow.lannister.message.OutboundMessageStatus$Status |
net.anyflow.lannister.client net.anyflow.lannister.httphandler.api net.anyflow.lannister.packetreceiver net.anyflow.lannister.serialization net.anyflow.lannister.session net.anyflow.lannister.topic |
com.fasterxml.jackson.annotation com.google.common.collect com.hazelcast.nio com.hazelcast.nio.serialization io.netty.handler.codec.mqtt io.netty.util io.netty.util.internal java.io java.lang java.util java.util.concurrent.locks net.anyflow.lannister net.anyflow.lannister.cluster net.anyflow.lannister.plugin net.anyflow.lannister.serialization org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 12 | 0.0% | 86.0% | 14.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.anyflow.lannister.packetreceiver.ConnectReceiver$1 net.anyflow.lannister.packetreceiver.ConnectReceiver$2 net.anyflow.lannister.packetreceiver.DisconnectReceiver net.anyflow.lannister.packetreceiver.GenericReceiver$1 net.anyflow.lannister.packetreceiver.MqttMessageFactory net.anyflow.lannister.packetreceiver.PingReqReceiver net.anyflow.lannister.packetreceiver.PubAckReceiver$1 net.anyflow.lannister.packetreceiver.PubCompReceiver net.anyflow.lannister.packetreceiver.PubRecReceiver$1 net.anyflow.lannister.packetreceiver.PublishReceiver$1 net.anyflow.lannister.packetreceiver.PublishReceiver$2 net.anyflow.lannister.packetreceiver.SubscribeReceiver$1 net.anyflow.lannister.packetreceiver.SubscribeReceiver$2 net.anyflow.lannister.packetreceiver.UnsubscribeReceiver$1 |
net.anyflow.lannister.client net.anyflow.lannister.server |
com.google.common.base com.google.common.collect io.netty.buffer io.netty.channel io.netty.handler.codec.mqtt io.netty.util java.lang java.util net.anyflow.lannister.message net.anyflow.lannister.plugin net.anyflow.lannister.session org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
6 | 2 | 0.0% | 25.0% | 75.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.anyflow.lannister.plugin.DefaultAuthenticator net.anyflow.lannister.plugin.DefaultAuthorizer net.anyflow.lannister.plugin.DefaultConnectEventListener net.anyflow.lannister.plugin.DefaultDeliveredEventListener net.anyflow.lannister.plugin.DefaultDisconnectEventListener net.anyflow.lannister.plugin.DefaultPublishEventListener net.anyflow.lannister.plugin.DefaultServiceChecker net.anyflow.lannister.plugin.DefaultUnsubscribeEventListener |
net.anyflow.lannister net.anyflow.lannister.client net.anyflow.lannister.message net.anyflow.lannister.packetreceiver net.anyflow.lannister.session net.anyflow.lannister.topic |
java.lang org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 12 | 0.0% | 80.0% | 20.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.anyflow.lannister.serialization.ChannelIdSerializer net.anyflow.lannister.serialization.HazelcastSerializer net.anyflow.lannister.serialization.SerializableFactory net.anyflow.lannister.serialization.SysValueSerializer |
net.anyflow.lannister.cluster net.anyflow.lannister.message net.anyflow.lannister.topic |
com.fasterxml.jackson.core com.fasterxml.jackson.databind com.hazelcast.nio.serialization io.netty.channel java.io java.lang java.util.function net.anyflow.lannister net.anyflow.lannister.cluster net.anyflow.lannister.message net.anyflow.lannister.session net.anyflow.lannister.topic |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 19 | 0.0% | 95.0% | 5.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.anyflow.lannister.server.ByteCounterCodec net.anyflow.lannister.server.MqttChannelInitializer net.anyflow.lannister.server.MqttServer net.anyflow.lannister.server.MqttWebSocketCodec net.anyflow.lannister.server.ScheduledExecutor |
net.anyflow.lannister |
io.netty.bootstrap io.netty.buffer io.netty.channel io.netty.channel.epoll io.netty.channel.socket io.netty.channel.socket.nio io.netty.handler.codec io.netty.handler.codec.http io.netty.handler.codec.http.websocketx io.netty.handler.codec.mqtt io.netty.handler.logging io.netty.handler.ssl io.netty.util.concurrent java.lang java.util java.util.concurrent net.anyflow.lannister net.anyflow.lannister.packetreceiver org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 12 | 0.0% | 80.0% | 20.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.anyflow.lannister.session.MessageSender$1 net.anyflow.lannister.session.Session$1 net.anyflow.lannister.session.Sessions |
net.anyflow.lannister.httphandler.api net.anyflow.lannister.packetreceiver net.anyflow.lannister.serialization |
com.google.common.base com.google.common.collect com.hazelcast.core io.netty.channel io.netty.handler.codec.mqtt java.lang java.util net.anyflow.lannister.cluster net.anyflow.lannister.message net.anyflow.lannister.plugin net.anyflow.lannister.topic org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 12 | 0.0% | 80.0% | 20.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | net.anyflow.lannister.topic.Notification net.anyflow.lannister.topic.TopicMatcher net.anyflow.lannister.topic.TopicSubscriber net.anyflow.lannister.topic.TopicSubscription net.anyflow.lannister.topic.Topics$1 net.anyflow.lannister.topic.Topics$ClientType |
net.anyflow.lannister net.anyflow.lannister.serialization net.anyflow.lannister.session |
com.google.common.base com.hazelcast.nio com.hazelcast.nio.serialization io.netty.handler.codec.mqtt java.io java.lang java.util net.anyflow.lannister net.anyflow.lannister.message net.anyflow.lannister.plugin net.anyflow.lannister.serialization org.slf4j |
Package | Package Dependencies |
---|---|
net.anyflow.lannister | net.anyflow.lannister.http net.anyflow.lannister |
net.anyflow.lannister.client | net.anyflow.lannister.packetreceiver net.anyflow.lannister.session net.anyflow.lannister.message net.anyflow.lannister.serialization net.anyflow.lannister.message |
net.anyflow.lannister.cluster | net.anyflow.lannister net.anyflow.lannister.http net.anyflow.lannister |
net.anyflow.lannister.http | net.anyflow.lannister net.anyflow.lannister.http |
net.anyflow.lannister.httphandler | net.anyflow.lannister.http net.anyflow.lannister net.anyflow.lannister.http |
net.anyflow.lannister.httphandler.admin | net.anyflow.lannister.http net.anyflow.lannister net.anyflow.lannister.http |
net.anyflow.lannister.httphandler.api | net.anyflow.lannister.http net.anyflow.lannister net.anyflow.lannister.http |
net.anyflow.lannister.message | net.anyflow.lannister.serialization net.anyflow.lannister.message |
net.anyflow.lannister.packetreceiver | net.anyflow.lannister.session net.anyflow.lannister.message net.anyflow.lannister.serialization net.anyflow.lannister.message |
net.anyflow.lannister.serialization | net.anyflow.lannister.message net.anyflow.lannister.serialization |
net.anyflow.lannister.server | net.anyflow.lannister net.anyflow.lannister.http net.anyflow.lannister |
net.anyflow.lannister.session | net.anyflow.lannister.message net.anyflow.lannister.serialization net.anyflow.lannister.message |
net.anyflow.lannister.topic | net.anyflow.lannister.message net.anyflow.lannister.serialization net.anyflow.lannister.message |
Term | Description |
---|---|
Number of Classes | The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package. |
Afferent Couplings | The number of other packages that depend upon classes within the package is an indicator of the package's responsibility. |
Efferent Couplings | The number of other packages that the classes in the package depend upon is an indicator of the package's independence. |
Abstractness | The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package. |
Instability | The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package. |
Distance | The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible. |
Cycles | Packages participating in a package dependency cycle are in a deadly embrace with respect to reusability and their release cycle. Package dependency cycles can be easily identified by reviewing the textual reports of dependency cycles. Once these dependency cycles have been identified with JDepend, they can be broken by employing various object-oriented techniques. |