The application is the Java Pet Store Demo 1.3.2, a reference implementation of the J2EE BluePrints design guidelines. It is a comprehensive e-commerce platform designed to demonstrate the capabilities of the J2EE 1.3 platform, specifically focusing on Enterprise JavaBeans (EJB 2.0), Servlets, JSP, and JMS. The application is architected as a multi-tier system comprising a Web Tier, an EJB Tier, and a Client Tier. The Web Tier utilizes a custom Web Application Framework (WAF) that implements the Model-View-Controller (MVC) pattern, featuring a Front Controller (MainServlet), Request Processor, and a Templating mechanism for composite views. The EJB Tier encapsulates business logic using Session Beans (e.g., ShoppingController, SignOn), Entity Beans (e.g., Customer, PurchaseOrder, Catalog), and Message-Driven Beans (MDBs) for asynchronous processing. The application simulates a real-world scenario involving three main sub-applications: the Pet Store (B2C interface for customers), the Order Processing Center (OPC) for back-office order fulfillment, and a Supplier module for B2B inventory management. It relies heavily on asynchronous messaging via JMS to decouple the order lifecycle steps, such as order approval, invoicing, and shipping. Data persistence is handled through Container-Managed Persistence (CMP) Entity Beans and Data Access Objects (DAOs). Additionally, it includes a Swing-based Administration Client that communicates with the server via HTTP/XML to manage orders and view sales statistics.
| File Type | Files Count | Lines Count |
|---|---|---|
| java | 283 | 34137 |
| jsp | 98 | 10794 |
| xml | 75 | 19227 |
| dtd | 31 | 1589 |
| xsl | 13 | 541 |
| tld | 12 | 3061 |
| mf | 11 | 39 |
| html | 9 | 292 |
| sql | 7 | 1177 |
| sh | 7 | 475 |
| bat | 7 | 307 |
| properties | 7 | 241 |
| xsd | 3 | 103 |
| unknown | 2 | 96 |
| Dependency Name | Group ID | Versions | Scopes | Locations | Status |
|---|---|---|---|---|---|
| asyncsender-ejb-client.jar | internal | compile | 1 file | ✓ OK | |
| asyncsender-ejb-client.jar | petstore.component | compile | 1 file | ✓ OK | |
| asyncsender-ejb.jar | internal | runtime | 1 file | ✓ OK | |
| base64.jar | N/A | compile | 1 file | ✓ OK | |
| cart-ejb-client.jar | petstore.component | compile | 1 file | ✓ OK | |
| catalog-ejb-client.jar | com.sun.j2ee.blueprints | compile | 1 file | ✓ OK | |
| catalog-ejb-client.jar | petstore.component | compile | 1 file | ✓ OK | |
| contactinfo | com.sun.j2ee.blueprints | compile | 1 file | ✓ OK | |
| creditcard | com.sun.j2ee.blueprints | compile | 1 file | ✓ OK | |
| crimson.jar | org.apache.crimson | runtime | 1 file | ✓ OK | |
| customer-ejb-client.jar | petstore.component | compile | 1 file | ✓ OK | |
| j2ee.jar | javax.j2ee | compile | 11 files | ✓ OK | |
| j2ee.jar | N/A | compile | 9 files | ✓ OK | |
| j2ee.jar | Sun Microsystems | compile | 1 file | ✓ OK | |
| j2ee.jar | sun.j2ee | compile | 2 files | ✓ OK | |
| j2ee.jar | com.sun.j2ee | compile | 1 file | ✓ OK | |
| j2eetools.jar | com.sun.j2ee | compile | 1 file | ✓ OK | |
| j2eetools.jar | javax.j2ee | compile | 1 file | ✓ OK | |
| j2eetools.jar | sun.j2ee | compile | 1 file | ✓ OK | |
| j2eetools.jar | N/A | compile | 1 file | ✓ OK | |
| jaxp.jar | N/A | runtime | 1 file | ✓ OK | |
| jstl.jar | javax.servlet.jsp.jstl | runtime | 1 file | ✓ OK | |
| locale | N/A | compile, runtime | 6 files | ✓ OK | |
| locale | sun.j2ee | runtime | 1 file | ✓ OK | |
| locale | javax.j2ee | compile | 1 file | ✓ OK | |
| mailer-ejb-client.jar | com.sun.j2ee.blueprints | compile | 1 file | ✓ OK | |
| opc-ejb-client.jar | internal | compile | 1 file | ✓ OK | |
| opc-ejb.jar | internal | runtime | 1 file | ✓ OK | |
| po-ejb-client.jar | com.sun.j2ee.blueprints | compile | 1 file | ✓ OK | |
| po-ejb-client.jar | petstore.component | compile | 1 file | ✓ OK | |
| processmanager-ejb-client.jar | com.sun.j2ee.blueprints | compile | 1 file | ✓ OK | |
| processmanager-ejb-client.jar | N/A | compile | 1 file | ✓ OK | |
| servicelocator.jar | com.sun.j2ee.blueprints | compile | 2 files | ✓ OK | |
| servicelocator.jar | internal | compile | 2 files | ✓ OK | |
| servicelocator.jar | contactinfo.components | compile | 1 file | ✓ OK | |
| servicelocator.jar | project.servicelocator | compile | 1 file | ✓ OK | |
| servicelocator.jar | N/A | compile | 3 files | ✓ OK | |
| servicelocator.jar | petstore.component | compile | 1 file | ✓ OK | |
| signon-ejb-client.jar | petstore.component | compile | 1 file | ✓ OK | |
| standard.jar | javax.servlet.jsp.jstl | runtime | 1 file | ✓ OK | |
| supplierpo-ejb-client.jar | N/A | compile | 1 file | ✓ OK | |
| tracer.jar | internal | compile | 1 file | ✓ OK | |
| tracer.jar | com.sun.j2ee.blueprints | compile | 1 file | ✓ OK | |
| tracer.jar | N/A | compile | 1 file | ✓ OK | |
| tracer.jar | petstore.component | compile | 1 file | ✓ OK | |
| uidgen-ejb-client.jar | petstore.component | compile | 1 file | ✓ OK | |
| waf-ejb.jar | petstore.component | compile | 1 file | ✓ OK | |
| waf-web.jar | petstore.component | runtime | 1 file | ✓ OK | |
| xmldocuments.jar | com.sun.j2ee.blueprints | compile | 3 files | ✓ OK | |
| xmldocuments.jar | lineitem | compile | 1 file | ✓ OK | |
| xmldocuments.jar | xmldocuments | compile | 1 file | ✓ OK | |
| xmldocuments.jar | contactinfo.components | compile | 1 file | ✓ OK | |
| xmldocuments.jar | project.xmldocuments | compile | 1 file | ✓ OK | |
| xmldocuments.jar | internal | compile | 1 file | ✓ OK | |
| xmldocuments.jar | N/A | compile | 2 files | ✓ OK | |
| xmldocuments.jar | petstore.component | compile | 1 file | ✓ OK |
The process where a user browses the catalog, manages a shopping cart, and places an order.
%%{init: {'flowchart': {'diagramPadding': 30}}}%%
graph LR
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
catalog_browsing_0["Catalog Browsing"]
class catalog_browsing_0 process
cart_management_1["Cart Management"]
class cart_management_1 process
user_authentication_2["User Authentication"]
class user_authentication_2 process
order_placement_3["Order Placement"]
class order_placement_3 process
catalog_browsing_0 --> cart_management_1
cart_management_1 --> user_authentication_2
user_authentication_2 --> order_placement_3
The asynchronous workflow managed by the Order Processing Center to validate, approve, and ship orders.
%%{init: {'flowchart': {'diagramPadding': 30}}}%%
graph LR
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
order_ingestion_0["Order Ingestion"]
class order_ingestion_0 process
order_approval_1["Order Approval"]
class order_approval_1 process
supplier_coordination_2["Supplier Coordination"]
class supplier_coordination_2 process
invoice_processing_3["Invoice Processing"]
class invoice_processing_3 process
order_ingestion_0 --> order_approval_1
order_approval_1 --> supplier_coordination_2
supplier_coordination_2 --> invoice_processing_3
The B2B process where the supplier receives orders and manages inventory.
%%{init: {'flowchart': {'diagramPadding': 30}}}%%
graph LR
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
order_reception_0["Order Reception"]
class order_reception_0 process
inventory_check_1["Inventory Check"]
class inventory_check_1 process
shipment_notification_2["Shipment Notification"]
class shipment_notification_2 process
order_reception_0 --> inventory_check_1
inventory_check_1 --> shipment_notification_2
Back-office management of the system by an administrator.
%%{init: {'flowchart': {'diagramPadding': 30}}}%%
graph LR
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
order_review_0["Order Review"]
class order_review_0 process
sales_analysis_1["Sales Analysis"]
class sales_analysis_1 process
order_review_0 --> sales_analysis_1
Note: This diagram shows the high-level business components inferred from the existing codebase. Internal components (green) represent core business functionality, while external dependencies (orange) represent external systems such as databases, message queues, and external APIs.
%%{init: {'flowchart': {'diagramPadding': 50, 'nodeSpacing': 30, 'rankSpacing': 60}}}%%
flowchart TB
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
int_catalog_manager_0["Catalog Manager"]
int_shopping_cart_manager_1["Shopping Cart Manager"]
int_customer_account_manager_2["Customer Account Manager"]
int_order_manager_3["Order Manager"]
int_order_processing_center_opc_4["Order Processing Center #40;OPC#41;"]
int_supplier_manager_5["Supplier Manager"]
int_notification_service_6["Notification Service"]
int_administration_manager_7["Administration Manager"]
int_unique_id_generator_8["Unique ID Generator"]
ext_cloudscape_oracle_database_0["Cloudscape/Oracle Database
Database"]
ext_jms_provider_1["JMS Provider
Message Queue"]
ext_javamail_service_2["JavaMail Service
External API"]
int_shopping_cart_manager_1 --> int_catalog_manager_0
int_order_manager_3 --> int_customer_account_manager_2
int_order_manager_3 --> int_unique_id_generator_8
int_order_manager_3 --> ext_jms_provider_1
int_order_processing_center_opc_4 --> ext_jms_provider_1
int_order_processing_center_opc_4 --> ext_cloudscape_oracle_database_0
int_supplier_manager_5 --> ext_jms_provider_1
int_supplier_manager_5 --> ext_cloudscape_oracle_database_0
int_notification_service_6 --> ext_jms_provider_1
int_notification_service_6 --> ext_javamail_service_2
int_administration_manager_7 --> int_order_processing_center_opc_4
int_catalog_manager_0 --> ext_cloudscape_oracle_database_0
int_customer_account_manager_2 --> ext_cloudscape_oracle_database_0
class int_catalog_manager_0 internalComponent
class int_shopping_cart_manager_1 internalComponent
class int_customer_account_manager_2 internalComponent
class int_order_manager_3 internalComponent
class int_order_processing_center_opc_4 internalComponent
class int_supplier_manager_5 internalComponent
class int_notification_service_6 internalComponent
class int_administration_manager_7 internalComponent
class int_unique_id_generator_8 internalComponent
class ext_cloudscape_oracle_database_0 externalComponent
class ext_jms_provider_1 externalComponent
class ext_javamail_service_2 externalComponent
Responsible for retrieving and searching product information. It abstracts the data access logic (DAO) and provides product details to the presentation layer.
Manages the temporary state of a user's shopping session. It handles adding/removing items and calculating subtotals before an order is placed.
Handles user registration, authentication (SignOn), and profile management (Contact Info, Credit Card, Preferences).
Handles the creation and persistence of customer orders. It initiates the fulfillment workflow by sending order data to the processing center.
The core workflow engine that manages the lifecycle of an order. It handles order approval (manual or automatic), coordinates with suppliers, and tracks order status.
Simulates an external B2B partner. It receives purchase orders from the OPC, checks inventory, and sends back invoices/shipment notifications.
Responsible for generating and sending emails to customers regarding order status updates (Received, Approved, Shipped).
Provides capabilities for administrators to view sales statistics and manually approve or deny pending orders.
A utility component responsible for generating unique primary keys for orders and other entities.
| Name | Type | Description |
|---|---|---|
| Cloudscape/Oracle Database | Database | Stores persistent data for Catalog, Customers, Orders, and Inventory. |
| JMS Provider | Message Queue | Handles asynchronous messaging between the Pet Store, OPC, and Supplier components (Queues and Topics). |
| JavaMail Service | External API | Used by the Notification Service to send SMTP emails to customers. |
Note: This is a suggested new Microservices architecture derived from what the application does and how it functions - it intentionally does not reflect the curent the current archiecture of the application or any of its existing Microservices (if any).
%%{init: {'flowchart': {'diagramPadding': 30}}}%%
flowchart TB
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
subgraph services[" "]
catalog_service_0["Catalog Service"]
order_service_1["Order Service"]
customer_service_2["Customer Service"]
inventory_service_3["Inventory Service"]
catalog_service_0 ~~~ order_service_1
order_service_1 ~~~ customer_service_2
catalog_service_0 ~~~ inventory_service_3
end
class catalog_service_0 service
class order_service_1 service
class customer_service_2 service
class inventory_service_3 service
style services fill:transparent,stroke:transparent,stroke-width:0
A read-heavy service responsible for managing and serving product, category, and item data. It would replace the CatalogEJB and DAO layers, providing a RESTful interface for the storefront to browse and search for pets.
GET /categories
GET /products
GET /items/{itemId}
Manages the lifecycle of customer orders. It handles order creation, persistence, and status updates. It would replace the PurchaseOrderEJB and related MDBs, potentially using an event bus for asynchronous processing.
POST /orders
GET /orders/{orderId}
Manages user accounts, profiles, and authentication. It replaces the Customer, Account, and SignOn EJBs.
GET /customers/{userId}
POST /customers
Manages stock levels and supplier interactions. It replaces the Supplier module and Inventory EJB.
GET /inventory/{itemId}
PATCH /inventory/{itemId}
Note: This domain model has been derived from what the application does and how it functions - it intentionally does not reflect how the current code manages and persists business data.
Manages the product information, categories, and specific items available for sale. It provides browsing and searching capabilities.
%%{init: {'flowchart': {'diagramPadding': 30}}}%%
flowchart TB
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
catalog_context_0{{"Catalog Context"}}
catalog_context_0 --> agg_catalog_0
agg_catalog_0 -.-> entity_category_0
agg_catalog_0 -.-> entity_product_1
agg_catalog_0 -.-> entity_item_2
subgraph aggRepoGroup0[" "]
direction LR
agg_catalog_0(["Catalog"])
repo_catalogdao_0(("CatalogDAO"))
agg_catalog_0 -.- repo_catalogdao_0
end
class agg_catalog_0 aggregate
class repo_catalogdao_0 repository
subgraph entitiesGroup[" "]
direction LR
entity_category_0("Category")
entity_product_1("Product")
entity_item_2("Item")
end
class entity_category_0 entity
class entity_product_1 entity
class entity_item_2 entity
class catalog_context_0 boundedContext
style aggRepoGroup0 fill:transparent,stroke:transparent,stroke-width:0
style entitiesGroup fill:transparent,stroke:transparent,stroke-width:0
Handles user identity, authentication, and profile management.
%%{init: {'flowchart': {'diagramPadding': 30}}}%%
flowchart TB
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
customer_context_0{{"Customer Context"}}
customer_context_0 --> agg_customer_0
agg_customer_0 -.-> entity_account_0
agg_customer_0 -.-> entity_contactinfo_1
agg_customer_0 -.-> entity_creditcard_2
agg_customer_0 -.-> entity_profile_3
subgraph aggRepoGroup0[" "]
direction LR
agg_customer_0(["Customer"])
repo_customerlocalhome_0(("CustomerLocalHome"))
agg_customer_0 -.- repo_customerlocalhome_0
end
class agg_customer_0 aggregate
class repo_customerlocalhome_0 repository
subgraph entitiesGroup[" "]
direction LR
entity_account_0("Account")
entity_contactinfo_1("ContactInfo")
entity_creditcard_2("CreditCard")
entity_profile_3("Profile")
end
class entity_account_0 entity
class entity_contactinfo_1 entity
class entity_creditcard_2 entity
class entity_profile_3 entity
class customer_context_0 boundedContext
style aggRepoGroup0 fill:transparent,stroke:transparent,stroke-width:0
style entitiesGroup fill:transparent,stroke:transparent,stroke-width:0
Manages the lifecycle of a customer's purchase order within the Pet Store front-end.
%%{init: {'flowchart': {'diagramPadding': 30}}}%%
flowchart TB
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
order_context_0{{"Order Context"}}
order_context_0 --> agg_purchaseorder_0
agg_purchaseorder_0 -.-> entity_lineitem_0
subgraph aggRepoGroup0[" "]
direction LR
agg_purchaseorder_0(["PurchaseOrder"])
repo_purchaseorderlocalhome_0(("PurchaseOrderLocalHome"))
agg_purchaseorder_0 -.- repo_purchaseorderlocalhome_0
end
class agg_purchaseorder_0 aggregate
class repo_purchaseorderlocalhome_0 repository
subgraph entitiesGroup[" "]
direction LR
entity_lineitem_0("LineItem")
end
class entity_lineitem_0 entity
class order_context_0 boundedContext
style aggRepoGroup0 fill:transparent,stroke:transparent,stroke-width:0
style entitiesGroup fill:transparent,stroke:transparent,stroke-width:0
Manages the backend processing of orders, including workflow state and supplier interaction.
%%{init: {'flowchart': {'diagramPadding': 30}}}%%
flowchart TB
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
fulfillment_context_0{{"Fulfillment Context"}}
fulfillment_context_0 --> agg_processmanager_0
agg_processmanager_0 -.-> entity_manager_0
subgraph aggRepoGroup0[" "]
direction LR
agg_processmanager_0(["ProcessManager"])
repo_managerlocalhome_0(("ManagerLocalHome"))
agg_processmanager_0 -.- repo_managerlocalhome_0
end
class agg_processmanager_0 aggregate
class repo_managerlocalhome_0 repository
subgraph entitiesGroup[" "]
direction LR
entity_manager_0("Manager")
end
class entity_manager_0 entity
class fulfillment_context_0 boundedContext
style aggRepoGroup0 fill:transparent,stroke:transparent,stroke-width:0
style entitiesGroup fill:transparent,stroke:transparent,stroke-width:0
Manages the supplier's view of orders and inventory.
%%{init: {'flowchart': {'diagramPadding': 30}}}%%
flowchart TB
classDef boundedContext fill:#e8f5e8,stroke:#00684A,stroke-width:3px,color:#001e2b
classDef aggregate fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef entity fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#001e2b
classDef repository fill:#fff5f0,stroke:#d2691e,stroke-width:1.5px,color:#001e2b
classDef service fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef process fill:#ffffff,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef dependency fill:#f8f9fa,stroke:#6c757d,stroke-width:1px,color:#001e2b
classDef rootDependency fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#001e2b
classDef internalComponent fill:#e8f5e8,stroke:#00684A,stroke-width:2px,color:#001e2b
classDef externalComponent fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#001e2b
supplier_context_0{{"Supplier Context"}}
supplier_context_0 --> agg_supplierorder_0
agg_supplierorder_0 -.-> entity_inventory_0
subgraph aggRepoGroup0[" "]
direction LR
agg_supplierorder_0(["SupplierOrder"])
repo_supplierorderlocalhome_0(("SupplierOrderLocalHome"))
agg_supplierorder_0 -.- repo_supplierorderlocalhome_0
end
class agg_supplierorder_0 aggregate
class repo_supplierorderlocalhome_0 repository
subgraph entitiesGroup[" "]
direction LR
entity_inventory_0("Inventory")
end
class entity_inventory_0 entity
class supplier_context_0 boundedContext
style aggRepoGroup0 fill:transparent,stroke:transparent,stroke-width:0
style entitiesGroup fill:transparent,stroke:transparent,stroke-width:0
This section provides code quality metrics to help identify complex, hard-to-maintain code. Metrics are estimated by AI and should be verified manually.
| Metric | Value | Description |
|---|---|---|
| Total Functions/Methods Analyzed | 1500 | Total number of functions/methods analyzed across the codebase |
| Average Complexity | 1.63 | Average cyclomatic complexity (1-10: simple, 11-20: moderate, >20: complex) |
| High Complexity Functions/Methods | 9 | Functions/methods with complexity > 10 (candidate for refactoring) |
| Very High Complexity | 3 | Functions/methods with complexity > 20 (high priority for refactoring) |
| Average Function/Method Length | 4.9 LOC | Average lines of code per function/method |
| Long Functions/Methods | 7 | Functions/methods with > 50 lines of code |
These functions/methods have the highest cyclomatic complexity and should be prioritized for refactoring.
| Function/Method Name | File Path | Complexity | Lines | Code Smells |
|---|---|---|---|---|
| 22 | 82 |
|
||
| 22 | 68 |
|
||
| 21 | 75 |
|
||
| 16 | 92 |
|
||
| 14 | 65 |
|
||
| 13 | 36 |
|
||
| 13 | 56 |
|
||
| 13 | 36 |
|
||
| 12 | 30 |
|
||
| 10 | 22 |
|
Frequently occurring code quality issues across the codebase.
| Code Smell Type | Occurrences | Affected Files | Recommendation |
|---|---|---|---|
| OTHER | 39 | 31 | Review and refactor as part of modernization effort |
| DATA CLASS | 37 | 37 | Review and refactor as part of modernization effort |
| MAGIC NUMBERS | 18 | 18 | Review and refactor as part of modernization effort |
| COMPLEX CONDITIONAL | 14 | 14 | Review and refactor as part of modernization effort |
| LONG PARAMETER LIST | 13 | 13 | Review and refactor as part of modernization effort |
| LONG METHOD | 13 | 13 | Review and refactor as part of modernization effort |
| DUPLICATE CODE | 12 | 12 | Review and refactor as part of modernization effort |
| TOO MANY METHODS | 12 | 12 | Review and refactor as part of modernization effort |
| DEEP NESTING | 6 | 6 | Review and refactor as part of modernization effort |
| DEAD CODE | 4 | 4 | Review and refactor as part of modernization effort |
| FEATURE ENVY | 2 | 2 | Review and refactor as part of modernization effort |
| INVALID | 2 | 2 | Review and refactor as part of modernization effort |
| LARGE FILE | 1 | 1 | Review and refactor as part of modernization effort |
Trigger Types Found: manual
| Job Name | Source File | Trigger | Purpose | Input Resources | Output Resources |
|---|---|---|---|---|---|
| Ant Build Execution | build.bat | manual | Executes the Apache Ant build system with a pre-configured classpath and system properties tailored for the 'estore' J2EE application. It acts as the primary entry point for compiling, packaging, and managing the application lifecycle. |
|
|
|
Dependencies: Java SDK, J2EE SDK, Apache Ant
|
|||||
| Ant Build Execution | build.bat | manual | Configures the Java classpath with J2EE and Ant dependencies and launches the Apache Ant build tool to process build targets. |
|
|
|
Dependencies: Java SDK, J2EE SDK, Apache Ant Libraries
|
|||||
| Ant Build Wrapper | build.bat | Manual | Sets up the Java classpath including J2EE and Ant libraries and executes the Apache Ant Main class to perform build tasks. |
|
|
|
Dependencies: JAVA_HOME environment variable, J2EE_HOME environment variable, Apache Ant libraries
|
|||||
| Ant Setup Build | setup.bat | manual | Initiates the Apache Ant build process using the configuration defined in setup.xml, typically used to compile, package, or configure the J2EE application. |
|
|
|
Dependencies: Java Development Kit (JAVA_HOME), J2EE SDK (J2EE_HOME), Apache Ant libraries
|
|||||
| build.sh | build.sh | manual | Initiates the Apache Ant build process for the application, handling environment setup and classpath configuration automatically. |
|
|
|
Dependencies: Java Development Kit (JDK), J2EE SDK, Apache Ant
|
|||||
| build.sh | build.sh | manual | Wraps the Apache Ant execution to compile, build, and potentially package the J2EE application (referenced as 'estore'). |
|
|
|
Dependencies: Java SDK, J2EE SDK, Apache Ant
|
|||||
| build.sh | build.sh | manual | Initializes the environment and executes the Apache Ant build tool to compile and package the J2EE application. |
|
|
|
Dependencies: Java SDK, J2EE SDK, Apache Ant (embedded in lib/ant)
|
|||||
| build.sh | build.sh | manual | Initializes the environment and executes the Apache Ant build process for a J2EE application. |
|
|
|
Dependencies: Java SDK, J2EE SDK, Apache Ant
|
|||||
| build.sh | build.sh | manual | Initializes the environment and executes the Apache Ant build system to compile and package the application. |
|
|
|
Dependencies: java, ant, j2ee-sdk
|
|||||
| build.sh | build.sh | manual | Initializes the environment and executes the Apache Ant build process for the application. |
|
|
|
Dependencies: Java Development Kit (JDK), J2EE SDK, Apache Ant
|
|||||
| J2EE Ant Build Launcher | build.bat | manual | Configures the Java classpath and system properties to launch the Apache Ant build tool for a J2EE project. |
|
|
|
Dependencies: Java Runtime Environment, Apache Ant, J2EE SDK
|
|||||
| J2EE Ant Build Launcher | build.bat | manual | Configures the Java classpath with J2EE and Ant libraries, then executes the Apache Ant Main class to perform build operations defined in an associated build.xml file. |
|
|
|
Dependencies: Java SDK (tools.jar), Apache Ant, J2EE SDK
|
|||||
| J2EE Ant Build Wrapper | build.bat | manual | Invokes the Apache Ant build system with a pre-configured classpath that includes J2EE and Java tool dependencies to compile and package the application. |
|
|
|
Dependencies: Java Development Kit (JDK), J2EE SDK, Apache Ant
|
|||||
| setup.sh | setup.sh | manual | Initiates the application setup or build process by configuring the environment and invoking the Apache Ant build tool with the 'setup.xml' file. |
|
|
|
Dependencies: Java Runtime Environment, J2EE SDK, Apache Ant libraries
|
|||||
Interpretation: High reference counts indicate tightly coupled modules (candidates for single services). Low reference counts indicate loosely coupled modules (candidates for easy separation).
| From Module | To Module | Reference Count | Coupling Level |
|---|---|---|---|
src/apps
|
com.sun
|
583 | Very High |
src/components
|
com.sun
|
226 | Medium |
src/waf
|
com.sun
|
124 | Medium |
src/apps
|
customer.account
|
16 | Low |
src/apps
|
WEB-INF/c.tld
|
12 | Low |
src/apps
|
WEB-INF/waftags.tld
|
12 | Low |
src/waf
|
WEB-INF/waftags.tld
|
7 | Low |
src/apps
|
customer.profile
|
4 | Low |
src/apps
|
cart.do
|
3 | Low |
src/apps
|
customer.do
|
3 | Low |
src/apps
|
order.do
|
3 | Low |
src/apps
|
WEB-INF/fmt.tld
|
3 | Low |
src/apps
|
WEB-INF/template.tld
|
3 | Low |
src/apps
|
enter_order_information.screen
|
2 | Low |
src/apps
|
item.screen
|
2 | Low |
src/apps
|
update_customer.screen
|
2 | Low |
src/apps
|
admin/AdminRequestProcessor
|
1 | Low |
src/apps
|
cart.count
|
1 | Low |
src/apps
|
cart.items
|
1 | Low |
src/apps
|
cart.subTotal
|
1 | Low |
src/apps
|
changelocale.do
|
1 | Low |
src/apps
|
index.html
|
1 | Low |
src/apps
|
item.attribute
|
1 | Low |
src/apps
|
item.itemId
|
1 | Low |
src/apps
|
item.name
|
1 | Low |
src/apps
|
item.quantity
|
1 | Low |
src/apps
|
item.unitCost
|
1 | Low |
src/apps
|
main.screen
|
1 | Low |
src/apps
|
petstore/main.screen
|
1 | Low |
src/apps
|
search.screen
|
1 | Low |
src/apps
|
signoff.do
|
1 | Low |
src/apps
|
signon_welcome.screen
|
1 | Low |
src/apps
|
signon.screen
|
1 | Low |
src/apps
|
supplier/populating.jsp
|
1 | Low |
src/waf
|
clientstatetag_test.screen
|
1 | Low |
src/waf
|
formtag.screen
|
1 | Low |
src/waf
|
images/clientstate.jpg
|
1 | Low |
src/waf
|
inputtag.screen
|
1 | Low |
JSP Files: 98 | Total Scriptlets: 17 | Avg Scriptlets/File: 0.2 | High Debt Files: 1
| Framework | Version | Configuration Files |
|---|---|---|
| Sun Java BluePrints WAF | Unknown | screen-definitions.xml |
| File Path | Scriptlets | Expressions | Declarations | Total Blocks | Debt Level |
|---|---|---|---|---|---|
| 7 | 4 | 0 | 11 | High | |
| 2 | 2 | 0 | 4 | Low | |
| 2 | 1 | 0 | 3 | Low | |
| 2 | 1 | 0 | 3 | Low | |
| 0 | 2 | 0 | 2 | Low | |
| 1 | 0 | 0 | 1 | Low | |
| 0 | 1 | 0 | 1 | Low | |
| 1 | 0 | 0 | 1 | Low | |
| 1 | 0 | 0 | 1 | Low | |
| 0 | 1 | 0 | 1 | Low |
| Prefix | URI | Usage Count | Type |
|---|---|---|---|
c |
/WEB-INF/c.tld | 40 files | Custom |
waf |
/WEB-INF/waftags.tld | 33 files | Custom |
fmt |
/WEB-INF/fmt.tld | 12 files | Custom |
template |
/WEB-INF/template.tld | 5 files | Custom |
Path: dbstuff/cursor-for-loop-optimization.sql
Complexity: MEDIUM (Contains internal sub-procedures, dynamic cursor handling, bulk collection logic, and case switching for different execution paths.)
Lines: 76
Purpose: Benchmarks cursor iteration performance by generating dummy data and iterating through it using implicit loops, explicit fetches, or bulk collects. It measures and prints the execution time for the selected method. It is designed to show the impact of compiler optimization levels.
Path: dbstuff/cursor-for-loop.sql
Complexity: LOW (The package consists primarily of declarative cursor definitions and simple SQL queries without complex procedural logic.)
Lines: 18
Purpose: A PL/SQL package that defines a reusable cursor for the employees table, demonstrating how to declare cursors in a package specification and optionally hide the query implementation in the package body.
Path: dbstuff/cursors-in-plsql.sql
Complexity: MEDIUM (It utilizes the DBMS_SQL package which requires manual parsing, column definition, and fetching, making it more verbose than standard SQL.)
Lines: 19
Purpose: Dynamically queries a specified table to retrieve and print the 'common_name' column using the DBMS_SQL package.
Path: dbstuff/cursors-in-plsql.sql
Complexity: LOW (Contains simple conditional logic to open a cursor with or without a WHERE clause.)
Lines: 13
Purpose: Returns a strongly typed REF CURSOR containing species data, optionally filtered by a search string.
Path: dbstuff/cursors-in-plsql.sql
Complexity: LOW (Consists of a single OPEN-FOR statement using a dynamic string.)
Lines: 7
Purpose: Returns a weakly typed REF CURSOR based on any dynamic SQL query string provided as an argument.
Path: dbstuff/cursors-in-plsql.sql
Complexity: LOW (Consists of a single OPEN-FOR statement using the standard SYS_REFCURSOR type.)
Lines: 7
Purpose: Returns a SYS_REFCURSOR based on a dynamic query string, utilizing the built-in system cursor type.
Path: dbstuff/forall-bulk-rowcount.sql
Complexity: MEDIUM (Uses autonomous transactions, dynamic SQL for both DDL and DML, and bulk binding.)
Lines: 26
Purpose: A helper procedure designed to log a collection of IDs into a database table. It handles the creation of the target table dynamically and ensures the data is committed independently of the main transaction.
Path: dbstuff/forall-inserts-comparison.sql
Complexity: MEDIUM (The procedure utilizes advanced PL/SQL features such as bulk binding (FORALL), dynamic SQL, custom object types, and nested table manipulations.)
Lines: 103
Purpose: This procedure runs a series of performance tests to compare different methods of inserting data into a database table. It populates in-memory collections with dummy data and then times the execution of row-by-row inserts, bulk inserts, and SQL-based inserts. It outputs the elapsed CPU time for each method to the console to facilitate performance analysis.
Path: dbstuff/trigger-predicates.sql
Complexity: LOW (It consists of a single CASE statement to check boolean predicates and print a string.)
Lines: 11
Purpose: This utility procedure determines the context in which it was called by checking Oracle conditional predicates (INSERTING, UPDATING, DELETING). It outputs the type of DML operation occurring to the console via DBMS_OUTPUT. It also handles cases where it is called outside of a trigger context.
Path: dbstuff/trigger-predicates.sql
Complexity: LOW (The trigger body contains a single line of code calling a stored procedure.)
Lines: 5
Purpose: This trigger fires after any INSERT or UPDATE operation is performed on the employees table. It calls the shared utility procedure to log the specific event type.
Path: dbstuff/trigger-predicates.sql
Complexity: LOW (The trigger body contains a single line of code calling a stored procedure.)
Lines: 5
Purpose: This trigger fires before any DELETE operation is performed on the employees table. It calls the shared utility procedure to log the specific event type.
| Path | Mechanism | Description | Code Example |
|---|---|---|---|
dbstuff/forall-values-of.sql |
DML | The code interacts with an Oracle database using PL/SQL anonymous blocks and standard SQL statements. It performs a bulk update operation using the FORALL construct to optimize performance when updating multiple records based on a collection of IDs. It also utilizes standard SELECT statements for data verification. |
|
com.sun.j2ee.blueprints.address.ejb |
EJB | The class is an abstract Entity Bean using Container-Managed Persistence (CMP). The abstract getter and setter methods correspond to persistent fields that the EJB container automatically maps to database columns and manages synchronization for. |
|
com.sun.j2ee.blueprints.address.ejb.AddressLocal |
EJB | This interface represents the local view of an Entity Bean, which is a persistent data component in the J2EE architecture. The actual database interaction (SQL generation, connection management) is handled by the EJB Container (for Container-Managed Persistence) or the Bean implementation class (for Bean-Managed Persistence). The getters and setters defined here correspond to persistent fields in the underlying database table. |
|
com.sun.j2ee.blueprints.address.ejb.AddressLocalHome |
EJB | This is an EJB Entity Bean Local Home interface. In the EJB component model, 'create' methods correspond to database INSERT operations, and 'find' methods correspond to database SELECT operations. The persistence is managed by the EJB container (Container-Managed Persistence) or the bean implementation (Bean-Managed Persistence). |
|
com.sun.j2ee.blueprints.catalog.client.CatalogHelper |
EJB | The class integrates with the database primarily through the `CatalogLocal` Enterprise Java Bean (EJB) or alternatively via a direct `CatalogDAO` (Fast Lane pattern). The EJB approach uses a Service Locator to find the EJB Home and create a local interface reference. The DAO approach uses a Factory to obtain a DAO instance. Both paths ultimately perform READ operations against the catalog data. |
|
com.sun.j2ee.blueprints.catalog.ejb |
EJB | This file is an EJB Local Interface. While it does not contain direct database code, it defines the data access contract for the Catalog component. The implementation of this interface (the Bean) is responsible for interacting with the database to retrieve Categories, Products, and Items. |
|
com.sun.j2ee.blueprints.contactinfo.ejb |
EJB | This interface represents the local view of an Entity Bean (or Session Bean wrapping an entity) managed by the EJB container. The container handles the persistence of the fields defined by the getters and setters (FamilyName, GivenName, Telephone, Email) to the underlying database. |
|
com.sun.j2ee.blueprints.contactinfo.ejb |
EJB | This class is an EJB 2.x Entity Bean using Container-Managed Persistence (CMP). The container manages the synchronization of the abstract accessor methods with the underlying database table. It also manages the relationship with the Address entity via Container-Managed Relationships (CMR). |
|
com.sun.j2ee.blueprints.contactinfo.ejb |
EJB | This file is the Local Home interface for an Entity EJB. It defines the methods to create (INSERT) and find (SELECT) persistent ContactInfo entities managed by the EJB container. |
|
com.sun.j2ee.blueprints.creditcard.ejb |
EJB | This file is an EJB Local Home interface, which defines the persistence lifecycle methods (create, find) for an Entity Bean. The actual database interaction is handled by the EJB container (Container Managed Persistence) or the bean implementation (Bean Managed Persistence), mapping these methods to SQL INSERT and SELECT operations. |
|
com.sun.j2ee.blueprints.creditcard.ejb |
EJB | This interface represents the local view of an Enterprise Java Bean (EJB), likely an Entity Bean. In the J2EE architecture, Entity Beans are used to represent persistent data in a database. The container manages the synchronization between this object and the underlying database table. |
|
com.sun.j2ee.blueprints.creditcard.ejb.CreditCardEJB |
EJB | The class uses EJB 2.x Container Managed Persistence (CMP). The abstract getters and setters define the persistent fields, and the EJB container handles the actual database interactions (SQL generation, connection management) at runtime. |
|
com.sun.j2ee.blueprints.customer.account.ejb |
EJB | The class is an EJB 2.x Entity Bean using Container-Managed Persistence (CMP). The abstract methods (getters/setters) are implemented by the EJB container to perform SQL operations (SELECT, INSERT, UPDATE) against the database. The mapping to specific tables and columns is defined in external XML deployment descriptors (not shown in code). |
|
com.sun.j2ee.blueprints.customer.account.ejb.AccountLocal |
EJB | This is an EJB Local Interface (extending EJBLocalObject), which typically acts as the local view for an Entity Bean. Entity Beans in J2EE are used to represent persistent data in a database. The container handles the synchronization between this object and the database row. |
|
com.sun.j2ee.blueprints.customer.account.ejb.AccountLocalHome |
EJB | This file is an EJB Local Home interface, which defines the lifecycle methods (create, find) for an Entity Bean. The EJB container intercepts calls to these methods to perform database INSERT and SELECT operations via Container-Managed Persistence (CMP) or Bean-Managed Persistence (BMP). |
|
com.sun.j2ee.blueprints.customer.ejb.CustomerEJB |
EJB | This class is an EJB 2.x Entity Bean using Container-Managed Persistence (CMP). The EJB container is responsible for generating the SQL and database connectivity code to persist the 'userId' field and manage the relationships to Account and Profile entities. |
|
com.sun.j2ee.blueprints.customer.ejb.CustomerLocal |
EJB | This interface represents the local view of an Entity Bean (likely Container-Managed Persistence - CMP) in a J2EE application. It provides access to persistent customer data and relationships (Account, Profile) managed by the EJB container. |
|
com.sun.j2ee.blueprints.customer.ejb.CustomerLocalHome |
EJB | This is an EJB Entity Bean Home interface. It defines methods that map directly to database operations (INSERT for create, SELECT for finders) managed by the EJB container (CMP) or the bean implementation (BMP). |
|
com.sun.j2ee.blueprints.customer.profile.ejb |
EJB | The class uses EJB 2.x Container-Managed Persistence (CMP). The abstract getters and setters define the persistent fields, and the EJB container automatically handles the SQL generation, database connection, and synchronization based on the deployment descriptor configuration. |
|
com.sun.j2ee.blueprints.customer.profile.ejb |
EJB | This interface acts as the local view for an Enterprise Java Bean (likely an Entity Bean or a Session Bean wrapping an Entity) that persists customer profile data. The actual database interaction is handled by the EJB container (CMP) or the bean implementation (BMP), but this interface defines the data access contract. |
|
com.sun.j2ee.blueprints.customer.profile.ejb.ProfileLocalHome |
EJB | This interface defines methods for creating and finding EJB instances, which implies database interaction managed by an EJB container. The `create` method corresponds to a database INSERT operation, and the `findByPrimaryKey` method corresponds to a database SELECT operation. This pattern is characteristic of EJB 2.x Container-Managed Persistence (CMP) or Bean-Managed Persistence (BMP), where the application server handles the persistence logic for entity beans. |
|
com.sun.j2ee.blueprints.lineitem.ejb |
EJB | This interface represents the local view of an Enterprise Java Bean (EJB), likely an Entity Bean using Container-Managed Persistence (CMP) or Bean-Managed Persistence (BMP). The EJB container manages the synchronization of this object's state with the underlying database table. |
|
com.sun.j2ee.blueprints.lineitem.ejb |
EJB | This class is an EJB 2.x Container-Managed Persistence (CMP) Entity Bean. The abstract getter and setter methods (e.g., getCategoryId, setQuantity) correspond to persistent fields managed by the EJB container. The container generates the SQL to read/write these fields to a database table based on the deployment descriptor (ejb-jar.xml). |
|
com.sun.j2ee.blueprints.lineitem.ejb.LineItemLocalHome |
EJB | This file is the Home interface for an Entity Bean. The 'create' methods correspond to database INSERT operations, and 'findByPrimaryKey' corresponds to a database SELECT operation by primary key. The actual persistence logic (SQL generation and execution) is handled by the EJB container (likely Container-Managed Persistence). |
|
com.sun.j2ee.blueprints.opc.admin.ejb |
EJB | The code interacts with the database indirectly through Enterprise Java Beans (Entity Beans). It uses Local Home interfaces to execute finders and retrieve Entity instances, which represent database rows. |
|
com.sun.j2ee.blueprints.opc.customerrelations.ejb |
EJB | The code uses EJB 2.x Entity Beans to interact with the database. It utilizes the `PurchaseOrderLocalHome` interface to find a `PurchaseOrderLocal` entity bean by its primary key (the order ID). This abstracts the direct database operations. |
|
com.sun.j2ee.blueprints.opc.customerrelations.ejb.MailCompletedOrderMDB |
EJB | The code uses EJB 2.x Entity Beans to access database information. It uses the `PurchaseOrderLocalHome` interface to find a Purchase Order by its primary key (the order ID) and retrieves the underlying data object. |
|
com.sun.j2ee.blueprints.opc.customerrelations.ejb.MailOrderApprovalMDB |
EJB | The code interacts with the database via EJB 2.x Entity Beans. It uses the PurchaseOrderLocalHome interface to find PurchaseOrderLocal entity instances by their primary key (OrderId). |
|
com.sun.j2ee.blueprints.opc.ejb |
EJB | The code uses EJB 2.x Entity Beans (Local Interfaces) to persist data. It utilizes `PurchaseOrderLocalHome` to create new Purchase Order entities in the underlying database. |
|
com.sun.j2ee.blueprints.opc.ejb.InvoiceMDB |
EJB | The class interacts with the database through EJB 2.x Entity Beans. It uses `PurchaseOrderLocalHome` to find purchase orders by primary key and `ProcessManagerLocalHome` to create or find process managers. The actual persistence logic is abstracted by the EJB container (CMP or BMP). |
|
com.sun.j2ee.blueprints.opc.ejb.OrderApprovalMDB |
EJB | The code interacts with the database using EJB 2.x Entity Beans (`PurchaseOrderLocal`) and Session Beans (`ProcessManagerLocal`). It retrieves purchase orders by primary key and updates order statuses via the process manager. |
|
com.sun.j2ee.blueprints.petstore.controller.ejb |
EJB | The code interacts with the database through Enterprise JavaBeans (EJB) Entity Beans. Specifically, it uses the `CustomerLocalHome` interface to find and create Customer entities, which represent persistent data in the underlying database. |
|
com.sun.j2ee.blueprints.petstore.controller.ejb.ShoppingClientFacadeLocal |
EJB | This interface represents a J2EE Enterprise Java Bean (EJB) Local Interface. While the interface itself does not contain SQL, it defines the contract for a Session Bean that orchestrates Entity Beans (CustomerLocal) which map directly to database tables. The `getCustomer` and `createCustomer` methods imply direct interaction with the persistence layer via the EJB container. |
|
com.sun.j2ee.blueprints.petstore.controller.ejb.actions |
EJB | The code interacts with the persistence layer through Enterprise Java Beans (EJB). Specifically, it accesses the `ProfileLocal` entity bean to retrieve customer profile information (preferred language). The presence of `FinderException` handling indicates a database lookup operation. |
|
com.sun.j2ee.blueprints.petstore.controller.ejb.actions |
EJB | The class delegates database persistence operations to the SignOnLocal Enterprise Java Bean. While this class does not contain direct SQL, it invokes the transactional 'createUser' method on the EJB, which is responsible for persisting the user credentials to the underlying data store. |
|
com.sun.j2ee.blueprints.petstore.controller.ejb.actions.CustomerEJBAction |
EJB | The code interacts with the database through Enterprise JavaBeans (Entity Beans) accessed via a Session Facade. It retrieves Local Interfaces for Customer, Account, ContactInfo, Address, and CreditCard entities and performs updates by calling setter methods on these persistent objects. |
|
com.sun.j2ee.blueprints.petstore.controller.web |
EJB | The class interacts with the persistence tier through Enterprise Java Beans (EJB). It uses a ServiceLocator to look up the 'ShoppingControllerLocalHome' via JNDI and creates a 'ShoppingControllerLocal' EJB. This EJB acts as a facade to manage data related to shopping carts and customers. |
|
com.sun.j2ee.blueprints.petstore.controller.web |
EJB | This class interacts with the ShoppingControllerLocal Enterprise Java Bean. While it does not execute SQL directly, it delegates business operations to the EJB layer which is responsible for transaction management and persistence operations within the J2EE container. |
|
com.sun.j2ee.blueprints.petstore.tools.populate |
EJB | The class interacts with the database via Enterprise Java Beans (EJB) 2.x Entity Beans. It looks up the Local Home interface using JNDI and invokes the `create` method to persist a new Profile entity. |
|
com.sun.j2ee.blueprints.petstore.tools.populate |
EJB | The class uses Enterprise Java Beans (EJB 2.x) Entity Beans to persist account data. It interacts with the container via JNDI to locate the Home interface and creates new entities. |
|
com.sun.j2ee.blueprints.petstore.tools.populate |
EJB | The code interacts with the database through Enterprise Java Beans (EJB). It looks up the Local Home interface for the CreditCard EJB and invokes the `create` method, which delegates the actual database INSERT operation to the EJB container (likely CMP). |
|
com.sun.j2ee.blueprints.petstore.tools.populate |
EJB | The class uses Enterprise JavaBeans (EJB) Entity Beans to interact with the database. It obtains a reference to the UserLocalHome interface via JNDI and uses it to create and find User entities. |
|
com.sun.j2ee.blueprints.petstore.tools.populate.AddressPopulator |
EJB | The code uses Enterprise JavaBeans (EJB) 2.x Local Interfaces to persist data. It looks up the EJB Home interface via JNDI and uses the `create()` factory method to instantiate a new persistent entity, then populates its fields via setter methods. |
|
com.sun.j2ee.blueprints.petstore.tools.populate.ContactInfoPopulator |
EJB | The class uses Enterprise Java Beans (EJB 2.x) Entity Beans to persist data. It looks up the Local Home interface via JNDI and uses the `create` method to insert data. |
|
com.sun.j2ee.blueprints.petstore.tools.populate.CustomerPopulator |
EJB | The class interacts with the database via Enterprise Java Beans (EJB 2.x) Entity Beans. It uses the CustomerLocalHome interface to find, create, and remove Customer entities. It also interacts with AccountLocal and ProfileLocal interfaces to manage related data. |
|
com.sun.j2ee.blueprints.processmanager.ejb |
EJB | The class interacts with the database indirectly through EJB Entity Beans. It uses the `ManagerLocalHome` interface to find, create, and update `ManagerLocal` entities, which represent persistent data (likely orders). The actual SQL or database interaction is handled by the EJB container's persistence mechanism (CMP or BMP) associated with the `Manager` bean. |
|
com.sun.j2ee.blueprints.processmanager.ejb |
EJB | The interface extends EJBLocalObject and declares methods throwing CreateException and FinderException, which are standard EJB patterns for interacting with a persistence layer (likely Entity Beans or direct JDBC within a Session Bean). The methods imply CRUD operations on an order process entity. |
|
com.sun.j2ee.blueprints.processmanager.ejb.ProcessManagerLocalHome |
EJB | This is a Home interface for an Entity EJB, which represents a persistent data object. The create method typically corresponds to an INSERT operation in the underlying database, managed either by the container (CMP) or the bean implementation (BMP). |
|
com.sun.j2ee.blueprints.processmanager.manager.ejb |
EJB | This file is an EJB Entity Bean Home interface. It defines persistence operations (create, find) that the EJB container maps to database operations (INSERT, SELECT). |
|
com.sun.j2ee.blueprints.processmanager.manager.ejb |
EJB | The class uses EJB 2.x Container-Managed Persistence (CMP). The abstract class defines the data schema via abstract getters and setters, and the EJB container is responsible for generating the SQL and database connectivity code at deployment time. |
|
com.sun.j2ee.blueprints.processmanager.manager.ejb.ManagerLocal |
EJB | This interface represents the local view of an Enterprise Java Bean (EJB). In the context of J2EE Blueprints, this likely corresponds to an Entity Bean or a Session Bean that manages persistence for process manager state. The methods defined (getOrderId, getStatus, setStatus) imply a direct mapping to persistent fields or a stateful workflow backed by a database. |
|
com.sun.j2ee.blueprints.purchaseorder.ejb |
EJB | The code interacts with the database through EJB Entity Beans (Local interfaces). It navigates the relationship between PurchaseOrder and LineItems and updates the persistent state (quantityShipped) of LineItem entities. |
|
com.sun.j2ee.blueprints.purchaseorder.ejb.PurchaseOrderEJB |
EJB | The class is an EJB 2.0 Entity Bean using Container-Managed Persistence (CMP). The abstract getters and setters map directly to database columns managed by the EJB container. Relationships with other entities (LineItems, ContactInfo) are handled via Container-Managed Relationships (CMR). |
|
com.sun.j2ee.blueprints.purchaseorder.ejb.PurchaseOrderLocal |
EJB | This interface defines an EJB Entity Bean using Container Managed Persistence (CMP). The comments explicitly mention 'getters and setters for PO CMP fields', indicating that the EJB container is responsible for mapping these methods to database columns and handling persistence automatically. |
|
com.sun.j2ee.blueprints.purchaseorder.ejb.PurchaseOrderLocalHome |
EJB | This interface defines methods for creating and finding PurchaseOrder EJB instances, which is a core part of the EJB 2.x persistence framework. While it doesn't contain direct database access code itself, the EJB container implements these methods to interact with the database. The `create` and `find...` methods are mapped to underlying persistence operations (e.g., SQL INSERT and SELECT statements) against the table corresponding to the PurchaseOrder entity. This pattern is characteristic of Container-Managed Persistence (CMP). |
|
com.sun.j2ee.blueprints.signon.ejb |
EJB | The class interacts with the database indirectly through Enterprise Java Beans (Entity Beans). It uses the `UserLocalHome` interface to find and create `UserLocal` entities, which represent rows in the underlying database table. The actual SQL generation and execution are handled by the EJB container (CMP) or the Entity Bean implementation (BMP). |
|
com.sun.j2ee.blueprints.signon.ejb.SignOnLocalHome |
EJB | This file is the Home interface for an EJB Entity Bean. The `create()` method corresponds to the creation of a persistent entity, which implies a database INSERT operation managed by the EJB container (CMP) or the bean implementation (BMP). |
|
com.sun.j2ee.blueprints.signon.user.ejb |
EJB | This interface represents the local view of an Entity Bean, which is a J2EE component model specifically designed for database persistence. The methods defined (get/set password, getUserName) map directly to columns in a database table (likely a 'Users' or 'SignOn' table). In EJB 2.x, the container handles the synchronization between this object and the database row. |
|
com.sun.j2ee.blueprints.signon.user.ejb.UserEJB |
EJB | The class uses EJB 2.x Container-Managed Persistence (CMP). The abstract methods `getUserName`/`setUserName` and `getPassword`/`setPassword` are implemented by the EJB container to map directly to database columns. The container handles the generation of SQL for INSERT, UPDATE, SELECT, and DELETE operations based on the deployment descriptor configuration. |
|
com.sun.j2ee.blueprints.signon.user.ejb.UserLocalHome |
EJB | This interface defines the contract for an EJB 2.x Entity Bean's local home. It provides methods for creating and finding 'User' entities. The EJB container implements this interface at deployment time, generating the necessary data access logic (typically SQL) to interact with a database based on the EJB's deployment descriptor (e.g., ejb-jar.xml). The methods 'create', 'findByPrimaryKey', and 'findAllUsers' correspond to database INSERT and SELECT operations. |
|
com.sun.j2ee.blueprints.signon.web |
EJB | The servlet interacts with the database indirectly through an Enterprise Java Bean (SignOnLocal). The EJB encapsulates the persistence logic for creating a user. |
|
com.sun.j2ee.blueprints.signon.web.SignOnFilter |
EJB | The filter delegates the actual database authentication logic to an Enterprise JavaBean (`SignOnLocal`). The filter looks up the EJB via JNDI and invokes the `authenticate` method, which presumably interacts with the database to verify credentials. |
|
com.sun.j2ee.blueprints.supplier.inventory.ejb |
EJB | The class uses EJB 2.x Container-Managed Persistence (CMP). The EJB container automatically handles the database interactions (SELECT, INSERT, UPDATE, DELETE) based on the abstract accessor methods defined in this class and the deployment descriptor mapping. |
|
com.sun.j2ee.blueprints.supplier.inventory.ejb |
EJB | This interface represents a Container Managed Persistence (CMP) Entity Bean. The EJB container automatically handles the synchronization of the bean's state (itemId, quantity) with the underlying database table based on the deployment descriptor. |
|
com.sun.j2ee.blueprints.supplier.inventory.ejb |
EJB | The code defines an EJB Local Home interface for a Container Managed Persistence (CMP) bean. The EJB container handles the actual database interactions (SQL generation, connection management) based on this interface and the associated deployment descriptors. |
|
com.sun.j2ee.blueprints.supplier.inventory.web |
EJB | The class interacts with the database indirectly by invoking methods on an Enterprise JavaBean (EJB) Local Home interface. The `findAllInventoryItems` method on the EJB likely executes a database query (SQL or JPQL) to retrieve all inventory records. |
|
com.sun.j2ee.blueprints.supplier.inventory.web |
EJB | The code interacts with the database using EJB 2.x Entity Beans (`InventoryLocal`) and Session Beans (`OrderFulfillmentFacadeLocal`). It performs explicit transaction management using JTA `UserTransaction` to wrap multiple database operations (finding and updating inventory items) into a single atomic unit. |
|
com.sun.j2ee.blueprints.supplier.orderfulfillment.ejb.OrderFulfillmentFacadeEJB |
EJB | The application uses EJB 2.x Entity Beans to interact with the database. It persists new orders using the `SupplierOrderLocalHome` interface and manages inventory levels using the `InventoryLocalHome` interface. The persistence logic is abstracted behind these EJB interfaces, which handle the underlying database operations. |
|
com.sun.j2ee.blueprints.supplier.orderfulfillment.ejb.OrderFulfillmentFacadeLocal |
EJB | This is an EJB Local Interface that defines business methods implying database interaction. The `processPO` method suggests data creation (INSERT), and `processPendingPO` throws `FinderException`, which is explicitly used in EJB to signal issues finding data in a database (SELECT). The underlying implementation would typically use EJB Entity Beans or JDBC. |
|
com.sun.j2ee.blueprints.supplier.processpo.ejb.SupplierOrderMDB |
EJB | The class delegates data persistence and business logic to a local Enterprise Java Bean (Entity or Session facade). It does not execute SQL directly but relies on the `OrderFulfillmentFacadeLocal` component to persist purchase order data and generate invoices. |
|
com.sun.j2ee.blueprints.supplier.tools.populate |
EJB | The class uses Enterprise JavaBeans (EJB) 2.x Entity Beans to manage persistence. It looks up the Local Home interface via JNDI and uses it to find, remove, and create inventory items. |
|
com.sun.j2ee.blueprints.supplierpo.ejb |
EJB | The class is an EJB 2.0 Entity Bean using Container-Managed Persistence (CMP). The EJB container handles the persistence of fields (PoId, PoDate, PoStatus) and relationships (ContactInfo, LineItems) to the underlying database. |
|
com.sun.j2ee.blueprints.supplierpo.ejb |
EJB | The code defines an EJB Local Interface for an Entity Bean using Container Managed Persistence (CMP). The comments explicitly mention 'CMP fields', indicating that the EJB container automatically handles the persistence of fields like PoId, PoDate, and PoStatus to the underlying database. |
|
com.sun.j2ee.blueprints.supplierpo.ejb |
EJB | This is an EJB Entity Bean Home interface. It defines methods that the EJB container maps to database operations (INSERT for create, SELECT for finders). |
|
com.sun.j2ee.blueprints.uidgen.counter.ejb |
EJB | The class uses EJB 2.x Container-Managed Persistence (CMP). The EJB container automatically handles the mapping of the abstract 'counter' and 'name' fields to columns in a database table. The developer does not write SQL; instead, the container generates the necessary JDBC calls at runtime based on deployment descriptors. |
|
com.sun.j2ee.blueprints.uidgen.counter.ejb.CounterLocalHome |
EJB | This file is an EJB Local Home interface. In EJB 2.x architecture, methods defined here (create, findByPrimaryKey) directly map to persistence operations managed by the container (CMP) or the bean implementation (BMP). The 'create' method implies an INSERT operation, and 'findByPrimaryKey' implies a SELECT operation by ID. |
|
com.sun.j2ee.blueprints.uidgen.ejb.UniqueIdGeneratorEJB |
EJB | The class interacts with the persistence layer through EJB 2.x Entity Beans. It uses the CounterLocalHome interface to find existing Counter entities by their primary key or create new ones if they do not exist. This implies an underlying database table where counter states are stored. |
|
src/lib/jstl/sql.tld |
JDBC | This file defines the interface for the JSTL SQL library, which provides a direct wrapper around JDBC functionality for use in JSP pages. It defines tags that allow setting up JDBC DataSources, executing SQL queries and updates, and managing database transactions. |
|
src/lib/jstl/sql-rt.tld |
JDBC | This TLD defines the interface for JSTL SQL tags, which act as wrappers around JDBC functionality. It enables the execution of arbitrary SQL statements directly from JSP pages by mapping XML tags to Java classes that manage JDBC Connections, Statements, and ResultSets. |
|
com.sun.j2ee.blueprints.catalog.dao.CloudscapeCatalogDAO |
JDBC | The class uses raw JDBC (Java Database Connectivity) to interact with a Cloudscape database. It obtains connections via a DataSource looked up through JNDI. It uses PreparedStatement for all queries to handle parameters safely. The code manually manages resources (Connection, PreparedStatement, ResultSet) using try-catch-finally blocks (or close calls within the try block in this specific legacy style). |
|
com.sun.j2ee.blueprints.catalog.dao.GenericCatalogDAO |
JDBC | The class uses standard JDBC APIs (Connection, PreparedStatement, ResultSet) to interact with the database. It retrieves a DataSource via JNDI lookup. SQL statements are not hardcoded in the Java file but are constructed from fragments loaded from an external XML file, allowing for dynamic query generation based on parameters. |
|
com.sun.j2ee.blueprints.petstore.tools.populate |
JDBC | The class interacts with the database using raw JDBC connections passed into its methods. It relies on a `PopulateUtils` helper class to execute SQL statements stored in a `Map`. It performs DDL (Create/Drop) and DML (Insert) operations. |
|
com.sun.j2ee.blueprints.petstore.tools.populate |
JDBC | The class interacts with the database using standard JDBC `Connection` objects passed to its methods. It delegates the actual execution of SQL to a utility class `PopulateUtils`, which retrieves SQL templates from a `Map` based on operation keys (INSERT, CREATE, DROP, CHECK). It supports both direct execution against a database and generating SQL scripts (printing) when no connection is provided. |
|
com.sun.j2ee.blueprints.petstore.tools.populate |
JDBC | The class interacts with the database using raw JDBC Connections and SQL statements provided in a Map. It uses a utility class 'PopulateUtils' to abstract the execution of PreparedStatement logic. |
|
com.sun.j2ee.blueprints.petstore.tools.populate |
JDBC | The class manages database schema operations (DDL) and data verification via JDBC Connections passed to helper classes. It does not execute SQL directly but orchestrates the execution via CategoryPopulator, ProductPopulator, and ItemPopulator. |
|
com.sun.j2ee.blueprints.petstore.tools.populate.CategoryDetailsPopulator |
JDBC | The class interacts with the database using standard JDBC connections passed to its methods. It does not contain inline SQL but retrieves SQL statements from a `Map` (likely loaded from a properties file elsewhere). It performs DDL operations (CREATE, DROP) and DML operations (INSERT) via a helper utility `PopulateUtils`. |
|
com.sun.j2ee.blueprints.petstore.tools.populate.ItemDetailsPopulator |
JDBC | The class interacts with the database using raw JDBC Connections passed to its methods. It executes SQL statements (INSERT, CREATE, DROP, CHECK) stored in a Map, using a helper utility 'PopulateUtils' to handle the PreparedStatement execution. |
|
com.sun.j2ee.blueprints.petstore.tools.populate.PopulateServlet |
JDBC | The servlet interacts with the database using raw JDBC connections obtained from a DataSource looked up via JNDI. It executes dynamic SQL statements (DDL for table creation and DML for data insertion) that are parsed from XML configuration files. |
|
com.sun.j2ee.blueprints.petstore.tools.populate.PopulateUtils |
JDBC | The class interacts directly with the database using the Java Database Connectivity (JDBC) API. It uses `PreparedStatement` to execute arbitrary SQL commands (CREATE, INSERT, DROP, CHECK) defined in external maps or strings. |
|
com.sun.j2ee.blueprints.petstore.tools.populate.ProductDetailsPopulator |
JDBC | The class interacts with the database using raw JDBC Connections passed into its methods. It does not contain hardcoded SQL but retrieves SQL statements from a `Map` passed during construction, using keys generated by `PopulateUtils`. It performs DDL (Create, Drop) and DML (Insert) operations. |
|
com.sun.j2ee.blueprints.servicelocator.ejb.ServiceLocator |
JDBC | The class acts as a factory to retrieve `javax.sql.DataSource` objects via JNDI lookup. It does not execute SQL itself, but it is the gateway for the application to obtain database connections managed by the application server. |
|
com.sun.j2ee.blueprints.servicelocator.web.ServiceLocator |
JDBC | The class acts as a factory to retrieve `javax.sql.DataSource` objects via JNDI lookup. It caches these references to optimize performance. It does not execute SQL itself, but provides the connection factory for other classes to do so. |
|
dbstuff/forall-inserts-comparison.sql |
STORED-PROCEDURE | The code is a native Oracle PL/SQL script that integrates directly with the database engine. It defines Data Definition Language (DDL) objects including tables and types, and uses a Stored Procedure to execute Data Manipulation Language (DML) operations. The integration leverages high-performance features such as Bulk Collect, FORALL, and Direct Path Inserts (via hints) to interact with the defined tables. |
|
dbstuff/forall-bulk-rowcount.sql |
STORED-PROCEDURE | The code relies entirely on Oracle PL/SQL specific features. It integrates via stored procedures and anonymous blocks using bulk processing commands (`FORALL`, `BULK COLLECT`) to optimize database round-trips. It employs Dynamic SQL (`EXECUTE IMMEDIATE`) for schema changes and data insertion. It interacts with the `employees` table for updates and manages the lifecycle of the `empno_temp` table. |
|
dbstuff/cursors-in-plsql.sql |
STORED-PROCEDURE | The code relies entirely on Oracle PL/SQL for database integration. It performs DDL to define schema objects and DML to manipulate data. It extensively uses stored procedures, packages, and anonymous blocks to interact with the database using various cursor mechanisms (Implicit, Explicit, REF CURSOR) and dynamic SQL methods (DBMS_SQL, EXECUTE IMMEDIATE patterns via OPEN FOR). |
|
dbstuff/cursor-for-loop.sql |
STORED-PROCEDURE | The code integrates with an Oracle database using PL/SQL scripts and DDL. It defines a stored package ('emps_pkg') and executes anonymous blocks to manage data retrieval via cursors. The integration relies on standard SQL queries embedded within PL/SQL constructs to access the 'employees' table. |
|
dbstuff/cursor-for-loop-optimization.sql |
STORED-PROCEDURE | The file defines a PL/SQL stored procedure that interacts with the Oracle database engine. It uses SELECT queries on the system table 'dual' to generate data. It also includes DDL statements (ALTER PROCEDURE) to modify compiler settings and anonymous PL/SQL blocks to execute the procedure. |
|
dbstuff/trigger-predicates.sql |
TRIGGER | The code utilizes Oracle PL/SQL to define database triggers that respond to DML events (INSERT, UPDATE, DELETE). It integrates DDL for table creation, Stored Procedures for shared logic, and Triggers for event interception. The logic relies on Oracle-specific conditional predicates to determine the operation type dynamically. |
|
Namespace: com.sun.j2ee.blueprints.admin.client
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: N/A
Description: The interface defines a client proxy for interacting with a remote PetStore server.
Namespace: com.sun.j2ee.blueprints.admin.client.DataSource
Mechanism: OTHER
Direction: BIDIRECTIONAL
Path/Topic: N/A
Description: Communicates with the backend server to retrieve orders and sales data, and to update order statuses.
Namespace: com.sun.j2ee.blueprints.admin.client.HttpPostPetStoreProxy
Mechanism: REST
Direction: BIDIRECTIONAL
Path/Topic: /admin/ApplRequestProcessor
Description: The main entry point for the PetStore Admin backend. Although it uses XML payloads over HTTP POST (XML-RPC style), it functions as the primary HTTP integration point.
Namespace: com.sun.j2ee.blueprints.admin.web
Mechanism: REST
Direction: CONSUMER
Path/Topic: /admin (inferred from JNLP codebase construction)
Description: Standard Java Servlet handling HTTP requests for the Admin module.
Namespace: com.sun.j2ee.blueprints.admin.web.AdminRequestBD
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: Not directly specified, managed by the 'AsyncSender' EJB
Description: Produces a message to an asynchronous processing queue to handle order updates. The message payload is an XML representation of the 'OrderApproval' object. The actual sending is delegated to the 'AsyncSender' EJB.
Namespace: com.sun.j2ee.blueprints.admin.web.ApplRequestProcessor
Mechanism: REST
Direction: N/A
Path/Topic: unknown (defined in web.xml)
Description: A single servlet endpoint that processes XML requests from a rich client. The specific action is determined by a `<Type>` element within the XML payload. It handles fetching orders by status, updating order statuses, and retrieving aggregated data for charts.
Namespace: com.sun.j2ee.blueprints.asyncsender.ejb
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: JNDINames.ASYNC_SENDER_QUEUE
Description: Sends asynchronous text messages to a JMS queue defined by JNDI name.
Namespace: com.sun.j2ee.blueprints.asyncsender.util.JNDINames
Mechanism: JMS-QUEUE
Direction: OTHER
Path/Topic: AsyncSenderQueue
Description: JNDI lookup name for the AsyncSender JMS Queue defined as a constant.
Namespace: com.sun.j2ee.blueprints.asyncsender.util.JNDINames
Mechanism: OTHER
Direction: N/A
Path/Topic: N/A
Description: JNDI lookup name for the AsyncSender Local EJB Home interface.
Namespace: com.sun.j2ee.blueprints.catalog.client.CatalogHelper
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: JNDINames.CATALOG_EJBHOME
Description: Local Enterprise Java Bean interface for Catalog services
Namespace: com.sun.j2ee.blueprints.catalog.dao
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: JNDINames.CATALOG_DAO_CLASS
Description: Looks up the implementation class name for the DAO from the JNDI context.
Namespace: com.sun.j2ee.blueprints.catalog.dao.GenericCatalogDAO
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/jdbc/CatalogDataSource
Description: Looks up the JDBC DataSource using JNDI.
Namespace: com.sun.j2ee.blueprints.catalog.dao.GenericCatalogDAO
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/url/CatalogDAOSQLURL
Description: Looks up the URL for the DAO SQL XML configuration file.
Namespace: com.sun.j2ee.blueprints.catalog.ejb
Mechanism: OTHER
Direction: BIDIRECTIONAL
Path/Topic: N/A
Description: EJB Local Interface defining the API for the Catalog service component.
Namespace: com.sun.j2ee.blueprints.customer.account.ejb
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/ContactInfo
Description: JNDI lookup for ContactInfo Local Home interface
Namespace: com.sun.j2ee.blueprints.customer.account.ejb
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/CreditCard
Description: JNDI lookup for CreditCard Local Home interface
Namespace: com.sun.j2ee.blueprints.customer.account.ejb.AccountLocal
Mechanism: OTHER
Direction: BIDIRECTIONAL
Path/Topic: N/A
Description: Exposes local business methods for the Account component within the EJB container.
Namespace: com.sun.j2ee.blueprints.customer.ejb.CustomerEJB
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/Account
Description: JNDI lookup for the Account EJB Local Home interface.
Namespace: com.sun.j2ee.blueprints.customer.ejb.CustomerEJB
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/Profile
Description: JNDI lookup for the Profile EJB Local Home interface.
Namespace: com.sun.j2ee.blueprints.encodingfilter.web
Mechanism: REST
Direction: BOTH
Path/Topic: /* (configured in web.xml)
Description: A Servlet Filter that intercepts HTTP requests to set the character encoding.
Namespace: com.sun.j2ee.blueprints.mailer.ejb
Mechanism: JMS-QUEUE
Direction: CONSUMER
Path/Topic: N/A
Description: Receives email requests formatted as XML strings within JMS TextMessages.
Namespace: com.sun.j2ee.blueprints.mailer.ejb
Mechanism: OTHER
Direction: PRODUCER
Path/Topic: N/A
Description: Sends email messages via the configured J2EE Mail Session.
Namespace: com.sun.j2ee.blueprints.opc.admin.ejb
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/PurchaseOrder
Description: Local EJB interaction to retrieve purchase order data.
Namespace: com.sun.j2ee.blueprints.opc.admin.ejb
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/ProcessManager
Description: Local EJB interaction to retrieve process management data.
Namespace: com.sun.j2ee.blueprints.opc.admin.ejb.OPCAdminFacade
Mechanism: OTHER
Direction: BIDIRECTIONAL
Path/Topic: N/A
Description: Defines the RMI-IIOP remote interface for the OPC Admin EJB, allowing remote clients to invoke administrative business logic.
Namespace: com.sun.j2ee.blueprints.opc.admin.ejb.OPCAdminFacadeHome
Mechanism: OTHER
Direction: BIDIRECTIONAL
Path/Topic: N/A
Description: EJB Home Interface via RMI/IIOP
Namespace: com.sun.j2ee.blueprints.opc.customerrelations.ejb
Mechanism: JMS-QUEUE
Direction: CONSUMER
Path/Topic: N/A
Description: Receives JMS messages containing invoice XML data for processing.
Namespace: com.sun.j2ee.blueprints.opc.customerrelations.ejb
Mechanism: OTHER
Direction: PRODUCER
Path/Topic: N/A
Description: Delegates the sending of the generated email XML to the next step in the process (likely another JMS queue for the Mailer service).
Namespace: com.sun.j2ee.blueprints.opc.customerrelations.ejb.MailCompletedOrderMDB
Mechanism: JMS-QUEUE
Direction: CONSUMER
Path/Topic: N/A
Description: Receives JMS messages containing the ID of completed orders.
Namespace: com.sun.j2ee.blueprints.opc.customerrelations.ejb.MailOrderApprovalMDB
Mechanism: JMS-QUEUE
Direction: CONSUMER
Path/Topic: n/a
Description: Receives JMS messages containing OrderApproval XML documents.
Namespace: com.sun.j2ee.blueprints.opc.customerrelations.ejb.MailOrderApprovalMDB
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: n/a
Description: Sends generated email XML messages to the mailer service via a TransitionDelegate.
Namespace: com.sun.j2ee.blueprints.opc.ejb
Mechanism: JMS-QUEUE
Direction: CONSUMER
Path/Topic: N/A
Description: Receives purchase order XML messages from the Pet Store frontend.
Namespace: com.sun.j2ee.blueprints.opc.ejb
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: N/A
Description: Sends auto-approved order messages to the OrderApproval queue via the TransitionDelegate.
Namespace: com.sun.j2ee.blueprints.opc.ejb.InvoiceMDB
Mechanism: JMS-QUEUE
Direction: CONSUMER
Path/Topic: N/A
Description: Receives JMS messages containing XML invoices.
Namespace: com.sun.j2ee.blueprints.opc.ejb.OrderApprovalMDB
Mechanism: JMS-QUEUE
Direction: CONSUMER
Path/Topic: N/A
Description: Receives order approval/denial notifications via JMS.
Namespace: com.sun.j2ee.blueprints.opc.transitions
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: JNDINames.ORDER_APPROVAL_MDB_QUEUE
Description: Sends an order approval XML message to the Order Approval MDB Queue.
Namespace: com.sun.j2ee.blueprints.opc.transitions
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: JNDINames.MAIL_SENDER_QUEUE
Description: Sends an XML-formatted invoice email message to a JMS queue for asynchronous processing by a mailer service.
Namespace: com.sun.j2ee.blueprints.opc.transitions
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: CR_MAIL_COMPLETED_ORDER_MDB_QUEUE
Description: Queue used to send completed order messages for mailing.
Namespace: com.sun.j2ee.blueprints.opc.transitions
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: JNDINames.MAIL_SENDER_QUEUE
Description: Sends an XML-based email notification message to a JMS queue for asynchronous processing by a mailer service.
Namespace: com.sun.j2ee.blueprints.opc.transitions.JNDINames
Mechanism: JMS-QUEUE
Direction: OTHER
Path/Topic: java:comp/env/jms/QueueConnectionFactory
Description: JNDI lookup name for the JMS Queue Connection Factory.
Namespace: com.sun.j2ee.blueprints.opc.transitions.JNDINames
Mechanism: JMS-QUEUE
Direction: OTHER
Path/Topic: java:comp/env/jms/OrderApprovalQueue
Description: JNDI lookup name for the Order Approval MDB Queue.
Namespace: com.sun.j2ee.blueprints.opc.transitions.JNDINames
Mechanism: JMS-QUEUE
Direction: OTHER
Path/Topic: java:comp/env/jms/OrderApprovalMailQueue
Description: JNDI lookup name for the Customer Relations Mail Order Approval Queue.
Namespace: com.sun.j2ee.blueprints.opc.transitions.JNDINames
Mechanism: JMS-QUEUE
Direction: OTHER
Path/Topic: java:comp/env/jms/CompletedOrderMailQueue
Description: JNDI lookup name for the Customer Relations Mail Completed Order Queue.
Namespace: com.sun.j2ee.blueprints.opc.transitions.JNDINames
Mechanism: JMS-QUEUE
Direction: OTHER
Path/Topic: java:comp/env/jms/PurchaseOrderQueue
Description: JNDI lookup name for the Supplier Purchase Order Queue.
Namespace: com.sun.j2ee.blueprints.opc.transitions.JNDINames
Mechanism: JMS-QUEUE
Direction: OTHER
Path/Topic: java:comp/env/jms/MailQueue
Description: JNDI lookup name for the Mail Sender Queue.
Namespace: com.sun.j2ee.blueprints.opc.transitions.MailOrderApprovalTransitionDelegate
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: JNDINames.MAIL_SENDER_QUEUE
Description: Sends XML-formatted email messages to a JMS queue for asynchronous processing by a mailer service.
Namespace: com.sun.j2ee.blueprints.opc.transitions.OrderApprovalTD
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: JNDINames.SUPPLIER_PURCHASE_ORDER_QUEUE
Description: Queue used to send purchase orders to suppliers.
Namespace: com.sun.j2ee.blueprints.opc.transitions.OrderApprovalTD
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: JNDINames.CR_MAIL_ORDER_APPROVAL_MDB_QUEUE
Description: Queue used to send order approval/denial notices to customer relations for emailing.
Namespace: com.sun.j2ee.blueprints.opc.transitions.QueueHelper
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: n/a
Description: Sends a JMS TextMessage containing XML to a dynamically configured queue.
Namespace: com.sun.j2ee.blueprints.petstore.controller.ejb
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: JNDINames.CUSTOMER_EJBHOME
Description: Integration with the Customer EJB component via JNDI lookup.
Namespace: com.sun.j2ee.blueprints.petstore.controller.ejb
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: JNDINames.SHOPPING_CART_EJBHOME
Description: Integration with the Shopping Cart EJB component via JNDI lookup.
Namespace: com.sun.j2ee.blueprints.petstore.controller.ejb.ShoppingClientFacadeLocal
Mechanism: OTHER
Direction: BIDIRECTIONAL
Path/Topic: N/A
Description: J2EE EJB Local Interface serving as a facade for shopping operations.
Namespace: com.sun.j2ee.blueprints.petstore.controller.ejb.actions
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: N/A
Description: Invocation of EJB Local Interface for Shopping Cart operations
Namespace: com.sun.j2ee.blueprints.petstore.controller.ejb.actions.OrderEJBAction
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: unknown, encapsulated by AsyncSender EJB
Description: This action produces a message containing a purchase order in XML format. It uses the AsyncSender EJB, looked up via JNDI, to send the message to a message queue for asynchronous backend processing. This decouples the web front-end from order fulfillment tasks.
Namespace: com.sun.j2ee.blueprints.petstore.controller.web
Mechanism: OTHER
Direction: PRODUCER
Path/Topic: n/a
Description: Interaction with the EJB tier via the ShoppingControllerLocal interface.
Namespace: com.sun.j2ee.blueprints.petstore.controller.web.SignOnNotifier
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: N/A
Description: Listens for changes to HTTP Session attributes to trigger application logic.
Namespace: com.sun.j2ee.blueprints.petstore.controller.web.actions.CustomerHTMLAction
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: N/A
Description: Processes standard Java Servlet HTTP requests to extract form data.
Namespace: com.sun.j2ee.blueprints.petstore.controller.web.actions.OrderHTMLAction
Mechanism: REST
Direction: CONSUMER
Path/Topic: unknown (dynamic)
Description: Consumes HTTP requests via the Servlet API to process form data.
Namespace: com.sun.j2ee.blueprints.petstore.tools.populate
Mechanism: OTHER
Direction: BIDIRECTIONAL
Path/Topic: java:comp/env/ejb/User
Description: Integration with the EJB Container to manage User entities.
Namespace: com.sun.j2ee.blueprints.petstore.tools.populate
Mechanism: OTHER
Direction: PRODUCER
Path/Topic: java:comp/env/ejb/CreditCard
Description: Integration with the CreditCard Enterprise Java Bean via JNDI lookup.
Namespace: com.sun.j2ee.blueprints.petstore.tools.populate
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/Account
Description: Looks up the Account EJB Local Home interface using JNDI.
Namespace: com.sun.j2ee.blueprints.petstore.tools.populate.AddressPopulator
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/Address
Description: Looks up the EJB Home interface using the Java Naming and Directory Interface.
Namespace: com.sun.j2ee.blueprints.petstore.tools.populate.ContactInfoPopulator
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/ContactInfo
Description: Lookup of EJB Home interface via JNDI
Namespace: com.sun.j2ee.blueprints.petstore.tools.populate.CustomerPopulator
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/Customer
Description: Lookups up the Local Home interface for the Customer EJB.
Namespace: com.sun.j2ee.blueprints.petstore.tools.populate.PopulateServlet
Mechanism: REST
Direction: CONSUMER
Path/Topic: /populate (inferred)
Description: Servlet endpoint that triggers the database population process.
Namespace: com.sun.j2ee.blueprints.processmanager.ejb
Mechanism: OTHER
Direction: BIDIRECTIONAL
Path/Topic: N/A
Description: This interface acts as a local integration point for other components within the same JVM to access the Process Manager business logic via the EJB container.
Namespace: com.sun.j2ee.blueprints.servicelocator.ejb.ServiceLocator
Mechanism: JMS-QUEUE
Direction: BOTH
Path/Topic: Dynamic (passed as parameter)
Description: Provides access to JMS Queues and QueueConnectionFactories via JNDI lookup.
Namespace: com.sun.j2ee.blueprints.servicelocator.ejb.ServiceLocator
Mechanism: JMS-TOPIC
Direction: BOTH
Path/Topic: Dynamic (passed as parameter)
Description: Provides access to JMS Topics and TopicConnectionFactories via JNDI lookup.
Namespace: com.sun.j2ee.blueprints.signon.ejb
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/User
Description: JNDI lookup for the User Entity Bean Home interface.
Namespace: com.sun.j2ee.blueprints.signon.web
Mechanism: REST
Direction: BIDIRECTIONAL
Path/Topic: unknown
Description: HTTP Servlet endpoint for creating users.
Namespace: com.sun.j2ee.blueprints.signon.web.SignOnFilter
Mechanism: REST
Direction: CONSUMER
Path/Topic: j_signon_check
Description: Intercepts HTTP requests sent to the sign-on check URL to process login credentials.
Namespace: com.sun.j2ee.blueprints.supplier.inventory.web
Mechanism: REST
Direction: CONSUMER
Path/Topic: unknown (mapped in web.xml)
Description: Standard Java Servlet endpoint processing HTTP requests for supplier inventory and orders.
Namespace: com.sun.j2ee.blueprints.supplier.inventory.web
Mechanism: OTHER
Direction: PRODUCER
Path/Topic: N/A
Description: Integration point for sending invoices, likely via messaging or XML transport, abstracted by the TransitionDelegate pattern.
Namespace: com.sun.j2ee.blueprints.supplier.inventory.web
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: JNDINames.INV_EJB
Description: Integration with a local Enterprise JavaBean via JNDI lookup.
Namespace: com.sun.j2ee.blueprints.supplier.inventory.web.JNDINames
Mechanism: OTHER
Direction: N/A
Path/Topic: N/A
Description: JNDI Lookup Name for Inventory EJB
Namespace: com.sun.j2ee.blueprints.supplier.inventory.web.JNDINames
Mechanism: OTHER
Direction: N/A
Path/Topic: N/A
Description: JNDI Lookup Name for OrderFulfillmentFacade EJB
Namespace: com.sun.j2ee.blueprints.supplier.inventory.web.JNDINames
Mechanism: OTHER
Direction: N/A
Path/Topic: N/A
Description: JNDI Lookup Name for UserTransaction (JTA)
Namespace: com.sun.j2ee.blueprints.supplier.orderfulfillment.ejb
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: N/A
Description: Reads and parses XML files from the file system via the main method or input streams.
Namespace: com.sun.j2ee.blueprints.supplier.processpo.ejb.JNDINames
Mechanism: JMS-TOPIC
Direction: PRODUCER
Path/Topic: java:comp/env/jms/opc/InvoiceTopic
Description: JNDI name for the Invoice JMS Topic used to send invoices.
Namespace: com.sun.j2ee.blueprints.supplier.processpo.ejb.JNDINames
Mechanism: OTHER
Direction: N/A
Path/Topic: java:comp/env/ejb/OrderFulfillmentFacade
Description: JNDI name for the OrderFulfillmentFacade EJB.
Namespace: com.sun.j2ee.blueprints.supplier.processpo.ejb.SupplierOrderMDB
Mechanism: JMS-QUEUE
Direction: CONSUMER
Path/Topic: N/A
Description: Receives purchase orders from the Order Processing Center.
Namespace: com.sun.j2ee.blueprints.supplier.processpo.ejb.SupplierOrderMDB
Mechanism: JMS-QUEUE
Direction: PRODUCER
Path/Topic: N/A
Description: Sends an invoice back to the OPC via a TransitionDelegate if the order is shipped.
Namespace: com.sun.j2ee.blueprints.supplier.tools.populate
Mechanism: REST
Direction: CONSUMER
Path/Topic: unknown (configured in web.xml)
Description: HTTP Servlet endpoint used to trigger data population.
Namespace: com.sun.j2ee.blueprints.supplier.transitions
Mechanism: JMS-TOPIC
Direction: PRODUCER
Path/Topic: INVOICE_MDB_TOPIC
Description: Publishes invoice XML messages to a JMS Topic for downstream processing.
Namespace: com.sun.j2ee.blueprints.supplier.transitions
Mechanism: JMS-TOPIC
Direction: BOTH
Path/Topic: N/A
Description: Defines the JNDI location for the JMS Topic Connection Factory used to create connections for topic-based messaging.
Namespace: com.sun.j2ee.blueprints.supplier.transitions
Mechanism: JMS-TOPIC
Direction: BOTH
Path/Topic: N/A
Description: Defines the JNDI location for the Invoice Topic, likely used for publishing or subscribing to invoice-related events.
Namespace: com.sun.j2ee.blueprints.supplier.transitions.TopicSender
Mechanism: JMS-TOPIC
Direction: PRODUCER
Path/Topic: Configured via constructor (referenced as Invoice MDB Topic in Javadoc)
Description: Publishes XML text messages to a JMS Topic.
Namespace: com.sun.j2ee.blueprints.uidgen.counter.ejb.CounterLocal
Mechanism: OTHER
Direction: BIDIRECTIONAL
Path/Topic: N/A
Description: EJB Local Interface definition for the Counter service, allowing local component integration.
Namespace: com.sun.j2ee.blueprints.uidgen.ejb.UniqueIdGeneratorEJB
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: java:comp/env/ejb/Counter
Description: JNDI lookup for the Counter Entity Bean Home interface.
Namespace: com.sun.j2ee.blueprints.waf.controller.ejb
Mechanism: OTHER
Direction: BOTH
Path/Topic: N/A
Description: EJB Session Bean implementation acting as a controller for the WAF framework.
Namespace: com.sun.j2ee.blueprints.waf.controller.web
Mechanism: REST
Direction: CONSUMER
Path/Topic: Defined in web.xml (not visible)
Description: Acts as the Front Controller Servlet handling HTTP requests for the application.
Namespace: com.sun.j2ee.blueprints.waf.controller.web
Mechanism: OTHER
Direction: BIDIRECTIONAL
Path/Topic: N/A
Description: Interaction with the EJB tier via a local interface to process business events.
Namespace: com.sun.j2ee.blueprints.waf.controller.web
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: N/A
Description: Integrates with the Servlet Container lifecycle by extending the standard HttpSessionListener interface.
Namespace: com.sun.j2ee.blueprints.waf.controller.web.action.HTMLAction
Mechanism: REST
Direction: CONSUMER
Path/Topic: Dynamic (determined by implementing classes and controller mapping)
Description: This interface is designed to work within a Servlet container, processing HttpServletRequests. While it does not define a specific endpoint path itself, it is the contract for classes that handle HTTP requests in the web tier.
Namespace: com.sun.j2ee.blueprints.waf.controller.web.flow.ScreenFlowManager
Mechanism: OTHER
Direction: OTHER
Path/Topic: N/A
Description: Forwards HTTP requests to internal resources (JSPs or Servlets) based on flow logic.
Namespace: com.sun.j2ee.blueprints.waf.view.template.TemplateServlet
Mechanism: REST
Direction: CONSUMER
Path/Topic: /* (Dynamic based on configuration)
Description: Handles HTTP requests for UI screens, acting as a front controller.
Namespace: com.sun.j2ee.blueprints.xmldocuments.XMLDocumentEditorFactory
Mechanism: OTHER
Direction: CONSUMER
Path/Topic: n/a
Description: Loads configuration properties from a URL resource.