Thanks to Groovymag.com, the Jython Podcast site is now available at jythonpodcast.com. If you haven't yet had a chance to read Groovymag, I suggest that you take a look if at all interested in Groovy or Grails. The magazine is an excellent resource for beginners and advanced Groovy users alike.
Thanks to Michael Kimsal and the Groovymag for the domain name.
I am an application developer, database administrator, technical writer, and Java evangelist. Frequent this blog to learn from my experiences in Java, JavaEE, PL/SQL, and Python/Jython development. Follow my tweets @ http://twitter.com/javajuneau
Tuesday, December 23, 2008
Friday, December 19, 2008
Jython Podcast Site Ready
I finished the preliminary Jython Podcast website last week and I thought that it would be a good idea to release it to the world for your thoughts and opinions. I wanted to create and deploy the website as a Django site running on Jython. However, as it turns out I am unable to deploy a Django on Jython site to a server running on JDK 1.5 (at least I haven't figured out how to do it as yet). Therefore, I have had to postpone the deployment of the Django site until I can upgrade to JDK 1.6.
It is my plan to begin the podcast with an episode near the end of December. Hopefully once I get the first episode released, iTunes will not have any problems updating to include it.
Check out the Jython Podcast site here. I also would like to thank HostJava.net for providing the domain name and sponsoring the podcast.
It is my plan to begin the podcast with an episode near the end of December. Hopefully once I get the first episode released, iTunes will not have any problems updating to include it.
Check out the Jython Podcast site here. I also would like to thank HostJava.net for providing the domain name and sponsoring the podcast.
Tuesday, December 02, 2008
Jython CLASSPATH
I ran into a small issue this past weekend while doing some Django development with Jython 2.5 b0. The Django scripts appeared to be running correctly until I attempted to synchronize with the database using:
jython manage.py syncdb
Each time I tried to run this against my Postgresql backend I was receiving an error stating that "org.postgresql.Driver" could not be found. In reality, that driver was already in my Jython CLASSPATH because it is installed by default when Django is set up.
The issue may be that I have too many Jython installations on my Mac now, but nonetheless, it is easy to work around. I still have not found the complete solution as yet, but as long as the "--verify" argument is passed along with the "syncdb" call then everything works out well. This is because the verify argument forces the CLASSPATH to be parsed at runtime. While the --verify argument makes it take a second or two longer to run, it should resolve issues where the CLASSPATH is not being parsed as it should.
Workaround solution:
jython --verify manage.py syncdb
jython manage.py syncdb
Each time I tried to run this against my Postgresql backend I was receiving an error stating that "org.postgresql.Driver" could not be found. In reality, that driver was already in my Jython CLASSPATH because it is installed by default when Django is set up.
The issue may be that I have too many Jython installations on my Mac now, but nonetheless, it is easy to work around. I still have not found the complete solution as yet, but as long as the "--verify" argument is passed along with the "syncdb" call then everything works out well. This is because the verify argument forces the CLASSPATH to be parsed at runtime. While the --verify argument makes it take a second or two longer to run, it should resolve issues where the CLASSPATH is not being parsed as it should.
Workaround solution:
jython --verify manage.py syncdb
Wednesday, November 19, 2008
NetCAT 6.5 Complete!
I'd like to thank all of the developers at Netbeans for hosting a great NetCAT session for the 6.5 release. It seemed that everyone on the development team played an important role in this great release and the NetCAT team members also provided meaningful feedback and assistance.
I'd recommend that anyone who is interested in having their voice heard for future releases of Netbeans should get involved in future NetCAT programs. All of us members certainly had "our say" in many features of the final product. This is a program that really goes to show how much the community can make a difference.
Thanks again to Netbeans developers and fellow NetCAT 6.5 participants.
I'd recommend that anyone who is interested in having their voice heard for future releases of Netbeans should get involved in future NetCAT programs. All of us members certainly had "our say" in many features of the final product. This is a program that really goes to show how much the community can make a difference.
Thanks again to Netbeans developers and fellow NetCAT 6.5 participants.
Netbeans 6.5 GA Available
If you haven't done so already, I suggest that you go and pick up Netbeans 6.5 at this time. It is arguably the best IDE release ever. Along with the Java feature updates, this new version of the IDE includes Groovy support, compile on save, and Python support is available in EA format.
If you want to migrate your libraries from an older version of 6.5 (release candidate), simply copy the project libraries files. See this wiki article for more details.
If you want to migrate your libraries from an older version of 6.5 (release candidate), simply copy the project libraries files. See this wiki article for more details.
Tuesday, November 04, 2008
Check out GroovyMag
Interested in Groovy or Grails? If you are then you'll want to check out GroovyMag.com as the first issue of GroovyMag is now available for download. Unfortunately, it looks like you have to purchase the magazine. However, the cost looks pretty reasonable and it looks as though there is a lot of good content...probably worth the $4.99, so check it out at http://www.groovymag.com/main/ to see a summary of the content.
Thursday, October 30, 2008
Netbeans 6.5 RC2
Download Netbeans 6.5 RC2 now and try it out.
If you have been using 6.5 RC1, then you will need to redo all of your settings for RC2. However, the easiest way to get around this is to copy the contents of your Netbeans user directory from RC1 into RC2. If you do this then all of your settings will be retained.
Test RC2 and give feedback to the development team (nbdev@netbeans.org) if there are issues.
If you have been using 6.5 RC1, then you will need to redo all of your settings for RC2. However, the easiest way to get around this is to copy the contents of your Netbeans user directory from RC1 into RC2. If you do this then all of your settings will be retained.
Test RC2 and give feedback to the development team (nbdev@netbeans.org) if there are issues.
Monday, October 20, 2008
Jython Monthly Newsletter
Anyone who wishes to post an article for the October distribution of Jython Monthly should place link on the following page. http://wiki.python.org/jython/JythonMonthly/Articles/October2008
Distribution of the newsletter will occur this week. Thanks in advance for all article submissions.
Distribution of the newsletter will occur this week. Thanks in advance for all article submissions.
Wednesday, September 24, 2008
Java for Mac OS X 10.5 Update 2
Java for Mac OS X 10.5 Update 2 has been released. Mac users (with compatible machines) should go to software updates and download soon. I just installed the update and used it to run some tests with Netbeans 6.5 and the performance is much better than running on an Apple JDK 1.5 release.
Things are looking good so far...
Learn About Java 16 New Features: https://examples.javacodegeeks.com/java-16-new-features-tutorial/
Tuesday, September 09, 2008
Groovy Datasources - Changing Hibernate Dialect - Oracle 11g
I found a funny while working with some Grails applications today. I have been developing one of my Grails applications for about 2 or 3 weeks now. I updated DataSource.groovy on Day 1 to make the application work with my development Oracle repository and all was well.
Yesterday, I migrated my development Oracle environment to 11g and my Grails application stopped functioning. I was receiving messages stating that the correct Hibernate dialect was not able to be determined. I was forced to explicitly list which dialect to use within my DataSources.groovy file and I thought I'd share.
If you migrate to Oracle 11g (from any previous release...in my case it was 10.2.0.3), and you need to specify the Hibernate dialect then you will need to add the following line to your DataSources.groovy within the DataSource block:
dialect = org.hibernate.dialect.OracleDialect
Yesterday, I migrated my development Oracle environment to 11g and my Grails application stopped functioning. I was receiving messages stating that the correct Hibernate dialect was not able to be determined. I was forced to explicitly list which dialect to use within my DataSources.groovy file and I thought I'd share.
If you migrate to Oracle 11g (from any previous release...in my case it was 10.2.0.3), and you need to specify the Hibernate dialect then you will need to add the following line to your DataSources.groovy within the DataSource block:
dialect = org.hibernate.dialect.OracleDialect
Monday, September 08, 2008
Detecting Google Chrome In Javascript
Thanks to javascript.internet.com, here is a quick post on how to detect the new Google Chrome browser from within your Javascript code.
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
By the way, if you are looking for some great javascript tips, take a look at javascript.internet.com as it is an excellent resource.
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
By the way, if you are looking for some great javascript tips, take a look at javascript.internet.com as it is an excellent resource.
Monday, September 01, 2008
Having Fun with JavaFX
I finally had a chance to play around a bit with Fx over this long holiday weekend. At this point, the JavaFx script language is fairly straight forward, but I still find myself looking at examples in order to get the syntax correct when building a GUI.
http://silveiraneto.net/2008/08/11/javafx-draggable-node/
http://silveiraneto.net/2008/07/31/javafx-creating-a-sphere-with-shadow/
I will be posting some updates to this blog at a later date. As for now, I've successfully created a news ticker using JavaFX and I plan to release the source once I've worked out all of the rough edges.
More to follow...
http://silveiraneto.net/2008/08/11/javafx-draggable-node/
http://silveiraneto.net/2008/07/31/javafx-creating-a-sphere-with-shadow/
I will be posting some updates to this blog at a later date. As for now, I've successfully created a news ticker using JavaFX and I plan to release the source once I've worked out all of the rough edges.
More to follow...
Monday, August 25, 2008
Jython News!
Check out the latest Jython Monthly for some great news on the up and coming Jython 2.5 release. It is now in alpha stages, but it is looking great so far!
You can also read-up on using Django with Jython...good work Leo Soto! Also take this opportunity to ask all of your Jythonic questions of Jim Baker...a lead Jython developer. See newsletter for more details!
You can also read-up on using Django with Jython...good work Leo Soto! Also take this opportunity to ask all of your Jythonic questions of Jim Baker...a lead Jython developer. See newsletter for more details!
NetCAT 6.5 Update
I thought I'd give a brief update of the status on the NetCAT 6.5 testing. If you are unaware of what NetCAT is, please visit the site to learn more about it.
Thus far, it appears that Netbeans 6.5 is on track with the latest projections of a production release sometime in October. As you probably already know, the first beta release was distributed already and is available here. In the release, most of the new features are fully implemented. I will warn that there are some bugs obviously found in the release (expected because it is a beta) that could cause some minor issues in your development. For instance, the new "deploy on save" feature of Netbeans is nice but has many quirks at this time. If you are developing a JavaEE application, each time you save an XHMTL, JSP, or HTML file then the complete application is recompiled and deployed. I have found that this can lead to decreased productivity as it can cause workstation performance degradation as well as PermGen errors on the deployment application server. This is probably the largest bug I've seen since the beta release, so please do not allow it to keep you away from testing the release.
For those of you who have downloaded and tested the beta release, you already know that the IDE is looking great! Netbeans developers have been outstanding in repairing bugs and putting great new features into the IDE. Each new release of Netbeans brings it one step closer to "the only IDE you will ever need" in my book...but don't take my word, please test and see for yourself.
Before I post this blog I also want to mention that for those Grails developers in the community, Netbeans 6.5 is a must have! Productivity time is increased even more by using the combination of Grails with Netbeans. One of the advantages that Netbeans offers is the Grails plugin wizard...just right-click on your project to install or uninstall any Grails plugin. No need to make that trip to the website any longer for plugin updates!
Download 6.5 beta and enjoy...
Thus far, it appears that Netbeans 6.5 is on track with the latest projections of a production release sometime in October. As you probably already know, the first beta release was distributed already and is available here. In the release, most of the new features are fully implemented. I will warn that there are some bugs obviously found in the release (expected because it is a beta) that could cause some minor issues in your development. For instance, the new "deploy on save" feature of Netbeans is nice but has many quirks at this time. If you are developing a JavaEE application, each time you save an XHMTL, JSP, or HTML file then the complete application is recompiled and deployed. I have found that this can lead to decreased productivity as it can cause workstation performance degradation as well as PermGen errors on the deployment application server. This is probably the largest bug I've seen since the beta release, so please do not allow it to keep you away from testing the release.
For those of you who have downloaded and tested the beta release, you already know that the IDE is looking great! Netbeans developers have been outstanding in repairing bugs and putting great new features into the IDE. Each new release of Netbeans brings it one step closer to "the only IDE you will ever need" in my book...but don't take my word, please test and see for yourself.
Before I post this blog I also want to mention that for those Grails developers in the community, Netbeans 6.5 is a must have! Productivity time is increased even more by using the combination of Grails with Netbeans. One of the advantages that Netbeans offers is the Grails plugin wizard...just right-click on your project to install or uninstall any Grails plugin. No need to make that trip to the website any longer for plugin updates!
Download 6.5 beta and enjoy...
Wednesday, August 13, 2008
Netbeans 6.5 Beta Is Available...Grab It and Test!
The Netbeans team has just released 6.5 beta. Having been testing the latest nightly builds, I think that you'll be pleased with the beta once you try it. The Groovy/Grails support is in great shape. New features have been added since M1, including a plugin manager and different application layout.
You'll also enjoy the automatic deploy on save feature. This really helps to speed up development time.
Congrats to the Netbeans team on delivering this beta of 6.5...it is looking so far.
You'll also enjoy the automatic deploy on save feature. This really helps to speed up development time.
Congrats to the Netbeans team on delivering this beta of 6.5...it is looking so far.
Wednesday, August 06, 2008
Plan Your Events for Free - Gather Event Planning
Gather Event Planning is a free service that I started a few months ago to assist individuals or groups that are planning events. The service is based upon my open source reunion planning software. This service is web hosting which provides sites geared towards planning and organizing events such as reunions, meetings, or gatherings in general. Each Gather Event Planning website grants it's owner privileges to change all page content, administer mailing and guest lists, post news, etc.
Originally, I was planning to charge a minimal fee for the service in order to cover the costs of hosting. However, I've partnered up with another group to pay for the hosting and together we've produced Restoring The Roar a Chicago Blackhawks Hockey fan site. I've also partnered up with another associate who will be starting a website shortly. Gather Event Planning is now free thanks to the new partnerships.
So if you or someone you know needs to plan an event of any kind, please try out Gather Event Planning...and give me feedback!
Originally, I was planning to charge a minimal fee for the service in order to cover the costs of hosting. However, I've partnered up with another group to pay for the hosting and together we've produced Restoring The Roar a Chicago Blackhawks Hockey fan site. I've also partnered up with another associate who will be starting a website shortly. Gather Event Planning is now free thanks to the new partnerships.
So if you or someone you know needs to plan an event of any kind, please try out Gather Event Planning...and give me feedback!
Netbeans 6.5 - Project Properties Additions
Some of the nice new features of Netbeans 6.5 include Groovy and PHP support, automatic project deployment on save (which makes development time much quicker), and some new additions in the Project Properties menu. Allan Christensen blogs about the new Project-Based formatting option which is available. This gives you the ability to apply different formatting styles on a per-project basis.
Another nice new addition to the project properties menu is the Javascript Libraries. This allows you to choose from a set of default Javascript libraries (Yahoo User Interface, Dojo, etc) and add them to your project. This new option also gives you the ability to add your own libraries which is very handy.
Another nice new addition to the project properties menu is the Javascript Libraries. This allows you to choose from a set of default Javascript libraries (Yahoo User Interface, Dojo, etc) and add them to your project. This new option also gives you the ability to add your own libraries which is very handy.
Tuesday, July 29, 2008
Adding Groovy File Compilation To Any Netbeans Project
Many of you may already be aware that adding support for groovy file
compilation in any Netbeans project is easy. You can easily adjust the
build file to use the groovyc compiler. For those of you who do not know
how to do this, simply perform the following:
1) Adjust build.xml by adding the following target:
2) Compile your project as normal!
All .groovy files will be compiled into Java...seamless integration. If you
are already using the "-pre-compile" target for another task, then name it
something else and adjust the build-impl.xml accordingly to include the new
target.
compilation in any Netbeans project is easy. You can easily adjust the
build file to use the groovyc compiler. For those of you who do not know
how to do this, simply perform the following:
1) Adjust build.xml by adding the following target:
<target name="-pre-compile">
<groovyc destdir="${classes.dir}"
classpath="${ your.netbeans.groovy.library.classpath}"
jointcompilationoptions="-j -Jsource=1.5 -Jtarget=1.5">
</groovyc>
</target>
2) Compile your project as normal!
All .groovy files will be compiled into Java...seamless integration. If you
are already using the "-pre-compile" target for another task, then name it
something else and adjust the build-impl.xml accordingly to include the new
target.
Tuesday, July 15, 2008
NetCAT 6.5 - Keeping Busy!
NetCAT 6.5 just started yesterday and I can say that there is a great group of Netbeans users from the community testing! This is sure to be a stellar release of the IDE, and if you've downloaded and tried M1 I am sure you will agree.
As Roman Strobl and Greg Sporar say...Happy Netbeaning...
As Roman Strobl and Greg Sporar say...Happy Netbeaning...
Jython 2.5 Alpha Released!
Frank Wierzbicki of Sun Microsystems has just announced the release of Jython 2.5 Alpha 1. Click on the link above for the download...
More to come once I have a chance to play with it a while...
More to come once I have a chance to play with it a while...
Monday, July 07, 2008
Netbeans 6.5 M1 Is Out!
Download it and start testing today! I downloaded the IDE this morning and I've been using it for most of the day. I have to say that it is in great shape! I especially love the added Groovy editor and faster startup time. Another great point is that I had no issues with importing projects and settings from 6.1.
Another great Netbeans release is on it's way!
Another great Netbeans release is on it's way!
Friday, June 20, 2008
Ask Frank! A Jython Interview with Frank Wierzbicki of Sun Microsystems
Jython Monthly Presents "Ask Frank"...a question and answer session with Frank Wierzbicki for the Jython community!
I've been in touch with Frank Wierzbicki of Sun Microsystems. In case you aren't aware, Frank is one of the top Jython developers, and earlier this year Sun Microsystems hired him to work on Jython full time!
He has agreed to answer questions from the community for our July 2008 newsletter. Gather your best questions and post them to the wiki at the URL below. If you have issues posting the questions on the wiki page, then please send them to me at juneau001@gmail.com so that they can be included. The deadline for posting questions is July 11th. After that time, Frank Wierzbicki will choose which ones he wishes to answer and we will include them in the next distribution.
Please post your questions to Ask Frank at: http://wiki.python.org/jython/JythonMonthly/Interviews/July2008/AskFrank and feel free to include your name/email address if you'd like.
Thanks in advance for your participation...this is a great opportunity for the Jython community.
Special thanks to Frank Wierzbicki for his time!
I've been in touch with Frank Wierzbicki of Sun Microsystems. In case you aren't aware, Frank is one of the top Jython developers, and earlier this year Sun Microsystems hired him to work on Jython full time!
He has agreed to answer questions from the community for our July 2008 newsletter. Gather your best questions and post them to the wiki at the URL below. If you have issues posting the questions on the wiki page, then please send them to me at juneau001@gmail.com so that they can be included. The deadline for posting questions is July 11th. After that time, Frank Wierzbicki will choose which ones he wishes to answer and we will include them in the next distribution.
Please post your questions to Ask Frank at: http://wiki.python.org/jython/JythonMonthly/Interviews/July2008/AskFrank and feel free to include your name/email address if you'd like.
Thanks in advance for your participation...this is a great opportunity for the Jython community.
Special thanks to Frank Wierzbicki for his time!
JBoss Seam - Interceptors Using Groovy - Quick Tip
Quick Tip: If you are using Groovy in any of your Seam applications (particularly when deploying to Glassfish), be sure to update the @Interceptors annotation in your session beans as such:
From: @Interceptors([org.jboss.seam.ejb.SeamInterceptor.class])
To: @Interceptors([org.jboss.seam.ejb.SeamInterceptor.class])
From: @Interceptors([org.jboss.seam.ejb.SeamInterceptor.class])
To: @Interceptors([org.jboss.seam.ejb.SeamInterceptor.class])
Thursday, June 19, 2008
Using Groovy with Seam 2.0 in Netbeans 6.1
Of course, Seam 2.0 is ready to go with Groovy support which is great news! However, for someone who is not interested in using Seam Gen it is not very straight forward. This is true especially if one wishes to use Eclipse or Netbeans for their development environment.
A while back, I wrote a blog about developing Seam applications on Netbeans and deploying to Glassfish (http://jj-blogger.blogspot.com/2007/07/jboss-seam-configurations-jars-and.html). I need to post an update blog because I am now deploying Seam 2.0 apps to Glassfish Version 2 using Netbeans. I'd like to add a bit of syntactic candy into the process now and include Groovy support into my Netbeans Seam projects.
Simply add the following to your build.xml file (contained within the root of your Netbeans project) and modify paths accordingly. You will also need to package groovy-all.jar with your application. Once completed, you can add Groovy files suffixed with .groovy into your project Seamlessly. At compile time, they will be compiled into Java classes.
<target name="-pre-compile">
<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc" classpath="${classpath-to-groovy}" />
<groovyc destdir="${classes.dir}">
<classpath>
<pathelement path="${classpath-to-groovy}"/>
</classpath>
<javac source="1.5" target="1.5" debug="on"/>
<src path="${src.dir}"/>
</groovyc>
</target>
A while back, I wrote a blog about developing Seam applications on Netbeans and deploying to Glassfish (http://jj-blogger.blogspot.com/2007/07/jboss-seam-configurations-jars-and.html). I need to post an update blog because I am now deploying Seam 2.0 apps to Glassfish Version 2 using Netbeans. I'd like to add a bit of syntactic candy into the process now and include Groovy support into my Netbeans Seam projects.
Simply add the following to your build.xml file (contained within the root of your Netbeans project) and modify paths accordingly. You will also need to package groovy-all.jar with your application. Once completed, you can add Groovy files suffixed with .groovy into your project Seamlessly. At compile time, they will be compiled into Java classes.
<target name="-pre-compile">
<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc" classpath="${classpath-to-groovy}" />
<groovyc destdir="${classes.dir}">
<classpath>
<pathelement path="${classpath-to-groovy}"/>
</classpath>
<javac source="1.5" target="1.5" debug="on"/>
<src path="${src.dir}"/>
</groovyc>
</target>
Counting Rows in Oracle in a Generic Fashion
As a DBA, every once in a while it is useful to have the ability of searching through all of the tables within a particular database to find a value. This can be a useful thing to do if you need to find all references to a particular record in a database table. Most likely, this kind of operation would need to be performed in order to safely delete a record from a database that was not using referential integrity. I know that I administer at least one legacy database which does not utilize referential integrity much at all. One major downfall to not using referential integrity is that records can be unsafely deleted, potentially leaving dangling references throughout the database.
One could easily write a block of code to search for a particular value throughout all tables in the database by iteration using views such as USER_TABLES. I have done so myself on many occasions. So much, that I grew tired of coding new blocks of code to search for particular values each time I needed to do so. I finally took a few minutes to write a generic stored procedure which will load into any Oracle database schema, and it has the ability to perform a full table search any particular value. The procedure takes two parameters, column name (or value name) and value. By invoking the procedure and passing these two values, the database will search through all tables within a particular schema and find those values within the column name you have given. The one caveat is that some databases use different column names throughout the database for the same identifiers. For example, I work with a database that calls an employee id number ID in one table, and EMP_ID in another. You must account for such discrepancies when using this procedure.
The code for this generic counting solution is as follows:
create or replace
procedure check_object_counts(column_name_val IN varchar2,
column_value IN varchar2) is
cursor table_cur is
select table_name
from user_tab_columns
where column_name = upper(column_name_val);
row_count number := 0;
begin
DBMS_OUTPUT.PUT_LINE('THE ' || upper(COLUMN_NAME_VAL) || ' IS REFERENCED IN THE FOLLOWING TABLES:');
for table_rec in table_cur LOOP
EXECUTE IMMEDIATE 'select count(*) from ' ||table_rec.table_name ||
' where ' || column_name_val || ' = :THIS_OBJECT'
INTO ROW_COUNT
USING column_value;
if row_count > 0 then
DBMS_OUTPUT.PUT_LINE(table_rec.table_name || ' - ' || row_count || ' times ');
end if;
row_count := 0;
end LOOP;
end;
/
As stated previously, this procedure can be loaded into any schema which has CREATE ANY PROCEDURE privileges. You invoke it as such from within SQLPlus:
@check_object_counts('EMP_ID','10037E');
** By the way, be sure to use SET SERVEROUTPUT ON prior to running the script so that you see the output!
It may not be a catch all solution, but it does the trick 98% of the time! Best to you and happy DBA-ing!
One could easily write a block of code to search for a particular value throughout all tables in the database by iteration using views such as USER_TABLES. I have done so myself on many occasions. So much, that I grew tired of coding new blocks of code to search for particular values each time I needed to do so. I finally took a few minutes to write a generic stored procedure which will load into any Oracle database schema, and it has the ability to perform a full table search any particular value. The procedure takes two parameters, column name (or value name) and value. By invoking the procedure and passing these two values, the database will search through all tables within a particular schema and find those values within the column name you have given. The one caveat is that some databases use different column names throughout the database for the same identifiers. For example, I work with a database that calls an employee id number ID in one table, and EMP_ID in another. You must account for such discrepancies when using this procedure.
The code for this generic counting solution is as follows:
create or replace
procedure check_object_counts(column_name_val IN varchar2,
column_value IN varchar2) is
cursor table_cur is
select table_name
from user_tab_columns
where column_name = upper(column_name_val);
row_count number := 0;
begin
DBMS_OUTPUT.PUT_LINE('THE ' || upper(COLUMN_NAME_VAL) || ' IS REFERENCED IN THE FOLLOWING TABLES:');
for table_rec in table_cur LOOP
EXECUTE IMMEDIATE 'select count(*) from ' ||table_rec.table_name ||
' where ' || column_name_val || ' = :THIS_OBJECT'
INTO ROW_COUNT
USING column_value;
if row_count > 0 then
DBMS_OUTPUT.PUT_LINE(table_rec.table_name || ' - ' || row_count || ' times ');
end if;
row_count := 0;
end LOOP;
end;
/
As stated previously, this procedure can be loaded into any schema which has CREATE ANY PROCEDURE privileges. You invoke it as such from within SQLPlus:
@check_object_counts('EMP_ID','10037E');
** By the way, be sure to use SET SERVEROUTPUT ON prior to running the script so that you see the output!
It may not be a catch all solution, but it does the trick 98% of the time! Best to you and happy DBA-ing!
Wednesday, June 11, 2008
TinyMCE Basics
I spent a good deal of time searching the web yesterday. I was trying to remember how to make the TinyMCE WYSIWYG editor allow all HTML tags. If you've never heard of this editor, it is an excellent AJAX based editor for your websites. I use it to allow my clients the ability to edit and create HTML on-the-fly without any knowledge of Javascript. Basically, it displays HTML as an OpenOffice (or Word) document would. You can simply highlight text and make it bold, italic, or underlined. It also allows the ability to post photos (as long as the photo is on the web) and much more.
The key to allowing straight HTML is to include the following configuration at the top of your webpage. TinyMCE will take any textarea and make it into a nice editor.
Above is a basic configuration to allow certain html elements. In order to allow a more flexible amount of elements, just follow this link: http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/valid_elements
Simple, eh...too bad I wasted some time searching for it when the answer was right in front of me...
The key to allowing straight HTML is to include the following configuration at the top of your webpage. TinyMCE will take any textarea and make it into a nice editor.
tinyMCE.init({
...
valid_elements : "a[href|target=_blank],strong/b,div[align],br"
})
Above is a basic configuration to allow certain html elements. In order to allow a more flexible amount of elements, just follow this link: http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/valid_elements
Simple, eh...too bad I wasted some time searching for it when the answer was right in front of me...
Tuesday, June 10, 2008
JSF 2.0 Early Access Revew
Take a minute to download and read the JSF 2.0 Early Access Review doc. It looks like JSF will be getting better, I just hope that Seam will also continue to evolve into an even better (doesn't seam like it can get much better..it is great now) framework for JSF/EJB. Hopefully JSF 2.0 will have some added benefit in this process...
Wednesday, May 28, 2008
Great Seam Security Article for 2.1.0GA
Check out the link below for a great article that discusses the new security features in Seam 2.1.0GA!
http://shane.bryzak.com/blog/articles/seam_security_gets_an_upgrade
Friday, May 23, 2008
Java SE 7 - What would you like to see?
As always, The Java Posse had another great interview in show #187. This time, they interviewed Danny Coward who is "Chief Architect of Sun's Client Software, and Sun's Java SE/EE representative on the Executive Committee for the JCP". I highly recommend listening if you are interested in learning about the future of Java SE and what SE 7 may bring.
One of the interesting topics in the interview was about what will be included with Java SE 7. I thought I'd start a blog post to capture some of the community's ideas about what should be included in the release.
What would you like to see in the release of Java SE 7?
Wednesday, May 14, 2008
Jython Monthly Call for Articles - May 2008
Let's get Jython back in the spotlight! Send in some articles about Jython for distribution in this month's newsletter.
Please post all articles/tutorials in the following area: http://wiki.python.org/jython/JythonMonthly/Articles/May2008
All contributions are welcome!
Tuesday, May 13, 2008
Netbeans 6.1 - Facelets and Seam Support!
It is not official yet, but I learned that you can download and build the facelets and seam support projects for Netbeans while reading today's Netbeans newsletter. I will give a thumbs up in the affirmative as I have followed the directions within the blog and successfully achieved Facelets and Seam support within 6.1!
Thanks for the excellent blog and for the time which was put forth in working on these projects!
Wednesday, April 30, 2008
Java 1.6 on OSX
I love my Mac even more today...Java SE 6 version 1.6.0_05 has finally been released (as if you hadn't already heard). This is great news for any Mac Java developer!
Just remember, if you had installed a beta version of 1.6 then you will have to manually remove /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0 before you can get the update via Software Update.
Learn new features of Java 16: https://examples.javacodegeeks.com/java-16-new-features-tutorial/
Tuesday, April 29, 2008
Netbeans 6.1 - Out of the Box
I really haven't gotten too far into it yet, but I've just installed Netbeans 6.1 final edition. So far, I can say that the start up time seems good, and I am glad that all of my libraries were migrated out-of-the-box. I simply used the import prompt to grab all of my settings from 6.1 and I was good to go. This is great news...it means that I can just start using Netbeans 6.1 with no additional configuration overhead.
That's all for now...I'm looking forward to using another great product from the Netbeans team!
Wednesday, April 23, 2008
Grails - Coding and Accessing a simple custom controller method
If you've ever worked with Grails, then you know how easy it is to create domain classes which map to database tables. Similarly, it is easy to access the database via the automatically generated conroller methods that are available (create, list, delete, save, edit, show). However, if you need to perform a particular operation against the database which is not accomplished by using any of these automatically generated methods, it is still easy...but perhaps not very intuative. Once you learn how to accomplish this task then the entire power behind using hibernate and accessing your database is at your hands.
It really is as easy as 1, 2, 3 to create additional controller methods...especially if you know how to use the Groovy language itself. I will show you how to create a simple finder method which takes a parameter and searches a particular database table for the value of that parameter...then it returns the results.
As you already know, the list method for each Grails controller is already created for you...let's look at my list method for the "Test" domain class (database table):
def list = {
if(!params.max) params.max = 10
[ testList: Test.list( params) ]
}
This is all well and good, but it returns the entire dataset for the Test database table. What if I only wish to return all of the records which have foreign key id of 35? Let's say that our foreign key id variable is fkId to make it simple. So what we want is to return all members of the list returned using the "list" method above which have fkId == 35.
We need to first obtain the complete list of results, and then filter it out accordingly. This is where the power of Groovy comes into play. We could use Java and write a filter so that we iterate through each of the items in the complete list of results searching for instances where fkId == 35 and then adding those matching objects to another list. That would be lots of code though. Let's use a Groovy closure to accomplish the same thing. Take a look at the "find" method which does just that:
def find = {
def testList = Test.list( params)
[testSearch : testList.findAll{it.fkId == Integer.valueOf(params.fkId)}]
}
Ok, simplicity at it's finest! We first obtain the complete list from the database table into the testList object. Then, we use the Groovy "findAll" method to search that list for all instances where fkId == the value of our parameter which is passed in (params.fkId)...let's assume that the parameter equals 35. We store our results in the testSearch list.
Now, how do we access this method? Well, we have to create a Groovy Server Page named find.gsp to show our results. We also need to pass the fkId parameter to this method somehow. Here is a simple find.gsp which will iterate through all of the objects which are returned within the testSearch list. Of course...this is just a quick page with ugly results...but you can clean it up to suit your needs.
find.gsp:
It really is as easy as 1, 2, 3 to create additional controller methods...especially if you know how to use the Groovy language itself. I will show you how to create a simple finder method which takes a parameter and searches a particular database table for the value of that parameter...then it returns the results.
As you already know, the list method for each Grails controller is already created for you...let's look at my list method for the "Test" domain class (database table):
def list = {
if(!params.max) params.max = 10
[ testList: Test.list( params) ]
}
This is all well and good, but it returns the entire dataset for the Test database table. What if I only wish to return all of the records which have foreign key id of 35? Let's say that our foreign key id variable is fkId to make it simple. So what we want is to return all members of the list returned using the "list" method above which have fkId == 35.
We need to first obtain the complete list of results, and then filter it out accordingly. This is where the power of Groovy comes into play. We could use Java and write a filter so that we iterate through each of the items in the complete list of results searching for instances where fkId == 35 and then adding those matching objects to another list. That would be lots of code though. Let's use a Groovy closure to accomplish the same thing. Take a look at the "find" method which does just that:
def find = {
def testList = Test.list( params)
[testSearch : testList.findAll{it.fkId == Integer.valueOf(params.fkId)}]
}
Ok, simplicity at it's finest! We first obtain the complete list from the database table into the testList object. Then, we use the Groovy "findAll" method to search that list for all instances where fkId == the value of our parameter which is passed in (params.fkId)...let's assume that the parameter equals 35. We store our results in the testSearch list.
Now, how do we access this method? Well, we have to create a Groovy Server Page named find.gsp to show our results. We also need to pass the fkId parameter to this method somehow. Here is a simple find.gsp which will iterate through all of the objects which are returned within the testSearch list. Of course...this is just a quick page with ugly results...but you can clean it up to suit your needs.
find.gsp:
<g:each in="${testSearch}" status="i" var="test">
FieldOne: ${test.fieldOne}
FieldTwo: ${test.fieldTwo}
</g:each>
Now, what is the URL which we use in order to access our new controller and page? Assume that our application name is "site" and we are passing a parameter of fkId = 35...
http://localhost:8080/site/test/find?fkId=35
Easy enough, but it took me a bit of time to figure out when I first tried it. Hopefully this post will save you some time and get you adding some much needed functionality to your standard Grails app.
Friday, April 18, 2008
Groovy - Grails Work
Onto new stuff...I have been working a lot with Grails lately. This is the technology that I have chosen to use for the implementation of the gathereventplanning.com website. While Grails is easy to use out of the box, I have found myself searching the net for information regarding customization. No doubt about it, unless you are creating your own simple CRUD application, you will want to customize the program in one way or another.
There have been many articles and blogs written about creating Grails applications and customizing them, but perhaps one of the best I have found so far is the Mastering Grails series...it has been quite helpful thus far.
I'm not going to get too technical in this brief post, but I will say that I have found a bug already. The issue resides in the Grails 1.0.2 release. I had created and customized a tiny CRUD application for testing purposes using the embedded database that comes with Grails. All was good until I attempted to "hook" my program to a PostgreSQL database instead. At that point the application was in read-only mode as it was unable to perform any batch inserts or updates to the database. Each time I tried to insert or update data, I received a stack trace stating that there was a SQL Grammar error.
I scratched my head for days on this one, looked at lots of hibernate documenation (since this is used behind the scenes in Grails), and even tried to change my domain model a bit to see if that would work. Eventually, I ended up downloading Grails 1.0.1 and trying to do the same thing. It works perfectly...no issues as yet. I have been able to successfully re-create my small application and use a PostgreSQL database without issues.
My guess is that this will be resolved with Grails 1.0.3 release, but we will see. So far, I love Grails as it is quite powerful and easy to use. Other than the bug I found, the only complaint I have is that Grails is so involved...many plug-ins are available and the Grails documentation is huge as it is. If you really want to become an expert Grails developer, you will be doing a lot of studying...but learning new technology like this is fun stuff.
There have been many articles and blogs written about creating Grails applications and customizing them, but perhaps one of the best I have found so far is the Mastering Grails series...it has been quite helpful thus far.
I'm not going to get too technical in this brief post, but I will say that I have found a bug already. The issue resides in the Grails 1.0.2 release. I had created and customized a tiny CRUD application for testing purposes using the embedded database that comes with Grails. All was good until I attempted to "hook" my program to a PostgreSQL database instead. At that point the application was in read-only mode as it was unable to perform any batch inserts or updates to the database. Each time I tried to insert or update data, I received a stack trace stating that there was a SQL Grammar error.
I scratched my head for days on this one, looked at lots of hibernate documenation (since this is used behind the scenes in Grails), and even tried to change my domain model a bit to see if that would work. Eventually, I ended up downloading Grails 1.0.1 and trying to do the same thing. It works perfectly...no issues as yet. I have been able to successfully re-create my small application and use a PostgreSQL database without issues.
My guess is that this will be resolved with Grails 1.0.3 release, but we will see. So far, I love Grails as it is quite powerful and easy to use. Other than the bug I found, the only complaint I have is that Grails is so involved...many plug-ins are available and the Grails documentation is huge as it is. If you really want to become an expert Grails developer, you will be doing a lot of studying...but learning new technology like this is fun stuff.
Monday, April 14, 2008
Netbeans 6.1 Beta - Subtle Issues
I've been using Netbeans 6.1 beta for most of my development since it has become available. Until recently, I hadn't noticed any issues while using it. Late last week I think I've encountered a subtle, but time consuming issue.
I am in the process of migrating my Seam applications from 1.x to 2.0.1 at this time. In doing so, I am also adjusting libraries within Netbeans as necessary. As you may know, when moving from older versions of Seam you must update all JSF pages to comply with JSF 1.2 standards...so these libraries must be updated as well.
The issue arose when I attempted to deploy one of my applications to my test environment which is running Glassfish V2. Many class not found issues appeared in the server log each time I tried to deploy. At the bottom of the stack trace I received a misleading message stating that there were "Errors in the EjbDescriptor". This led me searching my ejb-jar.xml, pages.xml, and web.xml files looking for issues. As none were found, I tried to give it the old clean, rebuild, and deploy once again...same issue.
At this point I began comparing with another successful Seam 2.0 migration and there were really no apparent differences. I spotted the problem when I went to the file system and looked in the application's dist directory. None of my Seam 2.0 libraries were being packaged with the deployment.
As it turns out, if you repackage and change libraries for an existing application within Netbeans 6.1 beta, then you must do the following:
1) Right click on the project, and choose properties.
2) Navigate to Libraries and make necessary changes.
3) YOU MUST check and uncheck the package checkbox within the libraries configuration...even if it is checked by default. This must update the build script for Netbeans because this was checked by default, but my libraries were not included.
After I unchecked the library package box and then re-checked it everything worked fine. The necessary JAR files that are contained within my included Netbeans libraries were deployed with my app and it works fine now.
Not a big issue, but an issue that is definitely not obvious and took me some time to figure out. I still recommend Netbeans 6.1...but I am not moving to RC1 at this time. I will probably wait for the production release because I do not want to migrate my libraries manually...
Happy NetBeaning....
I am in the process of migrating my Seam applications from 1.x to 2.0.1 at this time. In doing so, I am also adjusting libraries within Netbeans as necessary. As you may know, when moving from older versions of Seam you must update all JSF pages to comply with JSF 1.2 standards...so these libraries must be updated as well.
The issue arose when I attempted to deploy one of my applications to my test environment which is running Glassfish V2. Many class not found issues appeared in the server log each time I tried to deploy. At the bottom of the stack trace I received a misleading message stating that there were "Errors in the EjbDescriptor". This led me searching my ejb-jar.xml, pages.xml, and web.xml files looking for issues. As none were found, I tried to give it the old clean, rebuild, and deploy once again...same issue.
At this point I began comparing with another successful Seam 2.0 migration and there were really no apparent differences. I spotted the problem when I went to the file system and looked in the application's dist directory. None of my Seam 2.0 libraries were being packaged with the deployment.
As it turns out, if you repackage and change libraries for an existing application within Netbeans 6.1 beta, then you must do the following:
1) Right click on the project, and choose properties.
2) Navigate to Libraries and make necessary changes.
3) YOU MUST check and uncheck the package checkbox within the libraries configuration...even if it is checked by default. This must update the build script for Netbeans because this was checked by default, but my libraries were not included.
After I unchecked the library package box and then re-checked it everything worked fine. The necessary JAR files that are contained within my included Netbeans libraries were deployed with my app and it works fine now.
Not a big issue, but an issue that is definitely not obvious and took me some time to figure out. I still recommend Netbeans 6.1...but I am not moving to RC1 at this time. I will probably wait for the production release because I do not want to migrate my libraries manually...
Happy NetBeaning....
Monday, April 07, 2008
Shameless Self-Advertising
Time for a bit of shameless self-advertising. I'd like to let everyone know about a new hosting service I've started to assist individuals in event planning. If you or anyone you know needs to plan an event sometime soon, please take a look at my site and see if it will help out. Gather Event Planning offers individuals their own dedicated web site for organizing an event. The website includes a news blog, member registration, member forum, email contact lists, and much more to help aid in the process of planning an organized event.
There is no fee to try the service...only an email address is required. If you use the service for less than 30 days then it is free. This will allow anyone to plan a short-term event (such as a surprise party) without incurring any charges. There are plans available for those who wish to host a long-term event site for class reunions and such.
Enough gabbing about the service, feel free to give it a try and then let me know what you think.
Visit the site at http://www.gathereventplanning.com for more details.
There is no fee to try the service...only an email address is required. If you use the service for less than 30 days then it is free. This will allow anyone to plan a short-term event (such as a surprise party) without incurring any charges. There are plans available for those who wish to host a long-term event site for class reunions and such.
Enough gabbing about the service, feel free to give it a try and then let me know what you think.
Visit the site at http://www.gathereventplanning.com for more details.
SeamFramework.org - In case you did not know...
I wanted to let everyone know about another great JBoss SEAM resource, it is the seamframework.org website. This site includes a lot of documentation, as well as a community for SEAM developers.
Another good reason to use the SEAM framework!
Another good reason to use the SEAM framework!
Jython Monthly Call for Articles - April 2008
The April 2008 edition of the Jython Monthly newsletter is scheduled for distribution on April 15, 2008.
Please post any articles or contributions for the April 2008 distribution of the Jython Monthly newsletter at the following link:
http://wiki.python.org/jython/JythonMonthly/Articles/April2008
Visit http://wiki.python.org/jython/JythonMonthly/Articles/Submitting for details regarding newsletter artical submittals.
All contributions are appreciated! Please feel free to contact me if you have any questions.
Please post any articles or contributions for the April 2008 distribution of the Jython Monthly newsletter at the following link:
http://wiki.python.org/jython/JythonMonthly/Articles/April2008
Visit http://wiki.python.org/jython/JythonMonthly/Articles/Submitting for details regarding newsletter artical submittals.
All contributions are appreciated! Please feel free to contact me if you have any questions.
Tuesday, April 01, 2008
Groovy Netbeans Plugin
After searching for a while to find information regarding the Groovy and Grails Netbeans plugin, I determined that it is only available if you download and use a nightly build. You must download a nightly build and then go to the plugin manager to find it.
Ok, that is good news, so now I will get to try out the plugin and see how it works. One slight reminder though, if you download and use a Netbeans nightly build then none of your created libraries will be carried forward. I've got too many libraries created so I plan on using the nightly build to evaluate the Groovy plugin only...I will continue my day-to-day development on the NB 6.1 release.
I wonder if a Jython plugin is in the future? One would think that since a couple of Jython gurus have been hired by Sun, we may have some hope for good Jython support in a future Netbeans release...let's hope so!
Ok, that is good news, so now I will get to try out the plugin and see how it works. One slight reminder though, if you download and use a Netbeans nightly build then none of your created libraries will be carried forward. I've got too many libraries created so I plan on using the nightly build to evaluate the Groovy plugin only...I will continue my day-to-day development on the NB 6.1 release.
I wonder if a Jython plugin is in the future? One would think that since a couple of Jython gurus have been hired by Sun, we may have some hope for good Jython support in a future Netbeans release...let's hope so!
Wednesday, March 19, 2008
Netbeans 6.1 Beta
I've downloaded the latest Netbeans 6.1 beta release and installed it on my Mac today. I haven't had too much time to work with it as yet, but thus far I have found the following to be nice:
- No need to manually set up libraries or import projects, ALL of my settings from 6.0.1 have been imported successfully!
- Javascript support is nice
- Startup time has been greatly reduced!
These are some of the improvements I've seen within the last few minutes of looking around. It also seems like my applications build faster and deploy to Glassfish V2 with improved speed...
I have found one negative point so far...Facelets support is completely gone from what I can see. My facelets support plugin https://nbfaceletssupport.dev.java.net/ which worked in 6.0.1 does not load anymore. All XHTML documents now look like plain old JSP...but I cannot say whether code completion for facelets will work or not as I have not really had a chance to test thus far.
If you are looking to see improvements and don't mind losing the facelets plugin support, I recommend giving it a try.
- No need to manually set up libraries or import projects, ALL of my settings from 6.0.1 have been imported successfully!
- Javascript support is nice
- Startup time has been greatly reduced!
These are some of the improvements I've seen within the last few minutes of looking around. It also seems like my applications build faster and deploy to Glassfish V2 with improved speed...
I have found one negative point so far...Facelets support is completely gone from what I can see. My facelets support plugin https://nbfaceletssupport.dev.java.net/ which worked in 6.0.1 does not load anymore. All XHTML documents now look like plain old JSP...but I cannot say whether code completion for facelets will work or not as I have not really had a chance to test thus far.
If you are looking to see improvements and don't mind losing the facelets plugin support, I recommend giving it a try.
Tuesday, March 11, 2008
Jython Monthly Call for Articles - March 2008
The March 2008 edition of Jython Monthly is scheduled to be distributed next Tuesday, March 18th. Everyone would definitely like to see more articles and/or tutorials, so if you have any content that you'd like to share then please submit it to the following area:
http://wiki.python.org/jython/JythonMonthly/Articles/March2008
Thanks in advance for all contributions!
P.S - Way to go Frank!! Good luck at Sun!
http://wiki.python.org/jython/JythonMonthly/Articles/March2008
Thanks in advance for all contributions!
P.S - Way to go Frank!! Good luck at Sun!
Tuesday, February 12, 2008
Jython Monthly Call for Articles - February 2008
Please submit new articles and/or tutorials for the Feburary 2008 distribution of Jython Monthly. Feel free to write or teach about any topic that is Jython related...the more articles the better!
Thanks in advance for your participation!
Monday, February 11, 2008
JavaFX Script - An Excellent Read
I finished reading the JavaFX Script book by James Weaver a couple of days ago. I ordered this book from Amazon last November, and it just arrived last month. I have to say that I was getting a bit impatient about the delay, but it really was worth the wait.
If you are new to JavaFX like me, then you will find this to be an excellent starting point. The book is really geared towards developers who are interested in authoring small Swing-like applications. I'd have to say that it helped to have a good background in Swing prior to reading this book...but I think that anyone could pick it up and just start from scratch. James does a great job from start to finish as he builds upon concepts as the book goes on. It really is a start-to-finish book, but at 200 pages, that is not very rough to read straight through. It really is a quick read, and quickly jumps into the basics and works up from there. I was also impressed with the example applications used in the book as they gave me a great sense of what the language is capable of doing.
This book is definitely worth the read if you are interested in learning JavaFX basics and beyond.
If you are new to JavaFX like me, then you will find this to be an excellent starting point. The book is really geared towards developers who are interested in authoring small Swing-like applications. I'd have to say that it helped to have a good background in Swing prior to reading this book...but I think that anyone could pick it up and just start from scratch. James does a great job from start to finish as he builds upon concepts as the book goes on. It really is a start-to-finish book, but at 200 pages, that is not very rough to read straight through. It really is a quick read, and quickly jumps into the basics and works up from there. I was also impressed with the example applications used in the book as they gave me a great sense of what the language is capable of doing.
This book is definitely worth the read if you are interested in learning JavaFX basics and beyond.
Thursday, January 24, 2008
EJB 3.1 - Significant Changes Sound Promising
Being a big fan of the EJB 3.0 specification, I read this new EJB 3.1 New Features article published by Serverside right away. Clearly, the current EJB spec is much simpler to use and maintain than previous generations. Building upon that logic, the upcoming EJB 3.1 specification looks even better.
Real quick, I just wanted to point two of the features I found most interesting about this article. First, it sounds like interfaces will be made optional. This could be viewed as a bonus or a downfall, depending upon the way you look at it. Certainly removing the need for interfaces will simplify the writing of EJB code immensely. However, the benefits of using the loose-coupled approach may make EJB more difficult in some circumstances. If you enjoy unit testing of EJB code, this may make a big difference. However, since the specification plans to make this an optional feature then it will leave the implementation to the coder. Therefore, this seems to be a feature that can greatly benefit those who do not wish to write EJB interfaces.
Second, the article briefly mentions support for stateful web services and EJB timer service enhancements to support scheduling and/or deployment-time timer creation. I will be interested to hear more about these.
Give the article a read if you are interested in EJB...it is worth the time.
Real quick, I just wanted to point two of the features I found most interesting about this article. First, it sounds like interfaces will be made optional. This could be viewed as a bonus or a downfall, depending upon the way you look at it. Certainly removing the need for interfaces will simplify the writing of EJB code immensely. However, the benefits of using the loose-coupled approach may make EJB more difficult in some circumstances. If you enjoy unit testing of EJB code, this may make a big difference. However, since the specification plans to make this an optional feature then it will leave the implementation to the coder. Therefore, this seems to be a feature that can greatly benefit those who do not wish to write EJB interfaces.
Second, the article briefly mentions support for stateful web services and EJB timer service enhancements to support scheduling and/or deployment-time timer creation. I will be interested to hear more about these.
Give the article a read if you are interested in EJB...it is worth the time.
Thursday, January 10, 2008
Oracle JDeveloper 11g Technology Preview 3 Released
I recently downloaded the new JDeveloper 11g Tech Preview 3 for my Mac, and I am impressed. While I primarily use Netbeans for Java application development, the JDeveloper IDE is great for developing PL/SQL and Java Stored Procedures.
All of the new features in this technology preview are amazing. I understand that if you develop Java applications within the JDeveloper IDE then there have been many enhancements and improvements as well. For instance, the SOA and Web Services modules have had some significant adjustments.
My primary use of the JDeveloper IDE is for PL/SQL and Java Stored Procedure development. If you are looking to create and/or maintain any PL/SQL, then this tool can help you greatly. The new editor is nice, package body and header separation is a plus, and the automatic SQL command window is nice to have. One no longer needs to open a SQL Worksheet to invoke an SQL statement, it opens automatically when a database connection is selected. Of all the great SQL IDEs available today, I do not think any are better than JDeveloper for managing Oracle Java Stored Procedures. Straightforward and easy to manage, developing Java Stored Procedures for the Oracle database has never been easier.
I recommend downloading the technology preview and giving it a try. Even if you do not develop any SQL or PL/SQL code, you may find that it has some nice features to benefit your Java development.
All of the new features in this technology preview are amazing. I understand that if you develop Java applications within the JDeveloper IDE then there have been many enhancements and improvements as well. For instance, the SOA and Web Services modules have had some significant adjustments.
My primary use of the JDeveloper IDE is for PL/SQL and Java Stored Procedure development. If you are looking to create and/or maintain any PL/SQL, then this tool can help you greatly. The new editor is nice, package body and header separation is a plus, and the automatic SQL command window is nice to have. One no longer needs to open a SQL Worksheet to invoke an SQL statement, it opens automatically when a database connection is selected. Of all the great SQL IDEs available today, I do not think any are better than JDeveloper for managing Oracle Java Stored Procedures. Straightforward and easy to manage, developing Java Stored Procedures for the Oracle database has never been easier.
I recommend downloading the technology preview and giving it a try. Even if you do not develop any SQL or PL/SQL code, you may find that it has some nice features to benefit your Java development.
Tuesday, January 08, 2008
Glassfish - A Noteworthy Application Server
I've been running across quite a few blogs lately speaking about Glassfish. It appears that this great application server is being used by more people and gaining some real popularity. I've been using Glassfish since version one. Actually, prior to Project Glassfish, I used the Sun Java Application Server version 8.
I have nothing bad to say about Glassfish. It is an excellent choice for a JavaEE application server. Powerful and easy to use, this application server should not be overlooked if you are in the business of Java web development.
I have not yet tried out version 3, but I plan to do so very soon. I've been working primarily with Glassfish version 2 for the past few months. I've found it very easy to deploy JBOSS Seam applications to Glassfish even though there is no direct IDE deployment option for this setup as yet.
I will post any issues or concerns with using Glassfish V3 and JBOSS Seam...
I have nothing bad to say about Glassfish. It is an excellent choice for a JavaEE application server. Powerful and easy to use, this application server should not be overlooked if you are in the business of Java web development.
I have not yet tried out version 3, but I plan to do so very soon. I've been working primarily with Glassfish version 2 for the past few months. I've found it very easy to deploy JBOSS Seam applications to Glassfish even though there is no direct IDE deployment option for this setup as yet.
I will post any issues or concerns with using Glassfish V3 and JBOSS Seam...