Eclipse with WAS fast deployment setup - eclipse

Which version of Eclipse should I use for WAS9?
What are the steps to enable development with WAS9 on Eclipse?
What configuration should I have to see changes taking effect as I save the files?

1. WebSphere Developer Tools only works on Eclipse versions up to (and including) 2020-06
2. Only the before mentioned plugin has to be installed to enable Eclipse to add WAS9 server and to enable publishing to/debugging it from Eclipse.
The plugin's official page: https://marketplace.eclipse.org/content/ibm-websphere-application-server-v9x-developer-tools
I installed by: Help, Install software, Add: http://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/updates/wdt/2020-03_comp/
If you downloaded the WebSphere development tools from the marketplace, then added a server, it should be enough, setting WebSphere JRE is not needed but WDT works best with the JRE that is shipped with WAS (located in /java)
3. To achieve fast deployment, for test driven development I use the following setup:
WAS server options
Publishing: Never Publish
Publishing settings...
Run server with resources within the workspace
Minimize and Auto publish options checked.
Project/Build automatically: checked
This way as I save a java or FE file, it is immediately served by the WAS server.
Official, full details for the WAS publishing settings are here: https://www.ibm.com/docs/en/wasdtfe?topic=server-publishing-settings-websphere-application-traditional
Misc
If there are bigger modifications that would require a publish then my project usually fails to start and I have to do a stop server, full clean build and then start again. Because of this I chose not to do any automatic publishing as the resources updated in Eclipse are already provided from the server and a publish event would trigger the reinstallation of the application that takes a lot of time and in my case fails without full clean install.
Probably you won't need these additional settings in eclipse.ini to load Eclipse with some exta jars that I do load libEclipse directory {com.ibm.ws.orb.jar, com.ibm.msg.client.provider.jar, com.ibm.msg.client.jms.jar, com.ibm.msg.client.jms.internal.jar}
-Djava.endorsed.dirs=C:\DEV\libEclipse\
-Dcom.ibm.websphere.thinclient=true

Related

Cannot drop project into the development server

I use STS4
I imported a maven project. I updated it through maven : mvn -X clean install
Now I want to deploy the project into my local server ( Tomcat ) ; but when I droped it into the server then the mouse did not change : it remains as a circle mouse ! So how to enable the deployment into the local server ?
At the moment, STS4 doesn't have all the bits and pieces pre-installed to deploy apps from within the IDE to local Tomcat servers. The current version of the tooling is focused on running Spring Boot applications in the embedded Tomcat mode.
Having said that, we are working on this, the next update will come with the necessary extensions pre-installed to deploy war-packaged Boot apps to a local Tomcat directly.
If you want to give it a try, feel free to grab one of the latest nightly builds of STS 4.1.1, anything post B1473 should include the necessary pieces. If not, please file a bug at https://github.com/spring-projects/sts4/issues to get that fixed.
If you want to fix an existing STS4 installation, you would need to add the m2e-wtp integration extensions, which you should be able to find on the main Eclipse update site of your installation. Go to "Install New Software", select the main Eclipse update site, and search for "m2e-wtp".

Debugging an eclipse within another eclipse - Eclipse Trader

According to this link
It seems easy to setup the environment. Into the last paragraph:
Setup the Run Configuration
There should be a misterious EclipseTrader run configuration appearing from nowhere !!
Obviously there is no such thing !!
The question is, how can I debug an eclipse within another elipse ?? Is it possibile ?
If you don't have the Eclipse application entry in the available debug configurations then you should probably be running an Eclipse which does not have the plug-in development environment (PDE) installed.
You can either download the Eclipse classic package which already contains PDE from the download page or install the PDE plug-ins in your current Eclipse platfom from the Eclipse update sites.

Debugging Eclipse plug-ins

