Jease 1.8 released

12 views
Skip to first unread message

Maik Jablonski

unread,
Feb 28, 2011, 7:59:23 PM2/28/11
to je...@googlegroups.com
Hi to all,

I'm happy to announce the release of Jease 1.8... there's only one
release left between the current release and 2.0, so if you have
suggestions what should make it into Jease 2.0, it is better to speak
up soon.

To make the upgrade as (j)easy as possible, I've moved all upgrade
functionality to the setup procedure which automatically decides what
needs to be done. So after creating a backup of your database
directory (better to be safe than sorry) and deploying the new Jease
release, you simply have to call http://localhost:8080/cms/setup to
update all necessary data structures from previous releases. That's
it...

The most important new features for the 1.8 release are:

- Image Gallery with server-side thumbnails. Visit
http://www.jease.org/demo/gallery/ to view a Gallery in action.

- Improved user management with customizable roles. This is an
important step forward in granting access to content types for
different groups of users. The former "privileged" / "non-privileged"
approach was very limiting. I've also switched the storage of all
passwords to MD5-hashes which ensures that passwords cannot be
deciphered anymore.

- Some important usability improvements for the CMS like a
"Go-Into-Feature" for the navigation tree or a "fullscreen" mode for
the embedded site browser.

**Please note:** I've found several locations in the sources where an
explicit UTF-8 encoding was missing. This is no problem if you're
running your server with UTF-8 (which is recommended anyway) or not
using non-ASCII-characters at all, therefore I didn't encounter any
problems in the past. In a recent project a migration of a site from a
server with default encoding of ISO-8859-1 to UTF-8 brought this
problem to my attention (garbled characters in Files containing plain
text or Revisions). Therefore I created an encoding upgrade script
which deals with this problem
(http://www.jease.org/download/1.8/release#upgrade). If you have any
troubles or questions with encoding problems, please feel free to ask
for help (but create a backup of your database directory BEFORE
performing the upgrade).

If you want to test drive the new features first, please feel free to
use the demo:

http://www.jease.org/demo/

If you want to read a complete list of changes or download the latest
release to get started right away, please visit:

http://www.jease.org/download/1.8/

Have fun with Jease,
Maik

Dymytry

unread,
Mar 3, 2011, 8:07:32 AM3/3/11
to Jease - The Java CMS with Ease
Maik,
please help to update from 1.6 version to 1.8.

If I try to start the server using startup.bat with my old database in
its old place an exception occures, which prevesnts Tomcat from
deploying an application. So I cannot call the localhost:8080/cms/
setup. If I rename the database folder it starts ok. Here is an
exception message:

03.03.2011 15:45:17 org.apache.catalina.core.StandardContext
listenerStart
SEVERE: Exception sending context initialized event to listener
instance of class jease.cmf.web.servlet.JeaseServletListener
java.lang.RuntimeException: java.lang.IllegalArgumentException: array
element type mismatch
at jfix.db4o.Database.open(Database.java:73)
at
jease.cmf.web.servlet.JeaseServletListener.contextInitialized(JeaseServletListener.java:
35)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:
4600)
at org.apache.catalina.core.StandardContext
$1.call(StandardContext.java:5097)
at org.apache.catalina.core.StandardContext
$1.call(StandardContext.java:5092)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: array element type
mismatch
at java.lang.reflect.Array.set(Native Method)
at
com.db4o.reflect.core.AbstractReflectArray.set(AbstractReflectArray.java:
101)
at
com.db4o.reflect.generic.GenericArrayReflector.set(GenericArrayReflector.java:
85)
at
com.db4o.internal.handlers.array.ArrayHandler.readInto(ArrayHandler.java:
382)
at
com.db4o.internal.handlers.array.ArrayHandler.readElements(ArrayHandler.java:
363)
at
com.db4o.internal.handlers.array.ArrayHandler.read(ArrayHandler.java:
355)
at com.db4o.internal.Handlers4.readValueType(Handlers4.java:313)
at
com.db4o.internal.marshall.AbstractReadContext.readAtCurrentSeekPosition(AbstractReadContext.java:
48)
at com.db4o.internal.marshall.AbstractReadContext
$1.run(AbstractReadContext.java:38)
at
com.db4o.internal.marshall.SlotFormat.doWithSlotIndirection(SlotFormat.java:
76)
at
com.db4o.internal.marshall.SlotFormat.doWithSlotIndirection(SlotFormat.java:
66)
at
com.db4o.internal.marshall.AbstractReadContext.readObject(AbstractReadContext.java:
36)
at
com.db4o.internal.marshall.AbstractReadContext.read(AbstractReadContext.java:
28)
at com.db4o.internal.FieldMetadata.read(FieldMetadata.java:812)
at com.db4o.internal.FieldMetadata.activate(FieldMetadata.java:647)
at com.db4o.internal.handlers.StandardReferenceTypeHandler
$2.processAspect(StandardReferenceTypeHandler.java:93)
at
com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:
52)
at
com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:
24)
at
com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:
2083)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:
258)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler.activateAspects(StandardReferenceTypeHandler.java:
96)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler.activate(StandardReferenceTypeHandler.java:
119)
at com.db4o.internal.Handlers4.activate(Handlers4.java:304)
at
com.db4o.internal.ClassMetadata.instantiateFields(ClassMetadata.java:
1318)
at com.db4o.internal.ClassMetadata.activate(ClassMetadata.java:1252)
at com.db4o.internal.ClassMetadata.instantiate(ClassMetadata.java:
1210)
at
com.db4o.internal.marshall.UnmarshallingContext.read(UnmarshallingContext.java:
70)
at com.db4o.internal.ObjectReference.read(ObjectReference.java:304)
at
com.db4o.internal.ObjectReference.readForActivation(ObjectReference.java:
136)
at
com.db4o.internal.ObjectReference.activateInternal(ObjectReference.java:
132)
at
com.db4o.internal.ObjectContainerBase.processedByImmediateActivation(ObjectContainerBase.java:
1861)
at
com.db4o.internal.ObjectContainerBase.stillToActivate(ObjectContainerBase.java:
1837)
at com.db4o.internal.ObjectContainerBase
$2.apply(ObjectContainerBase.java:190)
at com.db4o.internal.ObjectContainerBase
$2.apply(ObjectContainerBase.java:188)
at
com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:
428)
at
com.db4o.internal.ObjectContainerBase.activate(ObjectContainerBase.java:
188)
at
com.db4o.internal.ObjectContainerBase.refreshInternal(ObjectContainerBase.java:
1438)
at
com.db4o.internal.ObjectContainerBase.refresh(ObjectContainerBase.java:
1433)
at
com.db4o.internal.ExternalObjectContainer.refresh(ExternalObjectContainer.java:
124)
at
jfix.db4o.engine.PersistenceEngineDb4o.query(PersistenceEngineDb4o.java:
77)
at
jfix.db4o.ObjectDatabase.populateObjectRepository(ObjectDatabase.java:
72)
at jfix.db4o.ObjectDatabase.open(ObjectDatabase.java:63)
at jfix.db4o.Database.open(Database.java:70)
... 9 more

Any suggestions?

Maik Jablonski

unread,
Mar 3, 2011, 12:17:19 PM3/3/11
to je...@googlegroups.com, Dymytry
Hi Dymytry,

> SEVERE: Exception sending context initialized event to listener
> instance of class jease.cmf.web.servlet.JeaseServletListener
> java.lang.RuntimeException: java.lang.IllegalArgumentException: array
> element type mismatch
>        at jfix.db4o.Database.open(Database.java:73)

I suspect that the problem arises because you did store a custom
content object (or property) in your old database and didn't deploy
the corresponding class in your new installation. Without the class
definitions the object database cannot resolve the appropriate
definitions for the storage structure, so you have to deploy all
classes... you can think of them as the table definitions in a
relational database.

Cheers, Maik

Dymytry

unread,
Mar 4, 2011, 3:18:37 AM3/4/11
to Jease - The Java CMS with Ease
Thats it!

Thanks.
Reply all
Reply to author
Forward
0 new messages