What is the current status of JavaHelp Java API? - java

While reviewing old Java project code, which relied on JavaHelp Java API to provide help functionality, it was unclear what the current status of this API is.
The Java Help API spec is defined as part of JSR-97.
The JavaHelp Wiki page seems to imply it was donated / opened sources to github as part of the Java EE JavaHelp project. However, this project has been archived.
There was licensing concern (i.e., it was GPLv2 with exception, relicenses to CDDL partly with some still being GPLv2 with exceptions) .
Most of the Java EE source has transitioned to the Eclipse / Jakarta EE project. But it's unclear if the JavaHelp functionality was picked up for further development under this umbrella.
There is some legacy JavaHelp documentation but this provides details on usage and points to communities and email addresses which are no longer applicable.
Similar stackoverflow question was asked previously which had some response but may be a bit dated.
Assume "Java Help" may no longer be of use or OBE, preferring instead to use some form of "web based" help content but not sure if this is 100% the case and the official transition expectations.
What is the status of Java Help given transitions and upgrades presently?
Is there still any value in the "Java Help" API?
What is the alternative to this?

Related

Jigsaw hot reload [duplicate]

I am looking for better HotSwapping in the JavaVM. Being able to only apply method body changes is okay but quite limiting.
The options available is JRebel and a discontinued project called Dynamic Code Evolution Virtual Machine (DCEVM).
There is a JEP 159 out there that was written by the core developper of DCEVM. A blog post from 2011 mentioned that the developers of DCEVM now work for Oracle to integrate this into the JDK.
Do we have this kind of support for JDK 8 beta already or was it postponed to JDK 9?
I need hot swapping for adding and removing and renaming private methods mostly. This would help alot. Is there a product allowing me to do so (beside JRebel which PR-campaigns got me upset).
The last supported version of DCEVM is for 1.6u24 and it only provides 32-bit linux binaries. Since I use 1.7 and 64bit Linux this is both a show stopper for me.
There is also another project available on github called Fakereplace. Can this be easily used for my purpose or should I not investigate into this?
There is a fork of DCEVM maintained in the repository on Github. It was recently updated for Java 8. The binaries are available through the GitHub releases or on the downloads page.
For simple things, like adding/removing methods, it should be pretty reliable (verified by automated tests in 16 different configurations). However, it still could eventually crash JVM, so it is by no means should be used in production.
JEPs coming in JDK 8 and JDK 9 are listed in this page. JEP-159 is not among them. From jep index you can see that JEP-159 is not yet targeted to any JDK release, not even jdk 10.
JEP-159 status is currently "Submitted". The process is described as follows:
A successful JEP passes through the following states:
Draft — In circulation by the author for initial review and consensus-building
Posted — Entered into the JEP Archive by the author for wider review
Submitted — Declared by the author to be ready for evaluation
Candidate — Accepted for inclusion in the Roadmap by the OpenJDK Lead
Funded — Judged by a Group or Area Lead to be fully funded
Completed — Finished and delivered
So it's not yet accepted for any roadmap.

What are the official resources for the Java EE APIs spec?

I know a few official sources like the java Java EE 6 tutorial.
But I was wondering, which one are the official sources for properly learning the spec of every API and any other resource related to the Java EE environment? Which resources ppl use to keep track of future versions without being actively participating of any container or spec development?
I hope this question is specific enough by suggesting only official links.
EDIT:
About https://java.net/projects/javaee-spec/pages/Home. It has a lot of links for several document versions and optional content. I wanted just one single resource for each API, a complete version. Let's take for example the annotated ECMAScript 5 spec (http://es5.github.io/).
Assuming the links are permanent it would be very nice to point out the complete documents for the APIs from Java EE 6.
Java EE 6 APIs are available at:
http://docs.oracle.com/javaee/6/api/
These can be downloaded from:
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-eedocs-419425.html#java_ee_6u1_docs-JPR
https://java.net/projects/javaee-spec/pages/Home
But not really sure why you couldn't google that.

Java API to query LDAP

