You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2016/10/23 14:23:45 UTC

[04/28] zest-java git commit: ZEST-180, ZEST-186, ZEST-187, ZEST-188 Big Identity refactoring UnitOfWorkFactory is auto added to all modules that doesn't declare one IdentityGenerator is auto-added to all modules that deosn't declare one. Removed DCI/DDD

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectArrivedCargo.txt
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectArrivedCargo.txt b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectArrivedCargo.txt
deleted file mode 100644
index 245cc8d..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectArrivedCargo.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-
-USE CASE        Inspect Arrived Cargo [subfunction]
-===========================================================================
-A Delivery Inspector inspects and updates the delivery status of a cargo that
-has been unloaded at its final destination according to the route specification.
-
-Since the route specification is the single authority to determine the final
-destination of the cargo - regardless of any itinerary - we should be able to
-only save the routing/misdirection status for internal reference without
-notifying the cargo owner. Could be interesting to hear what a domain expert
-thinks of this...
-
-Our _transportation_ obligations have ended here and our last responsibility is to
-notify the cargo owner that the cargo has arrived and is ready to be claimed.
-
-
-Primary actor.. Delivery Inspector
-Scope.......... Handling Monitoring System in shipping application
-Preconditions.. Cargo has been unloaded from a carrier in final destination.
-Trigger........ Delivery Inspector receives request to inspect the delivery status of arrived cargo.
-
-
-Main Success Scenario
----------------------------------------------------------------------------
-1. Delivery Inspector collects known delivery data.
-2. Delivery Inspector determines that cargo is routed (for internal reference).
-3. Delivery Inspector sets next expected handling event to claim.
-4. Delivery Inspector saves cargo delivery snapshot.
-5. Delivery Inspector notifies cargo owner of cargo arrival at final destination.
-
-
-Deviations
----------------------------------------------------------------------------
-2a. Cargo has no itinerary:
-    1. Delivery Inspector marks cargo as non-routed.
-
-2b. RouteSpecification is not satisfied by Itinerary:
-    1. Delivery Inspector marks cargo as misrouted.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectCargoInCustoms.txt
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectCargoInCustoms.txt b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectCargoInCustoms.txt
deleted file mode 100644
index 8079a47..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectCargoInCustoms.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-
-USE CASE        Inspect Cargo In Customs [subfunction]
-===========================================================================
-A Delivery Inspector inspects and updates the delivery status of a cargo being
-handled in customs.
-
-It seems from the DDD sample code that a cargo can be handled by customs authorities
-in any location. So even if this is different from the last known location - or even
-not in the itinerary - the cargo will still be on track.
-
-In the DDD sample we can have additional transportation after a customs handling event,
-but isn't a claim a more logical expected next step? Can a cargo be handled by customs
-authorities and then continue its travel to other locations?!
-
-For now we don't predict any next handling event - a domain expert opinion on this
-would be interesting.
-
-
-Primary actor.. Delivery Inspector
-Scope.......... Handling Monitoring System in shipping application
-Preconditions.. Cargo is in port (??) and handled by customs authorities.
-Trigger........ Delivery Inspector receives request to inspect the delivery status of cargo in customs.
-
-
-Main Success Scenario
----------------------------------------------------------------------------
-1. Delivery Inspector collects known delivery data.
-2. Delivery Inspector determines that cargo is routed (for internal reference).
-3. Delivery Inspector saves cargo delivery snapshot.
-
-
-Deviations
----------------------------------------------------------------------------
-2a. Cargo has no itinerary:
-    1. Delivery Inspector marks cargo as non-routed.
-
-2b. RouteSpecification is not satisfied by Itinerary:
-    1. Delivery Inspector marks cargo as misrouted.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectClaimedCargo.txt
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectClaimedCargo.txt b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectClaimedCargo.txt
deleted file mode 100644
index 8737eee..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectClaimedCargo.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-
-USE CASE        Inspect Claimed Cargo [subfunction]
-===========================================================================
-A Delivery Inspector inspects and updates the delivery status of a claimed cargo.
-
-The cargo owner can claim the cargo in any location along the route or even in an
-unexpected location if it was misdirected! Whenever it gets picked up it marks the
-end of the cargo delivery cycle.
-
-From this point our job is done and we have no reason to determine a next handling
-event or notify the cargo owner of the cargo eventually being misdirected or
-misrouted (we though calculate it for internal reference).
-
-
-Primary actor.. Delivery Inspector
-Scope.......... Handling Monitoring System in shipping application
-Preconditions.. Cargo has been claimed by cargo owner.
-Trigger........ Delivery Inspector receives request to inspect the delivery status of claimed cargo.
-
-
-Main Success Scenario
----------------------------------------------------------------------------
-1. Delivery Inspector collects known delivery data.
-2. Delivery Inspector determines that cargo was routed (for internal reference).
-3. Delivery Inspector determines that cargo was on track according to itinerary (for internal reference).
-4. Delivery Inspector saves cargo delivery snapshot.
-
-
-Deviations
----------------------------------------------------------------------------
-2a. Cargo has no itinerary:
-    1. Delivery Inspector marks cargo as non-routed.
-
-2b. RouteSpecification was not satisfied by Itinerary:
-    1. Delivery Inspector marks cargo as misrouted.
-
-3a. Claim location was not the same as itinerary destination:
-    1. Delivery Inspector marks cargo as misdirected.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectLoadedCargo.txt
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectLoadedCargo.txt b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectLoadedCargo.txt
deleted file mode 100644
index 54c29a9..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectLoadedCargo.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-
-USE CASE        Inspect Loaded Cargo [subfunction]
-===========================================================================
-A Delivery Inspector inspects and updates the delivery status of a loaded cargo.
-
-
-Primary actor.. Delivery Inspector
-Scope.......... Handling Monitoring System in shipping application
-Preconditions.. Cargo has been loaded onto a carrier.
-Trigger........ Delivery Inspector receives request to inspect the delivery status of loaded cargo.
-
-
-Main Success Scenario
----------------------------------------------------------------------------
-1. Delivery Inspector collects known delivery data.
-2. Delivery Inspector determines next expected unload from carrier.
-3. Delivery Inspector verifies that cargo is routed.
-4. Delivery Inspector verifies that cargo is on track.
-5. Delivery Inspector saves cargo delivery snapshot.
-
-
-Deviations
----------------------------------------------------------------------------
-2a. Cargo loaded onto carrier without being routed:
-    1. Delivery Inspector marks cargo as non-routed and misdirected (??).
-    2. Delivery Inspector saves delivery snapshot (step 5).
-    3. Delivery Inspector sends notification of non-routed cargo and exits.
-
-2b. Voyage schedule has changed:
-    1. Delivery Inspector marks cargo as non-routed and misdirected (??).
-    2. Delivery Inspector saves delivery snapshot (step 5).
-    3. Delivery Inspector sends notification of non-routed cargo and exits.
-
-3a. Cargo has no itinerary:
-    1. Delivery Inspector marks cargo as non-routed and saves delivery snapshot.
-    2. Delivery Inspector sends notification of non-routed cargo and exits.
-
-3b. RouteSpecification is not satisfied by Itinerary:
-    1. Delivery Inspector marks cargo as misrouted and saves delivery snapshot.
-    2. Delivery Inspector sends notification of misrouted cargo and exits.
-
-4a. Voyage schedule didn't expect load location:
-    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
-    2. Delivery Inspector sends notification of misdirected cargo and exits.
-
-4b. Itinerary didn't expect load location:
-    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
-    2. Delivery Inspector sends notification of misdirected cargo and exits.
-
-4c. Itinerary didn't expect voyage:
-    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
-    2. Delivery Inspector sends notification of misdirected cargo and exits.
-
-4d. Itinerary didn't expect voyage but arrival location of carrier is expected:
-    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
-    2. Delivery Inspector notifies shipper of (for them unexpected) cargo to be unloaded in next port.
-
-4e. Itinerary didn't expect voyage arrival location:
-    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
-    2. Delivery Inspector sends notification of misdirected cargo and exits.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectReceivedCargo.txt
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectReceivedCargo.txt b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectReceivedCargo.txt
deleted file mode 100644
index c7b5474..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectReceivedCargo.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-
-USE CASE        Inspect Received Cargo [subfunction]
-===========================================================================
-A Delivery Inspector inspects and updates the delivery status of a cargo that has
-been received from the cargo owner in the origin location.
-
-
-Primary actor.. Delivery Inspector
-Scope.......... Handling Monitoring System in shipping application
-Preconditions.. Cargo hasn't been received but not transported yet.
-Trigger........ Delivery Inspector receives request to inspect the delivery status of received cargo.
-
-
-Main Success Scenario
----------------------------------------------------------------------------
-1. Delivery Inspector collects known delivery data.
-2. Delivery Inspector verifies that cargo is routed.
-3. Delivery Inspector verifies that cargo is received in cargo origin location.
-4. Delivery Inspector determines next expected load onto carrier.
-5. Delivery Inspector saves cargo delivery snapshot.
-
-
-Deviations
----------------------------------------------------------------------------
-3a. Cargo has no itinerary:
-    1. Delivery Inspector marks cargo as non-routed and updates delivery status.
-    2. Delivery Inspector sends notification of non-routed cargo and exits.
-
-3b. RouteSpecification is not satisfied by Itinerary:
-    1. Delivery Inspector marks cargo as misrouted and updates delivery status.
-    2. Delivery Inspector sends notification of misrouted cargo and exits.
-
-4a. Cargo wasn't received in origin location:
-    1. Delivery Inspector marks cargo as misdirected and updates delivery status.
-    2. Delivery Inspector sends notification of misdirected cargo and exits.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectUnhandledCargo.txt
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectUnhandledCargo.txt b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectUnhandledCargo.txt
deleted file mode 100644
index 8744ffe..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectUnhandledCargo.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-
-USE CASE        Inspect Unhandled Cargo [subfunction]
-===========================================================================
-A Delivery Inspector inspects and updates the delivery status of a cargo that has
-not been received in the origin location yet.
-
-Since the route specification is the single authority to determine the origin
-of the cargo - regardless of any itinerary - we expect the cargo to be received
-in the origin location as the first handling event.
-
-
-Primary actor.. Delivery Inspector
-Scope.......... Handling Monitoring System in shipping application
-Preconditions.. Cargo has not been received yet.
-Trigger........ Delivery Inspector receives request to inspect the delivery status of unhandled cargo.
-
-
-Main Success Scenario
----------------------------------------------------------------------------
-1. Delivery Inspector collects known delivery data.
-2. Delivery Inspector verifies that cargo is routed.
-3. Delivery Inspector sets expected receipt in origin location.
-4. Delivery Inspector saves cargo delivery snapshot.
-
-
-Deviations
----------------------------------------------------------------------------
-2a. Cargo has no itinerary:
-    1. Delivery Inspector marks cargo as non-routed.
-
-2b. RouteSpecification is not satisfied by Itinerary:
-    1. Delivery Inspector marks cargo as misrouted.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectUnloadedCargo.txt
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectUnloadedCargo.txt b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectUnloadedCargo.txt
deleted file mode 100644
index c250bb1..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/inspection/event/InspectUnloadedCargo.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-
-USE CASE        Inspect Unloaded Cargo [subfunction]
-===========================================================================
-A Delivery Inspector inspects and updates the delivery status of a cargo that has
-been unloaded in a midpoint of the itinerary (not in final destination).
-
-If cargo has been re-routed while the cargo was on board a carrier, the unload
-location will be unexpected to the new itinerary. But we don't consider this as
-misdirected since the unload is related to the old itinerary.
-
-
-Primary actor.. Delivery Inspector
-Scope.......... Handling Monitoring System in shipping application
-Preconditions.. Cargo has been unloaded from a carrier in midpoint (not destination).
-Trigger........ Delivery Inspector receives request to inspect the delivery status of unloaded cargo.
-
-
-Main Success Scenario
----------------------------------------------------------------------------
-1. Delivery Inspector collects known delivery data.
-2. Delivery Inspector verifies that cargo is routed.
-3. Delivery Inspector verifies that cargo is on track.
-4. Delivery Inspector determines next expected load onto carrier.
-5. Delivery Inspector saves cargo delivery snapshot.
-
-
-Deviations
----------------------------------------------------------------------------
-2a. Cargo has no itinerary:
-    1. Delivery Inspector marks cargo as non-routed and updates delivery status.
-    2. Delivery Inspector sends notification of non-routed cargo and exits.
-
-2b. Route specification is not satisfied by itinerary:
-    1. Delivery Inspector marks cargo as misrouted and updates delivery status.
-    2. Delivery Inspector sends notification of misrouted cargo and exits.
-
-3a. Cargo is misdirected and unloaded in route specification origin (cargo was re-routed):
-    1. Delivery Inspector marks cargo as not misdirected.
-
-3b. Itinerary didn't expect unload location:
-    1. Delivery Inspector marks cargo as misdirected and saves delivery snapshot.
-    2. Delivery Inspector sends notification of misdirected cargo and exits.
-
-3c. Itinerary didn't expect unload voyage but unload location was expected:
-    1. Surprising, but do we care?
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/parsing/ParseHandlingEventData.txt
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/parsing/ParseHandlingEventData.txt b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/parsing/ParseHandlingEventData.txt
deleted file mode 100644
index 074b847..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/parsing/ParseHandlingEventData.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-
-USE CASE	    Parse Handling Event Data [subfunction]
-===========================================================================
-System receives and parses handling event data coming in from a handling authority
-(port, shipper, customs etc).
-
-Primary actor.. Data Parser
-Scope.......... Handling Monitoring System in shipping application
-Preconditions.. None
-Trigger........ Incident logging application sends handling event registration attempt.
-
-
-Main Success Scenario
----------------------------------------------------------------------------
-1. External incident logging application provides handling event data for a handled cargo.
-2. Data Parser verifies that data is complete.
-3. Data Parser performs basic type conversion.
-4. Data Parser collects parsed handling event data.
-5. Data Parser returns parsed handling event data to handling system.
-
-
-Deviations
----------------------------------------------------------------------------
-2a. Completion time, tracking id, event type or unLocode is null or empty:
-    1. Failure.
-
-3a. Completion time string is not in ISO 8601 format:
-    1. Failure.
-
-3b. Handling event type string is not recognized:
-    1. Failure.
-
-
-Technology & Data variations *)
----------------------------------------------------------------------------
-The same business scenario can be implemented with various combinations of
-technologies:
-
-1a. Receive handling event data
-    1. manually (form input)
-    2. automatically (web service, file upload, etc.)
-
-4a. Return handling event DTO
-    1. synchronously (return value)
-    2. asynchronously (JMS, event sourcing, etc.)
-
-
----------------------------------------------------------------------------
-Success guarantees:
-    Valid handling event DTO is returned.
-
-Minimal guarantees:
-    Data consistency: Invalid data is rejected.
-    Handling authorities are notified of invalid handling event data.
-
-Stakeholders/Interests:
-    Handling System - wants data consistency
-    Handling authority - wants notification of rejected handling event data submission.
-
-
-
-*) See A. Cockburn: "Writing Effective Use Cases", pp 111
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/registration/RegisterHandlingEvent.txt
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/registration/RegisterHandlingEvent.txt b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/registration/RegisterHandlingEvent.txt
deleted file mode 100644
index 6d9bb76..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/context/usecase/handling/registration/RegisterHandlingEvent.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-
-USE CASE	    Register Handling Event [subfunction]
-===========================================================================
-Event Registrar registers handling event in system.
-
-Primary actor.. Event Registrar
-Scope.......... Handling Monitoring System in booking application
-Preconditions.. None
-Trigger........ Event Registrar receives parsed handling event data.
-
-
-Main Success Scenario
----------------------------------------------------------------------------
-1. Event Registrar finds cargo from tracking id string.
-2. Event Registrar finds location from UnLocode string.
-3. Event Registrar finds voyage from voyage number string.
-4. Event Registrar verifies that cargo is not received, in customs or claimed more than once.
-5. Event Registrar verifies that cargo is not handled after being claimed.
-6. Event Registrar creates a handling event in the system.
-
-
-Deviations
----------------------------------------------------------------------------
-1a. Tracking id string doesn't represent a Cargo in Handling System:
-    1. Failure.
-
-2a. UnLocode string doesn't represent a Location in Handling System:
-    1. Failure.
-
-3a. Handling event type doesn't require a Voyage:
-    1. Continue.
-
-3b. Voyage number string is missing:
-    1. Failure.
-
-3c. Voyage number string doesn't represent a Voyage in Handling System:
-    1. Failure.
-
-4a. Cargo is received, in customs or claimed more than once:
-    1. Failure.
-
-5a. Cargo is handled after being claimed by cargo owner:
-    1. Failure (can't continue handling after claim).
-
-
-Technology & Data variations *)
----------------------------------------------------------------------------
-The same business scenario can be implemented with various combinations of
-technologies:
-
-5a. Return handling event object
-    1. synchronously (return value)
-    2. asynchronously (JMS, event sourcing, other?)
-
-
----------------------------------------------------------------------------
-Success guarantees:
-    Verified handling event object is returned.
-
-    Handling event is registered in Handling System.
-    Cargo delivery status is successfully inspected.
-    Handler is notified of successful handling event registration.
-    Cargo Owner is notified if cargo is misdirected or has arrived.
-
-Minimal guarantees:
-    Data consistency: invalid handling events are not created.
-    Handling authorities are notified of unrecognized handling event data.
-
-Stakeholders/Interests:
-    Handling System - wants data consistency
-    Handling authority - wants notification of rejected handling event data submission.
-
-
-
-
-*) See A. Cockburn: "Writing Effective Use Cases", pp 111
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/link/LinkPanel.html
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/link/LinkPanel.html b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/link/LinkPanel.html
deleted file mode 100644
index 3fee648..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/link/LinkPanel.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--
-  ~  Licensed to the Apache Software Foundation (ASF) under one
-  ~  or more contributor license agreements.  See the NOTICE file
-  ~  distributed with this work for additional information
-  ~  regarding copyright ownership.  The ASF licenses this file
-  ~  to you under the Apache License, Version 2.0 (the
-  ~  "License"); you may not use this file except in compliance
-  ~  with the License.  You may obtain a copy of the License at
-  ~
-  ~       http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~  Unless required by applicable law or agreed to in writing, software
-  ~  distributed under the License is distributed on an "AS IS" BASIS,
-  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~  See the License for the specific language governing permissions and
-  ~  limitations under the License.
-  ~
-  ~
-  -->
-
-<html xmlns:wicket>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-  
-  http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<wicket:panel>
-	<a wicket:id="link"><span wicket:id="label"></span></a>
-</wicket:panel>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/prevnext/PrevNext.html
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/prevnext/PrevNext.html b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/prevnext/PrevNext.html
deleted file mode 100644
index f7e8a73..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/prevnext/PrevNext.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--
-  ~  Licensed to the Apache Software Foundation (ASF) under one
-  ~  or more contributor license agreements.  See the NOTICE file
-  ~  distributed with this work for additional information
-  ~  regarding copyright ownership.  The ASF licenses this file
-  ~  to you under the Apache License, Version 2.0 (the
-  ~  "License"); you may not use this file except in compliance
-  ~  with the License.  You may obtain a copy of the License at
-  ~
-  ~       http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~  Unless required by applicable law or agreed to in writing, software
-  ~  distributed under the License is distributed on an "AS IS" BASIS,
-  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~  See the License for the specific language governing permissions and
-  ~  limitations under the License.
-  ~
-  ~
-  -->
-
-<html xmlns:wicket>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-  
-  http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<wicket:head>
-    <link href="css/prev-next.css" rel="stylesheet" type="text/css"/>
-</wicket:head>
-<wicket:panel>
-    <div class="prevNextIcons">
-        <a class="prev" href="#" wicket:id="prev"></a>
-        <a class="next" href="#" wicket:id="next" ></a>
-    </div>
-</wicket:panel>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/tabs/TabsPanel.html
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/tabs/TabsPanel.html b/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/tabs/TabsPanel.html
deleted file mode 100644
index fa97eb1..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/apache/zest/sample/dcicargo/sample_b/infrastructure/wicket/tabs/TabsPanel.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--
-  ~  Licensed to the Apache Software Foundation (ASF) under one
-  ~  or more contributor license agreements.  See the NOTICE file
-  ~  distributed with this work for additional information
-  ~  regarding copyright ownership.  The ASF licenses this file
-  ~  to you under the Apache License, Version 2.0 (the
-  ~  "License"); you may not use this file except in compliance
-  ~  with the License.  You may obtain a copy of the License at
-  ~
-  ~       http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~  Unless required by applicable law or agreed to in writing, software
-  ~  distributed under the License is distributed on an "AS IS" BASIS,
-  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~  See the License for the specific language governing permissions and
-  ~  limitations under the License.
-  ~
-  ~
-  -->
-
-<html xmlns:wicket>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-  
-  http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<wicket:head>
-    <link href="css/tabs.css" rel="stylesheet" type="text/css"/>
-</wicket:head>
-<wicket:panel>
-    <div id="tabs">
-        <ul>
-            <li wicket:id="tabsView"><a href="#" wicket:id="link"><span wicket:id="label"></span></a></li>
-        </ul>
-    </div>
-
-    <!-- Clear floating to force subsequent containers to draw beneath the tabs -->
-    <div style="clear:both"></div>
-</wicket:panel>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/WEB-INF/web.xml b/samples/dci-cargo/dcisample_b/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 2d0e937..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~  Licensed to the Apache Software Foundation (ASF) under one
-  ~  or more contributor license agreements.  See the NOTICE file
-  ~  distributed with this work for additional information
-  ~  regarding copyright ownership.  The ASF licenses this file
-  ~  to you under the Apache License, Version 2.0 (the
-  ~  "License"); you may not use this file except in compliance
-  ~  with the License.  You may obtain a copy of the License at
-  ~
-  ~       http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~  Unless required by applicable law or agreed to in writing, software
-  ~  distributed under the License is distributed on an "AS IS" BASIS,
-  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~  See the License for the specific language governing permissions and
-  ~  limitations under the License.
-  ~
-  ~
-  -->
-<web-app xmlns="http://java.sun.com/xml/ns/javaee"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
-         version="2.5">
-
-    <display-name>DCI Sample (version B)</display-name>
-
-    <filter>
-        <filter-name>DCISample_basic_redirect</filter-name>
-        <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
-        <init-param>
-            <param-name>applicationClassName</param-name>
-            <param-value>org.apache.zest.sample.dcicargo.sample_b.bootstrap.DCISampleApplication_b</param-value>
-        </init-param>
-    </filter>
-
-    <filter-mapping>
-        <filter-name>DCISample_basic_redirect</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
-
-</web-app>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/css/prev-next.css
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/css/prev-next.css b/samples/dci-cargo/dcisample_b/src/main/webapp/css/prev-next.css
deleted file mode 100644
index 62e2fa6..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/webapp/css/prev-next.css
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- *
- */
-
-.prevNextIcons {
-  /* Modify custom positioning here */
-  float:left;
-  margin-top: 17px;
-  margin-right: 10px;
-}
-
-.prevNextIcons a {
-  padding:8px;
-  background-repeat:no-repeat;
-}
-
-.prevNextIcons .prev  {
-  background-image: url("../../graphics/icon/prev.png");
-}
-.prevNextIcons .prevDisabled {
-  background-image: url("../../graphics/icon/prev_disabled.png");
-  pointer-events: none;
-  cursor: default;
-}
-
-.prevNextIcons .next  {
-  margin-left:8px;
-  background-image: url("../../graphics/icon/next.png");
-}
-.prevNextIcons .nextDisabled {
-  margin-left:8px;
-  background-image: url("../../graphics/icon/next_disabled.png");
-  pointer-events: none;
-  cursor: default;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/css/style.css
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/css/style.css b/samples/dci-cargo/dcisample_b/src/main/webapp/css/style.css
deleted file mode 100644
index bc4fe11..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/webapp/css/style.css
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- *
- */
-
-body {
-    margin: 2em;
-    font-family: 'Lucida Sans', 'Helvetica', 'Sans-serif', 'sans', sans-serif;
-    font-size: 9pt;
-    line-height: 1.2em;
-    background-color: #f5f5f5;
-}
-
-h1, h2, h3, h4, h6 {
-    color: #E9601A;
-}
-h4 {
-    margin-bottom: 5px;
-}
-a{
-    text-decoration:none;
-}
-a:hover{
-    text-decoration:underline;
-}
-a:visited{
-    color:blue;
-}
-
-.left {
-	float: left;
-	width: 75%;
-}
-.right {
-    font-family: 'Verdana', Arial, Helvetica, serif;
-    text-align:right;
-    color: #666;
-    font-size: 8pt;
-    font-style: italic;
-    font-weight: normal;
-    line-height: 1.5em;
-    margin-bottom: -50px;
-}
-.headline {
-    margin-bottom:17px;
-}
-.headline a {
-  text-decoration:none;
-    color: #E9601A;
-    font-size: 2em;
-    font-weight: bold;
-}
-
-#box {
-    border-width: 0px 1px 1px;
-    border-style: solid;
-    border-color: 484a4a;
-    padding: 1em;
-    overflow: hidden;
-    background-color: white;
-}
-
-.headerMenu {
-    margin-top:10px;
-    margin-bottom:20px;
-    color: #E9601A;
-    font-size: 1.5em;
-    font-weight: bold;
-}
-.headerMenu a {
-    margin-left:15px;
-    font-size: 9pt;
-    font-weight: normal;
-}
-
-pre, table, td {
-    font-family: 'Verdana', Arial, Helvetica, serif;
-    font-size: 9pt;
-    line-height: 1.1em;
-}
-
-table td, th {
-    padding: 4 18 4 0;
-    align: left;
-}
-
-table thead {
-    font-weight: bold;
-}
-
-.styleLeftColumn td:first-child {
-    font-weight: bold;
-}
-
-.errorColor {
-    color: red;
-    font-weight: bold;
-}
-.correctColor {
-    color: green;
-    font-weight: bold;
-}
-
-.notifyError {
-    border: 2px solid red;
-    padding: 5px;
-    font-weight: bold;
-}
-.notifySuccess {
-    border: 2px solid green;
-    padding: 5px;
-    font-weight: bold;
-}
-.notifySuccess {
-    border: 2px solid green;
-    padding: 5px;
-    font-weight: bold;
-}
-
-
-
-#toggle a {
-        padding-left: 17px;
-        text-decoration:none;
-        color:black;
-}
-
-#toggle a:hover {
-        color:blue;
-}
-
-#toggle .closed  {
-        background: url(/graphics/icon/triangle-closed.png)  no-repeat;
-        background-position: 4 2px;
-}
-#toggle .open  {
-        background: url(/graphics/icon/triangle-open.png)  no-repeat;
-        background-position: 2 4px;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/css/tabs.css
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/css/tabs.css b/samples/dci-cargo/dcisample_b/src/main/webapp/css/tabs.css
deleted file mode 100644
index 6d375aa..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/webapp/css/tabs.css
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- *
- */
-
-#tabs {
-  margin-top:12px;
-  float:left;
-  width:100%;
-  background: #f5f5f5  url("../graphics/tabs/bg.png") repeat-x bottom;
-  font-size:0.9em;
-  line-height:1.6;
-  }
-#tabs ul {
-  margin:0;
-  padding:10px 0;
-  list-style:none;
-  }
-#tabs li {
-  float:left;
-  background: #f5f5f5 url("../graphics/tabs/left.png") no-repeat left top;
-  margin:0;
-  padding:0 0 0 11px;
-  }
-#tabs a {
-  float:left;
-  display:block;
-  background: #f5f5f5 url("../graphics/tabs/right.png") no-repeat right top;
-  padding:6px 15px 4px 4px;
-  text-decoration:none;
-  font-weight:bold;
- color:#444;
-  }
-
-#tabs a:hover {
-  color:blue;
-  }
-
-#tabs a:visited {
-   color:#444;
-}
-
-#tabs a:visited:hover {
-   color:blue;
-   /*color:#E9601A;*/
-}
-
-/* Commented Backslash Hack
-   hides rule from IE5-Mac  \*/
-#tabs a {float:none;}
-/* End IE5-Mac hack */
-
-
-
-#tabs #current {
-  background-image: url("../graphics/tabs/left_on.png");
-  }
-#tabs #current a {
-  background-image:url("../graphics/tabs/right_on.png");
-  color:#333;
-  padding-bottom:5px;
-  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/cross.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/cross.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/cross.png
deleted file mode 100644
index 1514d51..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/cross.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/error.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/error.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/error.png
deleted file mode 100644
index 628cf2d..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/error.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/next.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/next.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/next.png
deleted file mode 100644
index 823db76..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/next.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/next_disabled.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/next_disabled.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/next_disabled.png
deleted file mode 100644
index 61b8738..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/next_disabled.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev-next.psd
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev-next.psd b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev-next.psd
deleted file mode 100644
index 14869ef..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev-next.psd and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev.png
deleted file mode 100644
index f1ccf7a..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev_disabled.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev_disabled.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev_disabled.png
deleted file mode 100644
index bc0a07b..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/prev_disabled.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/tick.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/tick.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/tick.png
deleted file mode 100644
index a9925a0..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/tick.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/triangle-closed.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/triangle-closed.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/triangle-closed.png
deleted file mode 100644
index dac3b3e..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/triangle-closed.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/triangle-open.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/triangle-open.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/triangle-open.png
deleted file mode 100644
index d9ff340..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/icon/triangle-open.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/bg.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/bg.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/bg.png
deleted file mode 100644
index a682768..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/bg.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/left.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/left.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/left.png
deleted file mode 100644
index 92b5eeb..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/left.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/left_on.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/left_on.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/left_on.png
deleted file mode 100644
index b0fcc59..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/left_on.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/original.psd
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/original.psd b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/original.psd
deleted file mode 100644
index fc71fea..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/original.psd and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/right.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/right.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/right.png
deleted file mode 100644
index 97efb03..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/right.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/right_on.png
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/right_on.png b/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/right_on.png
deleted file mode 100644
index 6d9783b..0000000
Binary files a/samples/dci-cargo/dcisample_b/src/main/webapp/graphics/tabs/right_on.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/Start8082.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/Start8082.java b/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/Start8082.java
deleted file mode 100644
index d676841..0000000
--- a/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/Start8082.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.bootstrap;
-
-import org.eclipse.jetty.server.Connector;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.webapp.WebAppContext;
-
-/**
- * Run this to start DCI Sample, version B
- */
-public class Start8082
-{
-    private Server jetty;
-
-    public static void main( String[] args ) throws Exception
-    {
-        new Start8082().start();
-    }
-
-    public void start() throws Exception
-    {
-        jetty = new Server();
-        ServerConnector connector = new ServerConnector(jetty );
-        connector.setIdleTimeout( 1000 * 60 * 60 );
-        connector.setSoLingerTime( -1 );
-        connector.setPort( 8082 );
-        jetty.setConnectors( new Connector[]{connector} );
-
-        WebAppContext webAppContext = new WebAppContext();
-        webAppContext.setContextPath( "/" );
-        webAppContext.setWar( "src/main/webapp" );
-        jetty.setHandler( webAppContext );
-
-        try
-        {
-            jetty.start();
-            jetty.join();
-        }
-        catch (Exception e)
-        {
-            e.printStackTrace();
-            System.exit( 100 );
-        }
-    }
-
-    public void stop() throws Exception
-    {
-        jetty.stop();
-        jetty.join();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/test/TestApplication.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/test/TestApplication.java b/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/test/TestApplication.java
deleted file mode 100644
index 9690fd7..0000000
--- a/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/test/TestApplication.java
+++ /dev/null
@@ -1,463 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.bootstrap.test;
-
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import org.apache.zest.api.entity.EntityBuilder;
-import org.apache.zest.api.query.QueryBuilderFactory;
-import org.apache.zest.api.service.ServiceFinder;
-import org.apache.zest.api.service.ServiceReference;
-import org.apache.zest.api.structure.Application;
-import org.apache.zest.api.structure.Module;
-import org.apache.zest.api.unitofwork.UnitOfWork;
-import org.apache.zest.api.unitofwork.UnitOfWorkFactory;
-import org.apache.zest.api.usecase.Usecase;
-import org.apache.zest.api.usecase.UsecaseBuilder;
-import org.apache.zest.api.value.ValueBuilder;
-import org.apache.zest.bootstrap.Energy4Java;
-import org.apache.zest.sample.dcicargo.sample_b.bootstrap.sampledata.BaseData;
-import org.apache.zest.sample.dcicargo.sample_b.data.factory.RouteSpecificationFactoryService;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.Cargo;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.RouteSpecification;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.Delivery;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.NextHandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.RoutingStatus;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.TransportStatus;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEventType;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.itinerary.Itinerary;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.location.Location;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.tracking.TrackingId;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.voyage.Schedule;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.voyage.Voyage;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.voyage.VoyageNumber;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.dci.Context;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.testing.ExpectedException;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.rules.TestName;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
-/**
- * Base class for testing Context Interactions
- */
-public class TestApplication
-      extends BaseData
-{
-    protected static ServiceFinder serviceFinder;
-    protected static UnitOfWorkFactory uowf;
-    protected static QueryBuilderFactory qbf;
-
-    // Logger for sub classes
-    protected Logger logger = LoggerFactory.getLogger( getClass() );
-
-    protected static Application app;
-
-    protected static RouteSpecificationFactoryService routeSpecFactory;
-
-    final protected static LocalDate TODAY = LocalDate.now();
-    final protected static LocalDate DAY1 = day( 1 );
-    final protected static LocalDate DAY2 = day( 2 );
-    final protected static LocalDate DAY3 = day( 3 );
-    final protected static LocalDate DAY4 = day( 4 );
-    final protected static LocalDate DAY5 = day( 5 );
-    final protected static LocalDate DAY6 = day( 6 );
-    final protected static LocalDate DAY7 = day( 7 );
-    final protected static LocalDate DAY8 = day( 8 );
-    final protected static LocalDate DAY9 = day( 9 );
-    final protected static LocalDate DAY10 = day( 10 );
-    final protected static LocalDate DAY11 = day( 11 );
-    final protected static LocalDate DAY12 = day( 12 );
-    final protected static LocalDate DAY13 = day( 13 );
-    final protected static LocalDate DAY14 = day( 14 );
-    final protected static LocalDate DAY15 = day( 15 );
-    final protected static LocalDate DAY16 = day( 16 );
-    final protected static LocalDate DAY17 = day( 17 );
-    final protected static LocalDate DAY18 = day( 18 );
-    final protected static LocalDate DAY19 = day( 19 );
-    final protected static LocalDate DAY20 = day( 20 );
-    final protected static LocalDate DAY21 = day( 21 );
-    final protected static LocalDate DAY22 = day( 22 );
-    final protected static LocalDate DAY23 = day( 23 );
-    final protected static LocalDate DAY24 = day( 24 );
-    final protected static LocalDate DAY25 = day( 25 );
-
-    protected static Voyage V201;
-    protected static Voyage V202;
-    protected static Voyage V203;
-    protected static Voyage V204;
-    protected static Voyage V205;
-
-    final protected static Voyage noVoyage = null;
-    final protected static boolean notArrived = false;
-    final protected static boolean arrived = true;
-    final protected static boolean directed = false;
-    final protected static boolean misdirected = true;
-    final protected static LocalDate unknownETA = null;
-    final protected static LocalDate noSpecificDate = null;
-    final protected static Integer leg1 = 0;
-    final protected static Integer leg2 = 1;
-    final protected static Integer leg3 = 2;
-    final protected static Integer leg4 = 3;
-    final protected static Integer leg5 = 4;
-    final protected static Integer unknownLeg = 0;
-    final protected static NextHandlingEvent unknownNextHandlingEvent = null;
-
-    protected LocalDate deadline;
-    protected LocalDate arrival;
-    protected RouteSpecification routeSpec;
-    protected RouteSpecification newRouteSpec;
-    protected Delivery delivery;
-    protected Cargo cargo;
-    protected TrackingId trackingId;
-    protected String trackingIdString;
-    protected Itinerary itinerary;
-    protected Itinerary wrongItinerary;
-    protected HandlingEvent handlingEvent;
-    protected Location MELBOURNE;
-    protected Location HANGZHOU;
-    protected Location HONGKONG;
-    protected Location SHANGHAI;
-    protected Location HAMBURG;
-    protected Location STOCKHOLM;
-    protected Location DALLAS;
-    protected Location NEWYORK;
-    protected Location MOGADISHU;
-    protected Location ROTTERDAM;
-    protected Location HELSINKI;
-    protected Location GOTHENBURG;
-    protected Location TOKYO;
-    protected Location CHICAGO;
-
-    protected TestApplication()
-    {
-        super( findHostingModule() );
-    }
-
-    @BeforeClass
-    public static void setup() throws Exception
-    {
-        System.out.println( "\n@@@@@@@@@@@  TEST SUITE  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" );
-        app = new Energy4Java().newApplication( new TestAssembler() );
-        app.activate();
-        Module module = findHostingModule();
-        serviceFinder = module;
-        qbf = module;
-        uowf = module.unitOfWorkFactory();
-        Context.prepareContextBaseClass( module.unitOfWorkFactory(), module );
-
-    }
-
-    // Allow to test message output from exceptions after they have been thrown
-    @Rule
-    public ExpectedException thrown = ExpectedException.none();
-
-    // Print current test method name to console
-    @Rule
-    public TestName name = new TestName();
-
-    @Before
-    public void prepareTest()
-        throws Exception
-    {
-        logger.info( name.getMethodName() );
-        Usecase usecase = UsecaseBuilder.newUsecase( "Usecase:" + name );
-        UnitOfWork uow = uowf.newUnitOfWork( usecase);
-        populateTestData();
-
-        ServiceReference<RouteSpecificationFactoryService> routeSpecFactoryServiceRef =
-            serviceFinder.findService( RouteSpecificationFactoryService.class );
-        routeSpecFactory = routeSpecFactoryServiceRef.get();
-
-        // Separate test suites in console output
-        System.out.println();
-    }
-
-    @After
-    public void concludeTests()
-    {
-        UnitOfWork uow = uowf.currentUnitOfWork();
-        if (uow != null)
-        {
-            uow.discard();
-        }
-        if( uowf.isUnitOfWorkActive() )
-        {
-            while( uowf.isUnitOfWorkActive() )
-            {
-                uow = uowf.currentUnitOfWork();
-                if( uow.isOpen() )
-                {
-                    System.err.println( "UnitOfWork not cleaned up:" + uow.usecase().name() );
-                    uow.discard();
-                }
-                else
-                {
-                    throw new InternalError( "I have seen a case where a UoW is on the stack, but not opened. First is: " + uow.usecase().name() );
-                }
-            }
-            new Exception( "UnitOfWork not properly cleaned up" ).printStackTrace();
-        }
-    }
-
-    @AfterClass
-    public static void terminateApplication() throws Exception
-    {
-        if( app != null )
-        {
-            app.passivate();
-        }
-    }
-
-    public void assertMessage( Exception e, String msg )
-    {
-        String message = "\nEXPECTED: " + msg + "\nGOT: " + e.getMessage();
-        assertTrue( message, e.getMessage().contains( msg ) );
-    }
-
-
-    private void populateTestData() throws Exception
-    {
-        // UnLocode value objects
-        AUMEL = unlocode( "AUMEL" ); // Melbourne
-        CNHGH = unlocode( "CNHGH" ); // Hangzou
-        CNHKG = unlocode( "CNHKG" ); // Hong Kong
-        CNSHA = unlocode( "CNSHA" ); // Shanghai
-        DEHAM = unlocode( "DEHAM" ); // Hamburg
-        FIHEL = unlocode( "FIHEL" ); // Helsinki
-        JNTKO = unlocode( "JNTKO" ); // Tokyo
-        NLRTM = unlocode( "NLRTM" ); // Rotterdam
-        SEGOT = unlocode( "SEGOT" ); // Gothenburg
-        SESTO = unlocode( "SESTO" ); // Stockholm
-        SOMGQ = unlocode( "SOMGQ" ); // Mogadishu
-        USCHI = unlocode( "USCHI" ); // Chicago
-        USDAL = unlocode( "USDAL" ); // Dallas
-        USNYC = unlocode( "USNYC" ); // New York
-
-        UnitOfWork uow = uowf.currentUnitOfWork();
-
-        // Get locations created in BaseDataService on startup
-        MELBOURNE = uow.get( Location.class, "AUMEL" );
-        HANGZHOU = uow.get( Location.class, "CNHGH" );
-        HONGKONG = uow.get( Location.class, "CNHKG" );
-        SHANGHAI = uow.get( Location.class, "CNSHA" );
-        HAMBURG = uow.get( Location.class, "DEHAM" );
-        HELSINKI = uow.get( Location.class, "FIHEL" );
-        TOKYO = uow.get( Location.class, "JNTKO" );
-        ROTTERDAM = uow.get( Location.class, "NLRTM" );
-        GOTHENBURG = uow.get( Location.class, "SEGOT" );
-        STOCKHOLM = uow.get( Location.class, "SESTO" );
-        MOGADISHU = uow.get( Location.class, "SOMGQ" );
-        CHICAGO = uow.get( Location.class, "USCHI" );
-        DALLAS = uow.get( Location.class, "USDAL" );
-        NEWYORK = uow.get( Location.class, "USNYC" );
-
-        // Voyage entity objects for testing
-        V201 = voyage( "V201", schedule(
-              carrierMovement( HONGKONG, CHICAGO, DAY1, DAY5 ),
-              carrierMovement( CHICAGO, NEWYORK, DAY5, DAY6 ),
-              carrierMovement( NEWYORK, GOTHENBURG, DAY6, DAY12 )
-        ) );
-        V202 = voyage( "V202", schedule(
-              carrierMovement( CHICAGO, NEWYORK, DAY3, DAY5 ),
-              carrierMovement( NEWYORK, DALLAS, DAY7, DAY8 ),
-              carrierMovement( DALLAS, ROTTERDAM, DAY10, DAY17 ),
-              carrierMovement( ROTTERDAM, HAMBURG, DAY17, DAY19 ),
-              carrierMovement( HAMBURG, GOTHENBURG, DAY20, DAY24 )
-        ) );
-        V203 = voyage( "V203", schedule(
-              carrierMovement( NEWYORK, HAMBURG, DAY3, DAY12 ),
-              carrierMovement( HAMBURG, ROTTERDAM, DAY13, DAY18 ),
-              carrierMovement( ROTTERDAM, STOCKHOLM, DAY20, DAY23 ),
-              carrierMovement( STOCKHOLM, HELSINKI, DAY24, DAY25 )
-        ) );
-        V204 = voyage( "V204", schedule(
-              carrierMovement( TOKYO, HANGZHOU, DAY3, DAY6 ),
-              carrierMovement( HANGZHOU, HONGKONG, DAY7, DAY8 ),
-              carrierMovement( HONGKONG, NEWYORK, DAY9, DAY12 ),
-              carrierMovement( NEWYORK, MELBOURNE, DAY13, DAY19 )
-        ) );
-        V205 = voyage( "V205", schedule(
-              carrierMovement( HANGZHOU, MOGADISHU, DAY1, DAY2 ),
-              carrierMovement( MOGADISHU, ROTTERDAM, DAY2, DAY4 ),
-              carrierMovement( ROTTERDAM, NEWYORK, DAY4, DAY7 ),
-              carrierMovement( NEWYORK, DALLAS, DAY9, DAY10 )
-        ) );
-
-        itinerary = itinerary(
-              leg( V201, HONGKONG, CHICAGO, DAY1, DAY5 ),
-              leg( V201, CHICAGO, NEWYORK, DAY5, DAY6 ),
-              leg( V202, NEWYORK, DALLAS, DAY7, DAY8 ),
-              leg( V202, DALLAS, ROTTERDAM, DAY10, DAY17 ),
-              leg( V203, ROTTERDAM, STOCKHOLM, DAY20, DAY23 )
-        );
-
-        wrongItinerary = itinerary(
-              leg( V201, HONGKONG, CHICAGO, DAY1, DAY5 ),
-              leg( V201, CHICAGO, NEWYORK, DAY5, DAY6 ),
-              leg( V204, NEWYORK, MELBOURNE, DAY13, DAY19 )
-        );
-    }
-
-    public void assertDelivery( HandlingEventType handlingEventType,
-                                Location location,
-                                LocalDate completionDate,
-                                Voyage voyage,
-
-                                TransportStatus transportStatus,
-                                Boolean isUnloadedAtDestination,
-
-                                RoutingStatus routingStatus,
-                                Boolean isMisdirected,
-                                LocalDate eta,
-                                Integer itineraryProgress,
-
-                                HandlingEventType nextHandlingEventType,
-                                Location nextLocation,
-                                LocalDate nextTime,
-                                Voyage nextVoyage
-    ) throws Exception
-    {
-        delivery = cargo.delivery().get();
-
-        // Last handling event
-        if (delivery.lastHandlingEvent().get() != null
-              || handlingEventType != null || location != null || completionDate != null || voyage != null)
-        {
-            assertThat( "lastHandlingEvent - handlingEventType",
-                        delivery.lastHandlingEvent().get().handlingEventType().get(), is( equalTo( handlingEventType ) ) );
-            assertThat( "lastHandlingEvent - location",
-                        delivery.lastHandlingEvent().get().location().get(), is( equalTo( location ) ) );
-            assertThat( "lastHandlingEvent - completionDate",
-                        delivery.lastHandlingEvent().get().completionDate().get(), is( equalTo( completionDate ) ) );
-            assertThat( "lastHandlingEvent - voyage",
-                        delivery.lastHandlingEvent().get().voyage().get(), is( equalTo( voyage ) ) );
-        }
-
-        // Other transport status
-        assertThat( "transportStatus",
-                    delivery.transportStatus().get(), is( equalTo( transportStatus ) ) );
-        assertThat( "isUnloadedAtDestination",
-                    delivery.isUnloadedAtDestination().get(), is( equalTo( isUnloadedAtDestination ) ) );
-
-
-        // Routing and direction
-        assertThat( "routingStatus",
-                    delivery.routingStatus().get(), is( equalTo( routingStatus ) ) );
-        assertThat( "isMisdirected",
-                    delivery.isMisdirected().get(), is( equalTo( isMisdirected ) ) );
-        assertThat( "eta",
-                    delivery.eta().get(), is( equalTo( eta ) ) );
-        assertThat( "itineraryProgressIndex",
-                    delivery.itineraryProgressIndex().get(), is( equalTo( itineraryProgress ) ) );
-
-
-        // Next handling event
-        if (nextHandlingEventType == null)
-        {
-            assertThat( "nextHandlingEvent - handlingEventType",
-                        delivery.nextHandlingEvent().get(), is( equalTo( null ) ) );
-        }
-        else
-        {
-            assertThat( "nextHandlingEvent - handlingEventType",
-                        delivery.nextHandlingEvent().get().handlingEventType().get(), is( equalTo( nextHandlingEventType ) ) );
-            assertThat( "nextHandlingEvent - location",
-                        delivery.nextHandlingEvent().get().location().get(), is( equalTo( nextLocation ) ) );
-
-
-            if ( delivery.nextHandlingEvent().get().date().get() != null)
-            {
-                // Estimating a new carrier arrival time might be calculated a second
-                // after initial dates are set, so we skip the seconds
-                String calculatedTime = delivery.nextHandlingEvent().get().date().get().toString();
-                String expectedTime = nextTime.toString();
-                assertThat( "nextHandlingEvent - time", calculatedTime, is( equalTo( expectedTime ) ) );
-            }
-            else
-                assertThat( "nextHandlingEvent - time", delivery.nextHandlingEvent().get().date().get(), is( equalTo( nextTime ) ) );
-
-            assertThat( "nextHandlingEvent - voyage",
-                        delivery.nextHandlingEvent().get().voyage().get(), is( equalTo( nextVoyage ) ) );
-        }
-    }
-
-
-    public void assertDelivery( HandlingEventType handlingEventType,
-                                Location location,
-                                LocalDate completionDate,
-                                Voyage voyage,
-
-                                TransportStatus transportStatus,
-                                Boolean isUnloadedAtDestination,
-
-                                RoutingStatus routingStatus,
-                                Boolean isMisdirected,
-                                LocalDate eta,
-                                Integer itineraryProgress,
-
-                                NextHandlingEvent noNextHandlingEvent
-    ) throws Exception
-    {
-        assertDelivery( handlingEventType, location, completionDate, voyage,
-                        transportStatus, isUnloadedAtDestination, routingStatus, isMisdirected, eta,
-                        itineraryProgress, null, null, null, null );
-    }
-
-    public void assertRouteSpec( Location origin, Location destination, LocalDate earliestDeparture, LocalDate deadline )
-    {
-        newRouteSpec = cargo.routeSpecification().get();
-
-        assertThat( newRouteSpec.origin().get(), is( equalTo( origin ) ) );
-        assertThat( newRouteSpec.destination().get(), is( equalTo( destination ) ) );
-        assertThat( newRouteSpec.earliestDeparture().get(), is( equalTo( earliestDeparture ) ) );
-        assertThat( newRouteSpec.arrivalDeadline().get(), is( equalTo( deadline ) ) );
-    }
-
-    protected Voyage voyage( String voyageNumberStr, Schedule schedule )
-    {
-        UnitOfWork uow = uowf.currentUnitOfWork();
-        EntityBuilder<Voyage> voyage = uow.newEntityBuilder( Voyage.class, voyageNumberStr );
-
-        // VoyageNumber
-        ValueBuilder<VoyageNumber> voyageNumber = vbf.newValueBuilder( VoyageNumber.class );
-        voyageNumber.prototype().number().set( voyageNumberStr );
-        voyage.instance().voyageNumber().set( voyageNumber.newInstance() );
-
-        // Schedule
-        voyage.instance().schedule().set( schedule );
-        return voyage.newInstance();
-    }
-
-    private static Module findHostingModule()
-    {
-        return app.findModule( "BOOTSTRAP", "BOOTSTRAP-Bootstrap" );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/test/TestAssembler.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/test/TestAssembler.java b/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/test/TestAssembler.java
deleted file mode 100644
index bf33911..0000000
--- a/samples/dci-cargo/dcisample_b/src/test/java/org/apache/zest/sample/dcicargo/sample_b/bootstrap/test/TestAssembler.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.bootstrap.test;
-
-import java.util.function.Function;
-import org.apache.zest.api.structure.Application;
-import org.apache.zest.api.structure.Module;
-import org.apache.zest.api.value.ValueSerialization;
-import org.apache.zest.bootstrap.ApplicationAssembler;
-import org.apache.zest.bootstrap.ApplicationAssembly;
-import org.apache.zest.bootstrap.ApplicationAssemblyFactory;
-import org.apache.zest.bootstrap.AssemblyException;
-import org.apache.zest.bootstrap.LayerAssembly;
-import org.apache.zest.bootstrap.ModuleAssembly;
-import org.apache.zest.entitystore.memory.MemoryEntityStoreService;
-import org.apache.zest.index.rdf.RdfIndexingEngineService;
-import org.apache.zest.library.rdf.entity.EntityStateSerializer;
-import org.apache.zest.library.rdf.entity.EntityTypeSerializer;
-import org.apache.zest.library.rdf.repository.MemoryRepositoryService;
-import org.apache.zest.sample.dcicargo.pathfinder_b.api.GraphTraversalService;
-import org.apache.zest.sample.dcicargo.pathfinder_b.internal.GraphDAO;
-import org.apache.zest.sample.dcicargo.pathfinder_b.internal.GraphTraversalServiceImpl;
-import org.apache.zest.sample.dcicargo.sample_b.bootstrap.sampledata.BaseDataService;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.ProcessHandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.ParseHandlingEventData;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.dto.ParsedHandlingEventData;
-import org.apache.zest.sample.dcicargo.sample_b.context.rolemap.CargoRoleMap;
-import org.apache.zest.sample.dcicargo.sample_b.context.rolemap.CargosRoleMap;
-import org.apache.zest.sample.dcicargo.sample_b.context.rolemap.HandlingEventsRoleMap;
-import org.apache.zest.sample.dcicargo.sample_b.context.service.routing.RoutingService;
-import org.apache.zest.sample.dcicargo.sample_b.data.factory.RouteSpecificationFactoryService;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.RouteSpecification;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.Delivery;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.NextHandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.itinerary.Itinerary;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.itinerary.Leg;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.location.Location;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.location.UnLocode;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.tracking.TrackingId;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.voyage.CarrierMovement;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.voyage.Schedule;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.voyage.Voyage;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.voyage.VoyageNumber;
-import org.apache.zest.spi.uuid.UuidIdentityGeneratorService;
-import org.apache.zest.valueserialization.orgjson.OrgJsonValueSerializationService;
-
-import static org.apache.zest.api.common.Visibility.application;
-import static org.apache.zest.api.structure.Application.Mode.test;
-
-/**
- * Test application assembler
- *
- * (Has no communication layer)
- */
-@SuppressWarnings( "unchecked" )
-public class TestAssembler
-    implements ApplicationAssembler
-{
-    public ApplicationAssembly assemble( ApplicationAssemblyFactory applicationFactory )
-        throws AssemblyException
-    {
-        // Application assembly
-        ApplicationAssembly assembly = applicationFactory.newApplicationAssembly();
-        assembly.setName( "DCI Sample (version A) - TEST" );
-        assembly.setVersion( "B.1.0" );
-        assembly.setMode( test );
-
-        // Layers
-        LayerAssembly infrastructureLayer = assembly.layer( "INFRASTRUCTURE" );
-        LayerAssembly dataLayer = assembly.layer( "DATA" );
-        LayerAssembly contextLayer = assembly.layer( "CONTEXT" );
-        LayerAssembly bootstrapLayer = assembly.layer( "BOOTSTRAP" );
-
-        // Layer dependencies
-        bootstrapLayer.uses(
-            contextLayer,
-            dataLayer,
-            infrastructureLayer );
-
-        contextLayer.uses(
-            dataLayer,
-            infrastructureLayer );
-
-        dataLayer.uses(
-            infrastructureLayer
-        );
-
-        // Assemble
-        assembleDomainLayer( dataLayer );
-        assembleContextLayer( contextLayer );
-        assembleBootstrapLayer( bootstrapLayer );
-        assembleInfrastructureLayer( infrastructureLayer );
-
-        return assembly;
-    }
-
-    private void assembleBootstrapLayer( LayerAssembly bootstrapLayer )
-        throws AssemblyException
-    {
-        ModuleAssembly bootstrapModule = bootstrapLayer.module( "BOOTSTRAP-Bootstrap" ).withDefaultUnitOfWorkFactory();
-
-        // Load base data on startup
-        bootstrapModule
-            .services( BaseDataService.class )
-            .visibleIn( application )
-            .instantiateOnStartup();
-    }
-
-    private void assembleContextLayer( LayerAssembly contextLayer )
-        throws AssemblyException
-    {
-        ModuleAssembly roleMapModule = contextLayer.module( "CONTEXT-RoleMap" ).withDefaultUnitOfWorkFactory();
-
-        // Role-playing entities
-        roleMapModule
-            .entities(
-                CargoRoleMap.class,
-                CargosRoleMap.class,
-                HandlingEventsRoleMap.class )
-            .visibleIn( application );
-
-        // Non-role-playing entities
-        roleMapModule
-            .entities(
-                HandlingEvent.class,
-                Location.class,
-                Voyage.class )
-            .visibleIn( application );
-
-        ModuleAssembly interactionModule = contextLayer.module( "CONTEXT-Interaction" ).withDefaultUnitOfWorkFactory();
-        interactionModule
-            .transients(
-                ProcessHandlingEvent.class )
-            .visibleIn( application );
-
-        ModuleAssembly contextServiceModule = contextLayer.module( "CONTEXT-Service" ).withDefaultUnitOfWorkFactory();
-        contextServiceModule
-            .services(
-                ParseHandlingEventData.class,
-                RoutingService.class,
-                RouteSpecificationFactoryService.class )
-            .visibleIn( application );
-
-        contextServiceModule
-            .values(
-                ParsedHandlingEventData.class )
-            .visibleIn( application );
-    }
-
-    private void assembleDomainLayer( LayerAssembly dataLayer )
-        throws AssemblyException
-    {
-        // Non-role-playing values
-        ModuleAssembly structureModule = dataLayer.module( "DATA-Structure" ).withDefaultUnitOfWorkFactory();
-        structureModule
-            .values(
-                TrackingId.class,
-                RouteSpecification.class,
-                Delivery.class,
-                NextHandlingEvent.class,
-                UnLocode.class,
-                Itinerary.class,
-                Leg.class,
-                CarrierMovement.class,
-                Schedule.class,
-                VoyageNumber.class )
-            .visibleIn( application );
-//        structureModule.entities( LocationEntity.class, VoyageEntity.class, HandlingEventEntity.class );
-    }
-
-    private void assembleInfrastructureLayer( LayerAssembly infrastructureLayer )
-        throws AssemblyException
-    {
-        ModuleAssembly serializationModule = infrastructureLayer.module( "INFRASTRUCTURE-Serialization" ).withDefaultUnitOfWorkFactory();
-        serializationModule
-            .services( OrgJsonValueSerializationService.class )
-            .taggedWith( ValueSerialization.Formats.JSON )
-            .setMetaInfo( (Function<Application, Module>) application -> application.findModule( "CONTEXT", "CONTEXT-RoleMap" ) )
-        .visibleIn( application );
-
-        ModuleAssembly indexingModule = infrastructureLayer.module( "INFRASTRUCTURE-Indexing" ).withDefaultUnitOfWorkFactory();
-        indexingModule
-            .objects(
-                EntityStateSerializer.class,
-                EntityTypeSerializer.class );
-
-        indexingModule
-            .services(
-                MemoryRepositoryService.class,
-                RdfIndexingEngineService.class )
-            .visibleIn( application )
-            .instantiateOnStartup();
-
-        ModuleAssembly entityStoreModule = infrastructureLayer.module( "INFRASTRUCTURE-EntityStore" ).withDefaultUnitOfWorkFactory();
-        entityStoreModule
-            .addServices(
-                MemoryEntityStoreService.class,
-                UuidIdentityGeneratorService.class )
-            .visibleIn( application );
-
-        ModuleAssembly externalServiceModule = infrastructureLayer.module( "INFRASTRUCTURE-ExternalService" ).withDefaultUnitOfWorkFactory();
-        externalServiceModule
-            .importedServices(
-                GraphTraversalService.class )
-            .setMetaInfo( new GraphTraversalServiceImpl( new GraphDAO() ) )
-            .visibleIn( application );
-    }
-}