From 9a5ca5202c08cc5b2fb4aec51bff9ce95ce307eb Mon Sep 17 00:00:00 2001 From: Erich Bremer Date: Wed, 26 Apr 2023 16:57:42 -0400 Subject: [PATCH] Bump Jena 4.6.1 --> 4.8.0 Bump Jena 4.6.1 --> 4.8.0 Bump Wicket 9.12.0 --> 9.13.0 Add JCommander for ingest command line parameter parsing --- dependency-reduced-pom.xml | 85 ++++++++- ingestconfig/jni-config.json | 14 -- ingestconfig/proxy-config.json | 3 - ingestconfig/reflect-config.json | 175 ++++++++++-------- ingestconfig/resource-config.json | 9 +- ingestconfig/serialization-config.json | 10 +- pom.xml | 44 +++-- src/main/java/com/ebremer/ethereal/Q.java | 8 +- src/main/java/com/ebremer/halcyon/FL/FL.java | 2 +- .../com/ebremer/halcyon/HalcyonSettings.java | 2 +- .../halcyon/converters/BooleanConverter.java | 29 +++ .../ebremer/halcyon/converters/Engine.java | 8 +- .../ebremer/halcyon/converters/Ingest.java | 65 +++---- .../halcyon/converters/IngestParameters.java | 29 +++ .../com/ebremer/halcyon/gui/LoginForm.java | 5 - .../com/ebremer/halcyon/utils/ImageMeta.java | 4 - .../com/ebremer/halcyon/wicket/MenuPanel.java | 3 +- .../com/ebremer/{halcyon/fea => ns}/LOC.java | 0 18 files changed, 315 insertions(+), 180 deletions(-) create mode 100644 src/main/java/com/ebremer/halcyon/converters/BooleanConverter.java create mode 100644 src/main/java/com/ebremer/halcyon/converters/IngestParameters.java rename src/main/java/com/ebremer/{halcyon/fea => ns}/LOC.java (100%) diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index 1965c286..a78ff444 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -10,7 +10,7 @@ com.ebremer Halcyon Halcyon - 0.1.0 + 0.2.1 A whole slide image annotation, management, and visualization system github @@ -75,7 +75,7 @@ Copyright 2022 Erich Bremer - Stony Brook University LICENSE target - Halcyon-0.0.0.jar + Halcyon-0.2.0.jar true true true @@ -167,7 +167,7 @@ maven-enforcer-plugin - 3.1.0 + 3.2.1 @@ -218,7 +218,7 @@ maven-enforcer-plugin - 3.1.0 + 3.2.1 @@ -228,7 +228,7 @@ org.springframework.experimental spring-aot-maven-plugin - 0.12.1 + 0.12.2 generate @@ -241,7 +241,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.13 + 0.9.20 true @@ -295,7 +295,7 @@ org.springframework.experimental spring-native - 0.12.1 + 0.12.2 @@ -306,7 +306,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.19 + 0.9.21 true @@ -324,11 +324,16 @@ true true true + + --add-opens=java.base/java.nio=ALL-UNNAMED + --enable-preview + --no-fallback -H:ConfigurationFileDirectories=ingestconfig --enable-url-protocols=https -H:+AddAllCharsets + --static @@ -633,6 +638,12 @@ 4.6.1 provided + + org.apache.jena + jena-querybuilder + 4.6.1 + provided + org.apache.jena jena-permissions @@ -730,7 +741,61 @@ com.ebremer BeakGraph - 0.0.0 + 0.1.0 + provided + + + org.apache.shiro + shiro-core + 1.11.0 + provided + + + org.apache.shiro + shiro-web + 1.11.0 + provided + + + com.jcabi + jcabi-aspects + 0.24.1 + provided + + + org.apache.jena + jena-tdb + 4.6.1 + provided + + + io.jsonwebtoken + jjwt-api + 0.11.5 + provided + + + io.jsonwebtoken + jjwt-impl + 0.11.5 + provided + + + io.jsonwebtoken + jjwt-jackson + 0.11.5 + provided + + + org.projectlombok + lombok + 1.18.26 + provided + + + com.beust + jcommander + 1.82 provided @@ -815,7 +880,7 @@ 9.12.0 13.0.12.Final 8.0.0 - 5.29.1 + 5.29.2 4.2.21.Final 1.3.0 17 diff --git a/ingestconfig/jni-config.json b/ingestconfig/jni-config.json index 25530bb8..086802cc 100644 --- a/ingestconfig/jni-config.json +++ b/ingestconfig/jni-config.json @@ -3,20 +3,6 @@ "name":"java.lang.Boolean", "methods":[{"name":"getBoolean","parameterTypes":["java.lang.String"] }] }, -{ - "name":"java.lang.ClassLoader", - "methods":[ - {"name":"getPlatformClassLoader","parameterTypes":[] }, - {"name":"loadClass","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"jdk.internal.loader.ClassLoaders$PlatformClassLoader" -}, -{ - "name":"org.graalvm.jniutils.JNIExceptionWrapperEntryPoints", - "methods":[{"name":"getClassName","parameterTypes":["java.lang.Class"] }] -}, { "name":"sun.management.VMManagementImpl", "fields":[ diff --git a/ingestconfig/proxy-config.json b/ingestconfig/proxy-config.json index 6480e708..0d4f101c 100644 --- a/ingestconfig/proxy-config.json +++ b/ingestconfig/proxy-config.json @@ -1,5 +1,2 @@ [ - { - "interfaces":["org.apache.http.client.methods.CloseableHttpResponse"]} - ] diff --git a/ingestconfig/reflect-config.json b/ingestconfig/reflect-config.json index 8437696b..d5e54cd7 100644 --- a/ingestconfig/reflect-config.json +++ b/ingestconfig/reflect-config.json @@ -1,15 +1,30 @@ [ { - "name":"[B" + "name":"com.beust.jcommander.converters.FileConverter", + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.beust.jcommander.validators.NoValidator", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.beust.jcommander.validators.NoValueValidator", + "methods":[{"name":"","parameterTypes":[] }] }, { - "name":"[Ljava.lang.String;" + "name":"com.ebremer.halcyon.converters.BooleanConverter", + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] }, { - "name":"[Lsun.security.pkcs.SignerInfo;" + "name":"com.ebremer.halcyon.converters.IngestParameters", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true }, { - "name":"com.apicatalog.jsonld.JsonLdVersion" + "name":"com.fasterxml.jackson.databind.ext.Java7HandlersImpl", + "methods":[{"name":"","parameterTypes":[] }] }, { "name":"com.fasterxml.jackson.databind.ext.Java7SupportImpl", @@ -46,14 +61,6 @@ "name":"com.sun.crypto.provider.GaloisCounterMode$AESGCM", "methods":[{"name":"","parameterTypes":[] }] }, -{ - "name":"com.sun.crypto.provider.HmacCore$HmacSHA256", - "methods":[{"name":"","parameterTypes":[] }] -}, -{ - "name":"com.sun.crypto.provider.HmacCore$HmacSHA384", - "methods":[{"name":"","parameterTypes":[] }] -}, { "name":"com.sun.crypto.provider.TlsMasterSecretGenerator", "methods":[{"name":"","parameterTypes":[] }] @@ -67,27 +74,25 @@ {"name":"builder"}, {"name":"extAttributes"} ], - "queriedMethods":[{"name":"getMemoryUsageBeforeGc","parameterTypes":[] }] + "methods":[{"name":"getMemoryUsageBeforeGc","parameterTypes":[] }] }, { "name":"com.sun.management.OperatingSystemMXBean", - "queriedMethods":[ + "methods":[ {"name":"getCpuLoad","parameterTypes":[] }, {"name":"getProcessCpuLoad","parameterTypes":[] } ] }, { - "name":"com.sun.management.UnixOperatingSystemMXBean" -}, -{ - "name":"jakarta.json.Json" -}, -{ - "name":"org.eclipse.parsson.JsonProviderImpl" + "name":"com.sun.management.UnixOperatingSystemMXBean", + "methods":[ + {"name":"getMaxFileDescriptorCount","parameterTypes":[] }, + {"name":"getOpenFileDescriptorCount","parameterTypes":[] } + ] }, { - "name":"java.io.Closeable", - "queriedMethods":[{"name":"close","parameterTypes":[] }] + "name":"java.io.File", + "allDeclaredFields":true }, { "name":"java.io.FilePermission" @@ -134,11 +139,19 @@ "name":"java.lang.Void", "fields":[{"name":"TYPE"}] }, +{ + "name":"java.lang.management.ManagementFactory", + "methods":[{"name":"getRuntimeMXBean","parameterTypes":[] }] +}, { "name":"java.lang.management.MemoryUsage", "queryAllPublicMethods":true, "methods":[{"name":"from","parameterTypes":["javax.management.openmbean.CompositeData"] }] }, +{ + "name":"java.lang.management.RuntimeMXBean", + "methods":[{"name":"getInputArguments","parameterTypes":[] }] +}, { "name":"java.math.BigDecimal" }, @@ -156,31 +169,35 @@ "methods":[{"name":"","parameterTypes":["java.lang.String","java.lang.String"] }] }, { - "name":"java.security.AlgorithmParametersSpi" + "name":"java.nio.Bits", + "fields":[{"name":"UNALIGNED"}] }, { - "name":"java.security.AllPermission" + "name":"java.nio.Buffer", + "fields":[{"name":"address"}] }, { - "name":"java.security.KeyStoreSpi" + "name":"java.nio.ByteBuffer", + "methods":[{"name":"alignedSlice","parameterTypes":["int"] }] }, { - "name":"java.security.SecureRandomParameters" + "name":"java.nio.DirectByteBuffer", + "methods":[{"name":"","parameterTypes":["long","int"] }] }, { - "name":"java.security.SecurityPermission" + "name":"java.security.AlgorithmParametersSpi" }, { - "name":"java.security.interfaces.ECPrivateKey" + "name":"java.security.AllPermission" }, { - "name":"java.security.interfaces.ECPublicKey" + "name":"java.security.KeyStoreSpi" }, { - "name":"java.security.interfaces.RSAPrivateKey" + "name":"java.security.SecureRandomParameters" }, { - "name":"java.security.interfaces.RSAPublicKey" + "name":"java.security.SecurityPermission" }, { "name":"java.util.Date" @@ -197,25 +214,47 @@ "methods":[{"name":"","parameterTypes":["sun.security.x509.X500Name"] }] }, { - "name":"loci.common.LogbackTools", - "methods":[{"name":"setRootLevel","parameterTypes":["java.lang.String"] }] + "name":"jdk.internal.misc.Unsafe", + "methods":[{"name":"getUnsafe","parameterTypes":[] }] }, { - "name":"org.apache.http.HttpMessage", - "methods":[ - {"name":"getAllHeaders","parameterTypes":[] }, - {"name":"getFirstHeader","parameterTypes":["java.lang.String"] }, - {"name":"headerIterator","parameterTypes":["java.lang.String"] }, - {"name":"removeHeaders","parameterTypes":["java.lang.String"] } - ] + "name":"org.apache.arrow.memory.DefaultAllocationManagerFactory", + "fields":[{"name":"FACTORY"}] }, { - "name":"org.apache.http.HttpResponse", - "methods":[ - {"name":"getEntity","parameterTypes":[] }, - {"name":"getStatusLine","parameterTypes":[] }, - {"name":"setEntity","parameterTypes":["org.apache.http.HttpEntity"] } - ] + "name":"org.apache.arrow.vector.types.pojo.ArrowType", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"org.apache.arrow.vector.types.pojo.ArrowType$Int", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"org.apache.arrow.vector.types.pojo.ArrowType$PrimitiveType", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true +}, +{ + "name":"org.apache.arrow.vector.types.pojo.DictionaryEncoding", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"org.apache.arrow.vector.types.pojo.Field", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"org.apache.arrow.vector.types.pojo.Schema", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true }, { "name":"org.apache.jena.ext.com.google.common.cache.Striped64", @@ -239,18 +278,14 @@ {"name":"thread"} ] }, -{ - "name":"org.apache.logging.log4j.spi.ExtendedLogger" -}, -{ - "name":"org.apache.logging.slf4j.SLF4JProvider" -}, -{ - "name":"org.slf4j.spi.LocationAwareLogger" -}, { "name":"sun.misc.Unsafe", - "allDeclaredFields":true + "allDeclaredFields":true, + "methods":[ + {"name":"copyMemory","parameterTypes":["java.lang.Object","long","java.lang.Object","long","long"] }, + {"name":"invokeCleaner","parameterTypes":["java.nio.ByteBuffer"] }, + {"name":"storeFence","parameterTypes":[] } + ] }, { "name":"sun.security.pkcs12.PKCS12KeyStore", @@ -260,10 +295,6 @@ "name":"sun.security.pkcs12.PKCS12KeyStore$DualFormatPKCS12", "methods":[{"name":"","parameterTypes":[] }] }, -{ - "name":"sun.security.provider.DRBG", - "methods":[{"name":"","parameterTypes":["java.security.SecureRandomParameters"] }] -}, { "name":"sun.security.provider.DSA$SHA224withDSA", "methods":[{"name":"","parameterTypes":[] }] @@ -280,6 +311,10 @@ "name":"sun.security.provider.MD5", "methods":[{"name":"","parameterTypes":[] }] }, +{ + "name":"sun.security.provider.NativePRNG", + "methods":[{"name":"","parameterTypes":[] }] +}, { "name":"sun.security.provider.SHA", "methods":[{"name":"","parameterTypes":[] }] @@ -304,10 +339,6 @@ "name":"sun.security.provider.X509Factory", "methods":[{"name":"","parameterTypes":[] }] }, -{ - "name":"sun.security.provider.certpath.PKIXCertPathValidator", - "methods":[{"name":"","parameterTypes":[] }] -}, { "name":"sun.security.rsa.PSSParameters", "methods":[{"name":"","parameterTypes":[] }] @@ -324,14 +355,6 @@ "name":"sun.security.rsa.RSASignature$SHA224withRSA", "methods":[{"name":"","parameterTypes":[] }] }, -{ - "name":"sun.security.rsa.RSASignature$SHA256withRSA", - "methods":[{"name":"","parameterTypes":[] }] -}, -{ - "name":"sun.security.rsa.RSASignature$SHA384withRSA", - "methods":[{"name":"","parameterTypes":[] }] -}, { "name":"sun.security.ssl.KeyManagerFactoryImpl$SunX509", "methods":[{"name":"","parameterTypes":[] }] @@ -344,9 +367,6 @@ "name":"sun.security.ssl.TrustManagerFactoryImpl$PKIXFactory", "methods":[{"name":"","parameterTypes":[] }] }, -{ - "name":"sun.security.util.ObjectIdentifier" -}, { "name":"sun.security.x509.AuthorityInfoAccessExtension", "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] @@ -363,9 +383,6 @@ "name":"sun.security.x509.CRLDistributionPointsExtension", "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] }, -{ - "name":"sun.security.x509.CertificateExtensions" -}, { "name":"sun.security.x509.CertificatePoliciesExtension", "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] diff --git a/ingestconfig/resource-config.json b/ingestconfig/resource-config.json index 11a713f6..0baa6f55 100644 --- a/ingestconfig/resource-config.json +++ b/ingestconfig/resource-config.json @@ -1,17 +1,20 @@ { "resources":{ "includes":[ + { + "pattern":"\\QMETA-INF/services/jakarta.json.spi.JsonProvider\\E" + }, { "pattern":"\\QMETA-INF/services/java.net.spi.URLStreamHandlerProvider\\E" }, { - "pattern":"\\QMETA-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle\\E" + "pattern":"\\QMETA-INF/services/javax.xml.datatype.DatatypeFactory\\E" }, { - "pattern":"\\Qmozilla/public-suffix-list.txt\\E" + "pattern":"\\QMETA-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle\\E" }, { - "pattern":"\\Qorg/apache/http/client/version.properties\\E" + "pattern":"\\Qorg/apache/arrow/memory/DefaultAllocationManagerFactory.class\\E" }, { "pattern":"\\Qorg/apache/jena/arq/arq-properties.xml\\E" diff --git a/ingestconfig/serialization-config.json b/ingestconfig/serialization-config.json index 0d4f101c..f3d7e06e 100644 --- a/ingestconfig/serialization-config.json +++ b/ingestconfig/serialization-config.json @@ -1,2 +1,8 @@ -[ -] +{ + "types":[ + ], + "lambdaCapturingTypes":[ + ], + "proxies":[ + ] +} diff --git a/pom.xml b/pom.xml index 63afba2e..14dd54a5 100644 --- a/pom.xml +++ b/pom.xml @@ -64,8 +64,8 @@ 17 17 17 - 4.6.1 - 9.12.0 + 4.8.0 + 9.13.0 18.0.2 8.0.0 6.10.0 @@ -77,6 +77,7 @@ 4.7.4.Final 13.0.12.Final 4.2.21.Final + 0.2.0 @@ -386,7 +387,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.20 + 0.9.21 true @@ -404,11 +405,16 @@ true true true + + --add-opens=java.base/java.nio=ALL-UNNAMED + --enable-preview + --no-fallback -H:ConfigurationFileDirectories=ingestconfig --enable-url-protocols=https -H:+AddAllCharsets + --static @@ -652,37 +658,43 @@ org.apache.jena jena-core - ${jena.ver} + ${jena.version} + jar + + + org.apache.jena + jena-tdb + ${jena.version} jar org.apache.jena jena-arq - ${jena.ver} + ${jena.version} jar org.apache.jena jena-querybuilder - ${jena.ver} + ${jena.version} jar org.apache.jena jena-permissions jar - ${jena.ver} + ${jena.version} org.apache.jena jena-shacl - ${jena.ver} + ${jena.version} jar org.apache.jena jena-fuseki-main - ${jena.ver} + ${jena.version} + + com.beust + jcommander + 1.82 diff --git a/src/main/java/com/ebremer/ethereal/Q.java b/src/main/java/com/ebremer/ethereal/Q.java index 7e9f9988..0977789b 100644 --- a/src/main/java/com/ebremer/ethereal/Q.java +++ b/src/main/java/com/ebremer/ethereal/Q.java @@ -85,11 +85,11 @@ public static void main(String[] args) { pss.setNsPrefix("exif", EXIF.NS); Query ha = QueryFactory.create(pss.toString()); WhereHandler wh = new WhereHandler(ha); - try { + // try { wh.addFilter("filter(!bound(?collection))"); - } catch (ParseException ex) { - Logger.getLogger(Q.class.getName()).log(Level.SEVERE, null, ex); - } + // } catch (ParseException ex) { + // Logger.getLogger(Q.class.getName()).log(Level.SEVERE, null, ex); + // } //Q.getElementFilter(ha); } } diff --git a/src/main/java/com/ebremer/halcyon/FL/FL.java b/src/main/java/com/ebremer/halcyon/FL/FL.java index 2fe720c0..35921a77 100644 --- a/src/main/java/com/ebremer/halcyon/FL/FL.java +++ b/src/main/java/com/ebremer/halcyon/FL/FL.java @@ -550,7 +550,7 @@ public static void main(String[] args) throws IOException, URISyntaxException { //String base = "http://www.ebremer.com/YAY"; String base = "http://localhost:8888/halcyon/?iiif="; //URI uri = new URI("file:///D:/data2/halcyon/hm.zip"); - URI uri = new URI("file:///D:/data2/halcyon/j4.zip"); + URI uri = new URI("file:///D:/HalcyonStorage/nuclearsegmentation2019/coad/TCGA-AA-3872-01Z-00-DX1.eb3732ee-40e3-4ff0-a42b-d6a85cfbab6a.zip"); BeakGraph g = new BeakGraph(uri); Model m = ModelFactory.createModelForGraph(g); diff --git a/src/main/java/com/ebremer/halcyon/HalcyonSettings.java b/src/main/java/com/ebremer/halcyon/HalcyonSettings.java index ea9c717d..97bea5ab 100644 --- a/src/main/java/com/ebremer/halcyon/HalcyonSettings.java +++ b/src/main/java/com/ebremer/halcyon/HalcyonSettings.java @@ -53,7 +53,7 @@ public class HalcyonSettings { private static final int DEFAULTSPARQLPORT = 8887; private final Property SPARQLPORT; private final Property MULTIVIEWERLOCATION; - public static final String VERSION = "0.2.1"; + public static final String VERSION = "0.3.0"; public static Resource HALCYONAGENT = ResourceFactory.createResource(HAL.NS+"/VERSION/"+VERSION); private static final String MasterSettingsLocation = "settings.ttl"; private Resource Master; diff --git a/src/main/java/com/ebremer/halcyon/converters/BooleanConverter.java b/src/main/java/com/ebremer/halcyon/converters/BooleanConverter.java new file mode 100644 index 00000000..db5c738e --- /dev/null +++ b/src/main/java/com/ebremer/halcyon/converters/BooleanConverter.java @@ -0,0 +1,29 @@ +package com.ebremer.halcyon.converters; + +import com.beust.jcommander.IStringConverter; + +public class BooleanConverter implements IStringConverter { + + @Override + public Boolean convert(String value) { + if (value == null || value.isEmpty()) { + throw new IllegalArgumentException("Boolean value cannot be null or empty"); + } + + String lowerCaseValue = value.toLowerCase(); + if (null == lowerCaseValue) { + throw new IllegalArgumentException("Invalid boolean value: " + value); + } else switch (lowerCaseValue) { + case "true": + case "t": + case "1": + return true; + case "false": + case "f": + case "0": + return false; + default: + throw new IllegalArgumentException("Invalid boolean value: " + value); + } + } +} diff --git a/src/main/java/com/ebremer/halcyon/converters/Engine.java b/src/main/java/com/ebremer/halcyon/converters/Engine.java index f924cf4d..904eb4a0 100644 --- a/src/main/java/com/ebremer/halcyon/converters/Engine.java +++ b/src/main/java/com/ebremer/halcyon/converters/Engine.java @@ -537,13 +537,13 @@ public static void main(String[] args) throws FileNotFoundException, IOException //StopWatch sw = new StopWatch(); //Model yay = Engine.Load(good); //sw.Lapse("# of triples : "+yay.size()); - BufferAllocator allocator = new RootAllocator(); - BeakWriter bw = new BeakWriter(allocator, builder, "halcyon"); + //BufferAllocator allocator = new RootAllocator(); + BeakWriter bw = new BeakWriter(builder, "halcyon"); bw.Register(src); - bw.CreateDictionary(allocator); + bw.CreateDictionary(); engine.HilbertPhase(bw); bw.Add(src); - bw.Create(allocator); + bw.Create(builder); System.out.println("RDE : "+rde.getURI()); rde.getModel().add(Engine.getMeta(src, rde)); rde.getModel().add(Engine.getHalcyonFeatures(src, rde)); diff --git a/src/main/java/com/ebremer/halcyon/converters/Ingest.java b/src/main/java/com/ebremer/halcyon/converters/Ingest.java index 449e456d..05aa972f 100644 --- a/src/main/java/com/ebremer/halcyon/converters/Ingest.java +++ b/src/main/java/com/ebremer/halcyon/converters/Ingest.java @@ -1,5 +1,7 @@ package com.ebremer.halcyon.converters; +import com.beust.jcommander.JCommander; +import com.beust.jcommander.ParameterException; import com.ebremer.beakgraph.rdf.BeakWriter; import com.ebremer.halcyon.HalcyonSettings; import com.ebremer.ns.EXIF; @@ -13,8 +15,6 @@ import java.nio.file.Path; import java.util.logging.Level; import java.util.logging.Logger; -import org.apache.arrow.memory.BufferAllocator; -import org.apache.arrow.memory.RootAllocator; import org.apache.jena.rdf.model.Model; import org.apache.jena.rdf.model.Resource; import org.apache.jena.vocabulary.RDF; @@ -32,18 +32,13 @@ public void OneFile(File source, File dest, boolean optimize) { ROCrate.ROCrateBuilder builder = new ROCrate.ROCrateBuilder(new ZipWriter(dest)); Resource rde = builder.getRDE(); Model m = Engine.Load(source,builder.getRDE()); - engine = new Engine(m, optimize); - //try(FileOutputStream fos = new FileOutputStream(new File("/HDT/dump.ttl"));) { - // RDFDataMgr.write(fos, m, Lang.TURTLE); - //} - - try (BufferAllocator allocator = new RootAllocator()) { - BeakWriter bw = new BeakWriter(allocator, builder, "halcyon"); + engine = new Engine(m, optimize); + try (BeakWriter bw = new BeakWriter(builder, "halcyon")) { bw.Register(m); - bw.CreateDictionary(allocator); + bw.CreateDictionary(); engine.HilbertPhase(bw); bw.Add(m); - bw.Create(allocator); + bw.Create(builder); rde.getModel().add(Engine.getMeta(m, rde)); Model whack = Engine.getHalcyonFeatures(m, rde); rde.getModel().add(whack); @@ -53,6 +48,8 @@ public void OneFile(File source, File dest, boolean optimize) { .addLiteral(EXIF.height,engine.getHeight()); } catch (java.lang.IllegalStateException ex) { System.out.println(ex.toString()); + } catch (Exception ex) { + Logger.getLogger(Ingest.class.getName()).log(Level.SEVERE, null, ex); } builder.build(); } catch (IOException ex) { @@ -61,15 +58,13 @@ public void OneFile(File source, File dest, boolean optimize) { } } - public void Process(String source, boolean optimize, String destination) throws FileNotFoundException, IOException { - System.out.println("PROCESSING : "+source+" ===> "+destination); - File src = new File(source); - File dest = new File(destination); + public void Process(File src, boolean optimize, File dest) throws FileNotFoundException, IOException { + System.out.println("PROCESSING : "+src+" ===> "+dest); if (!dest.exists()) { dest.mkdirs(); } if (src.isDirectory()) { - Path path = Path.of(source); + Path path = src.toPath(); Files .walk(path) .filter(f->!f.toFile().isDirectory()) @@ -81,7 +76,7 @@ public void Process(String source, boolean optimize, String destination) throws String nd = p.toString(); nd = nd.substring(0,nd.length()-".ttl.gz".length())+".zip"; Path nnd = Path.of(nd); - nnd = Path.of(destination,src.toPath().relativize(nnd).toString()); + nnd = Path.of(dest.toString(),src.toPath().relativize(nnd).toString()); File nndf = nnd.toFile(); if (!nndf.exists()) { OneFile(p.toFile(), nnd.toFile(), optimize); @@ -97,21 +92,27 @@ public void Process(String source, boolean optimize, String destination) throws public static void main(String[] args) throws FileNotFoundException, IOException { ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME); root.setLevel(ch.qos.logback.classic.Level.OFF); - //String[] temp = {"D:\\luke\\load2\\rdf.gmm","D:\\luke\\load2\\zip-cluster_20_json_gmm","heatmap"}; - //String[] temp = {"D:\\tcga\\nuclearsegmentation2019\\rdf","D:\\tcga\\nuclearsegmentation2019\\zip","segmentation"}; - //args = temp; - if (args.length == 3) { - String src = args[0]; - String dest = args[1]; - boolean optimize = args[2].equals("heatmap"); - new Ingest().Process(src, optimize, dest); - } else { - System.out.println("Halcyon ----------------------------------------------------"); - System.out.println("ingest - version : "+HalcyonSettings.VERSION); - System.out.println(""" - Usage: - ingest (heatmap|segmentation) - """); + IngestParameters params = new IngestParameters(); + JCommander jc = JCommander.newBuilder().addObject(params).build(); + jc.setProgramName("ingest"); + try { + jc.parse(args); + if (params.isHelp()) { + jc.usage(); + System.exit(0); + } else { + if (params.src.exists()) { + new Ingest().Process(params.src, params.optimize, params.dest); + } else { + System.out.println("Source does not exist! "+params.src); + } + } + } catch (ParameterException ex) { + if (params.version) { + System.out.println("ingest - Version : "+HalcyonSettings.VERSION); + } else { + System.out.println(ex.getMessage()); + } } } } diff --git a/src/main/java/com/ebremer/halcyon/converters/IngestParameters.java b/src/main/java/com/ebremer/halcyon/converters/IngestParameters.java new file mode 100644 index 00000000..3500e9ca --- /dev/null +++ b/src/main/java/com/ebremer/halcyon/converters/IngestParameters.java @@ -0,0 +1,29 @@ +package com.ebremer.halcyon.converters; + +import com.beust.jcommander.Parameter; +import java.io.File; + +/** + * + * @author erich + */ +public class IngestParameters { + @Parameter(names = "-help", converter = BooleanConverter.class, help = true) + private boolean help; + + public boolean isHelp() { + return help; + } + + @Parameter(names = "-src", description = "Source Folder or File", required = true) + public File src; + + @Parameter(names = "-dest", description = "Destination Folder or File", required = true) + public File dest; + + @Parameter(names = {"-heatmap"}, converter = BooleanConverter.class) + public boolean optimize = false; + + @Parameter(names = {"-version","-v"}, converter = BooleanConverter.class) + public boolean version = false; +} diff --git a/src/main/java/com/ebremer/halcyon/gui/LoginForm.java b/src/main/java/com/ebremer/halcyon/gui/LoginForm.java index 390aa0de..0f08356d 100644 --- a/src/main/java/com/ebremer/halcyon/gui/LoginForm.java +++ b/src/main/java/com/ebremer/halcyon/gui/LoginForm.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package com.ebremer.halcyon.gui; import org.apache.wicket.markup.html.basic.Label; diff --git a/src/main/java/com/ebremer/halcyon/utils/ImageMeta.java b/src/main/java/com/ebremer/halcyon/utils/ImageMeta.java index bedf0a80..87f093e2 100644 --- a/src/main/java/com/ebremer/halcyon/utils/ImageMeta.java +++ b/src/main/java/com/ebremer/halcyon/utils/ImageMeta.java @@ -1,7 +1,3 @@ -/* - * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license - * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template - */ package com.ebremer.halcyon.utils; import com.ebremer.ns.EXIF; diff --git a/src/main/java/com/ebremer/halcyon/wicket/MenuPanel.java b/src/main/java/com/ebremer/halcyon/wicket/MenuPanel.java index 902f793f..b4d6e03d 100644 --- a/src/main/java/com/ebremer/halcyon/wicket/MenuPanel.java +++ b/src/main/java/com/ebremer/halcyon/wicket/MenuPanel.java @@ -67,9 +67,8 @@ public void onClick() { System.out.println("GROUP : "+k); }); if (hp.getGroups().contains("/admin")) { - System.out.println("ADMIN DETECTED"); security.setVisible(true); - threed.setVisible(true); + //threed.setVisible(true); account.setVisible(true); collections.setVisible(true); } diff --git a/src/main/java/com/ebremer/halcyon/fea/LOC.java b/src/main/java/com/ebremer/ns/LOC.java similarity index 100% rename from src/main/java/com/ebremer/halcyon/fea/LOC.java rename to src/main/java/com/ebremer/ns/LOC.java