Groovy extension/Plugin with JDeveloper 11g - groovy

I'm using JDeveloper 11g as my IDE and specifically v11.1.1.7.0. For reasons beyond the scope of this thread, I'm unable to upgrade JDeveloper to a newer version.
Im trying to use the Spock framework in order to write groovy-based unit tests. Is there a way to enable groovy support in my version of Jdev? I would need to be able to create groovy-based files and have the IDE recognize them.

Related

Is IBM Maximo 7.6 businessobject jar compiled in Java 1.8 compatible to run in java 1.7?

I have got jar compiled in java 1.8 from maximo dir and on my machine i have java 1.7 installed do i need to update my machine java before i run this jar. I can not run it before knowing this since it will get recorded in some logs and will update some server side files.
This is more of a Java question than a Maximo question, but no, it will not. You will get an "Unsupported major.minor version 52.0" if you do. This is not because of any features issue, this is simply because the bytecode is tagged as being from Java 8 and so earlier JREs will not run it.
Now this assumes you actually compiled the class files using Java 8, which probably only happened if you have custom code in there. If you are just using the out-of-the-box Maximo classes, those came pre-compiled (in I don't recall which version of Java) and so all you might have done was to bundle them into a jar, or more likely into the Maximo ear (since you don't run the businessobjects.jar). In that case, it doesn't matter what version of Java you used to created the jar/ear, it will run on any version of Java that is the same as or higher than whatever version IBM used to compile the code into classes.

Setting up XPages Java development in a separate, modern Eclipse instance

I really miss the newer functions of a modern Eclipse implementation. Things like cool plugins such as Checkstyle, auto-javadoc, ease of JUnit testing.
I always did this whilst developing Notes Java Agents, and it was a great time saver.
I'm trying to do this with my new XPages project but I'm stumbling on how to include diverse OSGI libraries.
Can anyone help?
The quickest way to set up an Eclipse environment for XPages development is the XPages SDK. That should point to your Notes/Domino installations and create the Target Platform stuff for you. If you have additional libraries, you can either install them into Eclipse via the Help -> Install New Software option or add them to the Target Platform in Preferences -> Plug-in Development -> Target Platform.
There's a huge caveat, though: this sort of XPages development refers to library development specifically, not writing XPages applications. There isn't really currently a good way to do actual-XPages dev in Eclipse without losing tooling.
In addition to Jesse's answer: a colleague uses Eclipse only to develop in our XPages stuff - for the Java part only. We all use a local on-disk-version of the project that can be imported into Eclipse workspace. You then can use the editors and benefits of current Eclipse versions. Caveat also: you always have to refresh/sync the sources from your on-disk-project in DDE to test. Regarding JUnit tests: we also use them and doing even automated build-tests on a Jenskins server with that method

Is it possible to use Groovy with Spring Roo?

Is there a way to use Groovy in a Spring Roo project?
I'm using STS (Eclipse) and I'd like to be able to write some code in Groovy
and use Spock framework for unit testing.
But it seems, there are some problems with AspectJ and Groovy intergation.
Has anyone successfully used Roo and Groovy together?
Thanks.
Unfortunately you cannot mix those two languages in the same project.
When you installed Groovy-Eclipse you install a patched eclipse java compiler that is then able to build java and groovy code. When you install AspectJ you get an alternative compiler that can build java and AspectJ source (your Roo projects are AspectJ projects).
In a Roo project it will be using the AspectJ compiler and not the patched java compiler installed via Groovy-Eclipse, so it won't understand groovy code.
The proper solution is to patch AspectJ in the same way Groovy-Eclipse is done so AspectJ can build groovy+java+aspectj but we still haven't gotten around to that.
The easiest thing for you to do is split the tests into a separate Groovy test project that depends on the Roo project containing the main sources. That should work.

worklight adapters and Groovy

Has anyone had success implementing IBM Worklight 5.0.6 Adapters using the Groovy language? Ie. Instead of calling a Java class from the JS adapter call a Groovy class. We have tried this and it seems to work most of the time but randomly we will get strange errors when invoking an adapter procedure. Ie.
Failed to create DGM method proxy : java.lang.NoSuchMethodException: org.codehaus.groovy.runtime.dgm$24.<init>(java.lang.String, org.codehaus.groovy.reflection.CachedClass, java.lang.Class, [Ljava.lang.Class;)
FWLSE0101E: Caused by: java.lang.NoSuchMethodException: org.codehaus.groovy.runtime.dgm$24.<init>(java.lang.String, org.codehaus.groovy.reflection.CachedClass, java.lang.Class, [Ljava.lang.Class;)
Unit tests executing the Groovy code run fine within Eclipse and the Groovy code seems to be compiling fine down to .class files and included in the adapter package. We're wondering if this is an issue with Groovy itself or invoking Groovy within the Worklight server container. I believe Worklight is using Rhino behind the scenes which may also be a culprit?
We are using Groovy 2.1.5 and the Eclipse plugin 2.8
did you open the .war and check if all compiled classes and libraries are actually in there?
We had the case quite often that the WL Eclipse Plugin/Build did not compile and package our Java Classes for the Adapter in the "server" folder ... they were missing in the .war file that we deployed and we got all sorts of Rhino, ClassNotFound etc. errors.
In addition to previous answer. You can always force a rebuild by selecting the project in the Enterprise Explorer or Navigator views, then select menu Project -> Clean -> Clean Projects Selected Below (the only choice should be your project).
This will clean the binaries, then rebuild your entire project.

Can a groovy code be compiled to run in JRE?

I am new to groovy and I cannot understand, if it is possible to compile a groovy program, so it runs at all computers, were the JRE is installed.
The application I am developing has to run on any computer with JRE 1.5. Is it possible to start using groovy and maintain this flexibility? With JRE 1.6?
I have heard about the library groovy-all-VERSION.jar. Is this the one required library to be shipped with my application?
The answer is yes. In fact, all groovy code compiles down to Java classes that run on the JRE. All you need is JRE 1.4 or higher and the groovy-all-*.jar on the classpath of your application.
Since you are looking to support JRE 1.5 or higher, make sure your source compatibility is set on your compiler to this level.
There are a few options for compiling your groovy code. Groovyc (Ant Task), GMaven (Maven) and Gradle are all options.
Another option you have is to 'not' compile your groovy code. The groovy distribution only requires the JRE to be installed. You can ship your application as a set of scripts that can simply be run using the groovy install. It depends on how sensitive your source code is.
The short answer is yes. How you do this depends on your build system. I do all my development in eclipse, right click my project, select export, select runnable jar file, and all the required librarys are exported in the jar file. I can then run this file on a machine with out Groovy installed. I know build systems like Maven support Groovy but don't know the details on how they do it or how good there support is. According to this question Java 1.4 or above is fine. When looking at the "Setting up your Java environment" section of the initial tutorial it looks like you need Java 1.5 installed.

Resources