Java Components
Jump to navigation
Jump to search
Table of Contents
- =agent=
- Project Report Site (API and documentation)
- Security and trust agent and interfaces. Implements the security and trust agent specification.
Interfaces and functional components of interest:- NHINDAgent: Main functional class that processes incoming and outgoing messages according to the security and trust agent specification.
- CertificateResolver: Common interface for looking up certificates.
- CertificateStore: Abstract class for looking up certificates and managing a certificate store. The library provides some medium specific storage implementation:
- DNSCertificateStore: Looks up CERT records using DNS resolution. Also implements a configurable coherent cache for to improved performance and reduce network load.
- KeyStoreCertificateStore: Certificate storage based on Java keystore files.
- UniformCertificateStore: Memory based store (certificates are provided in code) for applying a set of certificates to all email subjects.
- TrustAnchorResolver: Common interface for looking up trust anchors.
- TrustModel: Implements the trust policy between HISPS and HISP addresses.
- SMIMECryptographer: Implements the SMIME encryption specification for messages.
- Certificate Generation Tool
- =gateway=
- Project Report Site (API and documentation)
- NHIND Gateway implementations. Provides commonly used bridges between the security and trust agent and the Direct Project network.
Items of interest:- SecurityAndTrustMailet: A simple SMTP bridge that implements the Apache mailet API. Typically deployed with an Apache James mail server.
- =direct-common=
- Project Report Site (API and documentation)
- Library of common interfaces and classes use across direct project Java modules
- Auditing interface and simple implementations
- Message monitor interface and REST based implementation
- REST client base classes
- =direct-msg-monitor=
- Project Report Site (API and documentation)
- Message monitoring service.
- Tracks messages and generates failure messages if required notifications are not received.
- Checks for duplicate notifications messages.
- =dns=
- Project Report Site (API and documentation)
- Direct Project DNS server
- DNS command line configuration tool
- =direct-policy=
- Project Report Site (API and documentation)
- Policy enablement module. Includes:
- X509 certificate policy enforcement engine
- Policy editing and validation tools
- =client=
- Project Report Site (API and documentation)
- =xd-common=
- Project Report Site (API and documentation)
- =xd=
- Project Report Site (API and documentation)
- Java based implementation of IHE XDR and XDM (outgoing) Specification. XDR can act as a relay to another XDR implementation or convert to XDM.
Functional components of interest:- XDR: Web service module. Receives an XDR SOAP based message and relays it in either XDR or XDM, depending on the intended recipient. The soap endpoint is of the form [1]
- DocumentRepositoryAbstract: Main XDR service logic.
- SMTPMailClient: forms SMTP based XDM message from supplied parameters and directs it to recipient list.
- RepositorySOAPHandler: SOAP Header parsing, relays header data to service classes.
- =xdmail=
- Project Report Site (API and documentation)
- Java based implementation of "Step Up" process. SMTP is handled using a "mailet: called NHINDMailet and the mail message is converted to XDR and a call is made to the localhost xd service (see above). The jar created by this project should be placed in JAME_HOME/apps/james/SAR-INF/lib. Functional Components of Interest:
- MimeXDSTransformer: Main Processor, determines format of email and forms XDR call appropriately based on content. This include XDM versus CDA attachments, and CDA in body.
- NHINDMailet: This is the mailet handler that is called from within the SMTP server. Specifically in the reference implementation the SMTP server is Apache James.
- =config=
- ==config-service==
- Project Report Site (API and documentation)
- The config-service can be run out-of-the-box.
Assuming a clean install has already been done (mvn clean install) on the config project:
cd java/config/config-service
- ==config-service==
mvn jetty:run
- ==config-service-client==
- Project Report Site (API and documentation)
- ==config-service-jar==
- Project Report Site (API and documentation)
- ==config-store==
- Project Report Site (API and documentation)
- ==config-ui==
- Project Report Site (API and documentation)
- The config-service can be run out-of-the-box.
Assuming a clean install has already been done (mvn clean install) on the config project, and the config-service component is running (see above):
cd java/config/config-ui
- ==config-service-client==
mvn jetty:run
- =assembly - stock=
- Project Report Site (API and documentation)
- The stock deployment is an Java assembly based on the Java Reference Implementation Bare Metalproject. It consists of pre-assembled and partly configured instances of core reference implementation components.
- Apache Tomcat server with configuration services and configuration UI web application
- Message monitoring
- DNS services
- Configuration tools
- Apache James mail server with pre-configured security and trust agent.