Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview
Anchor
top
top

An entity bean is defined as a representation of persistent data that has the ability to read from database and populate its fields with data. It can be updated and stored back to the database. There are two types: Bean-Managed Persistence(BMP) and Container-Managed

...

Persistent(CMP).

...

This

...

article

...

covers

...

the

...

migration

...

of

...

a

...

BMP

...

sample

...

application.

...

For

...

this

...

type

...

of

...

entity

...

bean,

...

actual

...

code

...

must

...

be

...

written

...

to

...

handle

...

persistent

...

operations

...

such

...

as

...

loading,

...

saving

...

and

...

finding

...

data.

...

The

...

developer

...

must

...

use

...

persistence

...

API

...

such

...

as

...

JDBC

...

to

...

select,

...

insert,

...

update,

...

delete

...

from

...

a

...

database.

...

This

...

article

...

is

...

organized

...

in

...

the

...

following

...

sections:

...

...

...

...

BMP implementation analysis
Anchor
implementation
implementation

BMP implementation may vary from one vendor to another. The purpose of this section is to provide a BMP specific feature-to-feature

...

comparison

...

between

...

JBoss

...

v4

...

and

...

Apache

...

Geronimo

...

so

...

you

...

can

...

clearly

...

identify

...

the

...

differences

...

and

...

plan

...

accordingly

...

before

...

migration.

...

Features

JBoss v4

Geronimo

EJB Container

JBoss comes with its own EJB Container implementation.

Geronimo uses OpenEJB as its EJB Container.

JMS implementation

JBoss is packaged with JBoss MQ.

Geronimo uses ActiveMQ as its JMS implementation.

Back to Top

Sample application
Anchor
sampleApp
sampleApp

The Loan BMP application is very simple. When the command line client is run, an entry is made into the database. The findByPrimaryKey() method of the CustomerHomeRemote interface is called and the field values of the returned CustomerRemote object are printed to the console. This is followed by a call to the findBySssNo() method after which the field values of the returned CustomerRemote object are printed to the console.

The following figure illustrates the application flow:

Image Added

The user runs the command line client which then either creates an entity bean (which then adds itself to the datasource) or asks for one, by primary key, which is created from information that is stored in the database.

Back to Top

Application Beans

The Loan BMP application consists of the following packages:

  • com.ibm.demo.entity.client

...

    • BMPClient
      • contains the main class that is called from the console.
  • com.ibm.demo.entity.bmp

...

    • CustomerBean
      • Implements javax.ejb.EntityBean

...

      • fields

...

      • of

...

      • the

...

      • bean

...

      • are

...

      • defined

...

      • here.

...

      • Contains

...

      • business

...

      • methods

...

      • corresponding

...

      • to

...

      • the

...

      • methods

...

      • exposed

...

      • by

...

      • the

...

      • CustomerRemote

...

      • interface.

...

      • Conatins

...

      • callback

...

      • methods

...

      • that

...

      • are

...

      • called

...

      • by

...

      • the

...

      • container

...

      • to

...

      • manage

...

      • the

...

      • bean.

...

      • These

...

      • methods

...

      • include

...

      • the

...

      • create

...

      • and

...

      • find

...

      • methods

...

      • which

...

      • use

...

      • jdbc

...

      • to

...

      • make

...

      • entries

...

      • to

...

      • the

...

      • database

...

      • and

...

      • to

...

      • search

...

      • the

...

      • database.

...

      • Has

...

      • a

...

      • helper

...

      • method

...

      • that

...

      • looks

...

      • up

...

      • the

...

      • datasource

...

      • through

...

      • jndi.

...

    • CustomerRemote
      • Interface that extends javax.ejb.EJBObject.

...

      • Exposes

...

      • the

...

      • setter

...

      • and

...

      • getter

...

      • methods

...

      • of

...

      • the

...

      • EJB.

...

    • CustomerHomeRemote
      • Interface that extends javax.ejb.EJBHome.

...

      • Exposes

...

      • the

...

      • create

...

      • and

...

      • find

...

      • methods

...

      • of

...

      • the

...

      • EJB.

...

Back

...

to

...

Top

Tools used

The tools used for developing and building the loan application are:

Eclipse

The Eclipse IDE was used for development of the sample application. This is a very powerful and popular open source development tool. Integration plug-ins are available for both JBoss and Geronimo. Eclipse can be downloaded from the following URL:

http://www.eclipse.org

...

Apache Maven

Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM). Maven can manage a project's build, reporting and documentation from a central piece of information.

For this migration example Maven 1.0.2

...

was

...

used.

...

Maven

...

can

...

be

...

downloaded

...

from

...

the

...

followinf

...

URL:

...

http://maven.apache.org

...

Back

...

to

...

Top

Sample database

The sample database for the Loan BMP application has only one table. This is an in-memory table. The MEMORY storage engine creates tables with contents that are stored in just in memory. These were formerly known as HEAP tables.

The following table describes the fields of the CUSTOMER table.

Field

data type

id

INTEGER

name

VARCHAR(45)

birthdate

DATE

sss_no

VARCHAR(25)

address

VARCHAR(60)

annual_salary

DOUBLE

loan_amount

DOUBLE

Back to Top

The JBoss environment
Anchor
JBoss
JBoss

This section shows you how and where the sample JBoss reference environment was installed so you can map this scenario to your own implementation. Note that for this migration example JBoss v4.0.2 was used.

Detailed instructions for installing, configuring, and managing JBoss are provided in the product documentation. Check the product Web site for the most updated documents.

The following list highlights the general tasks you will need to complete to install and configure the initial environment as the starting point for deploying the sample application.

  1. Download and install JBoss v4 as explained in the product documentation guides. From now on the installation directory will be referred as <jboss_home>
  2. Create a copy of the default JBoss v4 application server. Copy recursively <jboss_home>\server\default to <jboss_home>\server\<your_server_name>

...

  1. Start

...

  1. the

...

  1. new

...

  1. server

...

  1. by

...

  1. running

...

  1. the

...

  1. run.sh

...

  1. -c

...

  1. <your_server_name>

...

  1. command

...

  1. from

...

  1. the

...

  1. <jboss_home>\bin

...

  1. directory

...

  1. .

...

  1. Once

...

  1. the

...

  1. server

...

  1. is

...

  1. started,

...

  1. you

...

  1. can

...

  1. verify

...

  1. that

...

  1. it

...

  1. is

...

  1. running

...

  1. by

...

  1. opening

...

  1. a

...

  1. Web

...

  1. browser

...

  1. and

...

  1. pointing

...

  1. it

...

  1. to

...

  1. this

...

  1. URL:

...

  1. http://localhost:8080

...

  1. .

...

  1. You

...

  1. should

...

  1. see

...

  1. the

...

  1. JBoss

...

  1. Welcome

...

  1. window

...

  1. and

...

  1. be

...

  1. able

...

  1. to

...

  1. access

...

  1. the

...

  1. JBoss

...

  1. console.

...

  1. Once

...

  1. the

...

  1. application

...

  1. server

...

  1. is

...

  1. up

...

  1. and

...

  1. running,

...

  1. the

...

  1. next

...

  1. step

...

  1. is

...

  1. to

...

  1. install

...

  1. and

...

  1. configure

...

  1. all

...

  1. the

...

  1. remaining

...

  1. prerequisite

...

  1. software

...

  1. required

...

  1. by

...

  1. the

...

  1. sample

...

  1. application.

...

  1. This

...

  1. step

...

  1. is

...

  1. described

...

  1. in

...

  1. the

...

  1. following

...

  1. section.

...

Back

...

to

...

Top

Install and configure prerequisite software

In order to build and run the Loan BMP application included in this article, you need to install and configure the build tool and the database that is used by the application.

Modify database settings

This application is using the HSQL database that comes as part of the JBoss bundle. Open the hsqldb-ds.xml located in the <jboss_home>/server/<your_server_name>/deploy

...

directory

...

and

...

which

...

sets

...

up

...

the

...

default

...

datasource.

...

Near

...

the

...

top

...

of

...

the

...

file,

...

look

...

for

...

the

...

<connection-url>

...

element.

...

Uncomment

...

this

...

element

...

and

...

make

...

sure

...

the

...

value

...

is

...

set

...

to

...

jdbc:hsqldb:hsql://localhost:1701

...

and

...

that

...

any

...

other

...

connection-url

...

elements

...

are

...

commented

...

out.

...

Now

...

you

...

need

...

to

...

modify

...

the

...

script

...

for

...

creating

...

the

...

database.

...

Edit

...

the

...

localDB.script

...

file

...

located

...

in

...

the

...

following

...

directory:

...

<jboss_home>\server\<your_server_name>\data\hypersonic

...

Add

...

at

...

the

...

top

...

of

...

the

...

localDB.script

...

file

...

the

...

content

...

of

...

the

...

following

...

example

...

in

...

order

...

to

...

create

...

the

...

sample

...

HSQL

...

database.

{
Note
}

Make

sure

JBoss

is

not

running

at

the

time

of

modifying

this

file.

No Format
{note}

{noformat}CREATE MEMORY TABLE CUSTOMER(ID INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(45),BIRTHDATE DATE,SSS_NO VARCHAR(25),ADDRESS VARCHAR(60),ANNUAL_SALARY DOUBLE,LOAN_AMOUNT DOUBLE){noformat}

h3. Configure Maven
As mentioned before, Apache Maven is used to build the binaries for the Loan BMP application. If you do not have Maven installed this is a good time for doing it.

Apache Maven can be downloaded from the following URL:

[

Configure Maven

As mentioned before, Apache Maven is used to build the binaries for the Loan BMP application. If you do not have Maven installed this is a good time for doing it.

Apache Maven can be downloaded from the following URL:

http://maven.apache.org

...

Back

...

to

...

Top

Build the sample application

In order to build the loan application a Maven script has been provided. Download the Loan application from the following URL:

http://opensource2.atlassian.com/confluence/oss/download/attachments/1148/loan-bmp.zip

...

After

...

extracting

...

the

...

zip

...

file,

...

a

...

loan-bmp

...

directory

...

will

...

be

...

created.

...

From

...

now

...

on,

...

this

...

directory

...

will

...

be

...

referred

...

as

...

<bmp_home>.

...

In

...

that

...

directory

...

open

...

the

...

project.properties

...

file.

...

Edit

...

the

...

maven.jboss.home

...

property

...

to

...

match

...

your

...

environment.

...

It

...

is

...

important

...

that

...

you

...

use

...

"//"

...

on

...

the

...

windows

...

platform

...

as

...

is

...

done

...

below.

...

maven.jboss.home=Z://JBoss-4.0.2

...

From

...

a

...

command

...

prompt

...

or

...

shell

...

go

...

to

...

the

...

<bmp_home>

...

directory

...

and

...

run

...

the

...

following

...

command:

...

maven

...

ejb:ejb

...

This

...

will

...

build

...

the

...

jar

...

file

...

and

...

put

...

it

...

in

...

the

...

<bmp_home>/apps/target

...

folder.

...

The

...

jar

...

created

...

by

...

the

...

Maven

...

build

...

contains

...

a

...

JBoss

...

specific

...

deployment

...

descriptor,

...

the

...

jboss.xml

...

file

...

in

...

located

...

the

...

META-INF

...

directory

...

of

...

the

...

JAR

...

is

...

shown

...

in

...

the

...

following

...

example:

Code Block
xml
xml
borderStylesolid
titleJBoss deployment descriptor - jboss.xml


{code:xml| borderStyle=solid| title=JBoss deployment descriptor - jboss.xml}
<?xml version="1.0"?>

<jboss>
   <enterprise-beans>
      <entity>
         <ejb-name>CustomerEJB</ejb-name>
         <jndi-name>CustomerHomeRemote</jndi-name>
      </entity>
   </enterprise-beans>
</jboss>{code}

The

...

jndi-name

...

element

...

is

...

used

...

to

...

bind

...

the

...

CustomerEJB

...

to

...

the

...

name

...

CustomerHomeRemote

...

in

...

JNDI.

...

Back

...

to

...

Top

Deploy the sample application

To deploy the Loan BMP application in JBoss, copy the entity-ejb-SNAPSHOT.jar

...

file

...

you

...

just

...

built

...

with

...

Maven

...

to

...

the

...

following

...

directory:

...

<jboss_home>\server\<your_server_name>\deploy

...

If

...

JBoss

...

is

...

already

...

started,

...

it

...

will

...

automatically

...

deploy

...

and

...

start

...

the

...

application;

...

otherwise,

...

the

...

application

...

will

...

be

...

deployed

...

and

...

started

...

at

...

the

...

next

...

startup.

...

Back

...

to

...

Top

Test the sample application

To test the sample client application type the following command from the <bmp_home> directory:

maven run: client

The result of this command is a list of loans that were retrieved from the database similar to the list shown following in the follow:

When you run this command, you will receive a list of all the loans that were retireved from the database, you should see a screen similar to the one shown in the following example:

Code Block
bgcolorblack


E:\loan-bmp>maven

...

run:client

...


__

...

__

...


|

...

\/

...

|__

...

Apache_ _

...

__

...


|

...

|\/|

...

/

...

`

...

\

...

V

...

/

...

-

...

)

...

'

...

\

...

~

...

intelligent

...

projects

...

~

...


|

...

|

...

|_

...

,

...

|

...

_/

...

__|

...

||_|

...

v.

...

1.0.2

...



build:start:

...



run:client:

...


java creating customer...

...


java done.findByPrimaryKeyTest...

...

1
java customer name:

...

Customer

...

1
java customer sss no: 2323232
java customer loan amount: 0.0
java customer annual salary: 0.0
java customer birthdate: Fri Oct 21 15:40:39

...

EDT

...

2005
java updating ejb...

...


java done.findBySssNoTest...

...

2323232
java customer name:

...

Customer

...

2
java customer sss no: 2323232
java customer loan amount: 0.0
java customer annual salary: 0.0
java customer birthdate: Fri Oct 21 15:40:39

...

EDT

...

2005

...


BUILD

...

SUCCESSFUL

...


Total

...

time:

...

3

...

seconds

...


Finished

...

at:

...

Fri

...

Oct

...

21

...

15:40:39

...

EDT

...

2005

...



E:\loan-bmp>

...

No Format

Back to Top

The Geronimo environment
Anchor
Geronimo
Geronimo

Back to Top

Step-by-step

...

migration

...

Anchor
migration
migration

Back to Top

Summary
Anchor
summary
summary

Back to Top