openwms / org.openwms.tms.routing Goto Github PK
View Code? Open in Web Editor NEWOpenWMS TMS Routing Service for Material Flow Control (MFC)
Home Page: https://openwms.github.io/org.openwms.tms.routing
License: Apache License 2.0
OpenWMS TMS Routing Service for Material Flow Control (MFC)
Home Page: https://openwms.github.io/org.openwms.tms.routing
License: Apache License 2.0
The Matrix should search for the AS_NEXT target and respond with a RES_ message
FeignClients are created in a separate ApplicationContext and not accessible from the root ApplicationContext
In a first place means in Java code.
Currently routing happens basically dynamically on the workflow. For simple layouts we should also provide a static routing table for point-to-point routing capabilities.
Currently the message handling is tightly coupled to the OSIP protocol and new telegram drivers require the need to extend the classpath with own strategies.
At least we could merge the OSIP handlers to simplify the processing code and probably the extension code. Pretty sure that arbitrary message structures still require a custom handling.
Like a ApplicationContextElResolver
is able to resolve Spring beans we need to have something similar that translates http commands and HATEOS links to microservice calls.
GET tms-services/orders/4711
POST tms-service/orders
These kind of "expressions" may used in BPMN Activiti expressions
after mvn package and java -jar target/openwms-tms-routing-exec.jar
the ui page of REACT_APP_PUBLIC_URL=http://localhost:8130/ui still can't be visited but found 404 .
at least a widget should be implemented to display:
When the Route UI is built the backend integration needs to be done. The UC are the same as they are for the Route UI.
Current situation
The bootstrapped Activiti workflow engine loads workflow files over the standard Spring Resource patterns file:
, classpath:
and classpath*:
. The important configuration file to have a look at is org.activiti.spring.boot.AbstractProcessEngineAutoConfiguration
. Fortunately the author uses an autowired org.springframework.core.io.support.ResourcePatternResolver
that can be extended for custom needs. In our case we don't want to load workflow files from the classpath nor from local files, we need to fetch them from a Spring Cloud Config Server. That guy offers a http interface to interact with, and is able to grab requested files from a Git repository.
Proposed Solution
Our service acts as a client of the Spring Cloud Config Server and therefor needs to interact with the http API to fetch demanded workflow files. We need to implement org.springframework.core.io.support.ResourcePatternResolver
, at best extends the org.springframework.core.io.support.PathMatchingResourcePatternResolver
and access the Config Server on demand.
Requirements to be considered in version 1
spring.cloud.config.*
namespaceeureka.instance.metadata-map.config-protocol
) because it is not a property of spring.cloud.config.*
and a use of spring.cloud.config.headers.*
is a misuseopenwms-tms-routing- exec.jar It does not exist under the target path. The existing jar package does not have a manifest attribute, and the startup class cannot be found
Currently support of Flowable has been disabled cause of flowable/flowable-engine#3169
In the current version the processing engine only supports a RESTful API. We now need to support asynchronous message handling, too. The OSIP driver is already capable to send AMQP messages.
In this first iteration a User shall be able to:
All without backend integration, just UI logic only
Implement errResponder
to handle OSIP ERR_ messages and respond with key osip.err.mfc
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.