I am looking to query LDAP server to retrieve all the user entries from it. I have come across some libraries
OpenLDAP
LDAP SDK
Mozilla Directory
Apache Directory API
My requirements would be to query all users in an LDAP implementation like AD Server, ease of programming and good community around the library. I don't find a clear winner here. Can someone tell me the widely used and robust API?
The best API to use with Java is the UnboundID LDAP SDK. It's clear, complete, fully implements the LDAP standard specification, easy-to-use and understand, fully documented, thread-safe where it should be, and the standard edition is free. No other API even comes close.
see also
LDAP Examples using the UnboundID LDAP SDK
Had to dive into Java LDAP SDK market, as some old LDAP JAVA programs with SDK bugs needed to be fixed and I had lost up-to-date overview of supported Java LDAP APIs for a while. A little research has brought me to several aged overviews and this rather old thread. I thought, I'd just share my more-up-to-date SDK findings here.
As of today, this is what the Java LDAP SDK market seems to offer:
jLDAP (Novell Java LDAP SDK),
OpenLDAP Java SDK (sibling fork of Novell LDAP SDK),
Netscape/Sun Java LDAP SDK,
OpenDS LDAP SDK: All 4 repositories seem practically dead/unmaintained for several years (some of them for a decade now) now. No backing companies or active communities in sight.
Oracle LDAP SDK: Basically the former Netscape/Sun Java SDK with paid Oracle support, but otherwise not maintained either. Does not even exist in the open source world.
OpenDJ Java LDAP SDK: The backing company has moved away from the open source market, no longer maintain this SDK. The most recent SDK version 3.0.0 is already several years old and never left beta stage, the latest official release version is even older: 2.6.11. The commercial version of the SDK is said to be practically abandonned either.
ldaptive.org: some university project. A former JNDI wrapper, but now claims to have an own LDAP SDK protocol implementation. There seem to be no community or users outside of the university perimeter. Not dead, but currently unclear, what quality state to expect here. If you'd ask me, this project would have done a lot better, to spend their time backing the Apache LDAP SDK project, as no one actually needs yet another look-mom-I-also-made-an LDAP-Client-SDK in an a saturated market full of other mostly mediocre JAVA LDAP SDKs.
Apache LDAP SDK: Compared to other Apache projects, the LDAP SDK shows really slow pace. Somehow Apache LDAP seems to miss a real company backing things, it's only talented hobby enthusiasts pusing things forward. You probably do not want to start any new projects with SDK V1.0, as they state that V2.0 breaks interface code. but you probably also do not want to use SDK V2.0 yet, as it's still beta and no one knows for how much longer it will stay beta (V1 stayed beta for 6 years...). The SDK is far from being dead, it's just showing really really slow progress.
Java JNDI: Built into Java since ages and has not changed since release. Still is really ugly for coding, documentation is a mess, every task beyond basic search is an implementation nightmare, basically every project fails to properly implement it, several things are broken by design. There seem to have been a few concept ideas of a JNDI-LDAP-successor for a future JDK, but nothing has ever followed so far.
Unbound SDK: Mature, best maintained SDK, has huge amount of features, though the backing company is still nurtured from venture capital, burning money. So far it does not look like they stand on their own feet any time soon. So the long term aspect of SDK backing support is unclear. A former party pooper for the SDK in commercial projects once was its GPL license. The open source version now seems to have a LGPL license as well (that may or may not fit a project).
Spring: seems like a stable LDAP SDK, plus has the large Spring community. But less feature-rich and no bleeding edge stuff. Personally no experience yet though with this SDK.
So right now, Java LDAP seem to have a reasonable choice of four: JNDI, Unbound, Spring, Apache, each with their pros and cons. And you probably will hate JNDI a lot, as soon as you start using it.
A good advice might be, to not rush into migration projects of old SDKs and to invest into the extra effort of implementing wrapper code, to be at all able to easily switch the SDK later when needed.
Check the Apache Directory Client API it is opensource and has an active community (full disclosure: I work on Apache Directory project) and most importantly Apache Directory Client supports all basic LDAP controls including password policy and syncrepl by default unlike some commercial versions which support these in a paid version only.
You can easily add new/custom controls and extended operations if needed and it is very easy to start an in-memory Directory Server with the help of the annotation driven test framework
Take a look at this example to see how you can leverage the API and test framework for unit testing.
And otoh, if you ever need a Kerberos v5 server in your unit test, it is just an annotation away.
We use the the UnboundID LDAP SDK. It is very good and there are many examples and good support.
Poor support and maintenance for the JLDAP and Mozilla Directory APIs is why we QUIT using them.
Like the https://wiki.mozilla.org/LDAP_Java_SDK does not exist.
The JLDP sdk has not been updated in YEARS. (2009 as I recall).
There is also open source lib from Imperva https://github.com/imperva/domain-directory-controller
There You can find a pretty good examples of queries.
I'm using https://www.ldaptive.org/ in production, so far I'm pleased it's like 'ORM'

Converting Java Services to .NET 4.0 Services (WCF )

