Technical Guide

batterycopperInternet και Εφαρμογές Web

12 Νοε 2013 (πριν από 3 χρόνια και 6 μήνες)

117 εμφανίσεις

EFM Development


Assumptions


Reader has an understanding of the following technologies:

Java

Spring Framework

Apache Maven

XML

Web Services




EFM Project Structure


The EFM package is build using the Maven software project management tool. It
consists o
f the “core” pieces, then the implementation specific sub
-
module. The core
pieces of the EFM package are the EFM Platform Core module, which contains all of the
Java code and Spring Framework configuration files, and the EFM Platform DB which
contains the

initial database creation and population scripts.


The EFM package project contains a child Maven module for the project specific code, in
the example case
“Default

EFM

. This module will always include the two modules, DB
Parent, and Web Parent.

The de
ployment for a trading partner will have both a

Company


DB and

Company


Web module that will be children their respective parent
modules. In the
example
implementation

downloaded you will find a Default Web and
Default DB module
.



Modifying the EFM Da
tabase


The company specific DB project
,

along with the DB Parent project are used to define the
values that create the database instance used by the EFM package.


To create the database for the EFM package, the developer will need to modify some files
in
the provided code, and build the Maven modules for the DB project. The following
are a list of steps to modify the necessary files.



Open the DB Parent module for your company’s EFM deployment.

Open the POM file for the DB Parent module.

In the propertie
s section of the POM file, change the entries to match the place holder
values used in your SQL file assigning them the correct values.


Open your company specific DB module, in the example project this is called Interdom
DB.

Open the POM file for that mod
ule.

Change the values in the properties section of the POM your company will be using for
their EFM database. This includes database name, and users.



Web Project
Configuration

Values for URLs, directories, JNDI entries, EFM specific values, or any cust
om
processing variable are stored in the efm.properties file in the company specific Web
module
. In the
case study code this is

Interdom Web.


The Spring configuration files that use these values are in the project specific files, as
well as the EFM Plat
form Core project. If a new bean is introduced into any Spring
configuration file used by the Web project, it can be added to this properties file.


While the EFM Platform Core does have default implementations for the Web Services
provided in the package
, some of the implementations do nothing. Also, it is likely
each
deployment of the EFM package will want to do something different with the data
received than the default action. The company specific Web module is where the custom
implementation for eac
h EFM core Web Service should be defined. Looking at the code
provided for the case study implementation will illustrate how this is accomplished as
describing the full architecture of the EFM package is out of the scope of this document.




Customizing

a

Web Service


When customizing a Web Service in EFM to handle the incoming data the developer
must create a new class that implements the Service Interface. For the Status Receipt
Web Service this interface is the
org.efm.platform.service.IStatusReceiptSe
rvice
Interface. Once the
implementation is finished, a bean definition needs to be placed in the <companyefm>
-
integration.xml file like the example below:



<bean id="statusReceiptService"
class="org.efm.company.service.StatusReceiptService">


</bean>


This line in the Spring Framework configuration file will automatically cause EFM to use
the new customized class to handle the incoming data.

Once these changes are made, the
Company specific web project has to be built before being deployed.