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 >> >>