This is my first attempt at creating an Eclipse plug-in. I've created one, along with a feature and update site. I set the target platform as my local Eclipse installation. When I run/debug the plugin from within the development environment everything works fine.
Now, my colleague installed the plug-in from the update site that I hosted. When he starts using any of the functionality exposed by my plugin he gets runtime exceptions.
He sees null pointer exceptions which didn't occur when I ran my plug-in project from my development environment.
I have a wizard that's part of my plug-in. When he close it he gets a "Unhandled event loop exception", and the wizard doesn't close. I didn't have this issue when I was running/debugging my plugin in my development environment.
Now I'm confused as to why the same plug-in is behaving differently in the production environment, as against the dev environment and when I was debugging it from my IDE. The target platform in both cases is the same Eclipse version. What could be the reasons?
And how do I debug the plug-in in a production environment? Is there a remote debugging capability for debugging the plug-ins on the production environment?
Any suggestions would be really useful!
To remote debug your plug-in, first add debug arguments to your target Eclipse .ini file
-vmargs
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
before launching it.
Then open another Eclipse instance with a workspace containing your plug-in project.
Open Run > Debug Configurations..., select Remote Java Application and create a new configuration.
As Project, browse and select your plug-in project.
Also fill in your connection properties (host of target Eclipse and port 1044).
Launching the newly created debug configuration allows you to debug your plug-in the same way you debug locally.
Now I'm confused as to why the same plug-in is behaving differently in
the production environment, as against the dev environment and when I
was debugging it from my IDE. The target platform in both cases is the
same eclipse version. What could be the reasons?
This is a classic: Eclipse plugins and RCP applications do indeed behave differently between PDT (the Eclipse IDE) and the exported product.
In your case, a NullPointerException thrown from the exported version but not from Eclipse is 9 times out of 10 an image or other resource files (properties, etc.) that is loaded by your code but is not listed in the build.properties of your plugin.
Anyway, you'll need to check the logs to retrieve the stacktrace and hunt down its cause. Such logs could be found in your friend's workspace under le .metadata/.log file
From your development workspace as it stands now, use the "Debug As -> Eclipse Application" menu item to startup a test workspace. When it starts up, you'll have two workspaces running: the original development workspace and the new test workspace. You can set breakpoints in your plugin code in the development workspace and run your plugin in the test workspace.
When your plugin execution in the test workspace gets to one of your breakpoints, execution will pause and you can use the Debug view in your development workspace to look at variables, set more breakpoints or anything else you want to do to debuf your plugin.
See the Apache Wiki for Developing with Eclipse.
Under Windows 10 with Tomcat running as a windows service I started:
tomcat8.5\bin\Tomcat8w.exe
& added in the Java tab as the first entry in Java Options to enable remote debugging:
-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n

How To Create Webstart From Existing Eclipse Installation

I want to create a java webstart product that includes all of the contents of my current eclipse installation - standard eclipse java edition with some extra plugins that I have developed/downloaded.
There are a number of tutorials showing how to do this for an eclipse RCP application, but I don't want to create an RCP specifically for this purpose (I also tried to do it and never really managed to configure the app to look just like my workbench).
So, is this even possible? Any pointers?
Update: I followed this article, but after deploying my application in the web server and running the jnlp, the jars were downloaded but nothing happened. I tried changing the eclipse.product property to other "possible" values, but didn't help.
Do you really need the web start software?
Since eclipse doesn't requires installation, and the plugins are installed in the same directory of eclipse why don't you zip your eclipse once you have it configured, and redistribute it as a zip. Even eclipse itself is distributed as zip.

Netbeans won't let me change a project's Netbeans platform

I've downloaded the VisualVM source and am trying to compile the Glassfish plugin using Netbeans 7.01. Doing so results in the following error:
C:\source\visualvm\trunk\plugins\glassfish\nbproject\build-impl.xml:48: You must define 'nbplatform.VisualVM_100609-dd12ae64a19c.harness.dir'
That lead me to the project settings which shows the platform as "Netbeans IDE...". The drop down box is grayed out so I can't select the correct platform.
Yet, on my hello world VisualVM plugin I can set the platform to the appropriate platform and it runs great.
To try and resolve this I've tried creating platform.properties file and putting it in the nbproject folder with the following entries. However, this doesn't seem to be working
harness.dir=mypath/visualvm/visualvm_13
and
nbplatform.VisualVM_100609-dd12ae64a19c.harness.dir=mypath/visualvm/visualvm_13
Any suggestions.
Glassfish plugin is part of 'plugins' NetBeans modules suite. All modules from a Modules suite has to be build against the same version of NetBeans platform application (in our case VisualVM). This means that you can change the NetBeans Platform for the whole suite, go to the properties of the 'plugins' suite a change the platform there.
In order to build the VisualVM and it's associated plugins you must download the NetBeans platform and profiler binaries that are available on the VisualVM website's build guide section.
For example, to build the 1.3.2 release you would go to this section and download the NetBeans 6.9.1 platform and profiler binaries available through the link located on that page. The link I've provided also gives you instructions for obtaining the proper VisualVM sources from the repository and building VisualVM and it's plugins. For example, the sources for the 1.3.2 release can be checked out using the following url:
https://svn.java.net/svn/visualvm~svn/branches/release132
And once you've completed the checkout and extracted the NetBeans platform binaries (downloaded from the above link) into the
release132/visualvm directory, you can build the entire application and it's plugins by running ant build from the release32/plugins directory.
I successfully completed this entire process and can verify that the instructions work for 1.3.2. However, the instructions for building the trunk did not result in a successful build due to at least one missing dependency.
What the error that you were seeing was telling you was that the NetBeans platform's build harness could not be located. The harness is included in the downloadable binary and once you've extracted it into the release32/visualvm directory the values that are in the project.properties file will once again be valid. This is of course a good example of why you should keep everything needed to successfully reproduce a build in your repository!