As much I like to use Glassfish, customers might have different taste or policy. We are challenged now to run our EJB/Web-application on JBoss as well. Netbeans supports JBoss up to version 6 but not the latest version 7 which is fully EE6 web profile compatible. Version 7 is not (yet) supported due to major revamp of the management API of JBoss. I found one plugin provided by Oleg Kulikov on github, a working prototype that can control Jboss 7 server from Netbeans, but cannot deply an application to it or debug it. I wish I know more about Netbeans RCP development, but it is not an easy task to create this kind of highly integrated NB plugin. Discussion as Netbeans issue here.
Part 1 of this tutorial we concluded with an web application that displays all our instances and their status. In this part we will add some more features to control our instances.
The project and environment from part 1
Tutorial (complete sourcecode at the end):
Display the region endpoints and allow to select different one
We hardcoded our endpoint in the first version, if you run instances across the globe in the various AWS datacentres (US, Ireland, Singapore, Tokyo) we need to switch the endpoint easily.
Lets add one more listbox, that we hide in a ZK popup (we could use a combo listbox, but for the sake of playing with all the available ZK components I use the popup). Same concept add a listbox in the zul and a EC2 region list and a list model with customer renderer in our controller. Continue reading →
Certainly not a big deal to deploy a ZK web application to a Amazon EC2 instance, but I needed a simple application that allows my team to start/stop our EC2 instance that we use for testing and demo without logging into the AWS account or using the Firefox plugin (both giving too many rights and are too complex for some business users).
I created this app to give my users (tester and trainer) a chance to start the servers without logging into AWS. I share this because the are no samples in the SDK file that cover the EC2 instances in detail.
In part 1 of this tutorial we will create a ZK application that displays the status of our instances in a list.
In part 2 we will add the start-stop instance function, in part 3 we tinker with IP addresses and DynDNS domains and in part 4 we let our web application time scheduled (EJB Timer) control the instances automatically.
I really enjoy using Hudson as CI platform every day. It is open, it is vastly extensible, has a great community support and not to forget the outstanding job by Kohsuke to create Hudson and lay out the foundation of this ecosystem. There is always more to learn, find new ways to do jobs with Hudson, maybe that is the reason why there is no book yet about Hudson. I just want to highlight 3 very simple plugins that make life easer:
Build Timeout (link)
I have some jobs that take a long time, mainly because they transfer artifacts to S3 and deploy applications to test and demo servers. Once in a while I run into timeouts or hanging batch scripts which will make the complete job haning. If you dont notice you start creating a build queue. This plugin terminates a job if it extends the configurable time limit.
Time Stamper (link)
With lon running jobs if would be helpful when which task started and how long it took to finish. The plugin does nothing but putting a timestamp in front of each line of the console output.
FTP Publisher (link)
For simple file transfers you might want to try this plugin instead of batch script coding the transfer.
I recently start to work a lot with Amazon AWS by utilizing EC2 servers and using S3 as online storage. While you should do your maths using the servers to generously (it quickly becomes expensive if you create instances on the fly and keep them running), S3 usage is a rather innocent matter. Currently 1GB costs you 0.15 U$ per month (more details here), but please dont forget to look at data transfer charges as well (not longer free from November 2010). I use the service mainly for backup purpose, while I still rely on local backups once a month, the continuous backup happens on S3 (which might be safer than my backup harddisk). The data volume I transfer is small enough (not maintaining a filesharing server !) to keep the costs low.
I was looking for a way to transfer my Hudson artifacts to my S3 account and could not find a regular promoted plugin, almost creating a manual script as workaround, until I found a plugin, which you still need by yourself, but works perfectly. This tutorial (based on Ubuntu) is a hands-on walk-through from the scratch. Some steps are rather simple.
In this previous tutorial I described my approach of using artifacts as a backup media.
Update 2010-10-04: There is another updater in github who added functionality to the plugin: here the address git://github.com/d6y/hudson-s3.git
With the license change you have now 3 versions to choose from: Community, Professional and Enterprise Editions (more details here). The first Netbeans plugin for ZK 5 contained the enterprise version, resulting in a warning in the logfile the version will expire after 60 days. Since last week you can download the plugin that comes with the CE libraries.
Note: You need to install the other ZK5 plugin, de-activating is not enough. Download (link) and install as usual.
Install ZK 5 CE Plugin
After installing the CE plugin your projects (created with the other version will throw a reference problem at you. You can’t resolve, you need to open the project properties and delete the previous library and import the new one. You need to verify if you used enterprise features that are not available in the community edition.
Kenai.com (link) is dead (shot by the Sheriff, but he didn’t shoot no deputy, ooh, ooh,..) and by April 30th you better backup your belongings, otherwise they go /dev/null. (The domain will be removed as well). Unfortunately it was well integrated with Netbeans and this level of collaboration you wouldn’t achieve with another OS code repositories. No choice, so here a comparison of services on wikipedia (link).
My personal choice: I will select one with a public API, potentially could create a plugin (if it is not available yet). Maybe Launchpad or Github.