Hi,
I tried your plugin and indeed i obtain the same issue :
org.jets3t.service.ServiceException: Request Error: Invalid class name: org.jets3t.service.utils.RestUtils$ConnManagerFactory
at org.jets3t.service.impl.rest.httpclient.RestStorageService.performRequest(RestStorageService.java:625)
at org.jets3t.service.impl.rest.httpclient.RestStorageService.performRequest(RestStorageService.java:279)
...
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Invalid class name: org.jets3t.service.utils.RestUtils$ConnManagerFactory
at org.apache.http.impl.client.AbstractHttpClient.createClientConnectionManager(AbstractHttpClient.java:286)
at org.apache.http.impl.client.AbstractHttpClient.getConnectionManager(AbstractHttpClient.java:437)
at org.apache.http.impl.client.AbstractHttpClient.createHttpContext(AbstractHttpClient.java:246)
...
Looking on internet i found some pages about this error :
https://github.com/literalice/gradle-aws-s3-sync/issues/18https://jira.pentaho.com/browse/PDI-16813https://stackoverflow.com/questions/10144188/jets3t-connects-without-exception-but-invalid-class-name-when-i-try-to-do-aI think the problem comes from the fact we use a specific class loader for the plugins and jets3t doesn't like it.
Is there some ways to change or specify a specific class loader to work with in jets3t ?
Or maybe to change the context class loader before using jets3t methods, something as :
Thread.currentThread().setContextClassLoader(SystemUtil.getSystemClassLoader());
or
Thread.currentThread().setContextClassLoader(PluginLoader.getLoader());
Don't forget to restore back the good context class loader after the jets3t method call..
Problem is that you need to test using an external Icy (with your JAR files) so you are sure that both plugin are loaded in the Plugin class loader (and not in the system class loader as when you're using eclipse).
Best,
- Stephane