For this question, assume that Java code (domain classes) exist for some problem domain for which no tools are available in Eclipse. One could then write a "rich client" based on the Eclipse platform to provide tools. Assuming that the tools are intended to be used by developers, an Eclipse plugin (instead of a full rich client) will do.
Building an Eclipse plugin has disadvantages. Most notably: Long development cycles. Anyone who wants to develop the tools has to dive into plugin development.
My intention is to allow writing tools that are integrated into Eclipse, while at the same time staying out of Eclipse plugin development as much as possible.
As one possible apporach, I'm thinking along the lines of some "generic" tooling plugin to which a Java application -- which gets run as a normal application being developed in the same Eclipse instance -- connects and "remote controls" the UI. This would require a one-time effort to build the generic plugin (including maintenance, of course), but development of the actual tools would happen outside of plugin development.
Now my question: What are the existing options towards such a generic plugin, as well as the more general problem of integrating with Eclipse without actually writing a plugin? The idea being that I wouldn't hesitate to build exactly that, but of course I don't want to reinvent the wheel.
I'm looking at getting JRebel licenses for my company.
However I just found out that IntelliJ already has a built in functionality to hot deploy classes.
At the moment we are using Netbeans and Eclispse and I'm wondering instead of buying JRebel licenses if we should just buy IntelliJ.
I tried a trial of IntelliJ (13.0.1) and the hot swap features seems to work fine (using JBoss AS 7.1.1). Only small details it seems that you have to manually compile the class that has been modified for IntelliJ to replace it on the server. JRebel does that automatically.
Now my question is for experienced user of IntelliJ and/or JRebel.
Is it really useful to have JRebel if I already have IntelliJ? Is JRebel better if I'm mostly interested in hot-replacing my classes?
All feedback/experience/advice welcomed.
For an environment like you described (mostly java EE 6 on JBoss 7 or later. Frameworks: JSF, Primefaces) the way to go is definitely JRebel.
Hotswap is capability of JVM, you can find comparison of this with JRebel on their website (http://zeroturnaround.com/software/jrebel/features/comparison-matrix/). So you can use this independently on your IDE.
The main advantage of JRebel is support for various frameworks and their lifecycles - e.g. when you change a bean class jrebel will reinitialize spring bean and all beans which depend on it - with hotswap you would need to redeploy because constructor/initialize method was already run.
I am a happy jrebel and intellij user (also used jrebel with netbeans successfully), no relationship with zero turnaround, angry at them for removing personal dev licenses.
IntelliJ does not have better hot swap than Netbeans or Eclipse, it is simply a matter of JVM. You can try DCEVM integration plugin, which have really good hot swap, in some cases even better than JRebel. But if you need support for frameworks like Spring, JRebel is the way to go. I recommend trying both before buying anything.
I'm using NetBeans for J2ME development. Now I want to switch to develop for Android.
When I search I found that people are being used Eclipse to develop on android. When I tried to download eclipse I have found many different eclipse packages (Classic, Indigo).
I just want to know the difference between them and which is the best to develop on Android?
Classic is just Indigo with classic plugin set (Eclipse Platform, Java Development Tools, and Plug-in Development Environment).
Every package downloadable directly from eclipse page is Indigo unless you go to 'older versions' section.
Any package will work for you, but 'd go for 'eclipse for java developers' to reduce download size.
I was wondering what are the best tools for BlackBerry dev?
What if there are any plugins for Elcispe. I know the apps are built in Java so I was wondering is there any other lite wieght or heigh IDE's are if there is a GUI program for it.
RIM has a list of tools you can use (e.g. emulators, SDK, etc.). There is an Eclipse plugin that RIM distributes and maintains as well. The only IDE that they seem to formally support today is Eclipse, so I'd recommend you use that (though you could use anything you'd like, it'd just be more difficult).
I currently have Apache HTTP Server, but I'm guessing I'll need Tomcat (and then have to configure it in a way that makes it not open to the public), a Java JDK (which I already have, but should probably update), and an IDE (I have Eclipse). But what else should I have or know before starting?
Lets see... you'll need:
A JDK. Preferably the Standard Edition, unless you plan on using GlassFish as a J2EE server. If you do use the standard edition, you need to include the jars from your servlet container/J2EE stack to access J2EE libraries.
A Servlet container. Apache Tomcat is a popular one, and Eclipse already has integration support for it. Keep in mind that Tomcat is not a complete J2EE stack... you need something like JBoss Application Server or Apache Geronimo for that.
(Semi-Optional) A web server. Apache Web Server surprisingly works well with Apache Tomcat or Apache Geronimo... it's almost like they were made by the same people! Eclipse has built-in support for Tomcat and doesn't appear to require a web server because of it. I could be wrong, though.
(Optional) An IDE. If you use Eclipse, get the version for Java EE Developers.
(Optional) A Database. MySQL and HSQLDB are popular ones for Java, at least for small to medium applications. Keep in mind that you also need to download the JDBC drivers for your database.
(Optional) A revision control system. Even on a single-developer project, a revision control system can save your hide if you accidentally remove code or a file that you shouldn't. There are several choices here; Subversion is my personal choice, along with an Eclipse plugin for it, such as Subclipse.
I'd recommend having a database server installed as well- you can go pretty far with the various pure Java implementations, but anything significant will probably benefit from having a copy of MySQL around.
I'd also get some sort of version control going- tortoiseSVN works really well for windows. Even if you're just goofing around for yourself, getting in the habit of using it will save time and heartache down the road.
If you're trying to stay pretty simple you have everything you need; a servlet container.
The IDE of course helps.
I would recommend Eclipse's Web tools project as it will allow you to code, and then hit a button that will put that code on tomcat all from the IDE.
http://www.eclipse.org/webtools/
As Bogdan mentioned maven is a dependency management tool but depending on your level of comfort I'm not sure if you want to muddy the water with that yet.
Another project that uses Maven is appfuse (http://appfuse.org/display/APF/Home) and will help you get off the ground quickly for generating a webapp. It will give you a webapp, a database, unit tests, dependency management, and a good skeleton to structure your project off of.
So, if you're just wanting to play around with some .jsps and a servlet or two I would stick with the IDE, but if you're comfortable with web applications, MVC, and build tools I'd recommend appfuse.
That's all you need from the tools.
Then, you need to google some tutorial on using servlets and jsp pages. Even documentation bundled with tomcat is good enough.
You'll probably also want a database like MySQL or HSQLDB. You could replace Tomcat with Jetty which is often easier to get class changes to reload without restarting the server.
You can do everything from within NetBeans if you're willing to switch IDEs (it's a relatively painless switch, but you might be able to create a similar setup in Eclipse). There's a Tomcat plugin for NetBeans that allows you to create, edit, run, and debug servlet and JSP web apps all from within NetBeans. There's a starter tutorial here. When you install the Tomcat plugin, you get lots of good example servlets and JSPs as a bonus.
I would go for maven.
It will give you a quick start in configuring your project (by using archetypes) and it will manage your dependencies.
Install it and run the archetype command to create your project.
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp
After that just use the maven eclipse plugin to configure your eclipse environment for that project (http://maven.apache.org/plugins/maven-eclipse-plugin/).
I currently have Apache HTTP Server, but I'm guessing I'll need Tomcat (and then have to configure it in a way that makes it not open to the public)
For simple Java based web applications, you need not have Apache installed unless you are too concerned about performance and want to gain by letting Apache serve static resources.
But what else should I have or know before starting?
A good IDE is most recommended, otherwise the development will become painful. Use a simple database as people have already suggested. I would go with MySQL because its neither too complex for a webapp nor too trivial.
Instead of Tomcat I recommend Jetty, that is also a Servlet-Container. In my experience it's easier to setup and maintain. Good enough to test your application.
Other than that you need a JDK (naturally). A database is optional, but if your web-app wants to save data it's the best option.
Step 1:you need to have J2EE installed in your system if not download it from http://www.oracle.com/technetwork/java/javaee/downloads/index.html here.
Step 2: Should have Apache TomCat server to run your web project on your system locally(local Server).
installation steps https://www.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_HowTo.html go to this website.
Step 3:set Class path for java JRE.