LiquiBase EJB Integration

Compatible with  IntelliJ IDEA
8 256
LiquiBase EJB Integration Plug-in for IntelliJ IDEA. Compares LiquiBase Database ChangeLog with EJB entity model providing inspections and intentions adding to ChangeLog.

Source available at

Examples include:
* Add a new entity -> inspection to add liquibase addTable
* Add a new entity field -> inspection to add liquibase addColumn
* Change type of field -> inspection to add liquibase modifyColumn
* Rename field -> dialog to add liquibase renameColumn.

Other features:
* Liquibase EJB facet to configure and create changelog file.
* Context sensentive completion of table and column names within a changelog file.
* Tool window with schema as would be created by liquibase changelog as well as EJB model.

Download plugin

Recent change notes

=== 1.03
* IDEA 11 === 1.02
* IDEA 10 === 1.01
* Fix for IDEA hanging on startup
=== 1.0
* IDEA 8.1 Version
=== 0.100
* [LBEJB-72] - Wrong naming of @ManyToMany columns when they start with entity names
* [LBEJB-73] - TIMESTAMP is used wrongly instead of DATETIME

=== 0.99
New Feature

* [LBEJB-2] - @Inheritance support
* [LBEJB-32] - @PrimaryKeyJoinColumn support
* [LBEJB-34] - @DiscriminatorValue,@DiscriminatorColumn support
* [LBEJB-44] - @MapKey support
=== 0.98
New Feature

* [LBEJB-26] - @AssociationOverride support
* [LBEJB-29] - @IdClass support
* [LBEJB-68] - Entity name support
=== 0.97

* [LBEJB-65] - byte[] suggests null as column type
* [LBEJB-66] - if @Column annotation is used on a field, the plugin recognize it as VARCHAR(255) no matter what other annotations or parameters in @Column says
* [LBEJB-70] - For long Strings CBLOB is used. Should be CLOB.


* [LBEJB-58] - Merge handling of join columns for all relationship attributes

New Feature

* [LBEJB-24] - @JoinColumn support
* [LBEJB-25] - @JoinTable support
* [LBEJB-28] - Multicolumn foreign key support
* [LBEJB-69] - columnDefinition support
=== 0.96

* [LBEJB-18] - Creating table with fields having multiple primary key fields adds one pkconstraint per column
* [LBEJB-45] - Does not recognize column type changes in renameColumn tags in liquibase.xml
* [LBEJB-46] - Stacktrace in checkClass
* [LBEJB-49] - @ManyToOne columns in embedded keys get marked as autoincrement if target fields are
* [LBEJB-50] - AIOOBE when renaming "other side" attribute
* [LBEJB-51] - "Create foreign key" uses invalid column name
* [LBEJB-52] - Foreign key column gets "autoIncrement" attribute set in liquibase.xml
* [LBEJB-53] - *ToOne to fields with id field in superclass does not work
* [LBEJB-57] - Nullpointer in ColumnInspection
* [LBEJB-61] - @Lob gives TEXT type instead of BLOB
* [LBEJB-62] - renameColumn tags are missing columnDataType
* [LBEJB-64] - IndexOutOfBoundsException in AnyToOneModel


* [LBEJB-63] - Use liquibase "generic" data types instead of f.i. TEXT

=== 0.95
* [LBEJB-23] - Refactoring: Extract subclasses of class and member models
* [LBEJB-36] - QuickFix becomes add unique constraint when it should be drop
* [LBEJB-37] - Modify column type does not mention column name
* [LBEJB-38] - renameColumn may cause ArrayIndexOutOfBoundsException
* [LBEJB-39] - Race when applying quickfix, sometimes same fix appears again

* [LBEJB-40] - Use addUniqueConstraint instead of using constraints tag when creating columns

New Feature
* [LBEJB-22] - Class rename listener should use new databasemodel
* [LBEJB-27] - @Table support
* [LBEJB-30] - @SecondaryTable support
* [LBEJB-31] - @Version support
* [LBEJB-33] - @TableGenerator support
* [LBEJB-43] - optional support in @Basic
* [LBEJB-42] - @Basic support

=== 0.94

* [LBEJB-16] - Add index without name causes exception
* [LBEJB-17] - liquibase.xml in output directories are detected as facet
* [LBEJB-19] - Ids generated are sometimes not unique

New Feature

* [LBEJB-3] - Support for @AttributeOverride and @AttributeOverrides
* [LBEJB-4] - @OneToMany without mappedBy
* [LBEJB-5] - @ManyToMany support
* [LBEJB-20] - EJB model view
* [LBEJB-21] - @Column name support

=== 0.93
* Fixed bug with @OneToOne/@OneToMany and mappedBy
=== 0.92
* Null checks

General usage instructions

Works for any module with JPA facet.

To add liquibase support to project: Add Liquibase Facet and click "Create.." in settings to create a new changelog file.

If you have a changelog file in your project, the Liquibase EJB Facet will be autodetected.

Source code is at git://

It doesn't work currently because you can't select a ChangeLog descriptor... 12:43:32 PM NoSuchMethodError: com.intellij.openapi.fileChooser.FileChooserFactory.createFileChooser(Lcom/intellij/openapi/fileChooser/FileChooserDescriptor;Lcom/intellij/openapi/project/Project;)Lcom/intellij/openapi/fileChooser/FileChooserDialog;
I use IDEA Maia IU-93.83 and upon startup the LiquiBase plugin causes the IDE to hang, displaying the following error message:

"Fatal error initializing class com.intellij.util.xml.impl.DomApplicationComponent: java.lang.UnsuportedClassVersionError: Bad version number in .class file
Complete error stacktrace was written to idea.log"

Here is the stacktrace:

2010-01-21 21:05:23,901 [ 4722] ERROR - ij.components.ComponentManager - Bad version number in .class file [Plugin: com.esn.idea.liquibaseejb]
com.intellij.diagnostic.PluginException: Bad version number in .class file [Plugin: com.esn.idea.liquibaseejb]
at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.a(
at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.a(
at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.access$100(
at com.intellij.openapi.components.impl.ComponentManagerImpl.a(
at com.intellij.openapi.components.impl.ComponentManagerImpl.initComponents(
at com.intellij.openapi.components.impl.stores.ApplicationStoreImpl.load(
at com.intellij.openapi.application.impl.ApplicationImpl.load(
at com.intellij.idea.MainImpl$
at java.awt.event.InvocationEvent.dispatch(
at java.awt.EventQueue.dispatchEvent(
at com.intellij.ide.IdeEventQueue.f(
at com.intellij.ide.IdeEventQueue.b(
at com.intellij.ide.IdeEventQueue.dispatchEvent(
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(
at java.awt.EventDispatchThread.pumpEventsForHierarchy(
at java.awt.EventDispatchThread.pumpEvents(
at java.awt.EventDispatchThread.pumpEvents(
Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(
at java.lang.ClassLoader.defineClass(
at com.intellij.util.lang.UrlClassLoader._defineClass(
at com.intellij.util.lang.UrlClassLoader.defineClass(
at com.intellij.util.lang.UrlClassLoader._findClass(
at java.lang.ClassLoader.loadClass(
at java.lang.ClassLoader.loadClassInternal(
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(
at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentsRegistry.a(
... 18 more
Startup hang fixed in 1.01
makes my idea 8.0 and 8.1 hang at startup :(
To upgrade from 0.93 and lower, you need to uninstall and install again. This is due to change of id of plugin
Due to change of plugin-id, to upgrade from
Please  sign in  to leave a comment.