Re: [mdr-users] Using transient storage
Steffen Zschaler <[email protected]> Mon, 13 Mar 2006 12:31:08 +0100
| Newsgroups | gmane.comp.java.netbeans.modules.mdr.user |
|---|---|
| Message-ID | <[email protected]> |
Hi,
Why do you need to throw away the complete repository? Shouldn't it be
enough to delete the extents? This way you could reuse any generated JMI
stuff etc.
Ciao,
Steffen
Frank Finger wrote:
> 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
--
Dipl.-Inf. Steffen Zschaler
Research Assistant
Technische Universität Dresden
Department of Computer Science
Phone +49 351 463 38555
Fax +49 351 463 38459
Email [email protected]
WWW http://www.steffen-zschaler.de.vu/