Tom,
I think you should take a look at JpaProject.Updater and the 
Synchronous and Asynchronous implementations.  For UI development 
we are using the Asynchronous updater, but since you are doing 
internal modifications I believe you are going to want the 
synchronous updater so that when you make context model changes 
the project is updated before you continue making changes.
Also, the code I gave you looks at PersistenceUnit.classRefs() 
which includes both specifiedClassRefs (those listed directly in 
the persistence.xml) and impliedClassRefs (those not listed, but 
that are defaulted in based on your JpaProject 'discovers 
annotated classes' setting). This is a pardigm we've have followed 
throughout our context model.  I would imagine the problem is 
because the project Update thread is not completed yet.  The 
update will run, updating our context model from the underlying 
resources and settings defaults based on other settings in the 
model.  Any change that occurs will cause another run of the 
update job to be queued up (actually, it will run again once it is 
finished based on whether any changes have occurred, not for every 
change that occurs).  So, if you used the synchronous project 
updater, you will not have to worry about there being a separate 
update thread. In our tests we use the synchronous project updater.
I believe this will also solve some of the bugs you have just 
entered this afternoon.
Hope this helps!
Karen
Tom Mutdosch wrote:
Hi Karen,
I tried the getEntities() code snippet that you had sent me, and 
it works mostly but does not do exactly what I expected.  That 
seems to only retrieve entities that are listed directly in the 
persistence.xml file, and not annotated Java entities that aren't 
explicitly listed.  We actually discovered this due to an 
apparent timing bug where immediately after the Generate Entities 
wizard was run we called our getEntities() method and it was not 
returning the new entity classes.  (Aside:  it looks like there's 
a separate timing issue here where the entities were not yet 
updated in the persistence.xml; Is the synchronizeClasses run as 
a separate Job after GenerateEntities?)
In any case, is there a way to do a similar getEntities() call 
that gets entities from the Dali model whether they are listed in 
the persistence.xml or not?  It looks like calling 
jpaProject.annotatedClasses() returns all of the entities as 
ITypes, so it seems they are stored in the model somehow - I'm 
just not sure how to appropriately get all of the PersistentTypes.
Thanks
Tom
Karen Moore wrote:
I agree, the code to get a list of entities is a bit convoluted 
and difficult to find.  We've had other adopters ask us for this 
as well, so documentation on the existing API or helper API is 
the way to go.  Thanks for your feedback!
Karen
Tom Mutdosch wrote:
Hi Karen,
Thanks for the details; I definitely understand all the 
complexities in providing various API to suit every possible 
need.  I have no problem writing a getEntities() method 
myself.  The main reason I suggested it was that it wasn't 
totally obvious how to do that using the existing APIs.  I 
figured others might have the same difficulties, so a new API 
call could address that.  But having documentation or examples 
of how to do some of these common operations would probably 
help achieve the same effect, so maybe it's not a big deal.
Regarding saving the OrmXML and PersistenceXML models, thanks 
for the code snippets - that's what I was looking for.  I 
opened an enhancement request with my particular usecase: 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=223197
Thanks again,
Tom
_______________________________________________
dali-dev mailing list
dali-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dali-dev
_______________________________________________
dali-dev mailing list
dali-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dali-dev
_______________________________________________
dali-dev mailing list
dali-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dali-dev
_______________________________________________
dali-dev mailing list
dali-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dali-dev