AlgoTraderAlgoTrader Documentation

Chapter 9. Java Environment

9.1. AlgoTrader Project Structure
9.1.1. common project
9.1.2. core project
9.1.3. strategy projects
9.2. Java Packages
9.3. Maven Environment
9.3.1. algotrader-common
9.3.2. algotrader core
9.3.3. Maven assemblies

The Framework AlgoTrader consists of the following Sub-Projects:

The following table gives an overview of the provided java packages:

Table 9.4. Java Packages

PackageDescription
ch.algotrader Service Locators
ch.algotrader.accounting Accounting related functionality
ch.algotrader.adapter.* Adapter classes for market data and trading interfaces
ch.algotrader.broker.* Message broker related functionality
ch.algotrader.cache Hibernate Level-Zero cache
ch.algotrader.concurrent Threading and Concurrency Utils
ch.algotrader.config AlgoTrader Configuration Management
ch.algotrader.dao.* Data Access Objects
ch.algotrader.ehcache EhCache related functionality
ch.algotrader.event Contains the Event Propagator
ch.algotrader.entity.* Entities and corresponding Hibernate DataAccessObjects
ch.algotrader.enumeration Enumerations
ch.algotrader.esper.* Esper related classes (e.g. aggregation functions, listeners and subscribers)
ch.algotrader.event.* Event and Messaging
ch.algotrader.future Futures related functionality
ch.algotrader.hibernate Hibernate related functionality
ch.algotrader.influxdb InfluxDB related functionality
ch.algotrader.jetty Contains the embedded Jetty server
ch.algotrader.json JSON Serializers / Deserializers
ch.algotrader.livecycle Strategy Live Cycle Management
ch.algotrader.marketdata Handling of market data subscriptions
ch.algotrader.option Options and Volatility related functionality
ch.algotrader.order Order Id generators
ch.algotrader.ordermgmt Order Management functionality
ch.algotrader.restContains REST controllers
ch.algotrader.report Reporting functionality
ch.algotrader.service.* Spring Services
ch.algotrader.simulation Simulation related functionality
ch.algotrader.starter Startup-Classes as well as a generic ServiceInvoker
ch.algotrader.util.* General Utility methods
ch.algotrader.visitor Entity Visitors
ch.algotrader.vo Value Objects
ch.algotrader.wiring.* Spring Wiring

AlgoTrader uses Maven as its build management framework. Every project/module therefore has it's own pom.xml (Project Object Model) defining its structure and dependencies.