cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Baldwin <jfbald...@earthlink.net>
Subject Re: Version API
Date Mon, 27 Jul 2015 14:32:27 GMT
The META-INF method is not as concise as the Project.CURRENT_PROJECT_VERSION method, but it
appears to be more correct.  

You had a mistake in your code.  Here is the corrected version.

	Properties props = new Properties();
	String path = "META-INF/maven/org.apache.cayenne/cayenne-server/pom.properties";
	try(InputStream in = ObjectContext.class.getClassLoader().getResourceAsStream(path)) {
		props.load(in);
	}
	String cayenneServerVersion = props.getProperty("version");


This results in the string:

	4.0.M2

This is adequate for a system health-check, thanks.
Joe


> On Jul 27, 2015, at 9:57 AM, Andrus Adamchik <andrus@objectstyle.org> wrote:
> 
> 
>> On Jul 27, 2015, at 4:21 PM, Joe Baldwin <jfbaldwin@earthlink.net> wrote:
>> 
>> 1. My goal is to display the version of cayenne server jar I have added to the project
with Cayenne 4.0.
> 
> As it happens, Project.CURRENT_PROJECT_VERSION (or its 4.0 alternative) is not the same
as the version of cayenne server jar. It denotes the version of the XML mapping format, which
does not align with the .jar version. 
> 
> If you need the version of the jar, here is another approach. While you are not using
Maven, Cayenne is assembled with Maven, so each Cayenne jar has some extra metadata that you
get for free. Namely there's a "pom.properties" file that you can read and get the version:
> 
> Properties props = new Properties();
> String path = "META-INF/maven/org.apache.cayenne/cayenne-server/pom.properties";
> try(InputStream in : ObjectContext.class.getClassLoader().getResourceAsStream(path))
{
>   props.load(in);
> }
> 
> String version = props.getProperty("version");
> 
> Andrus
> 
> 


Mime
View raw message