Showing posts with label java. Show all posts
Showing posts with label java. Show all posts

Monday, March 7, 2011

Oracle Java Architect certification updated

From August 1st, some pre-requisites will be added to the Java Developer and Java Architect certifications (Details here). Basically, you'll need to have attend some training courses. Expensive ones. Like 3000 dollars. Ouch. But that's not all. That will be 3000 bucks for the basic Java programming course. Wait, wait. I already have a few Java certifications in my pocket, do I need to do a basic course ? It looks like so.

The approved trainings for "Oracle Certified Master, Java EE 5 Enterprise Architect" are:

  • Java Programming Language, Java SE 6
  • Object-Oriented Analysis and Design Using UML
  • Developing Applications for the Java EE 6 Platform
  • Developing Architectures for Enterprise Java Applications

I clearly don't want to take "Java Programming Language, Java SE 6". I'd prefer to take "Developing Applications for the Java EE 6 Platform" instead. But that course says :
Required Prerequisites:

  • Experience with the Java programming language
  • Familiarity with object serialization
  • Familiarity with relational database theory and the basics of structured query language (SQL)
  • Familiarity with the use of an IDE
  • Java Programming Language, Java SE 6 (SL-275-SE6)

What ? I need to waste money on that "Java Programming Language, Java SE 6" course ?

"Developing Architectures for Enterprise Java Applications" is even worse. You need both "Object-Oriented Analysis and Design Using UML" and "Developing Applications for the Java EE 6 Platform" (which implies that you also need "Java Programming Language, Java SE 6"). I leave you calculate how much it costs to take that course.

(the content of this blog entry originally comes from my post at Coderanch. Check that thread for some more up to date news on this topic.)

Friday, January 14, 2011

Confirming Quartz Trigger firing times (especially cron expressions)

The Quartz Scheduler is very useful when it comes to scheduling jobs. It offers a wide range of trigger options, including cron-like expressions. Cron-like expressions are a bit obscure to read, unless you use them often. These expressions are explained in the CronExpression and CronTrigger classes API, and in the online tutorial. I sometimes need to make sure that the triggers will get fired at the proper time. The TriggerUtils class allows to output all firing dates of a trigger between two dates : TriggerUtils#computeFireTimesBetween(Trigger, Calendar, Date, Date). The Calendar parameter here is not a java.util.Calendar, but a org.quartz.Calendar, which can be annoying when using both java.util.Calendar and org.quartz.Calendar in the same class.

Making a sample program to output all firing times between two dates is rather simple :

import java.text.ParseException;
import java.util.List;

import org.quartz.CronTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerUtils;
import org.quartz.impl.calendar.AnnualCalendar;


public class ConfirmTriggerFireTimes {

 public static void main(String[] args) throws ParseException {
  new ConfirmTriggerFireTimes().showTriggerFireTimes();
 }
 
 public void showTriggerFireTimes() throws ParseException {
  CronTrigger trigger = new CronTrigger();
  // Fire at 10:15am every Monday, Tuesday, Wednesday, and Thursday 
  trigger.setCronExpression("0 15 10 ? * MON-THU");
  java.util.Calendar startDate = java.util.Calendar.getInstance();
  startDate.set(2011,java.util.Calendar.JANUARY, 1);
  java.util.Calendar endDate = java.util.Calendar.getInstance();
  endDate.set(2011,java.util.Calendar.JANUARY, 31);
  outputFireTimeList(trigger, startDate, endDate);
 }
 
