!!! Im Text referenzierte Listings !!! #REF1. Lieferscheinverarbeitung, umgesetzt mit !!! Spring Batch !!! - DelimitedLineTokenizer: teilt jede Zeile in einzelne Felder. !!! - DefaultLineMapper: lässt den DelimitedLineTokenizer die Zeile zerlegen und StockItemFieldSetMapper daraus einen Objekt erzeugen !!!- FlatFileItemReader: liest die CSV Datei zeilenweise. !!! #REF2. Spring Integration überwacht das !!! Dateisystem/den Ordner und leitet neue Lieferscheine an !!! den Kommunikationskanal csvDeliveryNotesChannel weiter. !!! #REF3. Der Service Activator horcht auf Nachrichten !!! am Kommunikationskanal csvDeliveryNotesChannel und !!! leitet sie an den CSV-Importer weiter, der die !!! gelesenen Lieferscheinbestandteile mittels stockWriterAdapter in !!! die Datenbank schreibt. !!! Die Spring Konfiguration der verwendete Beans: !!! REF4. In der Nachrichtenkette platziert, wandelt !!! Apache Camels Processor die eingehende !!! Nachricht in eine SMS- oder Mail-Benachrichtigung um. public void process(final Exchange exchange) throws Exception { Notification notification = exchange.getIn() .getBody(Notification.class); if (notification.getContactChannel(notification.getCustomer()).equals(SMS)) exchange.getIn().setBody( new SmsNotification(notification.getCustomer(), notification.getMessage(), customerConfig.getSmsNumber(notification.getCustomer())); else exchange.getIn().setBody( new MailNotification(notification.getCustomer(), notification.getMessage(), customerConfig.getMailAddressNumber(notification.getCustomer()), customerConfig.getMailSubject(notification.getCustomer())); } !!! #REF5. Die von Apache Camel benötigte !!! Routing-Implementierung definiert die Route des !!! Nachrichtentyps. public String slip(final Notification notification, @Properties Map properties) { // End routing by returning null, otherwise endless loop // The current endpoint is in the properties. // First run - where routing should be done - it will be null if (properties.get(Exchange.SLIP_ENDPOINT) != null) { return null; } if (notification instanceof SmsNotification) { return "activemq:sms"; } else if (notification instanceof MailNotification) { return "activemq:mail"; } return null; } !!! #REF6. Die (Spring-)Konfiguration der einzelnen !!! Elemente der Verarbeitungskette im !!! Benachrichtigungsprozess von Apache Camel. !!! #REF7. Die Implementierung des Webservice-Client !!! mit Spring Integration stützt sich auf den im !!! Funktionsumfang enthaltenen WebServiceGatewaySupport !!! und auf autogenerierte Java-Objekte für die !!! Interaktion. public class PartsOrderService extends WebServiceGatewaySupport { public OrderResponse order(OrderRequest orderRequest) { OrderResponse response = (OrderResponse) getWebServiceTemplate().marshalSendAndReceive(orderRequest); return response; }; } !!! #REF8. Die Implementierung des Webservice-Client !!! stüzt sich auf den XML-Marshaller.