Class StrategyServiceImpl

    • Field Detail

      • incomingStrategyDirectoryPath

        private Path incomingStrategyDirectoryPath
        directory which is monitored for incoming strategies
      • temporaryStrategyDirectoryPath

        private Path temporaryStrategyDirectoryPath
        directory which is used to store uploaded strategies before they are verified
      • storageStrategyDirectoryPath

        private Path storageStrategyDirectoryPath
        directory which is used to store uploaded strategies after they are verified
      • applicationContext

        @Autowired
        private org.springframework.context.ApplicationContext applicationContext
        main application context
      • pollingInterval

        @Value("${metc.strategy.incoming.directory.polling.intervalms:5000}")
        private long pollingInterval
        interval at which to poll for provisioning files
      • strategyStorageDirectoryName

        @Value("${metc.strategy.storage.directory}")
        private String strategyStorageDirectoryName
        strategy storage directory base
      • strategyIncomingDirectoryName

        @Value("${metc.strategy.incoming.directory}")
        private String strategyIncomingDirectoryName
        strategy incoming directory base
      • strategyTemporaryDirectoryName

        @Value("${metc.strategy.temporary.directory}")
        private String strategyTemporaryDirectoryName
        strategy temporary directory base
      • serviceName

        private String serviceName
        name of this service
      • strategyWatcher

        private DirectoryWatcherImpl strategyWatcher
        watches the incoming strategy directory
      • txManager

        @Autowired
        private org.springframework.orm.jpa.JpaTransactionManager txManager
        transaction manager value
      • clusterService

        @Autowired
        private org.marketcetera.cluster.service.ClusterService clusterService
        provides access to cluster services
      • eventBusService

        @Autowired
        private EventBusService eventBusService
        provides access to event bus services
      • clusterData

        private ClusterData clusterData
        generated cluster data
      • userDao

        @Autowired
        private UserDao userDao
        provides access to the User data store
      • strategyEventListeners

        private final Set<StrategyEventListener> strategyEventListeners
        holds event listener subscribers
    • Constructor Detail

      • StrategyServiceImpl

        public StrategyServiceImpl()
    • Method Detail

      • start

        @PostConstruct
        @Transactional(readOnly=false,
                       propagation=REQUIRED)
        public void start()
                   throws IOException
        Validate and start the object.
        Throws:
        IOException - if an error occurs managing strategy and provisioning directories
      • stop

        @PreDestroy
        public void stop()
        Stop the object.
      • startStrategyInstance

        @Transactional(readOnly=false,
                       propagation=REQUIRED)
        public void startStrategyInstance​(String inStrategyInstanceName)
        Start a strategy instance.
        Specified by:
        startStrategyInstance in interface StrategyService
        Parameters:
        inStrategyInstanceName - a String value
      • stopStrategyInstance

        @Transactional(readOnly=false,
                       propagation=REQUIRED)
        public void stopStrategyInstance​(String inStrategyInstanceName)
        Stop a strategy instance.
        Specified by:
        stopStrategyInstance in interface StrategyService
        Parameters:
        inStrategyInstanceName - a String value
      • unloadStrategyInstance

        @Transactional(readOnly=false,
                       propagation=REQUIRED)
        public void unloadStrategyInstance​(String inStrategyInstanceName)
        Unload a strategy instance.
        Specified by:
        unloadStrategyInstance in interface StrategyService
        Parameters:
        inStrategyInstanceName - a String value
      • deleteStrategyMessage

        @Transactional(readOnly=false,
                       propagation=REQUIRED)
        public void deleteStrategyMessage​(long inStrategyMessageId)
        Specified by:
        deleteStrategyMessage in interface StrategyService
      • received

        @Transactional(readOnly=false,
                       propagation=REQUIRED)
        public void received​(File inFile,
                             String inOriginalFileName)
        Load a new strategy instances.
        Specified by:
        received in interface DirectoryWatcherSubscriber
        Parameters:
        inFile - a File value
        inOriginalFileName - a String value
      • loadStrategyInstance

        @Transactional(readOnly=false,
                       propagation=REQUIRED)
        public StrategyStatus loadStrategyInstance​(StrategyInstance inStrategyInstance)
        Load a new strategy instances.
        Specified by:
        loadStrategyInstance in interface StrategyService
        Parameters:
        inStrategyInstance - an StrategyInstance value
        Returns:
        a StrategyStatus value
      • receiveStrategyEvent

        public void receiveStrategyEvent​(StrategyEvent inEvent)
        Receive incoming strategy events.
        Parameters:
        inEvent - a StrategyEvent value
      • findByName

        @Transactional(readOnly=true,
                       propagation=REQUIRED)
        public Optional<? extends StrategyInstance> findByName​(String inName)
        Finds the strategy instance with the given name.
        Specified by:
        findByName in interface StrategyService
        Parameters:
        inName - a String value
        Returns:
        a Optional<? extends StrategyInstance> value
      • deleteAllMessagesFor

        private void deleteAllMessagesFor​(PersistentStrategyInstance inStrategyInstance)
        Delete all PersistentStrategyMessage values owned by the given PersistentStrategyInstance.

        This method assumes a transaction set up by the caller.

        Parameters:
        inStrategyInstance - a PersistentStrategyInstance value
      • buildSort

        private org.springframework.data.domain.Sort buildSort​(PageRequest inPageRequest,
                                                               org.springframework.data.domain.Sort inDefaultSort)
        Build the sort statement for a query using the given attributes.
        Parameters:
        inPageRequest - an org.marketcetera.persist.PageRequest value
        inDefaultSort - a Sort value
        Returns:
        a Sort value