Skip to content

Commit

Permalink
Fixed readme comments based on legal review
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandrev-tibco committed Dec 5, 2024
1 parent 0c4d9a0 commit fcbadbf
Show file tree
Hide file tree
Showing 10 changed files with 19 additions and 19 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ All notable changes to this project will be documented in this file.

2.0.0
---
* Merge of TIBCO BusinessWorks 5.x and TIBCO BusinessWorks 6.x/TIBCO BusinessWorks Container Edition 2.x plugin in a single component
* Merge of TIBCO BusinessWorks 5.x and TIBCO BusinessWorks 6.x/TIBCO BusinessWorks Container Edition 2.x plugin in a single component
* First open-source version
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Extension for SonarQube for use with TIBCO BusinessWorks
# Extension for SonarQube for use with TIBCO BusinessWorks

## Introduction

This is a quality-enforcement component for TIBCO ActiveMatrix BusinessWorks 5.x, TIBCO ActiveMatrix BusinessWorks BW6.x and TIBCO BusinessWorks Container Edition 2.x applications. The component is able to understand the details of your TIBCO BW application and then applies "rules" that detect various conditions that are either required for the application or are blocked. In this way the plugin is able to enforce a "quality" policy for TIBCO BW applications within an organization.
This is a quality-enforcement component for TIBCO ActiveMatrix BusinessWorks 5.x, TIBCO ActiveMatrix BusinessWorks BW6.x and TIBCO BusinessWorks Container Edition 2.x applications. The component is able to understand the details of your TIBCO BW application and then applies "rules" that detect various conditions that are either required for the application or are blocked. In this way the plugin is able to enforce a "quality" policy for TIBCO BW applications within an organization.

Each detected issue may then be tracked individually and quality gates assigned so that code that does not meet a specific quality level cannot be released:

Expand All @@ -12,11 +12,11 @@ Each detected issue may then be tracked individually and quality gates assigned
In either event the component will usually be executed as part of a CICD build pipeline. Typically this step will be executed before attempting to compile the application and then a "gate" will be defined to only allow build and deployment to progress if the code is of adequate quality.

## Supported Rules
The component is intended to be extensible in that any of the currently defined rules may be used, or ommited as required for a given system. Additional rules may also be added as required although this will typically require Java development.
The component is intended to be extensible in that any of the currently defined rules may be used, or omitted as required for a given system. Additional rules may also be added as required although this will typically require Java development.
The currently supported rules and metrics for this version of the plugin are described

* TIBCO BusinessWorks 5.x Rules [here](docs/rules/bw5/RULES.md)
* TIBCO BusinessWorks 6.x / TIBCO BusinessWorks Container Edition Rules [here](docs/rules/bw6/RULES.md)
* TIBCO BusinessWorks 5.x Rules [here](docs/rules/bw5/RULES.md)
* TIBCO BusinessWorks 6.x / TIBCO BusinessWorks Container Edition Rules [here](docs/rules/bw6/RULES.md)

