(taking to dev)

Seems kind of pointless API to me.


> On Jul 29, 2015, at 1:56 PM, Michael Gentry <mgen...@masslight.net> wrote:
> 
> Maybe we should add a Cayenne.getVersion() method?
> 
> 
> 
>> On Jul 27, 2015, at 10:41 AM, Mike Kienenberger <mkien...@gmail.com> wrote:
>> 
>> Our jar MANIFEST file also contains:
>> 
>> Bundle-Version: 4.0.0.M2
>> 
>> But shouldn't we also be supplying this information as
>> 
>> Implementation-Version: 4.0.0.M2
>> 
>> so it's in a standardized place?
>> 
>> I'd guess that's a simple maven build change -- I know how to do it
>> under ant, but not under maven.
>> 
>> 
>> Once we do that, then we can use the standard java libraries to
>> provide the information:
>> 
>>       Object object = new CayenneRuntimeException();
>>       Package objPackage = object.getClass().getPackage();
>>       System.out.println("Implementation Version: " +
>> objPackage.getImplementationVersion());
>> 
>> produces
>> 
>> Implementation Version: 4.0.0.M2
>> 
>> when I add an Implementation-Version: line to the MANIFEST in
>> cayenne-server-4.0.M2.jar
>> 
>> =====
>>  Manifest-Version: 1.0
>> + Implementation-Version: 4.0.0.M2
>>  Export-Package: org.apache.cayenne;uses:="org.apache.cayenne.reflect,o
>> =====
>> 
>>> On Mon, Jul 27, 2015 at 9:57 AM, Andrus Adamchik <and...@objectstyle.org> 
>>> wrote:
>>> 
>>>> On Jul 27, 2015, at 4:21 PM, Joe Baldwin <jfbald...@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
>>> 
>>> 
> 

Reply via email to