Tuesday, April 2, 2013

Spring Scala 1.0.0.M2 has been released

Arjen Poutsma, open source rock star from SpringSource/VMware, announced today that the second milestone of Spring Scala 1.0.0 has been finally released. I feel emotionally bounded to this release, as I contributed pretty much to it :) .

Spring Scala is the brand new project from the Spring portfolio. Its goal is to provide the first-class bridge between the Spring wiring and the Scala code.

New release includes some nice features making Scala people the happy people including:


  • New JdbcTemplate wrapper. We've dropped the SimpleJdbcTemplate as it has been deprecated in Java.
  • Introduced new "rich" wrappers for the BeanFactory, ListableBeanFactory and ApplicationContext. Also added implicit conversions to these wrappers (following the "Pimp my library" pattern).
  • Introduced new AOP Advice wrappers, with implicit conversions (AdviceConversions)
  • Upgraded to Scala 2.10.2 and Spring 3.2.2. Note that Spring 3.2.2 is required when using the FunctionalConfiguration trait.
  • Added Scala-friendly TransactionSynchronizationManager wrapper supporting pattern-matching style of registering synchronization callbacks. 
  • Changed inner workings of FunctionConfiguration so that it now eagerly initializes beans that require this (BeanFactoryPostProcessors etc).
  • And many more bug fixes and other changes.


Stay tuned for the next Spring Scala milestone!

Saturday, March 23, 2013

Spring Scala forum is here for you

Apparently I've become the Open Source junkie. Recently I started to contribute to another great open source project, this time the one not related directly to the Apache Camel family. I've been a little bit involved into the Spring Scala project from the Spring Source (aka VMware) foundry.

I really like the idea behind this fine piece of software. I plan to use Spring Scala as the base for the Camel and ServiceMix modules written in Scala. For now Camel comes with a nice Scala DSL, however Scala users still don't feel like the first-class citizens in the ServiceMix world. The main reason behind this situation is that there is no dedicated bridge between ServiceMix's Spring XML bootstrap file and Scala code.

Arjen Poutsma (dev lead of Spring Scala) was so kind to create Spring Scala forum so project committers and users could communicate more easily. I personally monitor this forum, so if you got any doubts or suggestions regarding the project, feel free to drop a message there. Keep in mind also that anybody can create request the pull to the Spring Scala on GitHub, so feel free to contribute your ideas.

Wednesday, February 20, 2013

The future of Camel goodies

Apache Camel is distributed together with the pretty impressive set of components authored by our wonderful contributors. At this point we provide support for around 150 components and data formats. This is really impressive number which makes Camel the leader among the integration frameworks.

The bigger palette of components we offer, the more often we ask ourselves what will be the best way to handle our Camel herd. Should we keep components under Apache Software Foundation umbrella or should we create independent repository for them? What about the release cycles? Who should be responsible for the quality of the components?

If you are interested in the components-related brainstorm we had on Camel development mailing list you should take a peek at this interesting discussion thread. We would appreciate your opinion in this conversation, as we really want to hear the voice of the end users and community in this regards.

Monday, February 4, 2013

We (will soon) drop Scala 2.9 support for Camel

Apache Camel comes with some amazing DSLs out-of-the-box. The one I like the most is Scala DSL. The reason I like it so much is because I'm Scala enthusiast and because mentioned DSL provides Scala-specific extensions to the Java-based Camel route builder.

If you have ever wondered how would it be to write Camel routes just like this...

"pop3://user@host" process(_.in = "JMS FTW!") to "jms:queue"

...then keep in mind that Scala DSL can do you some favor.

At the beginning of the January Scala 2.10 has been officially released. Since the latest version of my favorite language significantly breaks binary compatibility against Scala 2.9, interesting discussion occurred on the Camel mailing list. The key facts resulting from the latter conversion are as follows.

  • Camel 2.11 will provide support for Scala 2.10 via camel-scala module (the one shipping Scala DSL for Camel so far)
  • Camel 2.11 will provide support for Scala 2.9 via new camel-scala_2.9 module. The latter module will marked as a deprecated just after its release.
  • starting from the Camel 2.12 or 3.0 (whichever comes as the first) we will drop support for Scala 2.9 
If you use Camel and Scala together in the same project, please be prepared that sticking to the Scala 2.9 for a long run might be a problem for you. 

Friday, January 4, 2013

Fuse Fabric installation options

If you want to play a bit with the Fuse Fabric, you can start the fun by choosing one of the following options:
Although installing Fabric on the vanilla container is very temping, this option doesn't work well in the latest stable Karaf/ServiceMix/Fabric releases. Keep in mind however that, according to the information I've found on the mailing lists, the latest development versions of the Karaf/ServiceMix/Fabric work like a charm.

Since deploying snapshot versions of containers to the production is not an option, at this moment I would recommend to stick to the bundled version of the Fuse Fabric. If you want to use this fine piece of software, you need to migrate your configuration to so called Fabric profiles anyway. With created profiles, migrating from vanilla ServiceMix to Fabric bundle is not a big deal.

Thursday, December 27, 2012

Kosher Ubuntu 12.10 - Full media support

Ubuntu comes with almost ready-to-go Desktop operating system. Almost, because my favorite Linux distribution separates free and non-free software packages. This is especially visible when comes to the media codecs support, since the latter are often released under restrictive licenses.

In practice, you need to add additional bundles repository and explicitly install some packages from it. Also some of the restricted packages you would like to download are available in the standard repository.

Start with adding Medibuntu repository to your system...
sudo -E wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list
sudo apt-get --quiet update
sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring
sudo apt-get --quiet update
The command below will integrate Medibuntu packages with your Desktop even tighter (by adding Unity lauchers and so forth).
sudo apt-get install app-install-data-medibuntu apport-hooks-medibuntu
Now install codecs with closed licenses...
sudo apt-get install w32codecs win64codecs ubuntu-restricted-extras
If you watch movies from DVDs on your computer, you would like to have installed support for the encrypted ones (i.e. the majority of the positions available on the market).
sudo apt-get install libdvdread4
sudo /usr/share/doc/libdvdread4/install-css.sh
After applying all the steps above, non-free media and Ubuntu will become friends again.

Sunday, December 23, 2012

Kosher Ubuntu 12.10 - Broken wireless network

After you install Ubuntu 12.10 and update the installed packages to the latest version, your machine will stop to find wireless networks. Unfortunately the latest kernel update for Ubuntu doesn't work well with Broadcom (BCM) wireless network chipsets.

What you need to do is connect your computer to the wired network, download kernel headers...
sudo apt-get install linux-headers-generic

...rebuild and reinstall your wireless network chipset module...
sudo apt-get install --reinstall bcmwl-kernel-source

...and finally reload the mentioned module.
sudo modprobe wl

Now do enjoy your wireless network again.