Recently I has not posted any new posts as I was busy with some new projects as well as during May attended several conferences and in some I also did presentations. Here I will post slides from these conferences. If you are interested in some of these topics then ask me to come to you as well and talk about these topics :)
I just released Oracle enhanced adapter version 1.3.2 with latest bug fixes and enhancements.
Bug fixes and improvements
Main fixes and improvements are the following:
- Previous version 1.3.1 was checking if environment variable TNS_NAME is set and only then used provided
databaseconnection parameter (in
database.yml) as TNS connection alias and otherwise defaulted to connection to
localhostwith provided database name. This was causing issues in many setups.
Therefore now it is simplified that if you provide only
database.ymlthen it by default will be used as TNS connection alias (more...)
Initial version of ruby-plsql-spec gem was using RSpec version 1.3. But recently RSpec 2.0 was released which API is not compatible with previous RSpec 1.x API and as a result
plsql-spec utility was failing if just RSpec was upgraded to version 2.0.
Therefore I updated also ruby-plsql-spec to use latest RSpec 2.0 gem and released ruby-plsql-spec gem version 0.2.1. You can install the latest version with
gem install ruby-plsql-spec
Upgrade from previous version
If you previously already installed initial ruby-plsql-spec version 0.1.0 then you need to update your
spec/spec_helper.rb file (more...)
Audience was quite interested and had a lot of questions and therefore it motivated me to do some more improvements to ruby-plsql-spec to make it easier for newcomers.
ruby-plsql-spec gem and plsql-spec command line utility
Initially ruby-plsql-spec was just repository of sample tests and if you wanted to start to use it in your project you had to manually pick necessary files and copy them to your project directory.
Now ruby-plsql-spec is (more...)
Title: Java Persistence API (JPA) 2.0 with EclipseLink
Hilton San Francisco, Golden Gate 4/5
Title: Advanced Enterprise Persistence
Hotel Nikko, Nikko Ballroom II
S314491: Effective XML: Leveraging JAXB and SDO
Hilton San Francisco, Yosemite A
S313434: Java Persistence API Futures BOF
Rails 3.0 was released recently and therefore I am releasing new Oracle enhanced adapter version 1.3.1 which is tested and updated against latest Rails 3.0.0 version. You can read about main changes in oracle_enhanced adapter for Rails 3 support in my previous blog post. Latest version 1.3.1 mainly contains several bug fixes (which you can find in change log as well as in detailed commit list) as well as several new features that I will describe here.
Usage with Rails 3
I have improved a little bit configuration and loading of oracle_enhanced adapter (more...)
Why to move?
This blog was hosted for several years on wordpress.com as it was the easiest way to host a blog when I started. But recently I was not very satisfied with it because of the following reasons:
- I include code snippets in my blog posts quite often and several times I had issues with code formatting on wordpress.com. I used MarsEdit to upload blog posts but when I read previous posts back then quite often my < and > symbols were replaced with < and >.
- I would prefer to write my posts in Textile and (more...)
It is with great pleasure that I would like to announce the release of EclipseLink 2.1.0 (Helios). This release of brings a number of exciting features many of which were voted on, and chosen by the community.
Some of the JPA features included in this release are
- improved JPQL enhancements, and extensions including 'TREAT...AS' and 'FUNC'.
- Fetch, Load, Copy & Merge of partial entities using 'AttributeGroup'
- extentions to 'eclipselink-orm.xml'
- Dynamic Persistence: JPA without requiring Java classes.
- New Platforms: SAPNetWeaver Server Platform and Symfoware Database Platform
Some of (more...)
Rails 3 is in final finishing stage (currently in beta4) and therefore I released new Oracle enhanced adapter version 1.3.0 which I was working on during last months.
Rails 3 compatibility
The major enhancement is that Oracle enhanced adapter is now compatible with Rails 3. To achieve that I also developed Oracle SQL compiler for Arel gem which is used now by ActiveRecord to generate SQL statements. When using Oracle enhanced adapter with Rails 3 you will notice several major changes:
- Table and column names are always quoted and in uppercase to avoid the need for checking Oracle (more...)
I am trying to tell more people at Oracle OpenWorld about Ruby and Rails and how it can be used with Oracle database. Unfortunately my session proposals were rejected by organizers but now there is a second chance to propose sessions at mix.oracle.com and top voted sessions will be accepted for conference. But currently my proposed sessions do not have enough votes :(
I would be grateful if my blog readers and Ruby on Oracle supporters would vote for my sessions Fast Web Applications Development with Ruby on Rails on Oracle and PL/SQL Unit Testing Can Be (more...)
Last week we held our first EclipseLink Summit here in Ottawa with attendees from Canada, Germany, India, and the US. The principal goal of the summit was the exchange of technical information and ideas. We believe the event was a tremendous success!
We spent 2 days with committers leading technical sessions discussing areas from high level components and architecture to the detailed workings of EclipseLink's querying, caching, transactions, management, diagnostics, metadata processing, JPA 2.0 metamodel, and several other subsystems.
We would like to extend a big thank you to all of the committers who lead those sessions. The preparation (more...)
All interested parties are welcome to participate.
More info on Summit is available here.
Object types and object methods
Now you can use ruby-plsql to construct PL/SQL objects and call methods on these object. For example, if you have the following type defined:
CREATE OR REPLACE TYPE t_address AS OBJECT ( street VARCHAR2(50), city VARCHAR2(50), country VARCHAR2(50), CONSTRUCTOR FUNCTION t_address(p_full_address VARCHAR2) RETURN SELF AS RESULT, MEMBER FUNCTION display_address(p_separator VARCHAR2 (more...)
I have released maintenance version of ActiveRecrod Oracle enhanced adapter with some bug fixes and some new features. This is the last maintenance version for Rails 2, I have already done majority of work to support also Rails 3 in next adapter versions, but that deserves another post when it will be ready :).
Detailed changes can be found in change history file and commit log, here I will point out the main changes.
Schema and structure dump
There are several improvements in schema (
rake db:schema:dump) and structure dump (
rake db:structure:dump) tasks. Now structure dump is (more...)
In my previous post I already described how to do Oracle PL/SQL unit testing with Ruby. I now have named it as ruby-plsql-spec unit testing framework. But probably you didn’t want to read such long text or maybe it seemed for you too difficult to try it out therefore I prepared two screencasts to show how easy and fun it is :)
Testing simple function
The first example is based on classic BETWNSTR function example from utPLSQL tutorial.
Testing procedure that changes tables
When you call methods on
plsql Ruby object then ruby-plsql uses
all_arguments data dictionary views to search for procedures and their argument metadata to construct corresponding PL/SQL block for execution. Unfortunately there are no corresponding data dictionary views for package variables (sometimes called “global variables”) that are defined in package specifications. Therefore there was no support for package variables in (more...)
Current PL/SQL unit testing options
Unit testing and TDD (test driven development) practices are nowadays one of the key software development practices. It is especially important if you are doing agile software development in small iterations where you need to automate unit testing as much as possible, as you cannot do manual regression testing of all existing and new functionality at the end of each iteration.
In some languages (like Java, Ruby, Python, C# etc.) there is quite good tools and frameworks support for unit testing and as a result there is quite high testing culture among top (more...)
Oracle complex data type support
Initial versions of ruby-plsql supported just simple Oracle types like
BLOB as PL/SQL procedure parameters. Now support for many more complex data types is added. See examples below how to call PL/SQL procedures with these complex data types.
Let’s assume you have PL/SQL procedure with PL/SQL record type parameter (which most (more...)
Last week I participated in annual Oracle OpenWorld 2009 conference. There is quite wide coverage of conference in various web sites and blogs therefore I will write just some personal notes that I wanted to highlight.
For me the most value was meeting with different interesting people. At first thanks to Justin Kestelyn and all OTN team for Oracle community support. Oracle ACE dinner, bloggers meetup, OTN lounge and unconference were great places where to meet and discuss with interesting and active Oracle community members.