[hibernate-dev] improved Eclipse project support
Steve Ebersole
steve at hibernate.org
Tue Apr 16 19:34:28 EDT 2013
I think it would be great if you wanted to try including this in the ORM
build. Worst case you could just use the sniffer ant tasks from Gradle.
On 04/16/2013 09:44 AM, Gunnar Morling wrote:
> 2013/4/16 Steve Ebersole <steven.ebersole at gmail.com
> <mailto:steven.ebersole at gmail.com>>
>
> What is "configured JDK baseline"? Do you have to point to a JDK
> path? If so, no difference than just setting the javac bootstrap
> option to a local path.
>
>
> No, you don't point to another JDK path, you use the JDK you are on,
> i.e. Java 7. You just say which JDK version you want to target, e.g.
> 1.6. In the HV case, the config is this:
>
> <plugin>
> <groupId>org.codehaus.mojo</groupId>
> <artifactId>animal-sniffer-maven-plugin</artifactId>
> <version>1.9</version>
> <configuration>
> <signature>
> <groupId>org.codehaus.mojo.signature</groupId>
> <artifactId>java16</artifactId>
> <version>1.0</version>
> </signature>
> </configuration>
> </plugin>
>
> The referenced signature artifact contains the API signature for that
> JDK version, i.e. all Java 1.6 methods, public fields etc. If your
> code uses a method which is not part of that API signature, the
> plug-in will fail the build.
>
> That is, you still use the Java 7 API to compile against, but the
> plug-in makes sure you use only those parts of the API which where
> there already as of Java 6. So this emulates building against Java 6,
> but without the hassle of handling several actual JDKs, setting up the
> boot classpath etc.
>
>
>
> On Tue 16 Apr 2013 08:38:37 AM CDT, Gunnar Morling wrote:
>
> In HV, we use the Animal Sniffer plug-in [1] for that purpose.
>
> This checks the code base against a configured JDK baseline
> and fails
> the build, when e.g. using a method which is not part of the
> targeted
> JDK release. In other words, you still use your current JDK for
> building (avoiding any bootstrap path fiddling) but make sure you
> invoke only those parts of the API which are also available in the
> targeted Java version.
>
> Together with the source/target level correctly set, this
> allows to
> safely compile with newer JDK versions and still be sure that
> the code
> e.g. runs on 6.
>
> We use the Maven plug-in, but via the Ant task, this should
> also be
> usable for Gradle builds. If you like me to, I can give this a
> try for
> ORM.
>
> --Gunnar
>
> [1] http://mojo.codehaus.org/animal-sniffer/index.html
>
>
> 2013/4/16 Steve Ebersole <steven.ebersole at gmail.com
> <mailto:steven.ebersole at gmail.com>
> <mailto:steven.ebersole at gmail.com
> <mailto:steven.ebersole at gmail.com>>>
>
>
> Mainly thats an issue with that fact that so far we have not
> defined 'bootstrap class path' option to javac to go along
> with
> the source/target compatibility settings. The difficulty
> is that
> defining bootstrap for javac becomes very system specific (it
> needs to name a path). Sure we could externalize that into a
> setting, but then what do you do when someone wants to build
> Hibernate but has not defined this setting? Do you let
> the build
> continue (aka, make the bootstrap setting optional)?
>
> Bottom line, just setting source/target compatibility is
> never enough.
>
>
> On Tue 16 Apr 2013 03:44:29 AM CDT, Gunnar Morling wrote:
>
> On a related note:
>
> I know Java 7 is required to compile ORM, but is Java
> 7 also the
> required runtime Java version now (I vaguely remember
> a related
> discussion around the JPA API JAR)?
>
> I'm asking, because the Java 7 method
> Collections#emptyIterator() is
> used at two places, making this code not runnable on
> Java 6. If
> requiring 7 is intentional, feel free to ignore this
> mail ;)
>
> --Gunnar
>
>
>
> 2013/4/16 Gunnar Morling <gunnar at hibernate.org
> <mailto:gunnar at hibernate.org>
> <mailto:gunnar at hibernate.org
> <mailto:gunnar at hibernate.org>>
> <mailto:gunnar at hibernate.org
> <mailto:gunnar at hibernate.org> <mailto:gunnar at hibernate.org
> <mailto:gunnar at hibernate.org>>>>
>
>
> 2013/4/15 Steve Ebersole
> <steven.ebersole at gmail.com <mailto:steven.ebersole at gmail.com>
> <mailto:steven.ebersole at gmail.com
> <mailto:steven.ebersole at gmail.com>>
> <mailto:steven.ebersole at gmail.
> <mailto:steven.ebersole at gmail.>__com
>
> <mailto:steven.ebersole at gmail.com
> <mailto:steven.ebersole at gmail.com>>>>
>
>
> I am not touching this :)
>
> I think I have explained this 198,052 times
> thus far lol
>
>
> I must have missed this then. Or I was not yet
> part of the
> team at
> that time.
>
>
> https://community.jboss.org/____wiki/GradleWhy
> <https://community.jboss.org/__wiki/GradleWhy>
>
>
> <https://community.jboss.org/__wiki/GradleWhy
> <https://community.jboss.org/wiki/GradleWhy>> see #4
>
>
> Thanks for the link.
>
> I get the reasoning about Maven's "one artifact"
> rule and
> the need
> for re-usable test code. But now that we use Gradle,
> wouldn't it
> be possible to move the things from
> hibernate-testng back to
> hibernate-core and built two JARs with the different
> contents from
> there? To me, a circular dependency between two
> modules always
> seems a bit suspicious, also if it is doable with
> Gradle,
> turning
> off warnings in the IDE etc.
>
> Btw. also Maven supports this particular use case of
> creating a
> main JAR and a JAR with re-usable test
> infrastructure [1].
> We e.g.
> make use of this in HV.
>
> --Gunnar
>
> [1]
> http://maven.apache.org/__plugins/maven-jar-plugin/test-__jar-mojo.html
>
>
>
> <http://maven.apache.org/plugins/maven-jar-plugin/test-jar-mojo.html>
>
>
> On Mon 15 Apr 2013 04:10:43 PM CDT, Gunnar
> Morling wrote:
>
> Hi Brett,
>
> That's good news, thanks for your efforts.
> Based
> on step 3
> from your blog
> post it seems as there still is a circular
> dependency
> between some of the
> modules/projects. Just out of interest,
> could you give
> some more details
> why this kind of setup is required?
>
> --Gunnar
>
>
>
> 2013/4/15 Brett Meyer <brmeyer at redhat.com
> <mailto:brmeyer at redhat.com>
> <mailto:brmeyer at redhat.com <mailto:brmeyer at redhat.com>>
> <mailto:brmeyer at redhat.com
> <mailto:brmeyer at redhat.com>
>
> <mailto:brmeyer at redhat.com <mailto:brmeyer at redhat.com>>>>
>
>
> There's been several complaints about
> ORM's use of
> Gradle not generating
> Eclipse projects correctly. This was
> recently
> cleaned
> up in HHH-7617 [1].
> FYI, there's a quick blog post [2]
> about how to
> quickly get
> up-and-running. Please let me know if
> there
> are any
> further ways we could
> streamline the IDE setup.
>
> [1]
> https://hibernate.atlassian.____net/browse/HHH-7617
>
>
> <https://hibernate.atlassian.__net/browse/HHH-7617
> <https://hibernate.atlassian.net/browse/HHH-7617>>
> [2]
> http://in.relation.to/____Bloggers/____ImprovedEclipseProjectSupportF____orHibernateORMDevelopment
>
> <http://in.relation.to/__Bloggers/__ImprovedEclipseProjectSupportF__orHibernateORMDevelopment>
>
>
>
>
>
> <http://in.relation.to/__Bloggers/__ImprovedEclipseProjectSupportF__orHibernateORMDevelopment
>
> <http://in.relation.to/Bloggers/ImprovedEclipseProjectSupportForHibernateORMDevelopment>>
>
> Brett Meyer
> Red Hat Software Engineer, Hibernate
>
> ___________________________________________________
>
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> <mailto:hibernate-dev at lists.jboss.org>
> <mailto:hibernate-dev at lists.jboss.org
> <mailto:hibernate-dev at lists.jboss.org>>
> <mailto:hibernate-dev at lists.
> <mailto:hibernate-dev at lists.>__jboss.org <http://jboss.org>
> <mailto:hibernate-dev at lists.jboss.org
> <mailto:hibernate-dev at lists.jboss.org>>>
> https://lists.jboss.org/____mailman/listinfo/hibernate-dev
> <https://lists.jboss.org/__mailman/listinfo/hibernate-dev>
>
> <https://lists.jboss.org/__mailman/listinfo/hibernate-dev
>
> <https://lists.jboss.org/mailman/listinfo/hibernate-dev>__>
>
>
> ___________________________________________________
>
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> <mailto:hibernate-dev at lists.jboss.org>
> <mailto:hibernate-dev at lists.jboss.org
> <mailto:hibernate-dev at lists.jboss.org>>
> <mailto:hibernate-dev at lists.
> <mailto:hibernate-dev at lists.>__jboss.org <http://jboss.org>
> <mailto:hibernate-dev at lists.jboss.org
> <mailto:hibernate-dev at lists.jboss.org>>>
> https://lists.jboss.org/____mailman/listinfo/hibernate-dev
> <https://lists.jboss.org/__mailman/listinfo/hibernate-dev>
>
> <https://lists.jboss.org/__mailman/listinfo/hibernate-dev
>
> <https://lists.jboss.org/mailman/listinfo/hibernate-dev>__>
>
>
>
>
>
More information about the hibernate-dev
mailing list