ActiveMQ
Conditional Complexity

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 22,848 units with 167,755 lines of code in units (79.0% of code).
    • 4 very complex units (765 lines of code)
    • 21 complex units (2,368 lines of code)
    • 274 medium complex units (14,948 lines of code)
    • 797 simple units (23,047 lines of code)
    • 21,752 very simple units (126,627 lines of code)
<1% | 1% | 8% | 13% | 75%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
java<1% | 1% | 8% | 13% | 75%
Legend:
51+
26-50
11-25
6-10
1-5
Conditional Complexity per Logical Component
primary logical decomposition
activemq-amqp5% | 8% | 11% | 17% | 56%
activemq-openwire-generator6% | 0% | 35% | 10% | 46%
activemq-kahadb-store1% | <1% | 12% | 15% | 69%
activemq-client<1% | 1% | 6% | 11% | 80%
activemq-broker0% | 2% | 11% | 16% | 69%
activemq-shiro0% | 11% | 3% | 7% | 77%
activemq-partition0% | 19% | 0% | 15% | 65%
activemq-tooling0% | 1% | 8% | 11% | 78%
activemq-stomp0% | 0% | 25% | 22% | 51%
activemq-console0% | 0% | 10% | 25% | 63%
activemq-mqtt0% | 0% | 18% | 19% | 62%
activemq-jdbc-store0% | 0% | 6% | 21% | 72%
activemq-ra0% | 0% | 8% | 10% | 80%
activemq-web0% | 0% | 10% | 18% | 71%
activemq-http0% | 0% | 9% | 16% | 74%
activemq-jaas0% | 0% | 18% | 20% | 61%
assembly0% | 0% | 11% | 55% | 33%
activemq-runtime-config0% | 0% | 11% | 19% | 68%
activemq-jms-pool0% | 0% | 7% | 14% | 78%
trash0% | 0% | 7% | 34% | 57%
activemq-karaf0% | 0% | 46% | 23% | 29%
activemq-web-console0% | 0% | 11% | 6% | 82%
activemq-spring0% | 0% | 5% | 11% | 83%
activemq-camel0% | 0% | 3% | 10% | 85%
activemq-openwire-legacy0% | 0% | 0% | 3% | 96%
activemq-leveldb-store0% | 0% | 0% | 21% | 78%
activemq-osgi0% | 0% | 0% | 59% | 40%
activemq-log4j-appender0% | 0% | 0% | 23% | 76%
activemq-cf0% | 0% | 0% | 0% | 100%
activemq-pool0% | 0% | 0% | 0% | 100%
Legend:
51+
26-50
11-25
6-10
1-5
Most Complex Units
Top 50 most complex units
Unit# linesMcCabe index# params
public EncodedMessage transform()
in activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformer.java
235 68 1
Set checkpointUpdate()
in activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
193 60 2
protected void generateFile()
in activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/CSourcesGenerator.java
221 57 1
protected Boolean compare()
in activemq-client/src/main/java/org/apache/activemq/filter/ComparisonExpression.java
116 55 2
final boolean doReconnect()
in activemq-client/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java
143 49 0
public final void acknowledge()
in activemq-broker/src/main/java/org/apache/activemq/broker/region/PrefetchSubscription.java
179 46 2
protected void populateMessage()
in activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/message/InboundTransformer.java
125 45 2
protected void serviceRemoteCommand()
in activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
158 44 1
public void oneway()
in activemq-client/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java
113 39 1
public List healthList()
in activemq-broker/src/main/java/org/apache/activemq/broker/jmx/HealthView.java
106 37 0
public void configureConnectionFactory()
in activemq-tooling/activemq-perf-maven-plugin/src/main/java/org/apache/activemq/tool/spi/ActiveMQPojoSPI.java
72 35 2
public void run()
in activemq-client/src/main/java/org/apache/activemq/ActiveMQSession.java
157 34 0
protected boolean matches()
in activemq-shiro/src/main/java/org/apache/activemq/shiro/authz/ActiveMQWildcardPermission.java
104 34 2
public static Class loadSimpleType()
in activemq-client/src/main/java/org/apache/activemq/util/ClassLoadingAwareObjectInputStream.java
44 33 1
private Section convertBody()
in activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/message/JMSMappingOutboundTransformer.java
110 31 1
public void send()
in activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java
121 31 2
protected Target pickBestBroker()
in activemq-partition/src/main/java/org/apache/activemq/partition/PartitionBroker.java
81 29 1
protected void recoverIndex()
in activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
136 29 1
public void send()
in activemq-broker/src/main/java/org/apache/activemq/broker/region/Topic.java
115 29 2
private boolean doConnect()
in activemq-client/src/main/java/org/apache/activemq/transport/fanout/FanoutTransport.java
84 28 0
private void serviceRemoteConsumerAdvisory()
in activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
102 28 1
public void removeSubscription()
in activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java
100 27 3
public boolean iterate()
in activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java
105 27 0
public void createSender()
in activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/protocol/AmqpSession.java
126 26 1
public void add()
in activemq-broker/src/main/java/org/apache/activemq/broker/region/TopicSubscription.java
87 26 1
protected void doPost()
in activemq-web/src/main/java/org/apache/activemq/web/MessageListenerServlet.java
91 25 2
protected void handleOption()
in activemq-console/src/main/java/org/apache/activemq/console/command/QueryCommand.java
79 25 2
protected void processQueue()
in activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/CallerBufferingDataFileAppender.java
103 25 0
public void handle()
in activemq-broker/src/main/java/org/apache/activemq/util/DefaultIOExceptionHandler.java
97 25 1
public void rollback()
in activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java
109 24 0
protected boolean authenticate()
in activemq-jaas/src/main/java/org/apache/activemq/jaas/LDAPLoginModule.java
117 24 2
public void send()
in activemq-broker/src/main/java/org/apache/activemq/broker/scheduler/SchedulerBroker.java
78 24 2
public void baseUpdate()
in activemq-broker/src/main/java/org/apache/activemq/broker/region/policy/PolicyEntry.java
71 24 2
public void run()
in activemq-client/src/main/java/org/apache/activemq/util/ConsumerThread.java
59 23 0
public ActiveMQMessageConsumer()
in activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java
100 23 11
public void dispatch()
in activemq-client/src/main/java/org/apache/activemq/ActiveMQMessageConsumer.java
77 23 1
protected void processQueue()
in activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/DataFileAppender.java
107 23 0
public void mergeProperties()
in activemq-runtime-config/src/main/java/org/apache/activemq/plugin/PropertiesPlaceHolderUtil.java
68 23 3
protected ActiveMQEndpointWorker()
in activemq-ra/src/main/java/org/apache/activemq/ra/ActiveMQEndpointWorker.java
126 22 2
protected void doMessages()
in activemq-web/src/main/java/org/apache/activemq/web/MessageListenerServlet.java
122 22 3
protected void appendHeaders()
in activemq-web-console/src/main/java/org/apache/activemq/web/controller/SendMessage.java
62 22 2
private ActiveMQMessage createMessage()
in activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/message/JMSMappingInboundTransformer.java
77 22 2
public synchronized void start()
in activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/Journal.java
93 22 0
private PendingList doPageInForDispatch()
in activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java
103 22 3
protected void setupStaticDestinations()
in activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java
59 22 0
private void recover()
in activemq-jdbc-store/src/main/java/org/apache/activemq/store/journal/JournalPersistenceAdapter.java
95 21 0
protected void onStompSubscribe()
in activemq-stomp/src/main/java/org/apache/activemq/transport/stomp/ProtocolConverter.java
90 21 1
private void recover()
in activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java
92 21 0
protected void serviceLocalCommand()
in activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
91 21 1
protected boolean isPermissableDestination()
in activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
38 21 2