/*
* 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 org.jkan997.slingbeans.helper;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.jkan997.slingbeans.slingfs.FileObject;
import org.jkan997.slingbeans.slingfs.FileSystem;
/**
*
* @author jakaniew
*/
public class RemoteLogInstaller {
private final FileSystem fs;
public RemoteLogInstaller(FileSystem fs) {
this.fs = fs;
}
public void installRemoteLog() throws IOException {
DefaultHttpClient httpClient = HttpClientHelper.createHttpClient();
String remoteLogUrl = "https://raw.githubusercontent.com/jkan997/SlingRemoteLog/master/Release/RemoteLog-bundle.jar";
HttpGet get = new HttpGet(remoteLogUrl);
HttpResponse response = httpClient.execute(get);
HttpEntity resEntity = response.getEntity();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
IOHelper.readInputStreamToOutputStream(resEntity.getContent(), bos);
get.releaseConnection();
bos.close();
LogHelper.logInfo(this, "Downloaded RemoteLog, size %d url %s", bos.size(), remoteLogUrl);
/* FileOutputStream tmpFos = new FileOutputStream("/tmp/rl.zip");
tmpFos.write(bos.toByteArray());
tmpFos.close();
if (1 == 1) {
return;
}*/
FileObject remoteLogFo;
FileObject remoteLogInstallFo;
try {
remoteLogFo = fs.getFileObject("/apps/remotelog");
remoteLogFo.delete();
System.out.println("Removing existing remote log.");
} catch (Exception ex) {
System.out.println("No existing remote log.");
}
FileObject appsFo = fs.getFileObject("/apps");
appsFo.createNode("remotelog", "sling:Folder");
fs.commmit();
remoteLogFo = (FileObject) fs.getFileObject("/apps/remotelog");
remoteLogFo.createNode("install", "nt:folder");
fs.commmit();
remoteLogInstallFo = (FileObject) fs.getFileObject("/apps/remotelog/install");
remoteLogInstallFo.createFile("remotelog.jar", bos.toByteArray(), "application/java-archive");
fs.commmit();
}
}