This content has been marked as final. Show 2 replies
There is some confusion (at least, I perceive there to be) over the purpose of the two source directories in the structure of projects created by seam-gen and how they relate to XML component configuration (via components.xml).
The two source directories are:
The names are slightly misleading. Here is an overview.
The model directory is treated as static. This means that once the application gets going, component definitions from the resulting classpath entry (WEB-INF/classes) remain in tact throughout the application's lifetime. (Read as: they are not hot redeployed).
The action directory is treated as dynamic. This means that if a change is detected in the classpath entry (a new version of a class appears in WEB-INF/dev), all the component definitions that originated from that directory are removed and it is rescanned for components. (Read as: they are hot redeployed).
The hot redeployable directory is an isolated, URL classloader. No classes or other classloaders can see these classes. That means that you cannot put a class in this directory and then define it as a component using XML in components.xml because the classloader that processes those definitions cannot see the classes in the hot redeployable directory.
I now arrive at my point, a call for change. I feel that "model" and "action" names are ill-suited for their purpose. Here is my proposal:
model -> static
action -> dynamic
other options include:
model -> standard
action -> dynamic or hot
model -> main
action -> redeployable
This change would affect projects created by seam-gen.