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

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

Related

Liferay IDE Alternatives

I am using Liferay Developer Studio for theme development and as a frontend developer, I am not impress with the tool's performance.
Below are few reasons I am looking for alternative IDE, compatible for Liferay development.
It occupies more than 75% of the memory
It slower down the whole system
I cannot use chat application while running IDE as to switch from one app to another takes irrelevant time
I use to build theme through CLI. Sometime I need to close the IDE or else it gives runtime error and doesn't build the theme.
I am sure there are many others too faced same issues, which actually makes the development slower. This question is not against the Liferay of course, it's a great enterprise level CMS tool. But yes looking for alternate IDE with best compatibility for the purpose.
Thanks in advance.
You can use Gulp and Yo to generate, build and deploy your theme or layout , and you can use Notepad ++ as editor.
Please refere to those links :
1 - LIFERAY theme generator
2 - Gulp Tasks
You can use any IDE you want. The only one difference between LiferayIDE and others IDEs is you can avoid using BladeCLI by hands.
And nothing can stop you to use another IDE, build you project with maven or gradle and then continue to develop.
If you are a front-end developer you really should use Gulp and Yo. First time you'll feel yourself confused a bit, but after short period of time you'll understand all benefits.

JavaFX - can it really be deployed in a browser? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I have done some research on JavaFX over the last year, and even built some basic desktop apps with it.
It's described as being used to create RIAs (Rich Internet Application).
http://en.wikipedia.org/wiki/Javafx
But can it really be deployed by a web browser? I have only deployed it via an executable JAR file.
How easy is it to deploy via web browser? Does it work? Does anyone have experience with this?
http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm
Update for the March 2018 Java Client Roadmap
I encourage readers interested in this question to review the following Oracle Whitepaper:
Java Client Roadmap Update
The above paper outlines the official Oracle position on related technologies (JavaFX/Swing/AWT/Applets/WebStart), the dates until which it intends to support those technologies and which of those technologies it intends to transition to open source development projects separate from the JDK and JRE.
Update for Java 9, Oct 2017
According to the Java 9 release notes:
Java Applet and WebStart functionality, including the Applet API, The Java plug-in, the Java Applet Viewer, JNLP and Java Web Start including the javaws tool are all deprecated in JDK 9 and will be removed in a future release.
So, for Java 9+, deployment of JavaFX in a browser using a Java plug-in will only be possible using deprecated technology. Oracle notes in another part of the Java 9 release notes:
Deprecates the Java Plug-in and associated applet technologies in Oracle's JDK 9 builds. While still available in JDK 9, these technologies will be considered for removal from the Oracle JDK and JRE in a future release. Applets and JavaFX applications embedded in a web page require the Java Plug-in to run. Consider rewriting these types of applications as Java Web Start or self-contained applications.
Note: Java Web Start isn't really an alternative as that is also deprecated (anyway, it's different from an application embedded and rendered within a browser page). Also note for those who wish to use Web Start, even though it has now been removed from Oracle JDK 11+, it is available as open source, info on this is at OpenWebStart.
As an alternative which offers similar functionality, consider something like jpro, which deploys JavaFX applications in a browser without a Java plugin (jpro is currently only in closed beta, so it is not a viable solution as of October 2017, but maybe someday in the future...).
For now, I would recommend that the best way to deploy JavaFX applications is as self-contained applications, running outside a browser.
Previous answer for Java 7 and 8
JavaFx - can it really be deployed in a browser?
Yes, JavaFX applications can be deployed so that they run inside a web browser hosted html web page.
The technology which allows this to occur is the Java Plugin. This plugin is currently a NPAPI based browser plugin solution. The Java Plugin is shipped with the Oracle Java 7 Runtime Standard Environment.
Not all browsers are supported, only those listed on the JavaFX Supported Configurations page.
How easy is it to deploy via web browser?
The easiest way to deploy a JavaFX project in a web browser is:
Create a new JavaFX project in NetBeans.
Develop a simple HelloWorld App.
Follow the instructions for Deploying your first JavaFX Application.
This is not difficult (in my opinion).
Alternatively, follow instructions on the detailed reference for Deploying JavaFX Applications (or use 3rd party tools). For many projects, using a tool other than the NetBeans IDE to perform packaging is a better approach. However, it is generally easier to let the NetBeans IDE handle deployment packaging tasks for you.
What follows is not related to answering the original question, but provides some opinions and information requested in comments on this answer.
Some Advice
There are pitfalls to deploying Java in a browser. I encourage you to do your own Google research on the subject.
In my mind, based upon the current JavaFX 2.x deployment model, for most application types that require a browser as the primary runtime container, using JavaFX is not an appropriate solution.
Examine the deployment and runtime requirements for your application. Based on your requirements, and knowledge of the JavaFX browser based execution model, decide if a browser based deployment using JavaFX technology is the correct mechanism for your application.
A couple of potential difficulties for browser embedded JavaFX applications
Some important browsers (e.g. Internet Explorer 10, iOS Safari and soon Desktop Chrome) don't permit execution of plugins using the NPAPI currently used by the Java browser plugin => some of your target users may be unable to use your application.
With a browser embedded application, you don't have complete control over the runtime on which your application executes (browser + Java runtime + plugin interface) => an application which was working when first installed may stop functioning as expected after an update to these runtime components.
Deployment Alternatives
If a browser based deployment model is not appropriate for your application, there are other ways to deploy JavaFX applications (e.g. WebStart, stand-alone jars and self-contained applications).
JavaFX - can it really be deployed in a browser?
No, not any more.
The answer used to be yes, as given in this answer, although even in 2013 when that was written the writing was on the wall. However, here in 2016 the answer is no, it cannot. Modern browsers essentially don't support NPAPI any longer (Firefox does for Java, but only until the end of the year), and NPAPI is required for the Java plugin.
As of 2016 you can use jpro without any browser plugin. And it even runs on mobiles.
Edit 1: The project is free for non-commercial or open source projects. A "hello world" can be found here
I found solution by chance here.
what was missing in my web project.
I must add this to web.xml file :
<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>

