This documentation is not maintained. Please refer to doc.castsoftware.com/technologies to find the latest updates.

Summary: This document provides basic information about the extension providing MongoDB, Marklogic and CouchDB support for the JEE analyzer.

What's new?

Please see NoSQL for Java - 1.0 - Release Notes for more information.

Description

The NoSQL for Java provides support for MongoDB, Marklogic and CouchDB for the JEE analyzer. 

In what situation should you install this extension?

  • If you need to analyze MongoDB, MarkLogic and CouchDB queries in Java client code.

Function Point, Quality and Sizing support

This extension provides the following support:

  • Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
  • Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
Function Points
(transactions)
(tick)
Quality and Sizing(tick)

CAST AIP compatibility

This extension is compatible with:

CAST AIP releaseSupported
8.3.x(tick)
8.2.x(tick)
8.1.x(tick)
8.0.x(tick)
7.3.x(error)

Supported DBMS servers

This extension is compatible with the following DBMS servers:

DBMSSupported
CSS(tick)
Oracle(tick)
Microsoft SQL Server(error)

Prerequisites

(tick)An installation of any compatible release of CAST AIP (see table above)

Download and installation instructions

Please see:

The latest release status of this extension can be seen when downloading it from the CAST Extend server.

What results can you expect?

Once the analysis/snapshot generation has completed, you can view the results in the normal manner (for example via CAST Enlighten) - click to enlarge:

You can also use the CAST Management Studio option View Analysis Unit Content to see the objects that have been created following the analysis:

Rules

Violations in the CAST Engineering Dashboard

Violations in CAST Enlighten

Objects

The following objects are displayed in CAST Enlighten:

IconDescription

Java MongoDB connection

Java MongoDB database

Java MongoDB collection

Java unknown MongoDB database

Java unknown MongoDB collection

Java MarkLogic database

Java MarkLogic collection

Java unknown MarkLogic database

Java unknown MarkLogic collection

Java Couchbase connection

Java Couchbase database

Java Couchbase collection

Java unknown Couchbase connection

Java unknown Couchbase database

Java unknown Couchbase collection

Note that:

  • Objects and links are detected via parametrization and when parametization is not enough we parse the Java caller object or even the entire Java file:
    • com.mongodb.MongoClient.MongoClient is mapped as a MongoDB connection
    • com.mongodb.Mongo.getDB to MongoDB databases
    • com.mongodb.DB.getCollection to MongoDB collections, .update, .updateMulti, .findAndModify and .save methods are mapped as useUpdateLinks.
  • For MongoDB we resolve Jongo queries, via parametrization and also:
    • org.jongo.Jongo.Jongo is mapped as a MongoDB connection
    • org.jongo.Jongo.getCollection to a MongoDB collection

Links are created for transaction and function point needs.

MongoDB

Link typeWhen is this created?
parentLink

The connection is the parent of database which is the parent of a collection.

Connection's parent is the caller's project.

useLinkBetween the caller Java objects and connections, databases or collections.

useSelectLink

useUpdateLink

useDeleteLink

useInsertLink

Between the caller Java object and a database or a collection.

MarkLogic

Link typeWhen is this created?
parentLink

The database is the parent of a collection.

Database's parent is the caller's project.

useLinkBetween the caller Java objects and a database or a collection.

useSelectLink

useUpdateLink

useDeleteLink

useInsertLink

Between the caller Java object and a database or a collection.

CouchDB

Link typeWhen is this created?
parentLink

The connection is the parent of database which is the parent of a collection.

Connection's parent is the caller's project.

useLinkBetween the caller Java objects and connections, databases or collections.

useSelectLink

useUpdateLink

useDeleteLink

useInsertLink

Between the caller Java object and a database or a collection.