[
  {
    "namespace": "com.sun.j2ee.blueprints.admin.client",
    "filepath": "src/apps/admin/src/client/com/sun/j2ee/blueprints/admin/client/PetStoreProxy.java",
    "mechanism": "OTHER",
    "name": "PetStore Admin Service",
    "description": "The interface defines a client proxy for interacting with a remote PetStore server.",
    "direction": "CONSUMER",
    "protocol": "Unknown (Abstracted by Proxy)",
    "connectionInfo": "Configured via setup(host, port, endpoint)"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.admin.client.DataSource",
    "filepath": "src/apps/admin/src/client/com/sun/j2ee/blueprints/admin/client/DataSource.java",
    "mechanism": "OTHER",
    "name": "PetStoreProxy",
    "description": "Communicates with the backend server to retrieve orders and sales data, and to update order statuses.",
    "direction": "BIDIRECTIONAL",
    "connectionInfo": "Configured via hostname, port, and endpoint passed to constructor"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.admin.client.HttpPostPetStoreProxy",
    "filepath": "src/apps/admin/src/client/com/sun/j2ee/blueprints/admin/client/HttpPostPetStoreProxy.java",
    "mechanism": "REST",
    "name": "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.",
    "path": "/admin/ApplRequestProcessor",
    "method": "POST",
    "direction": "BIDIRECTIONAL",
    "requestBody": "Custom XML structure (e.g., <Request><Type>...</Type>...</Request>)",
    "responseBody": "XML Document",
    "protocol": "HTTP/1.1",
    "connectionInfo": "http://{host}:{port}/admin/ApplRequestProcessor"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.admin.web",
    "filepath": "src/apps/admin/src/admin/com/sun/j2ee/blueprints/admin/web/AdminRequestProcessor.java",
    "mechanism": "REST",
    "name": "AdminRequestProcessor Servlet",
    "description": "Standard Java Servlet handling HTTP requests for the Admin module.",
    "path": "/admin (inferred from JNLP codebase construction)",
    "method": "GET, POST",
    "direction": "CONSUMER",
    "protocol": "HTTP/1.1"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.admin.web.AdminRequestBD",
    "filepath": "src/apps/admin/src/admin/com/sun/j2ee/blueprints/admin/web/AdminRequestBD.java",
    "mechanism": "JMS-QUEUE",
    "name": "Order Approval Sender",
    "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.",
    "queueOrTopicName": "Not directly specified, managed by the 'AsyncSender' EJB",
    "messageType": "String (XML)",
    "direction": "PRODUCER",
    "requestBody": "XML representation of a com.sun.j2ee.blueprints.xmldocuments.OrderApproval object."
  },
  {
    "namespace": "com.sun.j2ee.blueprints.admin.web.ApplRequestProcessor",
    "filepath": "src/apps/admin/src/admin/com/sun/j2ee/blueprints/admin/web/ApplRequestProcessor.java",
    "mechanism": "REST",
    "name": "ApplRequestProcessor",
    "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.",
    "path": "unknown (defined in web.xml)",
    "method": "POST",
    "requestBody": "XML document containing a <Type> element (e.g., GETORDERS, UPDATESTATUS, REVENUE, ORDERS) and other data specific to the request type.",
    "responseBody": "XML document containing a <Response> root element, with data corresponding to the request or an <Error> element.",
    "protocol": "HTTP/1.1"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.asyncsender.ejb",
    "filepath": "src/components/asyncsender/src/com/sun/j2ee/blueprints/asyncsender/ejb/AsyncSenderEJB.java",
    "mechanism": "JMS-QUEUE",
    "name": "ASYNC_SENDER_QUEUE",
    "description": "Sends asynchronous text messages to a JMS queue defined by JNDI name.",
    "queueOrTopicName": "JNDINames.ASYNC_SENDER_QUEUE",
    "messageType": "TextMessage",
    "direction": "PRODUCER",
    "connectionInfo": "JNDINames.QUEUE_CONNECTION_FACTORY"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.asyncsender.util.JNDINames",
    "filepath": "src/components/asyncsender/src/com/sun/j2ee/blueprints/asyncsender/util/JNDINames.java",
    "mechanism": "JMS-QUEUE",
    "name": "AsyncSenderQueue",
    "description": "JNDI lookup name for the AsyncSender JMS Queue defined as a constant.",
    "queueOrTopicName": "AsyncSenderQueue",
    "direction": "OTHER",
    "connectionInfo": "java:comp/env/jms/AsyncSenderQueue"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.asyncsender.util.JNDINames",
    "filepath": "src/components/asyncsender/src/com/sun/j2ee/blueprints/asyncsender/util/JNDINames.java",
    "mechanism": "OTHER",
    "name": "AsyncSender EJB",
    "description": "JNDI lookup name for the AsyncSender Local EJB Home interface.",
    "connectionInfo": "java:comp/env/ejb/AsyncSender"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.catalog.client.CatalogHelper",
    "filepath": "src/components/catalog/src/com/sun/j2ee/blueprints/catalog/client/CatalogHelper.java",
    "mechanism": "OTHER",
    "name": "CatalogLocal EJB",
    "description": "Local Enterprise Java Bean interface for Catalog services",
    "path": "JNDINames.CATALOG_EJBHOME",
    "method": "create, searchItems, getCategories, getProducts, getItems, getItem",
    "direction": "CONSUMER",
    "protocol": "EJB RMI/Local",
    "connectionInfo": "JNDI Lookup via ServiceLocator"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.catalog.dao",
    "filepath": "src/components/catalog/src/com/sun/j2ee/blueprints/catalog/dao/CatalogDAOFactory.java",
    "mechanism": "OTHER",
    "name": "JNDI Configuration Lookup",
    "description": "Looks up the implementation class name for the DAO from the JNDI context.",
    "path": "JNDINames.CATALOG_DAO_CLASS",
    "direction": "CONSUMER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.catalog.dao.GenericCatalogDAO",
    "filepath": "src/components/catalog/src/com/sun/j2ee/blueprints/catalog/dao/GenericCatalogDAO.java",
    "mechanism": "OTHER",
    "name": "JNDI DataSource Lookup",
    "description": "Looks up the JDBC DataSource using JNDI.",
    "path": "java:comp/env/jdbc/CatalogDataSource",
    "direction": "CONSUMER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.catalog.dao.GenericCatalogDAO",
    "filepath": "src/components/catalog/src/com/sun/j2ee/blueprints/catalog/dao/GenericCatalogDAO.java",
    "mechanism": "OTHER",
    "name": "JNDI Configuration Lookup",
    "description": "Looks up the URL for the DAO SQL XML configuration file.",
    "path": "java:comp/env/url/CatalogDAOSQLURL",
    "direction": "CONSUMER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.catalog.ejb",
    "filepath": "src/components/catalog/src/com/sun/j2ee/blueprints/catalog/ejb/CatalogLocal.java",
    "mechanism": "OTHER",
    "name": "CatalogLocal",
    "description": "EJB Local Interface defining the API for the Catalog service component.",
    "direction": "BIDIRECTIONAL"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.customer.account.ejb",
    "filepath": "src/components/customer/src/com/sun/j2ee/blueprints/customer/account/ejb/AccountEJB.java",
    "mechanism": "OTHER",
    "name": "java:comp/env/ejb/ContactInfo",
    "description": "JNDI lookup for ContactInfo Local Home interface",
    "path": "java:comp/env/ejb/ContactInfo",
    "method": "lookup",
    "direction": "CONSUMER",
    "protocol": "JNDI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.customer.account.ejb",
    "filepath": "src/components/customer/src/com/sun/j2ee/blueprints/customer/account/ejb/AccountEJB.java",
    "mechanism": "OTHER",
    "name": "java:comp/env/ejb/CreditCard",
    "description": "JNDI lookup for CreditCard Local Home interface",
    "path": "java:comp/env/ejb/CreditCard",
    "method": "lookup",
    "direction": "CONSUMER",
    "protocol": "JNDI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.customer.account.ejb.AccountLocal",
    "filepath": "src/components/customer/src/com/sun/j2ee/blueprints/customer/account/ejb/AccountLocal.java",
    "mechanism": "OTHER",
    "name": "EJB Local Interface",
    "description": "Exposes local business methods for the Account component within the EJB container.",
    "direction": "BIDIRECTIONAL"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.customer.ejb.CustomerEJB",
    "filepath": "src/components/customer/src/com/sun/j2ee/blueprints/customer/ejb/CustomerEJB.java",
    "mechanism": "OTHER",
    "name": "java:comp/env/ejb/Account",
    "description": "JNDI lookup for the Account EJB Local Home interface.",
    "path": "java:comp/env/ejb/Account",
    "method": "lookup",
    "direction": "CONSUMER",
    "protocol": "JNDI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.customer.ejb.CustomerEJB",
    "filepath": "src/components/customer/src/com/sun/j2ee/blueprints/customer/ejb/CustomerEJB.java",
    "mechanism": "OTHER",
    "name": "java:comp/env/ejb/Profile",
    "description": "JNDI lookup for the Profile EJB Local Home interface.",
    "path": "java:comp/env/ejb/Profile",
    "method": "lookup",
    "direction": "CONSUMER",
    "protocol": "JNDI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.encodingfilter.web",
    "filepath": "src/components/encodingfilter/src/com/sun/j2ee/blueprints/encodingfilter/web/EncodingFilter.java",
    "mechanism": "REST",
    "name": "EncodingFilter",
    "description": "A Servlet Filter that intercepts HTTP requests to set the character encoding.",
    "path": "/* (configured in web.xml)",
    "method": "ALL",
    "direction": "BOTH",
    "protocol": "HTTP",
    "connectionInfo": "Servlet Container"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.mailer.ejb",
    "filepath": "src/components/mailer/src/com/sun/j2ee/blueprints/mailer/ejb/MailerMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "mailer queue",
    "description": "Receives email requests formatted as XML strings within JMS TextMessages.",
    "messageType": "TextMessage",
    "direction": "CONSUMER",
    "requestBody": "XML string containing email address, subject, and content."
  },
  {
    "namespace": "com.sun.j2ee.blueprints.mailer.ejb",
    "filepath": "src/components/mailer/src/com/sun/j2ee/blueprints/mailer/ejb/MailHelper.java",
    "mechanism": "OTHER",
    "name": "JavaMail Service",
    "description": "Sends email messages via the configured J2EE Mail Session.",
    "direction": "PRODUCER",
    "protocol": "SMTP",
    "connectionInfo": "JNDI: mail/Session"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.admin.ejb",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/admin/ejb/OPCAdminFacadeEJB.java",
    "mechanism": "OTHER",
    "name": "PurchaseOrder EJB",
    "description": "Local EJB interaction to retrieve purchase order data.",
    "path": "java:comp/env/ejb/PurchaseOrder",
    "method": "findByPrimaryKey, findPOBetweenDates",
    "direction": "CONSUMER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.admin.ejb",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/admin/ejb/OPCAdminFacadeEJB.java",
    "mechanism": "OTHER",
    "name": "ProcessManager EJB",
    "description": "Local EJB interaction to retrieve process management data.",
    "path": "java:comp/env/ejb/ProcessManager",
    "method": "getOrdersByStatus",
    "direction": "CONSUMER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.admin.ejb.OPCAdminFacade",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/admin/ejb/OPCAdminFacade.java",
    "mechanism": "OTHER",
    "name": "OPCAdminFacade EJB Remote Interface",
    "description": "Defines the RMI-IIOP remote interface for the OPC Admin EJB, allowing remote clients to invoke administrative business logic.",
    "direction": "BIDIRECTIONAL",
    "authentication": "Container Managed (likely)",
    "protocol": "RMI-IIOP",
    "connectionInfo": "JNDI lookup required"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.admin.ejb.OPCAdminFacadeHome",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/admin/ejb/OPCAdminFacadeHome.java",
    "mechanism": "OTHER",
    "name": "OPCAdminFacadeHome",
    "description": "EJB Home Interface via RMI/IIOP",
    "direction": "BIDIRECTIONAL",
    "protocol": "EJB/RMI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.customerrelations.ejb",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/customerrelations/ejb/MailInvoiceMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "Invoice Listener",
    "description": "Receives JMS messages containing invoice XML data for processing.",
    "messageType": "XML Invoice",
    "direction": "CONSUMER",
    "requestBody": "XML String containing invoice details",
    "protocol": "JMS"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.customerrelations.ejb",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/customerrelations/ejb/MailInvoiceMDB.java",
    "mechanism": "OTHER",
    "name": "MailInvoiceTransitionDelegate",
    "description": "Delegates the sending of the generated email XML to the next step in the process (likely another JMS queue for the Mailer service).",
    "messageType": "XML Mail Message",
    "direction": "PRODUCER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.customerrelations.ejb.MailCompletedOrderMDB",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/customerrelations/ejb/MailCompletedOrderMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "MailCompletedOrderQueue",
    "description": "Receives JMS messages containing the ID of completed orders.",
    "messageType": "TextMessage",
    "direction": "CONSUMER",
    "requestBody": "String (Order ID)",
    "protocol": "JMS",
    "connectionInfo": "Managed by EJB Container"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.customerrelations.ejb.MailOrderApprovalMDB",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/customerrelations/ejb/MailOrderApprovalMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "OrderApprovalQueue",
    "description": "Receives JMS messages containing OrderApproval XML documents.",
    "path": "n/a",
    "method": "onMessage",
    "queueOrTopicName": "unknown (configured in deployment descriptor)",
    "messageType": "TextMessage (XML)",
    "direction": "CONSUMER",
    "requestBody": "XML String representing OrderApproval",
    "responseBody": "n/a",
    "protocol": "JMS",
    "connectionInfo": "Container Managed"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.customerrelations.ejb.MailOrderApprovalMDB",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/customerrelations/ejb/MailOrderApprovalMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "MailerService",
    "description": "Sends generated email XML messages to the mailer service via a TransitionDelegate.",
    "path": "n/a",
    "method": "send",
    "queueOrTopicName": "unknown (hidden behind TransitionDelegate)",
    "messageType": "XML String (Mail)",
    "direction": "PRODUCER",
    "requestBody": "XML String representing Mail object",
    "responseBody": "n/a",
    "protocol": "JMS",
    "connectionInfo": "Managed by MailOrderApprovalTransitionDelegate"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.ejb",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/ejb/PurchaseOrderMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "PurchaseOrderQueue",
    "description": "Receives purchase order XML messages from the Pet Store frontend.",
    "messageType": "TextMessage (XML)",
    "direction": "CONSUMER",
    "protocol": "JMS",
    "connectionInfo": "Configured via deployment descriptor (ejb-jar.xml)"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.ejb",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/ejb/PurchaseOrderMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "OrderApprovalQueue",
    "description": "Sends auto-approved order messages to the OrderApproval queue via the TransitionDelegate.",
    "messageType": "XML",
    "direction": "PRODUCER",
    "protocol": "JMS",
    "connectionInfo": "Managed by TransitionDelegate/PurchaseOrderTD"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.ejb.InvoiceMDB",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/ejb/InvoiceMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "Invoice Queue",
    "description": "Receives JMS messages containing XML invoices.",
    "messageType": "TextMessage (XML)",
    "direction": "CONSUMER",
    "requestBody": "XML Invoice Document",
    "protocol": "JMS",
    "connectionInfo": "Managed by EJB Container"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.ejb.OrderApprovalMDB",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/ejb/OrderApprovalMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "OrderApprovalQueue",
    "description": "Receives order approval/denial notifications via JMS.",
    "messageType": "TextMessage (XML)",
    "direction": "CONSUMER",
    "requestBody": "XML containing list of ChangedOrder elements",
    "protocol": "JMS",
    "connectionInfo": "Managed by EJB Container"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/PurchaseOrderTD.java",
    "mechanism": "JMS-QUEUE",
    "name": "OrderApprovalQueue",
    "description": "Sends an order approval XML message to the Order Approval MDB Queue.",
    "queueOrTopicName": "JNDINames.ORDER_APPROVAL_MDB_QUEUE",
    "messageType": "XML String",
    "direction": "PRODUCER",
    "connectionInfo": "JNDI lookup via ServiceLocator"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/MailInvoiceTransitionDelegate.java",
    "mechanism": "JMS-QUEUE",
    "name": "MAIL_SENDER_QUEUE",
    "description": "Sends an XML-formatted invoice email message to a JMS queue for asynchronous processing by a mailer service.",
    "queueOrTopicName": "JNDINames.MAIL_SENDER_QUEUE",
    "messageType": "XML String",
    "direction": "PRODUCER",
    "requestBody": "XML String containing email details",
    "connectionInfo": "JNDI lookup via ServiceLocator"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/InvoiceTD.java",
    "mechanism": "JMS-QUEUE",
    "name": "CR_MAIL_COMPLETED_ORDER_MDB_QUEUE",
    "description": "Queue used to send completed order messages for mailing.",
    "queueOrTopicName": "CR_MAIL_COMPLETED_ORDER_MDB_QUEUE",
    "messageType": "XML String",
    "direction": "PRODUCER",
    "connectionInfo": "JNDI: QUEUE_CONNECTION_FACTORY"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/MailCompletedOrderTD.java",
    "mechanism": "JMS-QUEUE",
    "name": "JNDINames.MAIL_SENDER_QUEUE",
    "description": "Sends an XML-based email notification message to a JMS queue for asynchronous processing by a mailer service.",
    "queueOrTopicName": "JNDINames.MAIL_SENDER_QUEUE",
    "messageType": "XML String",
    "direction": "PRODUCER",
    "connectionInfo": "JNDINames.QUEUE_CONNECTION_FACTORY"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions.JNDINames",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/JNDINames.java",
    "mechanism": "JMS-QUEUE",
    "name": "QueueConnectionFactory",
    "description": "JNDI lookup name for the JMS Queue Connection Factory.",
    "queueOrTopicName": "java:comp/env/jms/QueueConnectionFactory",
    "direction": "OTHER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions.JNDINames",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/JNDINames.java",
    "mechanism": "JMS-QUEUE",
    "name": "OrderApprovalQueue",
    "description": "JNDI lookup name for the Order Approval MDB Queue.",
    "queueOrTopicName": "java:comp/env/jms/OrderApprovalQueue",
    "direction": "OTHER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions.JNDINames",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/JNDINames.java",
    "mechanism": "JMS-QUEUE",
    "name": "OrderApprovalMailQueue",
    "description": "JNDI lookup name for the Customer Relations Mail Order Approval Queue.",
    "queueOrTopicName": "java:comp/env/jms/OrderApprovalMailQueue",
    "direction": "OTHER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions.JNDINames",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/JNDINames.java",
    "mechanism": "JMS-QUEUE",
    "name": "CompletedOrderMailQueue",
    "description": "JNDI lookup name for the Customer Relations Mail Completed Order Queue.",
    "queueOrTopicName": "java:comp/env/jms/CompletedOrderMailQueue",
    "direction": "OTHER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions.JNDINames",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/JNDINames.java",
    "mechanism": "JMS-QUEUE",
    "name": "PurchaseOrderQueue",
    "description": "JNDI lookup name for the Supplier Purchase Order Queue.",
    "queueOrTopicName": "java:comp/env/jms/PurchaseOrderQueue",
    "direction": "OTHER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions.JNDINames",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/JNDINames.java",
    "mechanism": "JMS-QUEUE",
    "name": "MailQueue",
    "description": "JNDI lookup name for the Mail Sender Queue.",
    "queueOrTopicName": "java:comp/env/jms/MailQueue",
    "direction": "OTHER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions.MailOrderApprovalTransitionDelegate",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/MailOrderApprovalTransitionDelegate.java",
    "mechanism": "JMS-QUEUE",
    "name": "MAIL_SENDER_QUEUE",
    "description": "Sends XML-formatted email messages to a JMS queue for asynchronous processing by a mailer service.",
    "queueOrTopicName": "JNDINames.MAIL_SENDER_QUEUE",
    "messageType": "XML String",
    "direction": "PRODUCER",
    "connectionInfo": "JNDI lookup via ServiceLocator"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions.OrderApprovalTD",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/OrderApprovalTD.java",
    "mechanism": "JMS-QUEUE",
    "name": "Supplier Purchase Order Queue",
    "description": "Queue used to send purchase orders to suppliers.",
    "queueOrTopicName": "JNDINames.SUPPLIER_PURCHASE_ORDER_QUEUE",
    "messageType": "XML String",
    "direction": "PRODUCER",
    "requestBody": "XML Purchase Order",
    "connectionInfo": "Lookup via JNDINames.QUEUE_CONNECTION_FACTORY"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions.OrderApprovalTD",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/OrderApprovalTD.java",
    "mechanism": "JMS-QUEUE",
    "name": "Mail Order Approval Queue",
    "description": "Queue used to send order approval/denial notices to customer relations for emailing.",
    "queueOrTopicName": "JNDINames.CR_MAIL_ORDER_APPROVAL_MDB_QUEUE",
    "messageType": "XML String",
    "direction": "PRODUCER",
    "requestBody": "XML Order Approval List",
    "connectionInfo": "Lookup via JNDINames.QUEUE_CONNECTION_FACTORY"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.opc.transitions.QueueHelper",
    "filepath": "src/apps/opc/src/com/sun/j2ee/blueprints/opc/transitions/QueueHelper.java",
    "mechanism": "JMS-QUEUE",
    "name": "Unknown (Dynamic)",
    "description": "Sends a JMS TextMessage containing XML to a dynamically configured queue.",
    "path": "n/a",
    "method": "SEND",
    "queueOrTopicName": "Stored in 'q' field",
    "messageType": "TextMessage (XML)",
    "direction": "PRODUCER",
    "requestBody": "XML String",
    "responseBody": "n/a",
    "protocol": "JMS",
    "connectionInfo": "Managed via QueueConnectionFactory"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.controller.ejb",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/controller/ejb/ShoppingClientFacadeLocalEJB.java",
    "mechanism": "OTHER",
    "name": "Customer Service",
    "description": "Integration with the Customer EJB component via JNDI lookup.",
    "path": "JNDINames.CUSTOMER_EJBHOME",
    "direction": "CONSUMER",
    "protocol": "JNDI/EJB Local"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.controller.ejb",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/controller/ejb/ShoppingClientFacadeLocalEJB.java",
    "mechanism": "OTHER",
    "name": "Shopping Cart Service",
    "description": "Integration with the Shopping Cart EJB component via JNDI lookup.",
    "path": "JNDINames.SHOPPING_CART_EJBHOME",
    "direction": "CONSUMER",
    "protocol": "JNDI/EJB Local"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.controller.ejb.ShoppingClientFacadeLocal",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/controller/ejb/ShoppingClientFacadeLocal.java",
    "mechanism": "OTHER",
    "name": "ShoppingClientFacadeLocal",
    "description": "J2EE EJB Local Interface serving as a facade for shopping operations.",
    "direction": "BIDIRECTIONAL"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.controller.ejb.actions",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/controller/ejb/actions/CartEJBAction.java",
    "mechanism": "OTHER",
    "name": "ShoppingCartLocal",
    "description": "Invocation of EJB Local Interface for Shopping Cart operations",
    "direction": "CONSUMER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.controller.ejb.actions.OrderEJBAction",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/controller/ejb/actions/OrderEJBAction.java",
    "mechanism": "JMS-QUEUE",
    "name": "JNDINames.ASYNCSENDER_LOCAL_EJB_HOME",
    "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.",
    "queueOrTopicName": "unknown, encapsulated by AsyncSender EJB",
    "messageType": "String (XML)",
    "direction": "PRODUCER",
    "connectionInfo": "JNDI Name: com.sun.j2ee.blueprints.asyncsender.ejb.AsyncSenderLocal"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.controller.web",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/controller/web/ShoppingWebController.java",
    "mechanism": "OTHER",
    "name": "ShoppingControllerLocal",
    "description": "Interaction with the EJB tier via the ShoppingControllerLocal interface.",
    "path": "n/a",
    "method": "processEvent",
    "direction": "PRODUCER",
    "protocol": "EJB",
    "connectionInfo": "Lookup via PetstoreComponentManager"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.controller.web.SignOnNotifier",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/controller/web/SignOnNotifier.java",
    "mechanism": "OTHER",
    "name": "HttpSessionAttributeListener",
    "description": "Listens for changes to HTTP Session attributes to trigger application logic.",
    "direction": "CONSUMER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.controller.web.actions.CustomerHTMLAction",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/controller/web/actions/CustomerHTMLAction.java",
    "mechanism": "OTHER",
    "name": "Servlet Request Processing",
    "description": "Processes standard Java Servlet HTTP requests to extract form data.",
    "direction": "CONSUMER",
    "protocol": "HTTP"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.controller.web.actions.OrderHTMLAction",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/controller/web/actions/OrderHTMLAction.java",
    "mechanism": "REST",
    "name": "Order Processing Action",
    "description": "Consumes HTTP requests via the Servlet API to process form data.",
    "path": "unknown (dynamic)",
    "method": "POST",
    "direction": "CONSUMER",
    "requestBody": "Form data (family_name, given_name, address_1, etc.)",
    "protocol": "HTTP/Servlet"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.tools.populate",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/tools/populate/UserPopulator.java",
    "mechanism": "OTHER",
    "name": "User EJB",
    "description": "Integration with the EJB Container to manage User entities.",
    "path": "java:comp/env/ejb/User",
    "direction": "BIDIRECTIONAL",
    "protocol": "JNDI/RMI",
    "connectionInfo": "java:comp/env/ejb/User"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.tools.populate",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/tools/populate/CreditCardPopulator.java",
    "mechanism": "OTHER",
    "name": "CreditCard EJB",
    "description": "Integration with the CreditCard Enterprise Java Bean via JNDI lookup.",
    "path": "java:comp/env/ejb/CreditCard",
    "direction": "PRODUCER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.tools.populate",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/tools/populate/AccountPopulator.java",
    "mechanism": "OTHER",
    "name": "JNDI Account Lookup",
    "description": "Looks up the Account EJB Local Home interface using JNDI.",
    "path": "java:comp/env/ejb/Account",
    "direction": "CONSUMER",
    "protocol": "JNDI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.tools.populate.AddressPopulator",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/tools/populate/AddressPopulator.java",
    "mechanism": "OTHER",
    "name": "JNDI Lookup",
    "description": "Looks up the EJB Home interface using the Java Naming and Directory Interface.",
    "path": "java:comp/env/ejb/Address",
    "direction": "CONSUMER",
    "protocol": "JNDI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.tools.populate.ContactInfoPopulator",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/tools/populate/ContactInfoPopulator.java",
    "mechanism": "OTHER",
    "name": "JNDI_CONTACT_INFO_HOME",
    "description": "Lookup of EJB Home interface via JNDI",
    "path": "java:comp/env/ejb/ContactInfo",
    "direction": "CONSUMER",
    "protocol": "JNDI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.tools.populate.CustomerPopulator",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/tools/populate/CustomerPopulator.java",
    "mechanism": "OTHER",
    "name": "JNDI Lookup",
    "description": "Lookups up the Local Home interface for the Customer EJB.",
    "path": "java:comp/env/ejb/Customer",
    "direction": "CONSUMER",
    "protocol": "JNDI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.petstore.tools.populate.PopulateServlet",
    "filepath": "src/apps/petstore/src/com/sun/j2ee/blueprints/petstore/tools/populate/PopulateServlet.java",
    "mechanism": "REST",
    "name": "PopulateServlet",
    "description": "Servlet endpoint that triggers the database population process.",
    "path": "/populate (inferred)",
    "method": "POST",
    "direction": "CONSUMER",
    "requestBody": "Form parameters: success_page, error_page, forcefully",
    "responseBody": "HTTP Redirect"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.processmanager.ejb",
    "filepath": "src/components/processmanager/src/com/sun/j2ee/blueprints/processmanager/ejb/ProcessManagerLocal.java",
    "mechanism": "OTHER",
    "name": "EJB Local Interface",
    "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.",
    "direction": "BIDIRECTIONAL"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.servicelocator.ejb.ServiceLocator",
    "filepath": "src/components/servicelocator/src/com/sun/j2ee/blueprints/servicelocator/ejb/ServiceLocator.java",
    "mechanism": "JMS-QUEUE",
    "name": "Dynamic Queue Lookup",
    "description": "Provides access to JMS Queues and QueueConnectionFactories via JNDI lookup.",
    "queueOrTopicName": "Dynamic (passed as parameter)",
    "direction": "BOTH"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.servicelocator.ejb.ServiceLocator",
    "filepath": "src/components/servicelocator/src/com/sun/j2ee/blueprints/servicelocator/ejb/ServiceLocator.java",
    "mechanism": "JMS-TOPIC",
    "name": "Dynamic Topic Lookup",
    "description": "Provides access to JMS Topics and TopicConnectionFactories via JNDI lookup.",
    "queueOrTopicName": "Dynamic (passed as parameter)",
    "direction": "BOTH"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.signon.ejb",
    "filepath": "src/components/signon/src/com/sun/j2ee/blueprints/signon/ejb/SignOnEJB.java",
    "mechanism": "OTHER",
    "name": "java:comp/env/ejb/User",
    "description": "JNDI lookup for the User Entity Bean Home interface.",
    "path": "java:comp/env/ejb/User",
    "direction": "CONSUMER",
    "protocol": "JNDI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.signon.web",
    "filepath": "src/components/signon/src/com/sun/j2ee/blueprints/signon/web/CreateUserServlet.java",
    "mechanism": "REST",
    "name": "CreateUserServlet",
    "description": "HTTP Servlet endpoint for creating users.",
    "path": "unknown",
    "method": "POST",
    "direction": "BIDIRECTIONAL",
    "requestBody": "Form data: user_name, password",
    "responseBody": "Redirect"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.signon.web.SignOnFilter",
    "filepath": "src/components/signon/src/com/sun/j2ee/blueprints/signon/web/SignOnFilter.java",
    "mechanism": "REST",
    "name": "SignOn Check Endpoint",
    "description": "Intercepts HTTP requests sent to the sign-on check URL to process login credentials.",
    "path": "j_signon_check",
    "method": "POST",
    "direction": "CONSUMER",
    "requestBody": "Form data: j_username, j_password, j_remember_username",
    "responseBody": "Redirect to original URL or error page"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.inventory.web",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/inventory/web/RcvrRequestProcessor.java",
    "mechanism": "REST",
    "name": "RcvrRequestProcessor Servlet",
    "description": "Standard Java Servlet endpoint processing HTTP requests for supplier inventory and orders.",
    "path": "unknown (mapped in web.xml)",
    "method": "POST, GET",
    "direction": "CONSUMER",
    "requestBody": "Form data (currentScreen, item_*, qty_*)",
    "responseBody": "HTML (forwarded JSP)",
    "protocol": "HTTP"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.inventory.web",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/inventory/web/RcvrRequestProcessor.java",
    "mechanism": "OTHER",
    "name": "TransitionDelegate",
    "description": "Integration point for sending invoices, likely via messaging or XML transport, abstracted by the TransitionDelegate pattern.",
    "messageType": "Invoice (XML likely)",
    "direction": "PRODUCER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.inventory.web",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/inventory/web/DisplayInventoryBean.java",
    "mechanism": "OTHER",
    "name": "Inventory EJB",
    "description": "Integration with a local Enterprise JavaBean via JNDI lookup.",
    "path": "JNDINames.INV_EJB",
    "method": "findAllInventoryItems",
    "direction": "CONSUMER",
    "protocol": "EJB/JNDI",
    "connectionInfo": "JNDI Lookup via ServiceLocator"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.inventory.web.JNDINames",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/inventory/web/JNDINames.java",
    "mechanism": "OTHER",
    "name": "INV_EJB",
    "description": "JNDI Lookup Name for Inventory EJB",
    "connectionInfo": "java:comp/env/ejb/Inventory"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.inventory.web.JNDINames",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/inventory/web/JNDINames.java",
    "mechanism": "OTHER",
    "name": "ORDERFACADE_EJB",
    "description": "JNDI Lookup Name for OrderFulfillmentFacade EJB",
    "connectionInfo": "java:comp/env/ejb/OrderFulfillmentFacade"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.inventory.web.JNDINames",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/inventory/web/JNDINames.java",
    "mechanism": "OTHER",
    "name": "USER_TRANSACTION",
    "description": "JNDI Lookup Name for UserTransaction (JTA)",
    "connectionInfo": "java:comp/UserTransaction"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.orderfulfillment.ejb",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/orderfulfillment/ejb/TPASupplierOrderXDE.java",
    "mechanism": "OTHER",
    "name": "XML File Input",
    "description": "Reads and parses XML files from the file system via the main method or input streams.",
    "direction": "CONSUMER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.processpo.ejb.JNDINames",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/processpo/ejb/JNDINames.java",
    "mechanism": "JMS-TOPIC",
    "name": "INVOICE_MDB_TOPIC",
    "description": "JNDI name for the Invoice JMS Topic used to send invoices.",
    "queueOrTopicName": "java:comp/env/jms/opc/InvoiceTopic",
    "direction": "PRODUCER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.processpo.ejb.JNDINames",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/processpo/ejb/JNDINames.java",
    "mechanism": "OTHER",
    "name": "ORDERFACADE_EJB",
    "description": "JNDI name for the OrderFulfillmentFacade EJB.",
    "path": "java:comp/env/ejb/OrderFulfillmentFacade"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.processpo.ejb.SupplierOrderMDB",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/processpo/ejb/SupplierOrderMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "Supplier Order Queue",
    "description": "Receives purchase orders from the Order Processing Center.",
    "messageType": "XML (Purchase Order)",
    "direction": "CONSUMER",
    "requestBody": "XML String representing a Purchase Order",
    "protocol": "JMS",
    "connectionInfo": "Configured via deployment descriptor (ejb-jar.xml)"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.processpo.ejb.SupplierOrderMDB",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/processpo/ejb/SupplierOrderMDB.java",
    "mechanism": "JMS-QUEUE",
    "name": "Invoice Transition",
    "description": "Sends an invoice back to the OPC via a TransitionDelegate if the order is shipped.",
    "messageType": "XML (Invoice)",
    "direction": "PRODUCER",
    "requestBody": "XML String representing an Invoice",
    "protocol": "JMS (implied by TransitionDelegate)",
    "connectionInfo": "JNDI: JNDINames.TRANSITION_DELEGATE__SUPPLIER_ORDER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.tools.populate",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/tools/populate/PopulateServlet.java",
    "mechanism": "REST",
    "name": "PopulateServlet",
    "description": "HTTP Servlet endpoint used to trigger data population.",
    "path": "unknown (configured in web.xml)",
    "method": "POST",
    "direction": "CONSUMER",
    "requestBody": "Form parameters: success_page, error_page, forcefully",
    "responseBody": "Redirect or Error Page"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.transitions",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/transitions/SupplierOrderTD.java",
    "mechanism": "JMS-TOPIC",
    "name": "INVOICE_MDB_TOPIC",
    "description": "Publishes invoice XML messages to a JMS Topic for downstream processing.",
    "queueOrTopicName": "INVOICE_MDB_TOPIC",
    "messageType": "XML String",
    "direction": "PRODUCER",
    "connectionInfo": "JNDI lookup via ServiceLocator"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.transitions",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/transitions/JNDINames.java",
    "mechanism": "JMS-TOPIC",
    "name": "TopicConnectionFactory",
    "description": "Defines the JNDI location for the JMS Topic Connection Factory used to create connections for topic-based messaging.",
    "direction": "BOTH",
    "connectionInfo": "java:comp/env/jms/TopicConnectionFactory"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.transitions",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/transitions/JNDINames.java",
    "mechanism": "JMS-TOPIC",
    "name": "InvoiceTopic",
    "description": "Defines the JNDI location for the Invoice Topic, likely used for publishing or subscribing to invoice-related events.",
    "direction": "BOTH",
    "connectionInfo": "java:comp/env/jms/opc/InvoiceTopic"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.supplier.transitions.TopicSender",
    "filepath": "src/apps/supplier/src/com/sun/j2ee/blueprints/supplier/transitions/TopicSender.java",
    "mechanism": "JMS-TOPIC",
    "name": "Invoice MDB Topic",
    "description": "Publishes XML text messages to a JMS Topic.",
    "queueOrTopicName": "Configured via constructor (referenced as Invoice MDB Topic in Javadoc)",
    "messageType": "TextMessage (XML)",
    "direction": "PRODUCER",
    "protocol": "JMS",
    "connectionInfo": "Managed via TopicConnectionFactory injected in constructor"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.uidgen.counter.ejb.CounterLocal",
    "filepath": "src/components/uidgen/src/com/sun/j2ee/blueprints/uidgen/counter/ejb/CounterLocal.java",
    "mechanism": "OTHER",
    "name": "CounterLocal",
    "description": "EJB Local Interface definition for the Counter service, allowing local component integration.",
    "direction": "BIDIRECTIONAL"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.uidgen.ejb.UniqueIdGeneratorEJB",
    "filepath": "src/components/uidgen/src/com/sun/j2ee/blueprints/uidgen/ejb/UniqueIdGeneratorEJB.java",
    "mechanism": "OTHER",
    "name": "java:comp/env/ejb/Counter",
    "description": "JNDI lookup for the Counter Entity Bean Home interface.",
    "path": "java:comp/env/ejb/Counter",
    "method": "lookup",
    "direction": "CONSUMER",
    "protocol": "JNDI"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.waf.controller.ejb",
    "filepath": "src/waf/src/controller/com/sun/j2ee/blueprints/waf/controller/ejb/EJBControllerLocalEJB.java",
    "mechanism": "OTHER",
    "name": "EJBControllerLocalEJB",
    "description": "EJB Session Bean implementation acting as a controller for the WAF framework.",
    "direction": "BOTH"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.waf.controller.web",
    "filepath": "src/waf/src/controller/com/sun/j2ee/blueprints/waf/controller/web/MainServlet.java",
    "mechanism": "REST",
    "name": "MainServlet",
    "description": "Acts as the Front Controller Servlet handling HTTP requests for the application.",
    "path": "Defined in web.xml (not visible)",
    "method": "GET, POST",
    "direction": "CONSUMER",
    "protocol": "HTTP"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.waf.controller.web",
    "filepath": "src/waf/src/controller/com/sun/j2ee/blueprints/waf/controller/web/DefaultWebController.java",
    "mechanism": "OTHER",
    "name": "EJBControllerLocal",
    "description": "Interaction with the EJB tier via a local interface to process business events.",
    "direction": "BIDIRECTIONAL"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.waf.controller.web",
    "filepath": "src/waf/src/controller/com/sun/j2ee/blueprints/waf/controller/web/ComponentManager.java",
    "mechanism": "OTHER",
    "name": "HttpSessionListener",
    "description": "Integrates with the Servlet Container lifecycle by extending the standard HttpSessionListener interface.",
    "direction": "CONSUMER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.waf.controller.web.action.HTMLAction",
    "filepath": "src/waf/src/controller/com/sun/j2ee/blueprints/waf/controller/web/action/HTMLAction.java",
    "mechanism": "REST",
    "name": "Servlet API Interaction",
    "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.",
    "path": "Dynamic (determined by implementing classes and controller mapping)",
    "method": "HTTP (GET/POST/etc.)",
    "direction": "CONSUMER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.waf.controller.web.flow.ScreenFlowManager",
    "filepath": "src/waf/src/controller/com/sun/j2ee/blueprints/waf/controller/web/flow/ScreenFlowManager.java",
    "mechanism": "OTHER",
    "name": "Servlet Request Dispatching",
    "description": "Forwards HTTP requests to internal resources (JSPs or Servlets) based on flow logic.",
    "direction": "OTHER"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.waf.view.template.TemplateServlet",
    "filepath": "src/waf/src/view/template/com/sun/j2ee/blueprints/waf/view/template/TemplateServlet.java",
    "mechanism": "REST",
    "name": "TemplateServlet",
    "description": "Handles HTTP requests for UI screens, acting as a front controller.",
    "path": "/* (Dynamic based on configuration)",
    "method": "GET, POST",
    "direction": "CONSUMER",
    "protocol": "HTTP/1.1"
  },
  {
    "namespace": "com.sun.j2ee.blueprints.xmldocuments.XMLDocumentEditorFactory",
    "filepath": "src/components/xmldocuments/src/com/sun/j2ee/blueprints/xmldocuments/XMLDocumentEditorFactory.java",
    "mechanism": "OTHER",
    "name": "Catalog Loader",
    "description": "Loads configuration properties from a URL resource.",
    "path": "n/a",
    "method": "GET",
    "direction": "CONSUMER",
    "protocol": "URL/Stream",
    "connectionInfo": "URL provided via constructor"
  }
]