Hi Ivan,

JPAFacet depends on having a PersistenceCommonDescriptor (https://github.com/forge/core/blob/master/javaee/api/src/main/java/org/jboss/forge/addon/javaee/jpa/JPAFacet.java#L27), so I guess that extending JPAFacet is not a good idea in this case. Is it a problem if the persistence.xml is created for a Spring Boot project?

Otherwise, I'd suggest you to create the SpringBootJPAFacet without reusing the JavaEE ones (and create a "Spring Boot: JPA Setup"), as they really don't follow JavaEE in this context beyond the JPA JARs.

Best Regards,

George Gastaldi

On 07/26/2015 05:52 PM, Ivan St. Ivanov wrote:
Hi folks,

As some of you probably heard, in Bulgarian JUG we are going to adopt an addon (as George put it a couple of months ago). Beginning of August we are going to develop a Forge extension for Spring Boot. One of the things that we are not sure yet how to tackle is persistence.

You see, Spring supports JPA. However instead of configuring it in the Java EE way with persistence.xml, in Spring Boot they use a properties file for that (and for all their configuration). The current JPA facet implementations however are developed with presistence.xml in mind. The JPA setup wizard itself is also bound somehow to presistence.xml - it picks the facet to install based on that file.

What we want to do is not to rewrite all the Forge commands for JPA just because of the fact above. We were thinking of a small change - extend JPAFacet with SpringBootJPAFacet. And then add a new implementation of PersistenceContainer -> SpringBootContainer or something? And then we have to change JPASetupWizardImpl to pick the facet not only based on the JPA version, but also based on the container. 

Or maybe there is a better way?

I am expecting your feedback :)


forge-dev mailing list