I am having difficultly in understanding how various vendors implement a specification, for example JPA or JDBC etc.
Basically the doubt is, for a vendor to implement a specification, it need to implement the interfaces (though this might be simplified statement).
Taking case of msql jdbc driver, for example it is importing import java.sql.Connection in class ConnectionImpl:
Now my doubt is, from where does java.sql.Connection come from?
How are the specification packaged? Are they placed like Interfaces, classes and packages as a .jar?
I know java.sql.Connection is part of rt.jar, so does it mean that JDBC driver should have this rt.jar? If so, then does it mean that rt.jar comes as part of jdbc driver as well (else how would it compile?).
I am confused in this, can anyone help me in understanding it better?
import java.sql.Connectionwill be sort of "undefined" unless the actual jar (which has the definition) would be provided? So even though we have the "final jar" produced, it is still incomplete?