![JAR search and dependency download from the Maven repository](/logo.png)
org.odftoolkit.odfdom.JarManifest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of odfdom-java Show documentation
Show all versions of odfdom-java Show documentation
ODFDOM is an OpenDocument Format (ODF) framework. Its purpose
is to provide an easy common way to create, access and
manipulate ODF files, without requiring detailed knowledge of
the ODF specification. It is designed to provide the ODF
developer community with an easy lightwork programming API
portable to any object-oriented language.
The current reference implementation is written in Java.
/************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
*
* Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
*
* Use is subject to license terms.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at http://www.apache.org/licenses/LICENSE-2.0. You can also
* obtain a copy of the License at http://odftoolkit.org/docs/license.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
* See the License for the specific language governing permissions and
* limitations under the License.
*
************************************************************************/
package org.odftoolkit.odfdom;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.jar.Attributes;
import java.util.jar.Manifest;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Provides metadata about the ODFDOM library as build date, version number. Its
* main() method is the start method of the library, enabling the access of
* versioning methods from command line: "java -jar odfdom.jar".
*/
public class JarManifest {
private static final String CURRENT_CLASS_RESOURCE_PATH = "org/odftoolkit/odfdom/JarManifest.class";
private static final String MANIFEST_JAR_PATH = "META-INF/MANIFEST.MF";
private static String ODFDOM_NAME;
private static String ODFDOM_VERSION;
private static String ODFDOM_WEBSITE;
private static String ODFDOM_BUILD_DATE;
private static String ODFDOM_SUPPORTED_ODF_VERSION;
static {
try {
Manifest manifest = new Manifest(getManifestAsStream());
Attributes attr = manifest.getEntries().get("ODFDOM");
ODFDOM_NAME = attr.getValue("ODFDOM-Name");
ODFDOM_VERSION = attr.getValue("ODFDOM-Version");
ODFDOM_WEBSITE = attr.getValue("ODFDOM-Website");
ODFDOM_BUILD_DATE = attr.getValue("ODFDOM-Built-Date");
ODFDOM_SUPPORTED_ODF_VERSION = attr.getValue("ODFDOM-Supported-Odf-Version");
} catch (Exception e) {
Logger.getLogger(JarManifest.class.getName()).log(Level.SEVERE, null, e);
}
}
private static InputStream getManifestAsStream() {
String versionRef = JarManifest.class.getClassLoader().getResource(CURRENT_CLASS_RESOURCE_PATH).toString();
String manifestRef = versionRef.substring(0, versionRef.lastIndexOf(CURRENT_CLASS_RESOURCE_PATH)) + MANIFEST_JAR_PATH;
URL manifestURL = null;
InputStream in = null;
try {
manifestURL = new URL(manifestRef);
} catch (MalformedURLException ex) {
Logger.getLogger(JarManifest.class.getName()).log(Level.SEVERE, null, ex);
}
try {
in = manifestURL.openStream();
} catch (IOException ex) {
Logger.getLogger(JarManifest.class.getName()).log(Level.SEVERE, null, ex);
}
return in;
}
private JarManifest() {
}
/**
* The main method is meant to be called when the JAR is being executed,
* e.g. "java -jar odfdom.jar" and provides versioning information:
*
* odfdom 0.9-SNAPSHOT (build 20100701-1729)
* from http://odftoolkit.org supporting ODF 1.2
*
* Allowing version access from the JAR without the need to unzip the JAR nor naming the JAR
* (requiring the change of classpath for every version due to JAR naming change).
*/
public static void main(String[] args) throws IOException {
System.out.println(getOdfdomTitle() + " (build " + getOdfdomBuildDate() + ')' + "\nfrom " + getOdfdomWebsite() + " supporting ODF " + getOdfdomSupportedOdfVersion());
}
/**
* Return the name of ODFDOM;
* @return the ODFDOM library name
*/
public static String getOdfdomName() {
return ODFDOM_NAME;
}
/**
* Returns the ODFDOM library title
*
* @return A string containing both the name and the version of the ODFDOM library.
*/
public static String getOdfdomTitle() {
return getOdfdomName() + ' ' + getOdfdomVersion();
}
/**
* Return the version of the ODFDOM library (ie. odfdom.jar)
* @return the ODFDOM library version
*/
public static String getOdfdomVersion() {
return ODFDOM_VERSION;
}
/**
* Return the website of the ODFDOM library (ie. odfdom.jar)
* @return the ODFDOM library website
*/
public static String getOdfdomWebsite() {
return ODFDOM_WEBSITE;
}
/**
* Return the date when ODFDOM had been build
* @return the date of the build formated as "yyyy-MM-dd'T'HH:mm:ss".
*/
public static String getOdfdomBuildDate() {
return ODFDOM_BUILD_DATE;
}
/**
* Returns the version of the OpenDocument specification covered by the ODFDOM library (ie. odfdom.jar)
* @return the supported ODF version number
*/
public static String getOdfdomSupportedOdfVersion() {
return ODFDOM_SUPPORTED_ODF_VERSION;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy