All,

I have just committed a few important things to CVS. Some only make a
difference to developers, and some are for users. 

Here goes:
* All deployment classes have been renamed. For example, the EjbJar
classes have been renamed to jBossEjbJar and JawsEjbJar respectively.
All source code that uses these classes have also been updated. This
should make it less confusing.

* I have added "read-only" functionality to JAWS. Basically, in some
cases you want entity beans to be nothing more than a cached object
version of your data, i.e. a catalog on the web. In this case we cache
entity's and do nothing on store. However, since the database might be
modified by some other process we need to continously drop the cached
data and reload it from the db. Hence, JAWS now has two new
settings/bean: one to enable read-only, and one for a timeout (in
seconds) which denotes the maximum time the cached entity will be held.
If an entity is accessed after the timeout the data will be reloaded.
Note that this is not entirely complete. The entity state
synchronization interceptor (which calls store on the persistence
manager) currently only calls load if the entity has been just activate,
so this reload thing wont work currently (we need it to call load on
every call in order to check timeout). To make use of this functionality
*now* you can edit the state synchronization interceptor so that once
load has been called the state is not set as synchronized with the DB.
I.e. in EntitySynchronizationInterceptor:
         if (!entityCtx.isSynchronized())
         {
           
((EntityContainer)getContainer()).getPersistenceManager().loadEntity(entityCtx);
            entityCtx.setSynchronized(true); // Remove this line
         }
Once we add GUI configurability of interceptors this will be made
settable through GUI.

* The BeanInfo generation previously compiled the generated files as
well. This was very slow since it used javac through exec(). I have now
changed this generation to *only* be generation, and use the Ant javac
command instead. Muchos faster.

* I have added a simple JMX Adaptor which uses RMI. This means that you
can look up the RMI Adaptor from JNDI (it's bound to "jmx"), and manage
the server remotely. Currently there is no GUI to do this. However, I
have included two simple commands which will be (probably) commonly
used. First we have /bin/deploy.jar. It can be used to deploy EJB's from
"afar". Call "java -jar deply.jar <url to .jar file or directory>". URL
may be any URL as long as the server can access it to find the necessary
file(s). Then we have stop.jar. It is simply used to stop all services
in the server for a clean shutdown. Simply call "java -jar stop.jar" to
use it. More commands can easily be added. Se
org/jboss/jmx/client/*.java for details.

Well.. that was it I think.. 

/Rickard

ps. Note that for read-only entity beans you can deploy one entity as RO
which is used by "the web-layer", and one as RW which you use by your
mgmt app. Both should point to the same table/db but you may only do
updates through the RW one. This gives maxiumum performance/flexibility
in terms of caching.

-- 
Rickard �berg

@home: +46 13 177937
Email: [EMAIL PROTECTED]
http://www.telkel.com
http://www.jboss.org
http://www.dreambean.com

Reply via email to