[mdr-users] Using transient storage
Frank Finger <[email protected]> Mon, 13 Mar 2006 10:34:30 +0100
| Newsgroups | gmane.comp.java.netbeans.modules.mdr.user |
|---|---|
| Message-ID | <[email protected]> |
I'm using Netbeans MDR to transform a proprietary model format to UML
XMI (standalone). In every run of the transformation, I want to build
the model from scratch, export it, and throw the repository away
afterwards. That's why I thought that ...memoryimpl.StorageFactoryImpl
would be the storage implementation to use.
A single export works fine, but when exporting twice I run into
exceptions. The same exceptions can be produced by the piece of source
code below.
From a quick look at ...mdr.persistence.memoryimpl.StorageImpl, I
thought that not assigning STORAGE_ID values would lead to independent
repositories.
public static void main( String[] args ) throws Exception
{
Map properties = new HashMap();
properties.put(
"storage",
"org.netbeans.mdr.persistence.memoryimpl.StorageFactoryImpl"
);
// I'm not setting the STORAGE_ID.
// properties.put( StorageFactoryImpl.STORAGE_ID, ... );
MDRepository firstRepository = new NBMDRepositoryImpl( properties );
System.out.println(
"firstRepository extents: "+
Arrays.asList( firstRepository.getExtentNames() )
);
MDRepository secondRepository = new NBMDRepositoryImpl( properties );
// following line throws exception:
System.out.println(
"secondRepository extents: "+
Arrays.asList( secondRepository.getExtentNames() )
);
}
The stack trace of the exception is:
org.netbeans.mdr.util.DebugException: Missing storage files or different
storage version.
at ...storagemodel.MdrStorage.initializeIndexes(MdrStorage.java:507)
at ...storagemodel.MdrStorage.rollback(MdrStorage.java:554)
at ...util.TransactionMutex.end(TransactionMutex.java:73)
at ...util.MultipleReadersMutex.leave(MultipleReadersMutex.java:173)
at ...NBMDRepositoryImpl.endTrans(NBMDRepositoryImpl.java:249)
at ...NBMDRepositoryImpl.boot(NBMDRepositoryImpl.java:1331)
at ...NBMDRepositoryImpl.initCheck(NBMDRepositoryImpl.java:758)
at ...NBMDRepositoryImpl.getExtentNames(NBMDRepositoryImpl.java:347)
at Main.main(Main.java:58) /* ="secondRepository.getExtentNames()" */
Can anybody tell me what I'm doing wrong?
Thanks in advance,
Frank