We have to convert around 100+ services written in Java to .NET (C#) 4.0 . We are trying to estimate the efforts for this work. I am trying to find out if any tools are available for this conversion/ migration and any experiances of using these tools in real projects.
We need some pointer for evaluation of different possible ways of getting this job done.
Any converter tools or check lists for conversion of Java services to WCF services
With automation using the tools, how much of the codes gets converted ? Any stats like X % of the effort can be saved etc.
What will be the quality of code generated ? We are looking for .NET/C# 4.0 with WCF
Was the tool user friendly? How much learning curve?
If any experiances of doing the conversion manually , then please share any guidelines used for conversion and any tips for doing effort estimation.
I have googled to find out a list of conversion tools available. Please share any Experience of using any of the following Java to .NET/ C# Conversion
Java Language Conversion Assistant 2.0 -
Java Language Conversion Assistant is a tool that automatically converts existing Java-language code into Visual C#
Janett - Java to .Net Translator -
Janett translates Java syntax, constructs and calls to Java libraries to C# / .Net counterparts.
CSharpJavaMerger Framework -
Free and open source C# and Java conversion tool
Java 2 CSharp Translator for Eclipse -
That tool makes it possible to automatic translate Eclipse java projects into Visual Studio projects. Generated code can be directly compiled and executed whitout any user modification.
Tangible Softwaresolutions - Not a free one but looks to be useful.
Sharpen - A guide to Sharpen - a great tool for converting Java to C# ( http://www.pauldb.me/post/14916717048/a-guide-to-sharpen-a-great-tool-for-converting-java )
Of the Java to C# converters listed in the comprehensive summary above, several projects have not been actively maintained for several years.
Java Language Conversion Assistant was provided with Visual Studio 2003 and 2005 and has since then been discontinued
The latest release of Janett that I could find was from 2007.
CSharpJavaMerger Framework is a more recent project, but with limited documentation to support it.
Java 2 CSharp Translator for Eclipse was actively developed as late as 2011. Limited documentation to support it though, and requires integration with Eclipse.
The two most promising projects are thus probably Tangible Software Solutions' commercial Java to C# Converter and the open-source alternative Sharpen (originally developed by Versant). Both these products do a fairly good job at converting Java to C# code, but in either case you should expect to have to do substantial manual reviewing and correction of the converted code.
Sharpen needs to be plugged-in to Eclipse, and there is also some manual pre-configuration involved to get the conversion running. Configuration is described in more detail here. The easiest way to get started with Sharpen is to obtain a prebuilt Eclipse plug-in from the NGit Github repository. Sharpen has been proven to do quite impressive conversion work; it is for example used in converting JGit to NGit. A Sharpen "on steriods" is also used to convert the Android/Dalvik JVM source code into C# in the XobotOS project. Unfortunately, the XobotOS Sharpen version is not easily applicable to other conversion projects.
I have also tried the Tangible demo converter and it seems to do a fairly good conversion job as well. In particular I appreciated the easy-to-use GUI with good conversion reporting. Another advantage is that it can be run standalone, i.e. there is no Eclipse or other IDE dependency. The product is also actively maintained (most recent release in July 2012) and with a commercial product you should also expect to have at least some technical support.
Whatever your choice, though, you have to be prepared for substantial code review and correction. My recommendation is that you start off by testing both these products on a few of the services subject to conversion to get a rough estimate of whether (semi-) automated Java-to-C# conversion is really worth the effort and investment.

Java EE for a .NET developer

I have always been a .NET developer. I have created some Swing apps in the past and I handle the java language pretty well but I don't have much knowledge of Java EE or any other relevant technologies for entreprise application development.
1) What are the relevant technologies for entreprise development in java?
2) What are the best places online to learn them?
3) Is there any online repository of information for java like the MSDN Library?
4) Which development tools are recommended for this technologies?
Thanx
What are the relevant technologies for
entreprise development in java?
Servlets/JSP are the most important I'd say. It's part of the Java EE spec and the basis for 99% o the Java Web frameworks. The other is the Spring framework, which is almost a "must-have".
What are the best places online to
learn them?
Writing code, of course.
Is there any online repository of
information for java like the MSDN
Library?
There's the JDK 6 documentaiton and others.
Which development tools are
recommended for this technologies?
An IDE is the most important thing. There are basically three to choose from: Eclipse (free; most popular), IntelliJ IDEA (commercial; my personal favourite) and Netbeans (free).
I'm surprised no one mentioned this year, but the J2EE 5 API docs are separate from the JDK 6 API docs.
Your First Cup: An Introduction to the Java EE Platform may also be useful.
In addition to Cletus' answer, you'll want to take a look at Apache Commons, which is where to find the classes and methods you'll often want that were more or less left out of the core Java libraries.
For what it's worth, I'd start with Eclipse as my IDE, and change later. It's free, and by far the most common IDE for Java out there.

Categories