Обсуждение: Versioned vs unversioned jarfile names?

Поиск
Список
Период
Сортировка

Versioned vs unversioned jarfile names?

От
Tom Lane
Дата:
I have a request filed here:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=145744
to supply version-less symlinks for the JDBC jarfiles that are
distributed in the Postgres RPMs.  Does anyone have a comment
on whether this is a good or bad idea?

I personally thought that it would be better to use names that aren't
totally versionless, but include some sort of major version number that
indicates API level, or something like that.  But I don't know what
would be appropriate.  Thoughts welcome.

            regards, tom lane

Re: Versioned vs unversioned jarfile names?

От
Dave Cramer
Дата:
We could certainly provide symlinks with specific information. We do
have an interesting problem that most others don't ie API versions.

How about publishing them to jpackage.org ?

Dave

Tom Lane wrote:

>I have a request filed here:
>https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=145744
>to supply version-less symlinks for the JDBC jarfiles that are
>distributed in the Postgres RPMs.  Does anyone have a comment
>on whether this is a good or bad idea?
>
>I personally thought that it would be better to use names that aren't
>totally versionless, but include some sort of major version number that
>indicates API level, or something like that.  But I don't know what
>would be appropriate.  Thoughts welcome.
>
>            regards, tom lane
>
>---------------------------(end of broadcast)---------------------------
>TIP 8: explain analyze is your friend
>
>
>
>

--
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561


Re: Versioned vs unversioned jarfile names?

От
Kris Jurka
Дата:

On Mon, 24 Jan 2005, Tom Lane wrote:

> I have a request filed here:
> https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=145744
> to supply version-less symlinks for the JDBC jarfiles that are
> distributed in the Postgres RPMs.  Does anyone have a comment
> on whether this is a good or bad idea?
>

It's tough to say, not knowing what happens currently for the jar files or
the server.  If an upgrade is going to change the server major version
without renaming say versioning binaries (psql-74 -> psql-80) then it
doesn't seem any more dangerous to swap out the jar files.

Do the jar files now get installed as postgresql-80-jdbc3 or
postgresql-80-309-jdbc3?  If it's the second case that would be a real
pain to adjust your application to point to the new one every time it
changed.

What about multiple versions installed at the same time?  Is that allowed?
Who gets the generic symlink, the highest version, the last installed,
user choice? Those might be tough questions, but in general the idea seems
alright, because if they want to specify what specific major version to
use they can still do that.

Kris Jurka


Re: Versioned vs unversioned jarfile names?

От
Tom Lane
Дата:
Kris Jurka <books@ejurka.com> writes:
> Do the jar files now get installed as postgresql-80-jdbc3 or
> postgresql-80-309-jdbc3?

Currently they are installed under the same names they have on the FTP
server, viz

postgresql-8.0.309.jdbc2.jar
postgresql-8.0.309.jdbc2ee.jar
postgresql-8.0.309.jdbc3.jar

This is good for identifying the upstream source, but it does seem like
an awfully specific name to put into an application's classpath.

Another issue is that the prior release still had a jdbc1 jar:

pg74.215.jdbc1.jar
pg74.215.jdbc2.jar
pg74.215.jdbc2ee.jar
pg74.215.jdbc3.jar

> What about multiple versions installed at the same time?  Is that allowed?

Yeah.  We already have these same concepts in place for shared
libraries, where it's customary to provide (eg)

/usr/lib/libpq.so.3.2*
/usr/lib/libpq.so.3@ -> libpq.so.3.2
/usr/lib/libpq.so@ -> libpq.so.3.2

Basically I'm wondering whether there's an equivalent concept to
libraries' major version number.

            regards, tom lane

Re: Versioned vs unversioned jarfile names?

От
Dave Cramer
Дата:


Tom Lane wrote:
Kris Jurka <books@ejurka.com> writes: 
Do the jar files now get installed as postgresql-80-jdbc3 or
postgresql-80-309-jdbc3?   
Currently they are installed under the same names they have on the FTP
server, viz

postgresql-8.0.309.jdbc2.jar
postgresql-8.0.309.jdbc2ee.jar
postgresql-8.0.309.jdbc3.jar

This is good for identifying the upstream source, but it does seem like
an awfully specific name to put into an application's classpath. 
Agreed, I think we can drop the version number out of the linked file name
Another issue is that the prior release still had a jdbc1 jar:

pg74.215.jdbc1.jar
pg74.215.jdbc2.jar
pg74.215.jdbc2ee.jar
pg74.215.jdbc3.jar
 
We've dropped support for jdk 1 and subsequently jdbc1
What about multiple versions installed at the same time?  Is that allowed?     
Yeah.  We already have these same concepts in place for shared
libraries, where it's customary to provide (eg)

/usr/lib/libpq.so.3.2*
/usr/lib/libpq.so.3@ -> libpq.so.3.2
/usr/lib/libpq.so@ -> libpq.so.3.2

Basically I'm wondering whether there's an equivalent concept to
libraries' major version number. 
I don't think this works with java, there is more information in the class file besides the signature of the class. The jar needs to be compiled by the same version of java that it will run under.
		regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

 

-- 
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561