These notes assume a multi-server configuration where it matters. There is a 2 way interaction between the calendar server and the sync engine.
The calendar server will call the sync engine to create new subscriptions and will call it to get information while adding or displaying collections.
The steps to deploy are:
- Create a database for the sync engine
- Update the standalone.xml to provide a datasource (and drivers)
- Update the configuration.
- Start it.
Update the configuration
There may be a number of changes to make - both in the calendar server which will interact with the sync engine and for the sync engine itself.
First update the calendar engine end:
- connectorId - identifies the connector "localBedework" should be OK
- managerUri - "http://localhost:8080/synch/manager" for embedded or the equivalent for a multi server setup
wsdlUri - "http://localhost:8080/wsdls/synch/wssvc.wsdl" is probably fine.
Then update the sync engine. This requires configuring both the engine itself in synch/conf/synch-config.xml but also at least the bedework connector in synch/conf/connectors/localBedework.xml
In synch-config.xml ensure the hibernate dialect is set correctly. Other than that the config is probably fine.
In localBedework.xml the name should match the name in the Connector Id above. The bwWSDLURI element refers to either the soap wsdl loaded from the remote server or it can be loaded locally. In either case that file must provide the location of the calendar server in the soap:address element right near the end of wssvc.wsdl. That file is deployed as part of the bwxml module. The files is in wildfly-10.1.0.Final/standalone/deployments/bw-xml-3.11.0.ear/bwwsdls-3.11.0.war/synch/wssvc.wsdl. The server location can be set as part of the build process or edited in later (but that will need to be done on each rebuild/redeploy). The build uses the value in the build time property org.bedework.bwsynch.service which is set in .default/cal.properties.
This process needs to be changed to use the deploy.properties invoked after the build.
Sync Engine operations
The sync engine needs to operate in a firewalled environment. It uses connectors handle subscriptions and has the connector types:
- localBedework - interacts with bedework via the SOAP service
- file - handles iCalendar only
- manager - for internal operations.
The localBedework connector will poll (currently iCalendar only) subscriptions for changes and interactswith bedework as follows:
- At startup sends a startServiceRequest to bedework
- Bedework sends back a response holding a token
- The connector periodically pings bedework to keep the connection alive. Each time it gets a new (random) token.
- The connector will check each of the subscriptions for changes.
- When changes occur interactions with bedework (updating collections) use the supplied token