## Overriding Rules
Although typically an administrator will define which rules should be used for analysis, it is sometimes useful to allow developers to skip particular rules in a specific case if that would lead to a false alarm. In this case rules may be overridden.
Expand All @@ -30,4 +30,4 @@ Installation and configuration details are described [here](docs/INSTALLATION.md


## Software Licenses and Third Party Usage
This software is provided subject to the terms of the following licenses and uses third party libraries describes [here](docs/third-party-licenses/third-party-report.html)
This software is provided under the terms of the Apache 2.0 license and incorporates third-party libraries, as detailed [here](docs/third-party-licenses/third-party-report.html).
4 changes: 2 additions & 2 deletions docs/rules/bw6/BWVersionCheck.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## What condition does this detect?

Check if this BusinessWorks Module matches recommended version which has better performance and less vulnerabilities
Check if this BusinessWorks Module matches recommended version which has better performance and less vulnerabilities

This is an ***Application*** rule - the rule will test for some condition within the application

Expand All @@ -12,7 +12,7 @@ Software currency is an important topic. As time goes the existing libraries bei

## How to fix it?

Upgrade the TIBCO BusinessWorks version to the most actual to keep the software currency
Upgrade the TIBCO BusinessWorks version to the most actual to keep the software currency

## How do I use this rule?

Expand Down
2 changes: 1 addition & 1 deletion docs/rules/bw6/DeadlockDetection.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ This is a ***Process*** rule - the rule will test each process of the applicatio

In computing programing Deadlock is a situation where a set of processes are blocked because each process is holding a resource and waiting for another resource acquired by some other process.

In terms of BusinessWorks, this can happen when we have parallel flows and each of them depends on the other. This is something easy to detect when the dependency is direct but sometimes with the definition of many subprocess this dependency can be hidden, so we should be aware that there dependency is no there even if the relation is not so clear. Also relevant to this topic is the loop-infinite deadlock. As part of dependency situation you can have a process that can be calling it itself again in some special circunstances and generate this infinity loop that not also create a failure scenario but also a waste of your computing resources. </thead>
In terms of BusinessWorks, this can happen when we have parallel flows and each of them depends on the other. This is something easy to detect when the dependency is direct but sometimes with the definition of many subprocess this dependency can be hidden, so we should be aware that there dependency is no there even if the relation is not so clear. Also relevant to this topic is the loop-infinite deadlock. As part of dependency situation you can have a process that can be calling it itself again in some special circunstances and generate this infinity loop that not also create a failure scenario but also a waste of your computing resources. </thead>

## How to fix it?

Expand Down
4 changes: 2 additions & 2 deletions docs/rules/bw6/IsMavenProject.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## What condition does this detect?

Check is this BusinessWorks Module is a Maven Project
Check is this BusinessWorks Module is a Maven Project

This is an ***Application*** rule - the rule will test for some condition within the application

Expand All @@ -12,7 +12,7 @@ The usage of Maven nature for the project it allows an easy integration with thi

## How to fix it?

Set the Maven Nature for each project. To do that, you need to select the TIBCO BusinessWorks Application and in the context menu click on the Generate POM for Application. If that options is not present installation of the TIBCO Maven Plugin is required. This plugin can be obtained from the following link: https://github.com/TIBCOSoftware/bw6-plugin-maven
Set the Maven Nature for each project. To do that, you need to select the TIBCO BusinessWorks Application and in the context menu click on the Generate POM for Application. If that options is not present installation of the TIBCO Maven Plugin is required. This plugin can be obtained from the following link: https://github.com/TIBCOSoftware/bw6-plugin-maven

## How do I use this rule?

Expand Down
2 changes: 1 addition & 1 deletion docs/rules/bw6/NumberOfPropertiesSameGroup.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This is an ***Application*** rule - the rule will test for some condition within

## Why is this condition important?

Readability and maintenance is a characteristic that not only applies to the design of the process itself but also to all the components that are part of the development. And that includes the management of the properties. BusinessWorks has the option to define different groups to be able to group and categorize the different properties and if we managed those properties well is more easy to understand the purpose of each of those and at the end contribute to increase the readability of the whole process
Readability and maintenance is a characteristic that not only applies to the design of the process itself but also to all the components that are part of the development. And that includes the management of the properties. BusinessWorks has the option to define different groups to be able to group and categorize the different properties and if we managed those properties well is more easy to understand the purpose of each of those and at the end contribute to increase the readability of the whole process

## How to fix it?

Expand Down
2 changes: 1 addition & 1 deletion docs/rules/bw6/ProcessWithoutTest.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This is a ***Process*** rule - the rule will test each process of the applicatio

## Why is this condition important?

Unit Testing is a critical part of any development software. We should leverage of the out of the box unit testing capabilities TIBCO BusinessWorks has to make sure our developments are working and also to ease the process to any evolution of the process without breaking the old behavior or add unexpected bugs
Unit Testing is a critical part of any development software. We should leverage of the out of the box unit testing capabilities TIBCO BusinessWorks has to make sure our developments are working and also to ease the process to any evolution of the process without breaking the old behavior or add unexpected bugs

## How to fix it?

Expand Down
4 changes: 2 additions & 2 deletions docs/rules/bw6/RULES.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ This version of the plugin provides ***62 quality rules*** and [***0 metrics***]
| Name | Type | Has Parameters | Initial State | Description |
| ---- | ---- | -------------- | -------------- | ----------- |
| [`AtLeastOneStarter`](AtLeastOneStarter.md) | Project | No | Enabled | Check that an application module should have one starter additional to the Activator process |
| [`BWVersionCheck`](BWVersionCheck.md) | Project | No | Enabled | Check if this BusinessWorks Module matches recommended version which has better performance and less vulnerabilities |
| [`BWVersionCheck`](BWVersionCheck.md) | Project | No | Enabled | Check if this BusinessWorks Module matches recommended version which has better performance and less vulnerabilities |
| [`BindingShouldHavePolicyAssociated`](BindingShouldHavePolicyAssociated.md) | Project | No | Enabled | To ensure that the communications are authentified all input connections should check that the binding has a policy associated |
| [`BindingShouldNotHaveHTTPBasicPolicyAssociated`](BindingShouldNotHaveHTTPBasicPolicyAssociated.md) | Project | No | Enabled | To ensure that the communications are authentified all input connections should check that the binding has a policy associated that is secure |
| [`BwSharedResourceUsingModuleProperty`](BwSharedResourceUsingModuleProperty.md) | Resource | No | Enabled | Parameter Resource using Module Property |
Expand All @@ -24,7 +24,7 @@ This version of the plugin provides ***62 quality rules*** and [***0 metrics***]
| [`HttpClientMustBeUsedinHTTPBinding`](HttpClientMustBeUsedinHTTPBinding.md) | Process | No | Enabled | HTTP Binding should have an HTTP Client Resource |
| [`HttpClientSSLShouldHaveConfidentiality`](HttpClientSSLShouldHaveConfidentiality.md) | Resource | No | Enabled | HTTP Client using 443 port should have set confidentiality settings |
| [`HttpConnectorShouldHaveConfidentiality`](HttpConnectorShouldHaveConfidentiality.md) | Resource | No | Enabled | HTTP Connector should have set confidentiality settings |
| [`IsMavenProject`](IsMavenProject.md) | Project | No | Enabled | Check is this BusinessWorks Module is a Maven Project |
| [`IsMavenProject`](IsMavenProject.md) | Project | No | Enabled | Check is this BusinessWorks Module is a Maven Project |
| [`JDBCHardCoded`](JDBCHardCoded.md) | Process | No | Enabled | This rule checks JDBC activities for hardcoded values for fields Timeout and MaxRows. Use Process property or Module property. |
| [`JDBCTransactionParallelFlow`](JDBCTransactionParallelFlow.md) | Process | No | Enabled | This rule checks if there is no parallel flows with JDBC activities inside a Transaction Group |
| [`JDBCWildcards`](JDBCWildcards.md) | Process | No | Enabled | This rule checks whether JDBC activities are using wildcards in the query. As a good coding practice, never use wildcards in JDBC queries. |
Expand Down
2 changes: 1 addition & 1 deletion docs/rules/bw6/ThreadpoolUsageInJDBCActivities.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This is a ***Process*** rule - the rule will test each process of the applicatio

## Why is this condition important?

JDBC activities in TIBCO BusinessWorks are asynchronous ones so that means that it uses an internal thread pool to manage the execution of those activities. This internal pool is not limited and can be increased for so many reasons leading to unexpected memory increase and also performance issues. To avoid that we should set up as part of the JDBC activity configuration a Shared Resource Instance for a Threadpool Resource so we can managed ourlves the amount of threads to be used for those activities.
JDBC activities in TIBCO BusinessWorks are asynchronous ones so that means that it uses an internal thread pool to manage the execution of those activities. This internal pool is not limited and can be increased for so many reasons leading to unexpected memory increase and also performance issues. To avoid that we should set up as part of the JDBC activity configuration a Shared Resource Instance for a Threadpool Resource so we can managed ourlves the amount of threads to be used for those activities.

## How to fix it?

Expand Down
4 changes: 2 additions & 2 deletions docs/third-party-licenses/third-party-report.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1 at 2024-11-07
| Generated by Apache Maven Doxia Site Renderer 1.11.1 at 2024-11-18
| Rendered using Apache Maven Default Skin
-->
Expand All @@ -23,7 +23,7 @@
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2024-11-07</span>
<span id="publishDate">Last Published: 2024-11-18</span>
| <span id="projectVersion">Version: 2.0.0</span>
</div>
<div class="xright"> </div>
Expand Down

0 comments on commit fcbadbf

Please sign in to comment.