javaFX2 miglayout portability

I'm pretty new to Java and I'm just starting to venture into the UI world of it.
I've looked at what framework and tools to use.
My goals are:
Try to avoid implementing too much low level stuff through using an
existing framework.
Use portable libraries (I heard that not all libraries are made equal)
As for everything I do, I start with a lot of documentation and research and right now my choice is landing on javaFX and miglayout.
I develop with Linux Ubuntu (currently 13.04) but my user base will be a mix of windows and Ubuntu and maybe some MAC users.
I wanted to know from people with way more experience, their pain points while developing with javaFX2 and migLayout when it comes to portability to other OS.
I have found this thread:
How portable is JavaFX 2?
But the answer I'm looking for is not: it works in "X" but rather. To make it work in "X" and "Y". "a", "b" and "c" will have to be taken care of. handling "z" is hard because etc...
Thanks.
All you need is properly installed JDK, And with a little help from your preferred IDE you will get almost a complete portable working environment ).
Using Netbeans will hide the complexity behind generating a runnable jar file, for serious project using a dependency manager will be a must , both Gradle and Maven have good JavaFX plugin for build automation (by using Maven, you can clone my Github repository and start working immediately whatever the OS you're running),for more about JavaFX and Java SE integration see this answer from a OpenJDK contributor.
javaFX2 miglayout portability
Miglayout has a JavaFX plugin all you need is to add miglayout-javafx.jar and the miglayout-core.jar to your CLASSPATH, so there is no portability issues with MigLayout.
MigLayout is a real powerful layout manager (especially when it comes to Swing), but I prefer going the idiomatic way of building JavaFX user interfaces (essentially, enterprise and data-driven applications) by using fxml and scenebuilder.
more resources :
GUI Architectures,by Martin Fowler
JavaFX community website
The FX Experience blog

web developer tools linux

I started using Linux for PHP web development. What is a helpful toolset to use for web development (mostly PHP) available for the Linux platform. My Current IDE is netbeans and I am happy with it.
In no particular order, my perfect environment consists of:
vim - text editing
git - version control
screen - terminal management
This is all you really need to build a great app in any language, for that matter (baseline). Every language has its specifics, but the above will more than get you started.
The PDT project provides a PHP
Development Tools framework for the
Eclipse platform. This project
encompasses all development components
necessary to develop PHP and
facilitate extensibility. It leverages
the existing Web Tools Platform (WTP)
and Dynamic Languages Toolkit (DLTK)
in providing developers with PHP
capabilities.
You can have a try for eclipse.
http://www.eclipse.org/pdt/
Another one not mentioned in this thread (suitable for PHP and a lot of other dynamic languages):
Komodo Edit (free version of the Komodo IDE)
I really like using Netbeans and SqlSquirrel. Both of these tools are written in Java and they are cross platform compatible. Also an odd note about SqlSquirrel: It uses the Netbeans editor. Also, if you like there are many tutorials and articles on using PHP with Netbeans on their site. Overall, go with the toolset that you like the most. There isn't a single toolset that works with everyone, and for all problems.
I like Eclipse PDT, and it can be used both on Windows (which I use at work) and on Linux (which I use at home).
Features are quite the same as netbeans, I'd say ; especially, you've got nice stuff like graphical debugging, when used with Xdebug.
I'd say that, these days, when it comes to a modern full-IDE for PHP, that works on Linux, and is free, there are two choices : netbeans and Eclipse PDT. Which one you prefer is generally a matter of taste, as far as I can tell.
If you're happy with NetBeans, stick to that as you IDE. Learn to use Vim or emacs just for common knowledge. Use version control, Subversion and git are good choices.
The power of linux is in the command line. Whatever you do outside the IDE, learn to do it with command line. After a while you'll be comfortable with it and you'll discover that there's bunch of stuff you never want to do with GUIs anymore :)

What tools do I need to develop in ActionScript (in Linux)

I've never developed Flash before but I have a project where I want to use an ActionScript 3 library and I'm not sure what tools I need to start. To further complicate things my main development box is an Ubuntu box. Are there any necessary packages I need to install? Or any .deb's I can buy?
A Windows or Mac box. :-)
just kidding, actually you can use the Flex 3 SDK mentioned above and compile using the CLI. If these AS3 Libraries are indeed Flex libraries (sometimes there are discrepancies between what works in Flex, what works in CS3, and what works in both) then you should be able to import them and use them.
Also, I've never tried it myself, but Flex Builder is based on Eclipse and I believe there's a way to configure Eclipse to compile with the opensource Flex compile if you'd rather work in a graphical IDE.
I have written a blog entry on how to setup Eclipse + AXDT + Flex SDK to prepare your mxml/actionscript (as3) development environment on Linux. If you are interested, you can have a look here:
http://netpatia.blogspot.com/2009/09/flash-development-on-linux.html
It looks like the Flex 3 sdk (http://www.adobe.com/products/flex/flexdownloads/index.html) is a good place to start. Any other suggestions?
I've had very good experiences with Sprouts. It is a ruby wrapper for the Flex SDK that allows building with Rake and easily hooks into continuous integration engines.
http://www.projectsprouts.com/
I've been using Flex Builder Linux recently and can recommend it. It's straightforward to get going and, for an alpha, is stable and has all the features you could want.
JetBrains IntelliJ IDEA (not free)
http://www.jetbrains.com/idea/features/flex_ide.html
JetBrains Astella (free but beta)
http://blog.jetbrains.com/astella/
http://confluence.jetbrains.com/display/AS/Astella+EAP
Project Sprouts is probably going to be the quickest way to get up and running with ActionScript or Flex development on any operating system, but especially on Linux.
You'll need to install Ruby and RubyGems, other than that, it's a couple of terminal commands and you should have an application building and displaying.
You should be able to build ActionScript 2, ActionScript 3, AIR or Flex Projects without any manual system configuration at all. Because Sprouts is inherently a CLI application, you can use any development environment you prefer and initiate your builds with simple commands like:
Compile and run debug build
rake debug
Compile and run test harness
rake test
Compile an optimized build for deployment
rake deploy
Compile your application as a library
rake swc
Generate documentation for your application
rake doc
Of course you can easily create or customize your build scripts using Rake, an amazingly simple and flexible build script engine.
Like Rails, Sprouts also comes standard with code generators that automatically create classes, test cases, test suites and even MXML components.
Unlike many open-source projects, Sprouts includes some pretty extensive and detailed documentation.
Let us know what you think.
http://projectsprouts.org
You could try Haxe. It isn't really ActionScript but it is very similar (and you could also compile to the server side or JavaScript).
While FlexBuilder is good, it lacks many of the features that Powerflasher includes in FDT (Flash Developer Tools) for Eclipse. FlexBuilder is missing things like Templates, better formatting, auto-fixing of warnings and errors. It runs on Eclipse making it cross platform, but be warned that they do not test in a linux environment (however people have had no significant complaints).
See all the features here: http://solutions.powerflasher.com/index.php?id=136#feature_03
I use the Flex SDK, Emacs (Sub your editor of choice) and Ant as my build tool. I blogged about how to get everything set up here:
http://blog.apterainc.com/software/setting-up-a-flex-development-enviroment-in-gnulinux/
Adobe has an free alpha release of FlexBuilder for Linux, I thought it was quite unstable when editing MXML files, but if your doing strict actionscript work, you may find it useful. you can get that here:
http://labs.adobe.com/technologies/flex/flexbuilder_linux/
You might like to have a look at MTASC
http://www.mtasc.org/
An open source action script compiler. I've been meaning to get around to looking at it but not had the chance yet. Heard great things about it tho.
Hopefully when I do get around to it and have questions you'll be around to answer them

Resources