What do all this different versions tell me? - java

I'm still starting with Spring and I'm asking myself what are all this different hashtags before the version
https://spring.io/projects/spring-hateoas#learn
(GA, Snapshot, PRE..)
Should I always use the current version or how can I understand this?

Your best bet is to use the latest GA which means general availability. Its the latest stable release
PRE is a release candidate. You can look at it as a beta version that is done before a GA so its not stable and might contain breaking changes
SNAPSHOT is the version under development. Do not use this version because it will not be stable and it will change continuously

Related

Where can I find Google App Engine API for Java release notes

I'm running an old version of appengine-api-1.0-sdk (1.9.54) and want to upgrade to a newer version (1.9.90), but I can't find any list of changes from one version to the next. I would have expected a release note or something in the download, but it just points me to a general Java page for Appengine: https://cloud.google.com/appengine/docs/java/release-notes. This doesn't tell me what has changed from one version of the SDK to the next.
Thanks
Tim
You can use BigQuery to select different points between 2 versions
https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=google_cloud_release_notes&t=release_notes&page=table&_ga=2.107183563.811335336.1632571946-1193389554.1631929347

What means the "M5" or "M6" in Maven Version exactly?

I would like to use a Java library (SpringBoot) in latest version (2.0.0.M6), but I prefer to use only releases. So what means this "M6" in the library version? Is it a pre-release?
Thanks!
It is a Milestone release. The version includes some set of functionality that were released as soon as that set of functionality was complete.
In some organizations, this is considered pre-alpha software, where an alpha release is the first phase to start white-box, and possibly black-box or grey-box testing techniques.
Since these milestones have a number associated with it, this is the sixth milestone. What that means is entirely dependent on the project, and its development / release plan.
For spring-boot specifically, they targeted the completion of these issues to state that they had "achieved" 2.0.0, Milestone 6.
https://github.com/spring-projects/spring-boot/milestone/92?closed=1
In any case, this is pre-release software.

What is springboot versioning convention?

Can anybody please explain what is the meaning of PRE, SNAPSHOTS, GA and Current for spring-boot versions?
Below is a screenshot of versions shown on spring-boot website.
Also, latest version contains M3 appended in end just before PRE.
Please help!
GA
GA as in general availability are versions that have been released to the public. A version that has had this status for once will never change its contents.
CURRENT
The most recent GA release that should usually be used for all new projects.
PRE
pre release versions will also not change but are only released to let developers test the features of an upcoming GA release. They might contain some bugs that will be fixed in a later pre release of the same version (i.e. bugs in 2.0.0 M1 will probably be fixed in 2.0.0 M2). M is short for milestone.
SNAPSHOT
Same as PRE but this version is usually built every night to include the most recent changes. See this question on more about snapshots. Might also contain bugs.
Version life cycle
The usual life cycle of a single version would be as follows on the example of version 1.0.0:
1.0.0 SNAPSHOT those releases are built every day, replacing earlier snapshots of the same version
1.0.0 M1 once a development milestone was reached a single build is made that is called M#. For the next milestone # is increased by one. Milestones are never overwritten. Snapshots are continued to be made every day.
1.0.0 GA once the last milestone was released and the latest snapshot is feature complete and all known bugs are fixed the general availability release is made. From there on no other Releases of the same version are made, i.e. no more snapshots or milestones.
If bugs are found in a GA release the last version number is increased by one (i.e. 1.0.0 to 1.0.1 and a new release cycle is being started).

Sonar where to check for the Documented Api configuration

After upgrading Sonar to a newer version (5.6.1), we had our Public Api Documentation measure crash down to 40%
Looking on Sonar website, I found that there is a configuration key that define if the Getters & Setters are counted in the documentated Api : "sonar.squid.analyse.property.accessors"
http://docs.sonarqube.org/display/SONARQUBE50/Metrics+-+Public+API
But I cannot find where to check or update it from the Sonar Interface.
So if anyone can shed some light ?
First, the documentation you reference is the archived docs for an old version, 5.0, and not necessarily relevant to the version you're using.
Second, I'll bet that when you upgraded the platform, you upgraded the Java plugin too. 5.6.1 shipped with Java Plugin version 3.13.1, but you appear to be using version 4.0 or beyond. It was in 4.0 that the plugin stopped paying attention to accessors and removed the sonar.squid.analyse.property.accessors property: SONARJAVA-398
So yes, when it stopped paying attention to accessors, that would have changed your Undocumented API numbers.
Ok after bothering the sonar people through Jira and google group, they have aknowledged the issue and created a ticket.
https://jira.sonarsource.com/browse/SONARJAVA-1857
Have to wait 4.3 of the java plugin though.

Should I upgrade / migrate Hibernate 2.5 to Hibernate 3.0 or directly to the newest stable release?

I have got an application which uses Java SE 5 and Hibernate 2.5. I have to upgrade / migrate it to Java 6 and a newer version of Hibernate. What is the best strategy?
Should I directly upgrade to the newest stable release (at the moment: 3.6), or does it make more sense to just upgrade to 3.0?
Is it a lot of effort to do such a migration?
I have no experience with Hibernate yet, but I already used Toplink JPA 1.0 in projects.
Can you give me some hints? Thank you...
Best regards,
Kai Wähner
Depends. If you'll use Java EE, then don't bother with Hibernate versions and focus on JPA 2.0. Hibernate will be just the implementation for the JPA. In case you really need some Hibernate specific feature, then check what's its version based on your AS implementation.
If you are not using Java EE, then I would go with Hibernate 3.6 if I'm planning to deploy my app in some months, or I would use 3.5 if I plan to deploy the app to production sometime next week.
The basic idea is: use the latest GA at the time you put something in production. This way, you ensure that you'll have a "supportable" version for a long time.
It's also worth mentioning that the Community versions are not always supported by the vendor. In this case, you won't get a support contract from Red Hat for Hibernate 3.5 or 3.6. If you need support, then you'll have to chose whatever versions they officially support.
I say go for the latest stable release as it will contain further improvements/bugfixes and give you more benefit overall. There have many changes since 2.5 so the migration will not be trivial, but later on, when you upgrade to subsequent versions, the migration steps will be smaller and easier.
Take a look at the migration guides to help you.
What is the best strategy?
It depends, if you have to maintain a lot of projects. Only do updates if you're working on a project. In other words it it isn't broken don't fix it. If you are still developing and you face problems in libraries then check more current versions which could have the bug already fixed.

Categories