 @SuppressWarnings("rawtypes")
 private void outputFireTimeList(Trigger trigger, java.util.Calendar from, java.util.Calendar to) {
  List fireTimeList = TriggerUtils.computeFireTimesBetween(trigger, null, from.getTime(), to.getTime());
  for ( int i = 0; i < fireTimeList.size(); i++ ) {
   System.out.println(fireTimeList.get(i));
  }
 }
}
In this example, I want to confirm the firing dates of a trigger set to fire at 10:15am every Monday, Tuesday, Wednesday, and Thursday in January. The resulting output is :
Mon Jan 03 10:15:00 JST 2011
Tue Jan 04 10:15:00 JST 2011
Wed Jan 05 10:15:00 JST 2011
Thu Jan 06 10:15:00 JST 2011
Mon Jan 10 10:15:00 JST 2011
Tue Jan 11 10:15:00 JST 2011
Wed Jan 12 10:15:00 JST 2011
Thu Jan 13 10:15:00 JST 2011
Mon Jan 17 10:15:00 JST 2011
Tue Jan 18 10:15:00 JST 2011
Wed Jan 19 10:15:00 JST 2011
Thu Jan 20 10:15:00 JST 2011
Mon Jan 24 10:15:00 JST 2011
Tue Jan 25 10:15:00 JST 2011
Wed Jan 26 10:15:00 JST 2011
Thu Jan 27 10:15:00 JST 2011
Mon Jan 31 10:15:00 JST 2011
This looks good. We can see that any jobs associated to this trigger will be executed at 10:15am every Monday, Tuesday, Wednesday, and Thursday.

Thursday, July 8, 2010

Oracle updating the Sun Java Certifications

Oracle is starting to change the Sun Certifications. There are already four exams in Beta stage :

* Sun Certified JPA Developer for the Java EE6 Platform
* Sun Certified Developer for the Java Web Services for the Java EE6 Platform
* Sun Certified JSP and Servlet Developer for the Java EE6 Platform
* Sun Certified EJB Developer for the Java EE6 Platform

SCBCD5.0 included JPA1.0 in it. Now JPA has its own exam, so if you want to be a Business Component Developer, you'll have to pay two exams. Beta exams were free in the past. Oracle has decided to get a few bucks out of them. You pay $50 to attend the Sun Certified JSP and Servlet Developer for the Java EE6 Platform beta exam, and spend 3 to 5 hours answering 215 questions ! Good luck. The exam objectives are still very evasive, contrary to the old ones which were very detailed. I mean, in the JPA certification, what is "Optimize database access" and "Use advanced JPA features" supposed to include ? If I decide to upgrade one day, I'll wait for the official one. No beta for me.

JavaRanch and the Big Moose Saloon

JavaRanch and its Big Moose Saloon is a great place to go for anybody interested in Java. If you have a Java problem, go there. If you want to pass a Sun (Oracle) certification like SCJP, SCWCD, SCBCD..., go there. There are also forums for Groovy, Scala, Javascript...

Some of the top reasons why you should be a member :

1. It's a very friendly place. No insults. No "you don't even know that ??" kind of mockery. When you sign there, the first thing you are told is to "Be Nice". It's the number one JavaRanch policy. It's a nice place.
2. The place is kept clean by a bunch of bartenders and sheriffs (ranchy names for moderators), whose first rule is also to "Be Nice". There's no exception to the rule. We are all here to help each other.
3. You'll find people answering your problems relatively quickly. I rarely see questions left unanswered.
4. Answers are usually checked by moderators, leading into constructive arguments or more elaborate answers.
5. You'll find great materials and advices to pass the Sun certifications. Advices given by other members who actually passed the exam.
6. You'll meet book authors, some of them being regual members.
7. One of the original goal of the forum was to help people. So insteading of giving away code snippets for coding problems, we tend to lead people toward the answer, to make them think by themselves. This may take some time, but it's really worth it.
8. The ranch listens to you, and you can help it change. If you have any request concerning the forums, people will listen to you, and debate whether or not your ideas could be applied.
9. You'll have a chance to win free books ! A book promotion is conducted almost every week, where book or software authors spend a week answering members' questions about their product. Don't miss it.

I love being there, helping others solving their problems. I learned a lot thanks to the ranch. Not only about Java, but also about dealing with problems. It's also a great motivation to be there, being surrounded by software experts. It's sometimes challenging to "Be Nice". I think things would easily get out of hands in other forums. But not at JavaRanch. You'll be in good hands.

So, what are you waiting for ? Join this great community.