cz.zcu.validationserver.invokers
Class BinaryInvoker

java.lang.Object
  extended by cz.zcu.validationserver.invokers.BinaryInvoker
Direct Known Subclasses:
BinaryFileIOInvoker

public class BinaryInvoker
extends java.lang.Object

Trida pro spousteni binarnich souboru. Defaultne se chova tak, ze spousti vsechno zabezpecene, tedy pod uzivatelem zadanym v nastaveni serveru. Je-li pozadavek tohle chovani vypnout, je mozno zavolat setSecuredInvocation(false);

User: Lukas Date: 16.5.2007 Time: 15:22:13


Field Summary
static int COPIER_WAITFOR_TIME
           
private  ThreadStreamCopier copierErr
           
private  ThreadStreamCopier copierIn
           
private  ThreadStreamCopier copierOut
           
private  ValidationInfo info
           
private  boolean internalServerExecution
          Rika, zda se jedna o interni servisni spousteni nejakych procesu serveru.
private  java.lang.String invokeUser
           
private static Logger logger
           
protected  java.lang.Process process
           
private  java.io.OutputStream processStdErr
           
private  java.io.InputStream processStdIn
           
private  java.io.OutputStream processStdOut
           
private  boolean processTerminated
          Zda uz proces skoncil
private  FullValidationResult result
           
private  boolean securedInvocation
           
private static java.util.Map<java.lang.String,java.util.concurrent.Semaphore> securedInvocationSemaphores
          semafory pro ruzne invoke-user uzivatele
private  java.lang.String sudoPath
           
 
Constructor Summary
BinaryInvoker(ValidationInfo info, FullValidationResult result, java.io.InputStream processStdIn, java.io.OutputStream processStdOut, java.io.OutputStream processStdErr)
           
 
Method Summary
 int getExitValue()
           
 ValidationInfo getInfo()
           
private static java.util.concurrent.Semaphore getMySemaphore(ValidationDomain domain, java.lang.String invokeUser)
           
 java.io.OutputStream getProcessStdErr()
           
 java.io.InputStream getProcessStdIn()
           
 java.io.OutputStream getProcessStdOut()
           
 FullValidationResult getResult()
           
private  void internalInvokeFile(java.io.File file, java.lang.String argumentLine)
          Spusteni zadaneho souboru.
 void invokeFile(java.io.File file, java.lang.String argumentLine)
          Spusteni zadaneho souboru.
 boolean isInternalServerExecution()
           
 boolean isSecuredInvocation()
           
 void setInternalServerExecution(boolean internalServerExecution)
           
 void setProcessStdErr(java.io.OutputStream processStdErr)
           
 void setProcessStdIn(java.io.InputStream processStdIn)
           
 void setProcessStdOut(java.io.OutputStream processStdOut)
           
 void setSecuredInvocation(boolean securedInvocation)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static final Logger logger

COPIER_WAITFOR_TIME

public static final int COPIER_WAITFOR_TIME
See Also:
Constant Field Values

info

private ValidationInfo info

result

private FullValidationResult result

process

protected java.lang.Process process

processStdOut

private java.io.OutputStream processStdOut

processStdErr

private java.io.OutputStream processStdErr

processStdIn

private java.io.InputStream processStdIn

copierIn

private ThreadStreamCopier copierIn

copierOut

private ThreadStreamCopier copierOut

copierErr

private ThreadStreamCopier copierErr

securedInvocation

private boolean securedInvocation

internalServerExecution

private boolean internalServerExecution
Rika, zda se jedna o interni servisni spousteni nejakych procesu serveru. Tj. pokud je true, nevyhazuje napriklad nejake vyjimky do ValidationResult, pripadne vyhazuje jine...


invokeUser

private java.lang.String invokeUser

sudoPath

private java.lang.String sudoPath

processTerminated

private boolean processTerminated
Zda uz proces skoncil


securedInvocationSemaphores

private static java.util.Map<java.lang.String,java.util.concurrent.Semaphore> securedInvocationSemaphores
semafory pro ruzne invoke-user uzivatele

Constructor Detail

BinaryInvoker

public BinaryInvoker(ValidationInfo info,
                     FullValidationResult result,
                     java.io.InputStream processStdIn,
                     java.io.OutputStream processStdOut,
                     java.io.OutputStream processStdErr)
Method Detail

getMySemaphore

private static java.util.concurrent.Semaphore getMySemaphore(ValidationDomain domain,
                                                             java.lang.String invokeUser)

invokeFile

public void invokeFile(java.io.File file,
                       java.lang.String argumentLine)
Spusteni zadaneho souboru. Pokud neni receno jink a vse je nastaveno, spusti se to pod zabezpecenym uzivatelem.


internalInvokeFile

private void internalInvokeFile(java.io.File file,
                                java.lang.String argumentLine)
Spusteni zadaneho souboru. Pokud neni receno jink a vse je nastaveno, spusti se to pod zabezpecenym uzivatelem.


getInfo

public ValidationInfo getInfo()

getResult

public FullValidationResult getResult()

isSecuredInvocation

public boolean isSecuredInvocation()

setSecuredInvocation

public void setSecuredInvocation(boolean securedInvocation)

getExitValue

public int getExitValue()

getProcessStdOut

public java.io.OutputStream getProcessStdOut()

setProcessStdOut

public void setProcessStdOut(java.io.OutputStream processStdOut)

getProcessStdErr

public java.io.OutputStream getProcessStdErr()

setProcessStdErr

public void setProcessStdErr(java.io.OutputStream processStdErr)

getProcessStdIn

public java.io.InputStream getProcessStdIn()

setProcessStdIn

public void setProcessStdIn(java.io.InputStream processStdIn)

isInternalServerExecution

public boolean isInternalServerExecution()

setInternalServerExecution

public void setInternalServerExecution(boolean internalServerExecution)


Copyright © 2007 University of West Bohemia, KIV, author Lukas Valenta (lvalenta at civ.zcu.cz). All Rights Reserved. Build date 20110415.