summaryrefslogtreecommitdiff
path: root/src/main/java/fossee
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/fossee')
-rw-r--r--src/main/java/fossee/xcos/on/web/SciExec.java133
1 files changed, 0 insertions, 133 deletions
diff --git a/src/main/java/fossee/xcos/on/web/SciExec.java b/src/main/java/fossee/xcos/on/web/SciExec.java
deleted file mode 100644
index 2143ed8..0000000
--- a/src/main/java/fossee/xcos/on/web/SciExec.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package fossee.xcos.on.web;
-
-/**
- * Servlet code for xcos-on-web Authors: Maverick and Adhitya Description: The
- * following servlet creates a shell command to run Scilab without any
- * GUI/simulation window. The diagram sent from client is stored in a
- * usr-xxx.xcos file and is then simulated. The result is a .png file which is
- * then sent back to the client.
- */
-import java.io.*;
-import javax.servlet.*;
-import java.util.*;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.io.FilenameUtils;
-
-public class SciExec extends GenericServlet {
-
- public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
-
- InputStream is = null;
- ByteArrayOutputStream baos = null;
- List<String> commands = new ArrayList<String>();
- /**
- * Maverick and Srikant: Creating a shell command to run Scilab without
- * any GUI so that the simulation window doesn't appear.
- */
- commands.add("scilab-adv-cli");
- commands.add("-noatomsautoload");
- commands.add("-nogui");
- commands.add("-nb");
- commands.add("-e");
-
- String imagePath = "";
- String fileNameWithoutExt = "";
- String tempPath = "";
-
- /**
- * Maverick: Ignore the following block.
- *
- * commands.add("plot3d();xs2png(gcf(),'img2.png');exit();"); String
- * data=request.getParameter("name"); pw.println(data);
- * commands.add("echo "+data+" >
- * /home/saarang/Softwares/apache-tomcat-8.0.36/webapps/sci/servlet/file.xcos");
- * commands.add("driver('PNG');xinit('/home/saarang/apache-tomcat-8.0.36/webapps/worknogui/servlet/ans"+k+".png');loadXcosLibs();importXcosDiagram('/home/saarang/apache-tomcat-8.0.36/file.xcos');xcos_simulate(scs_m,4);mode(2);xend();quit();");
- */
- ProcessBuilder pb = new ProcessBuilder(commands);
- try {
- InputStream inputStream = request.getInputStream();
- /**
- * Adhitya: Creating a temporary file in the directory containing
- * tomcat. This is the .xcos file which will be executed by the
- * Scilab engine.
- */
- File xcosFile = File.createTempFile("usr-", ".xcos");
- OutputStream outputStream = new FileOutputStream(xcosFile);
- IOUtils.copy(inputStream, outputStream);
- outputStream.close();
-
- tempPath = xcosFile.getAbsolutePath();
-
- String parentPath = xcosFile.getParent();
- fileNameWithoutExt = FilenameUtils.removeExtension(xcosFile.getName());
-
- /**
- * Maverick: The resultant .svg file which is produced as a result
- * of simulation is stored in a different folder inside the
- * respective webapp directory. The path of the folder is
- * /path/to/webapp/servlet.
- *
- * @ToDo: Modify the following path.
- */
- imagePath = parentPath + File.separator + fileNameWithoutExt + ".svg";
-
- /**
- * Maverick: Creating the command which is to be executed using
- * terminal.
- */
- commands.add("driver('SVG');xinit('" + imagePath + "');loadXcosLibs();importXcosDiagram('" + tempPath + "');xcos_simulate(scs_m,4);mode(2);xend();quit();");
-
- /**
- * Maverick: Reference:
- * http://stackoverflow.com/questions/23086778/how-to-access-unix-shell-special-variables-using-java
- * Starting a process to execute the created command.
- */
- Process prs = pb.start();
- is = prs.getInputStream();
- byte[] b = new byte[1024];
- int size = 0;
- baos = new ByteArrayOutputStream();
- while ((size = is.read(b)) != -1) {
- baos.write(b, 0, size);
- }
- System.out.println(new String(baos.toByteArray()));
-
- } catch (IOException e) {
- e.printStackTrace();
- } catch (Exception e) {
- System.out.println("Exception");
- } finally {
- try {
- if (is != null) {
- is.close();
- }
- if (baos != null) {
- baos.close();
- }
- } catch (Exception ex) {
- }
- }
- /**
- * Adhitya: Accessing the .svg file and sending it to the client.
- */
- OutputStream out = response.getOutputStream();
- FileInputStream in = new FileInputStream(imagePath);
- byte[] buffer = new byte[4096];
- int length;
- while ((length = in.read(buffer)) > 0) {
- out.write(buffer, 0, length);
- }
- in.close();
- out.flush();
-
- // Adhitya: Delete files after usage
- new File(tempPath).delete();
- new File(imagePath).delete();
- }
-
-}