tags:

views:

187

answers:

4

JMS API is not part of JDK 6 as JDBC is. Why is JMS not a part of JDK? Is it because is very old with no progress?

+1  A: 

No, it's part of JEE instead.

Will Hartung
Java EE.
Tom Hawtin - tackline
A: 

I think you were perhaps referring to JMF instead (Java Media Framework)? That certainly fits your characterisation of "very old with no progress" ;-)

Vinay Sajip
+4  A: 

JMS is only an API that is meant to be implemented by a messaging system. When you install a JMS-compatible messaging system (e.g. Tibco EMS, Websphere MQ, etc.) a JAR defining the JMS API will be bundled with it.

Nat
+5  A: 

The standard Java APIs are spread between JavaSE (standard edition) and JavaEE (enterprise edition). JMS is part of JavaEE. The JDK only includes JavaSE.

Which isn't to say that JMS isn't old - it is, and hasn't changed for years. It's not the nicest API Sun ever produced, but it does the job.

Just as the JDK includes an implementation of the JavaSE APIs, if you want to use any of the JavaEE APIs, you need an implementation of those. JMS has many implementations, some of which come as part of a JavaEE appication server, others are standalone implementations.

skaffman
yes, but as JDBC the driver depends on Database provider but we find interfaces in J2SE and we willgive the real driver at runtime. which is not the case with jms. Why they don't add jms interfaces in JESE ?
ouertani
That's a good point. However, JMS is an API generally only used in enterprise systems. The distinction is getting more and more blurred with time, I'll grant you.
skaffman
The J2SE JDK *does* ship with a database provider for JavaDB. However, the J2SE JRE does not.
Nat
Yes, I mean jdk. If you want to develop a jms client you need an external lib to compile...
ouertani