![JAR search and dependency download from the Maven repository](/logo.png)
com.github.andyshao.system.InfoTask Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Gear Show documentation
Show all versions of Gear Show documentation
Enhance and formating the coding of JDK
The newest version!
package com.github.andyshao.system;
import com.github.andyshao.lang.GeneralSystemProperty;
import com.github.andyshao.nio.BufferReader;
import com.github.andyshao.nio.StringBufferReader;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
import java.nio.channels.Channels;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
/**
*
* Title:
* Descript:
* Copyright: Copryright(c) Sep 10, 2015
* Encoding:UNIX UTF-8
*
* @author Andy.Shao
*
*/
public class InfoTask implements Task {
/**key words*/
public static final String KEY_WORDS = "-info";
private static final String TARGET = "META-INF/MANIFEST.MF";
private volatile Task nextTask = Task.EMPTY_TASK;
@Override
public Task getNextTask() {
return this.nextTask;
}
@Override
public boolean isDuty(String[] args) {
if (args == null || args.length == 0) return false;
else return args[0].equals(InfoTask.KEY_WORDS);
}
private void localProcess(String[] args) throws ZipException , IOException , ParserConfigurationException , SAXException {
try (final ZipFile zipFile = new ZipFile(new File(GeneralSystemProperty.JAVA_CLASS_PATH.value()))) {
final ZipEntry manifest = zipFile.getEntry(InfoTask.TARGET);
try (final StringBufferReader reader = new StringBufferReader(Channels.newChannel(zipFile.getInputStream(manifest)));) {
reader.setFindSeparatePoint((buffer) -> new BufferReader.SeparatePoint(-1));
System.out.println(reader.read());
}
final ZipEntry pom = zipFile.getEntry(VersionTask.TARGET);
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
final DocumentBuilder db = factory.newDocumentBuilder();
final Document xmlDoc = db.parse(zipFile.getInputStream(pom));
final Element root = xmlDoc.getDocumentElement();
System.out.println("groupId: " + root.getElementsByTagName("groupId").item(0).getTextContent());
System.out.println("artifactId: " + root.getElementsByTagName("artifactId").item(0).getTextContent());
System.out.println("version: " + root.getElementsByTagName("version").item(0).getTextContent());
System.out.println("packaging: " + root.getElementsByTagName("packaging").item(0).getTextContent());
System.out.println("description: " + root.getElementsByTagName("description").item(0).getTextContent());
System.out.println("url: " + root.getElementsByTagName("url").item(0).getTextContent());
System.out.println("inceptionYear: " + root.getElementsByTagName("inceptionYear").item(0).getTextContent());
final NodeList licenses = ((Element) root.getElementsByTagName("licenses").item(0)).getElementsByTagName("license");
for (int i = 0 ; i < licenses.getLength() ; i++) {
final Element license = (Element) licenses.item(i);
System.out.println("license.name: " + license.getElementsByTagName("name").item(0).getTextContent());
System.out.println("license.url: " + license.getElementsByTagName("url").item(0).getTextContent());
System.out.println("license.distribution: " + license.getElementsByTagName("distribution").item(0).getTextContent());
}
final NodeList developers = ((Element) root.getElementsByTagName("developers").item(0)).getElementsByTagName("developer");
for (int i = 0 ; i < developers.getLength() ; i++) {
final Element developer = (Element) developers.item(i);
System.out.println("developer.name: " + developer.getElementsByTagName("name").item(0).getTextContent());
System.out.println("developer.email: " + developer.getElementsByTagName("email").item(0).getTextContent());
System.out.println("developer.organization: " + developer.getElementsByTagName("organization").item(0).getTextContent());
System.out.println("developer.organizationUrl: " + developer.getElementsByTagName("organizationUrl").item(0).getTextContent());
}
final Element scm = (Element) root.getElementsByTagName("scm").item(0);
System.out.println("scm.connection: " + scm.getElementsByTagName("connection").item(0).getTextContent());
System.out.println("scm.developerConnection: " + scm.getElementsByTagName("developerConnection").item(0).getTextContent());
System.out.println("scm.url: " + scm.getElementsByTagName("url").item(0).getTextContent());
final Element issueManagement = (Element) root.getElementsByTagName("issueManagement").item(0);
System.out.println("issueManagement.system: " + issueManagement.getElementsByTagName("system").item(0).getTextContent());
System.out.println("system.url: " + issueManagement.getElementsByTagName("url").item(0).getTextContent());
final Element distributionManagement = (Element) root.getElementsByTagName("distributionManagement").item(0);
final Element snapshotRepository = (Element) distributionManagement.getElementsByTagName("snapshotRepository").item(0);
System.out.println("distributionManagement.snapshotRepository.id: " + snapshotRepository.getElementsByTagName("id").item(0).getTextContent());
System.out.println("distributionManagement.snapshotRepository.url: " + snapshotRepository.getElementsByTagName("url").item(0).getTextContent());
final Element repository = (Element) distributionManagement.getElementsByTagName("repository").item(0);
System.out.println("distributionManagement.repository.id: " + repository.getElementsByTagName("id").item(0).getTextContent());
System.out.println("distributionManagement.repository.url: " + repository.getElementsByTagName("url").item(0).getTextContent());
final NodeList dependencies = ((Element) root.getElementsByTagName("dependencies").item(0)).getElementsByTagName("dependency");
for (int i = 0 ; i < dependencies.getLength() ; i++) {
final Element dependency = (Element) dependencies.item(i);
System.out.println("dependency.groupId: " + dependency.getElementsByTagName("groupId").item(0).getTextContent());
System.out.println("dependency.artifactId: " + dependency.getElementsByTagName("artifactId").item(0).getTextContent());
System.out.println("dependency.version: " + dependency.getElementsByTagName("version").item(0).getTextContent());
final NodeList scope = dependency.getElementsByTagName("scope");
if (scope == null || scope.getLength() == 0) ;
else System.out.println("dependency.scope: " + dependency.getElementsByTagName("scope").item(0).getTextContent());
}
}
}
@Override
public void process(String[] args) {
try {
this.localProcess(args);
} catch (IOException | ParserConfigurationException | SAXException e) {
throw new RuntimeException(e);
}
}
/**
* set next task
* @param nextTask next task
*/
public void setNextTask(Task nextTask) {
this.nextTask = nextTask;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy