24/08/2007

Java Naming Conventions for Sample Project

Java Naming Conventions for Sample Project

Java package naming

  • com.company.project – project-wide package prefix. Should not be used directly.

  • com.company.project.web – web client package prefix


Common packages

  • com.company.project.commons – project-wide common classes, including exceptions

  • com.company.project.commons.util – project-wide gnerial purpose utilities.

  • com.company.project.commons.persistence – common classes retaled to server side persistence (Persistence API 1.0)

  • com.company.project.commons.ws – WebService related utilities.


Sub-system packages

  • com.company.project.<subsystem>.<component> - may contain exceptions

  • domain – contains interfaces, classes and enums related to subsystem's domain model representation.

  • persistence – persistnt entities should be placed here. EJB 2.1 beans too.

  • component – session beans (EJB3) with CRUD logic (managers over persistence tier)

  • util – various service utilities, e.g. DTO assemblers and helpers

  • business – Session beans with complex logic. These classes deals with component layer and may use persistence entities POJOs as Data Transfer Objects (DTO) with lazy loading within a transaction.

  • util – various service utilities, e.g. DTO assemblers and helpers

  • facade – Contains service facades. Serice facades are POJOs (preferrable) or EJB3 session beans which may access business and component layer beans.

    • jaxws – contains JAXWS service implementations.

      • skeletons – contains generated JAXWS interfaces

    • axis – contains AXIS service facade implementations

      • skeletons – contains axis generated skeletons

    • util – various service utilities, e.g. DTO assemblers and helpers

  • client – contains (web) service clients

    • jaxws – contains JAXWS service client.

      • stubs – contains jaxws generated sstubs

    • axis – contains AXIS service client.

      • stubs – contains axis generated stubs


Java class naming

Following conventions should be applied to class naming:

  • Persistent entity should have an «Entity» suffix

  • Session beans should have an interface and implementation: FooManager and FooManagerBean

  • WebServices session bean implementation should be named with suffix FooPortImpl. If it's a session bean – FooPortBean.

  • Factories should have a «Factory» suffix

  • We use the following names for the parts of an entity / session bean:

  1. Enterprise bean class: <name>Bean

  2. Local home interface: <name>Home

  3. Local interface: <name>.

  • Accessor methods of an enterprise bean class should be grouped by field

  • ...





No comments:

Post a Comment

redirect