Compare commits

...

31 Commits

Author SHA1 Message Date
Fabio Sinibaldi f031d68224 JDK 11 compliance 2023-01-19 18:05:32 +01:00
Fabio Sinibaldi 13f9b12366 Merge pull request '20760_https' (#6) from 20760_https into master
Reviewed-on: #6
2023-01-19 17:48:34 +01:00
Fabio Sinibaldi 7bd61985f7 Release 1.3.1 2023-01-19 17:47:19 +01:00
Fabio Sinibaldi f4096a3e97 Fixes #20760 2022-05-05 16:04:54 +02:00
Fabio Sinibaldi 95a837ba48 Merge pull request '1.3.0' (#5) from 1.3.0 into master 2021-03-25 13:00:24 +01:00
Fabio Sinibaldi a1f284eae0 release 2021-03-25 12:54:40 +01:00
Fabio Sinibaldi 00413916f7 Force 2007 XML format 2021-03-25 12:40:31 +01:00
Fabio Sinibaldi c917eb76a4 restricted sdi-library range 2021-03-25 12:16:13 +01:00
Fabio Sinibaldi 4d7b97c5e1 derby dependency 2021-03-25 11:56:58 +01:00
Fabio Sinibaldi 8271d0b973 Proxy support 2021-03-25 11:09:20 +01:00
Fabio Sinibaldi 1459d8b64c Use of EPSG dataset 2021-03-25 11:08:57 +01:00
Fabio Sinibaldi fed8b3cbef Merge pull request '1.2.0' (#4) from 1.2.0 into master 2021-03-17 16:34:18 +01:00
Fabio Sinibaldi 8e204019c8 releasing 2021-03-17 16:33:54 +01:00
Fabio Sinibaldi 502b0d30aa forcing cdm scope to compile 2021-03-17 15:21:24 +01:00
Fabio Sinibaldi ce3f825cb9 Merge pull request '1.2.0' (#3) from 1.2.0 into master 2021-03-17 11:38:04 +01:00
Fabio Sinibaldi a2c07335aa releasing fix to #20982 2021-03-17 11:37:37 +01:00
Fabio Sinibaldi 2f23e571fc revert to previous 2021-03-17 11:23:20 +01:00
Fabio Sinibaldi d4d4a5e376 reduced sdi-library upperbound 2021-03-16 18:37:55 +01:00
Fabio Sinibaldi 9f91758a82 removed unused jaxb dependencies 2021-03-16 17:42:50 +01:00
Fabio Sinibaldi 252e273556 Force 19139:2007 2021-03-16 17:14:39 +01:00
Fabio Sinibaldi 8512f573ba Merge pull request '1.2.0' (#2) from 1.2.0 into master 2021-03-15 18:35:05 +01:00
Fabio Sinibaldi 94064f17f7 releasing fixes 2021-03-15 18:34:27 +01:00
Fabio Sinibaldi 96e2f61b03 removed non-free 2021-03-15 18:19:24 +01:00
Fabio Sinibaldi 6e05cba2ec snapshot testing 2021-03-15 17:31:35 +01:00
Fabio Sinibaldi b431076650 excuded EPSG from release 2021-03-15 17:15:05 +01:00
Fabio Sinibaldi 77abccd9cd fixed dependency scope 2021-03-15 16:51:41 +01:00
Fabio Sinibaldi e0cc9af6ee Merge pull request '1.2.0' (#1) from 1.2.0 into master 2021-03-12 18:09:00 +01:00
Fabio Sinibaldi d70b7a6347 release 2021-03-12 18:03:06 +01:00
Fabio Sinibaldi 8981b3ffd6 Integrated Ucar library 2021-03-11 16:14:17 +01:00
Fabio Sinibaldi 05ff46dc6f UCAR Library 2021-03-03 16:14:22 +01:00
Fabio Sinibaldi 8d8005f0c0 Upgrade to apache-sis 1.0 2021-03-02 14:41:11 +01:00
14 changed files with 409 additions and 88 deletions

View File

@ -1,36 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

1
.settings/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/org.eclipse.jdt.core.prefs

View File

@ -1,5 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.8

View File

@ -2,6 +2,17 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
# Changelog for org.gcube.data.transfer.sis-geotk-plugin
## [v1.3.1] 2021-03-25
Fixes [#20760](https://support.d4science.org/issues/20760) https endpoints
## [v1.3.0] 2021-03-25
Use of EPSG Dataset
Proxy support
## [v1.2.0] 2020-09-07
Upgrade to apache-sis 1.0
## [v1.1.3] 2020-09-07
### Fixes

0
log.txt Normal file
View File

95
pom.xml
View File

@ -1,4 +1,5 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@ -8,14 +9,15 @@
</parent>
<groupId>org.gcube.data.transfer</groupId>
<artifactId>sis-geotk-plugin</artifactId>
<version>1.1.3</version>
<version>1.3.1</version>
<name>Sis/GeoToolkit plugin</name>
<description>Apache Sis/Geotk plugin for data-transfer-service</description>
<properties>
<sis.version>0.7</sis.version>
<sis.version>1.0</sis.version>
<sis.utils.modules>${sis.version}</sis.utils.modules>
<gitBaseUrl>https://code-repo.d4science.org/gCubeSystem</gitBaseUrl>
<netcdfJavaVersion>5.3.3</netcdfJavaVersion>
</properties>
<scm>
@ -30,14 +32,22 @@
<dependency>
<groupId>org.gcube.distribution</groupId>
<artifactId>gcube-smartgears-bom</artifactId>
<version>2.0.0</version>
<version>2.2.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.gcube.distribution</groupId>
<artifactId>gcube-bom</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.sis/storage -->
<dependency>
<groupId>org.apache.sis</groupId>
<artifactId>storage</artifactId>
<version>1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@ -48,7 +58,7 @@
<dependency>
<groupId>org.gcube.data.transfer</groupId>
<artifactId>data-transfer-plugin-framework</artifactId>
<version>[1.0.2,2.0.0-SNAPSHOT)</version>
<version>[1.0.2,2.0.0)</version>
</dependency>
<dependency>
@ -69,7 +79,8 @@
<dependency>
<groupId>org.gcube.spatial.data</groupId>
<artifactId>sdi-library</artifactId>
<version>[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
<version>[1.0.0,1.0.2]</version>
<!-- <version>[1.0.0,2.0)</version> -->
</dependency>
<!-- SMARTGEARS -->
@ -96,6 +107,48 @@
<artifactId>sis-netcdf</artifactId>
<version>${sis.utils.modules}</version>
</dependency>
<dependency>
<groupId>org.apache.sis.storage</groupId>
<artifactId>sis-earth-observation</artifactId>
<version>${sis.utils.modules}</version>
</dependency>
<dependency>
<groupId>org.apache.sis.storage</groupId>
<artifactId>sis-geotiff</artifactId>
<version>${sis.utils.modules}</version>
</dependency>
<!-- SIS EXTERNALS -->
<!-- https://mvnrepository.com/artifact/com.esri.geometry/esri-geometry-api -->
<!-- <dependency> -->
<!-- <groupId>com.esri.geometry</groupId> -->
<!-- <artifactId>esri-geometry-api</artifactId> -->
<!-- </dependency> -->
<!-- https://mvnrepository.com/artifact/edu.ucar/cdm -->
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>cdm</artifactId>
<scope>compile</scope>
</dependency>
<!-- EPSG DATASET -->
<dependency>
<groupId>org.apache.sis.non-free</groupId>
<artifactId>sis-embedded-data</artifactId>
<version>${sis.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>runtime</scope>
</dependency>
<!-- TEST -->
<dependency>
@ -107,21 +160,43 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.gcube.data.transfer</groupId>
<artifactId>data-transfer-library</artifactId>
<version>[1.2.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
<version>[1.2.0,2.0.0-SNAPSHOT)</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
<dependency>
<groupId>org.opengis</groupId>
<artifactId>geoapi-conformance</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>unidata-all</id>
<name>Unidata All</name>
<url>https://nexus.d4science.org/nexus/content/repositories/unidata/</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>

1
src/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/.DS_Store

View File

@ -0,0 +1,74 @@
package org.gcube.data.transfer.plugins.thredds;
import static java.util.Collections.singletonMap;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.xml.bind.JAXBException;
import javax.xml.transform.stream.StreamResult;
import org.apache.sis.xml.MarshallerPool;
import org.apache.sis.xml.XML;
import org.opengis.metadata.Metadata;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class ISOMetadataMarshalling {
private static MarshallerPool pool=null;
// static {
//
// File temp=new File(System.getProperty("java.io.tmpdir")+"/EPSG");
// temp.mkdirs();
//
// EmbeddedConnectionPoolDataSource ds = new EmbeddedConnectionPoolDataSource();
// ds.setConnectionAttributes("create=true");
//
// ds.setDatabaseName(temp.getAbsolutePath()+"/SpatialMetadata");
//
//// ds.setDataSourceName(arg0);
//// ds.setServerName("someHost");
//// ds.setPortNumber("1527");
//// ds.setDatabaseName("someDB");
//
// Configuration.current().setDatabase(new Supplier<DataSource>() {
// @Override
// public DataSource get() {
// return ds;
// }
// });
//
//
// }
@Synchronized
private static MarshallerPool getPool() throws JAXBException {
if(pool==null)
pool=new MarshallerPool(
singletonMap(XML.METADATA_VERSION,"2007"));
return pool;
}
public static final File asXML(Metadata meta) throws JAXBException, IOException {
File tmp=File.createTempFile("tmp_meta_", ".xml");
try (FileWriter fw=new FileWriter(tmp)){
getPool().acquireMarshaller().marshal(meta,new StreamResult(fw));
// XML.marshal(meta, new StreamResult(fw), singletonMap(XML.METADATA_VERSION,"2007"));
}
return tmp;
}
}

View File

@ -71,7 +71,18 @@ public class ThreddsInstanceManager {
protected ThreddsInstanceManager(DataTransferContext context) {
log.warn("Instance Creation. Should happen only once. Loading information from context..");
this.ctx=context;
currentHostname=ctx.getCtx().container().configuration().hostname();
try {
log.info("Loading proxy configuration..");
currentHostname=ctx.getCtx().configuration().proxyAddress().hostname();
if(currentHostname==null||currentHostname.isEmpty()) throw new Exception("Proxy is : "+currentHostname);
}catch(Exception e) {
log.info("Unable to get proxy..",e);
currentHostname=ctx.getCtx().container().configuration().hostname();
}
log.info("Hostname to be used is "+currentHostname);
currentGHNId=ctx.getCtx().container().id();
String tomcatSecurityPath=System.getenv("WEB_CONTAINER_HOME")+"/conf/tomcat-users.xml";
@ -121,7 +132,7 @@ public class ThreddsInstanceManager {
info.setHostname(currentHostname);
info.setGhnId(currentGHNId);
info.setLocalBasePath(threddsPersistenceLocation);
info.setInstanceBaseUrl("http://"+info.getHostname()+"/thredds");
info.setInstanceBaseUrl("https://"+info.getHostname()+"/thredds");
String mainCatalogPath=threddsContentRoot+"/catalog.xml";

View File

@ -20,7 +20,7 @@ public class SISPluginFactory extends AbstractPluginFactory<SisPlugin> {
static final String PLUGIN_ID="SIS/GEOTK";
public static final String PLUGIN_ID="SIS/GEOTK";
public static final String SOURCE_PARAMETER="SOURCE_FILE";
public static final String GEONETWORK_CATEGORY="GEONETWORK_CATEGORY";

View File

@ -16,6 +16,7 @@ import org.gcube.data.transfer.model.plugins.thredds.ThreddsCatalog;
import org.gcube.data.transfer.plugin.AbstractPlugin;
import org.gcube.data.transfer.plugin.fails.PluginCleanupException;
import org.gcube.data.transfer.plugin.fails.PluginExecutionException;
import org.gcube.data.transfer.plugins.thredds.ISOMetadataMarshalling;
import org.gcube.data.transfer.plugins.thredds.ThreddsInstanceManager;
import org.gcube.spatial.data.sdi.model.metadata.MetadataPublishOptions;
import org.gcube.spatial.data.sdi.model.metadata.MetadataReport;
@ -69,9 +70,7 @@ public class SisPlugin extends AbstractPlugin {
log.debug("Extracting meta from {} ",dataStore.getAbsolutePath());
Metadata meta=getMetaFromFile(dataStore);
tmp=File.createTempFile("tmp_meta_", ".xml");
XML.marshal(meta,tmp);
tmp=ISOMetadataMarshalling.asXML(meta);
org.gcube.spatial.data.sdi.interfaces.Metadata metadataInterface=SDIAbstractPlugin.metadata().build();

View File

@ -0,0 +1,80 @@
package org.gcube.data.transfer.plugins.sis;
import java.io.File;
import java.io.FilenameFilter;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.Set;
import org.gcube.data.transfer.library.DataTransferClient;
import org.gcube.data.transfer.library.TransferResult;
import org.gcube.data.transfer.library.faults.DestinationNotSetException;
import org.gcube.data.transfer.library.faults.FailedTransferException;
import org.gcube.data.transfer.library.faults.InitializationException;
import org.gcube.data.transfer.library.faults.InvalidDestinationException;
import org.gcube.data.transfer.library.faults.InvalidSourceException;
import org.gcube.data.transfer.library.faults.SourceNotSetException;
import org.gcube.data.transfer.model.Destination;
import org.gcube.data.transfer.model.DestinationClashPolicy;
import org.gcube.data.transfer.model.PluginInvocation;
import org.gcube.data.transfer.plugins.thredds.sis.SISPluginFactory;
public class PublishTest {
public static void main(String[] args) throws MalformedURLException, Exception, InvalidSourceException, SourceNotSetException, FailedTransferException, InitializationException, InvalidDestinationException, DestinationNotSetException {
TokenSetter.set("/pred4s/preprod/preVRE");
String hostname="";
// Not yet released sdi refactoring
// new URL(SDIAbstractPlugin.management().build().getConfiguration().getByEngine(Engine.TH_ENGINE).get(0).getBaseEndpoint()).getHost();
DataTransferClient client=DataTransferClient.getInstanceByEndpoint("https://"+hostname);
File metadata=Paths.get("src/test/resources/toPublishMeta").toFile();
// for(File f:metadata.listFiles(new FilenameFilter() {
// @Override
// public boolean accept(File dir, String name) {
// return name.endsWith(".xml");
// }
// })) {
// for(File f:new File[] {
// new File("/Users/FabioISTI/Downloads/NASA_Surface_Air_Temperature_1950_2100_rcp45.nc")
// }) {
for(URL url:new URL[] {
new URL("https://thredds.d4science.org/thredds/fileServer/public/netcdf/ClimateChange/NASA_Precipitations_1950_2100_rcp45.nc")
}) {
// if not present, generate with sis/geotk
Destination toSetDestination=new Destination();
toSetDestination.setCreateSubfolders(true);
toSetDestination.setDestinationFileName("another_dataset");
toSetDestination.setOnExistingFileName(DestinationClashPolicy.REWRITE);
toSetDestination.setOnExistingSubFolder(DestinationClashPolicy.APPEND);
toSetDestination.setPersistenceId("thredds");
//NB ITEM IS SUPPOSED TO HAVE REMOTE PATH
String fileLocation="public/netcdf/test_"+System.currentTimeMillis();
toSetDestination.setSubFolder(fileLocation);
PluginInvocation inv=new PluginInvocation(SISPluginFactory.PLUGIN_ID);
inv.setParameters(Collections.singletonMap(SISPluginFactory.VALIDATE_PARAMETER, "false"));
System.out.println(
// client.localFile(f, toSetDestination, Collections.singleton(new PluginInvocation(SISPluginFactory.PLUGIN_ID))));
client.httpSource(url, toSetDestination, inv));
}
}
}

View File

@ -2,67 +2,144 @@ package org.gcube.data.transfer.plugins.sis;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.xml.bind.JAXBException;
import org.apache.sis.storage.DataStoreException;
import org.apache.sis.storage.UnsupportedStorageException;
import org.gcube.data.transfer.model.TransferTicket.Status;
import org.gcube.data.transfer.plugins.thredds.ISOMetadataMarshalling;
import org.gcube.data.transfer.plugins.thredds.sis.SisPlugin;
import ucar.nc2.NetcdfFile;
import ucar.nc2.dataset.NetcdfDataset;
public class TestGetMetadata {
public static void main(String[] args) throws UnsupportedStorageException, DataStoreException, IOException, NoSuchAlgorithmException {
public static void main(String[] args) throws UnsupportedStorageException, DataStoreException, IOException, NoSuchAlgorithmException, JAXBException {
String[] toCheckFiles=new String[] {
// ********** HDF - NETCDF 4
"/Users/FabioISTI/Downloads/NASA_Surface_Air_Temperature_1950_2100_rcp45.nc",
// "https://thredds.d4science.org/thredds/fileServer/public/netcdf/ClimateChange/NASA_Precipitations_1950_2100_rcp45.nc",
// "https://thredds.d4science.org/thredds/fileServer/public/netcdf/ClimateChange/NASA_Precipitations_1950_2100_rcp85.nc",
// "https://thredds.d4science.org/thredds/fileServer/public/netcdf/ClimateChange/NASA_Surface_Air_Temperature_1950_2100_rcp45.nc",
// "https://thredds.d4science.org/thredds/fileServer/public/netcdf/ClimateChange/NASA_Surface_Air_Temperature_1950_2100_rcp85.nc",
// "https://thredds.d4science.org/thredds/fileServer/public/netcdf/ClimateChange/hcaf_v6_1950_2100.nc",
// *********** NETCDF 3
"/Users/FabioISTI/Downloads/Aaptos_aaptos.nc",
"/Users/FabioISTI/Downloads/dataset-armor-3d-rep-monthly_20181115T1200Z_P20190301T0000Z.nc",
//"/Users/FabioISTI/Downloads/data_retro_Run_10026_911.nc",
//"/Users/FabioISTI/Downloads/2BPR6_2021_a_NRT_Gosud_V3.nc",
"/Users/FabioISTI/Downloads/GO_WTEP_2015_TRAJ.nc"
};
File temp=File.createTempFile("temp", ".temp");
File original=new File("/home/fabio/Downloads/oscar_vel2011_180.nc");
File copied=File.createTempFile("copied", ".nc");
transferStream(new FileInputStream(original),new FileOutputStream(temp));
System.out.println("copied. Moving..");
System.out.println("Checksum original : "+getChecksum(original));
System.out.println("Checksum temp : "+getChecksum(temp));
for(String f:toCheckFiles) {
System.out.println("checking "+f);
try{
check(false,f);
}catch(Exception e) {
System.err.println(e.getMessage());
System.out.println("Trying opening "+f+" manually");
open(f);
}
}
System.out.println("Done");
}
private static void open(String path) throws IOException, UnsupportedStorageException, DataStoreException {
System.out.println("Opening "+path);
NetcdfFile f=NetcdfFile.open(path);
System.out.println(f.getFileTypeDescription()+"\t"+f.getFileTypeId());
NetcdfDataset ncDs=NetcdfDataset.openDataset(path);
// NcMLReaderNew.
//
System.out.println(ncDs.getFileTypeDescription()+"\t"+ncDs.getFileTypeId());
// NetcdfDatasets.openFile(path,null);
}
private static void check(boolean checkCopy,String src) throws UnsupportedStorageException, DataStoreException, IOException, NoSuchAlgorithmException, JAXBException {
File original=new File(src);
File dataset=original;
if(checkCopy) {
File temp=File.createTempFile("temp", ".temp");
File copied=File.createTempFile("copied", ".nc");
transferStream(new FileInputStream(original),new FileOutputStream(temp));
System.out.println("copied. Moving..");
System.out.println("Checksum original : "+getChecksum(original));
System.out.println("Checksum temp : "+getChecksum(temp));
Files.move(temp.toPath(), copied.toPath(),StandardCopyOption.ATOMIC_MOVE,StandardCopyOption.REPLACE_EXISTING);
if(copied.length()<original.length()) throw new RuntimeException("Different size after moving");
dataset=copied;
}
if(dataset.exists())
System.out.println(
ISOMetadataMarshalling.asXML(SisPlugin.getMetaFromFile(dataset)).getAbsolutePath());
else {
System.out.println(
ISOMetadataMarshalling.asXML(SisPlugin.getMetaFromFile(new URL(src))).getAbsolutePath());
}
Files.move(temp.toPath(), copied.toPath(),StandardCopyOption.ATOMIC_MOVE,StandardCopyOption.REPLACE_EXISTING);
if(copied.length()<original.length()) throw new RuntimeException("Different size after moving");
System.out.println(SisPlugin.getMetaFromFile(copied));
}
private static String getChecksum(File datafile) throws NoSuchAlgorithmException, IOException {
MessageDigest md = MessageDigest.getInstance("SHA1");
FileInputStream fis = new FileInputStream(datafile);
byte[] dataBytes = new byte[1024];
FileInputStream fis = new FileInputStream(datafile);
byte[] dataBytes = new byte[1024];
int nread = 0;
int nread = 0;
while ((nread = fis.read(dataBytes)) != -1) {
md.update(dataBytes, 0, nread);
};
while ((nread = fis.read(dataBytes)) != -1) {
md.update(dataBytes, 0, nread);
};
byte[] mdbytes = md.digest();
byte[] mdbytes = md.digest();
//convert the byte to hex format
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
//convert the byte to hex format
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
return sb.toString();
}
private static void transferStream(InputStream in, OutputStream out){
@ -74,12 +151,12 @@ public class TestGetMetadata {
while ((received=in.read(internalBuf))!=-1){
out.write(internalBuf,0,received);
receivedTotal+=received;
}
out.flush();
}catch(IOException e){
throw new RuntimeException("Unable to read from source.");
}
}
}

View File

@ -0,0 +1,33 @@
package org.gcube.data.transfer.plugins.sis;
import java.util.Properties;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.scope.api.ScopeProvider;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TokenSetter {
private static Properties props=new Properties();
static{
try {
props.load(TokenSetter.class.getResourceAsStream("/tokens.properties"));
} catch (Exception e) {
throw new RuntimeException("YOU NEED TO SET TOKEN FILE IN CONFIGURATION");
}
}
public static void set(String scope){
try{
if(!props.containsKey(scope)) throw new RuntimeException("No token found for scope : "+scope);
SecurityTokenProvider.instance.set(props.getProperty(scope));
}catch(Throwable e){
log.warn("Unable to set token for scope "+scope,e);
}
ScopeProvider.instance.set(scope);
}
}