List of usage examples for javax.script ScriptEngineManager ScriptEngineManager
public ScriptEngineManager()
ScriptEngineManager(Thread.currentThread().getContextClassLoader())
. From source file:com.inkubator.hrm.service.impl.PayTempKalkulasiServiceImpl.java
@Override @Transactional(readOnly = false, isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public List<PayTempKalkulasi> getAllDataCalculatedPayment(Date startPeriodDate, Date endPeriodDate, Date createdOn, String createdBy) throws Exception { //initial// www . jav a2s .co m PaySalaryComponent totalIncomeComponent = paySalaryComponentDao .getEntityBySpecificModelComponent(HRMConstant.MODEL_COMP_TAKE_HOME_PAY); PaySalaryComponent taxComponent = paySalaryComponentDao .getEntityBySpecificModelComponent(HRMConstant.MODEL_COMP_TAX); PaySalaryComponent ceilComponent = paySalaryComponentDao .getEntityBySpecificModelComponent(HRMConstant.MODEL_COMP_CEIL); List<PayTempKalkulasi> datas = new ArrayList<PayTempKalkulasi>(); ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine jsEngine = mgr.getEngineByName("JavaScript"); Double basicSalary = null; Double workingDay = null; Double lessTime = null; Double moreTime = null; Double overTIme = null; Double totalDay = this.getDefaultWorkingDay(startPeriodDate, endPeriodDate); //total working day dari kelompok kerja DEFAULT(reguler) Double outPut = null; //Start calculation List<EmpData> totalEmployee = empDataDao.getAllDataNotTerminateAndJoinDateLowerThan(endPeriodDate); /*List<EmpData> totalEmployee = new ArrayList<EmpData>(); EmpData emp = empDataDao.getEntiyByPK((long)130); totalEmployee.add(emp);*/ for (EmpData empData : totalEmployee) { LOGGER.info( " ============= EMPLOYEE : " + empData.getBioData().getFirstName() + " ====================="); /** * Set initial variabel untuk masing2 karyawan, * yang akan dibutuhkan untuk perhitungan model komponen FORMULA (if any) * */ basicSalary = Double.parseDouble(empData.getBasicSalaryDecrypted()); PayTempOvertime payTempOvertime = payTempOvertimeDao.getEntityByEmpDataId(empData.getId()); overTIme = payTempOvertime != null ? payTempOvertime.getOvertime() : 0.0; PayTempAttendanceStatus payTempAttendanceStatus = payTempAttendanceStatusDao .getEntityByEmpDataId(empData.getId()); workingDay = payTempAttendanceStatus != null ? (double) payTempAttendanceStatus.getTotalAttendance() : 0.0; lessTime = ((workingDay > 0) && (workingDay < totalDay)) ? totalDay - workingDay : 0.0; moreTime = (workingDay > totalDay) ? workingDay - totalDay : 0.0; /** * Saat ini totalIncome masih temporary, karena belum dikurangi * pajak dan pembulatan CSR Sedangkan untuk final totalIncome (take * home pay) ada di proses(step) selanjutnya di batch proses, * silahkan lihat batch-config.xml */ BigDecimal totalIncome = new BigDecimal(0); List<PayComponentDataException> payComponentExceptions = payComponentDataExceptionDao .getAllByEmpId(empData.getId()); for (PayComponentDataException dataException : payComponentExceptions) { PayTempKalkulasi kalkulasi = new PayTempKalkulasi(); kalkulasi.setId(Long.parseLong(RandomNumberUtil.getRandomNumber(12))); kalkulasi.setEmpData(empData); kalkulasi.setPaySalaryComponent(dataException.getPaySalaryComponent()); kalkulasi.setFactor( this.getFactorBasedCategory(dataException.getPaySalaryComponent().getComponentCategory())); kalkulasi.setNominal(dataException.getNominal()); kalkulasi.setCreatedBy(createdBy); kalkulasi.setCreatedOn(createdOn); datas.add(kalkulasi); totalIncome = this.calculateTotalIncome(totalIncome, kalkulasi); //calculate totalIncome temporary LOGGER.info("Save By ComponentDataException - " + dataException.getPaySalaryComponent().getName() + ", nominal : " + dataException.getNominal()); } int timeTmb = DateTimeUtil.getTotalDay(empData.getJoinDate(), createdOn); List<Long> componentIds = Lambda.extract(payComponentExceptions, Lambda.on(PayComponentDataException.class).getPaySalaryComponent().getId()); List<PaySalaryComponent> listPayComponetNotExcp = paySalaryComponentDao .getAllDataByEmpTypeIdAndActiveFromTmAndIdNotIn(empData.getEmployeeType().getId(), timeTmb, componentIds); if (null == Lambda.selectFirst(listPayComponetNotExcp, Lambda.having(Lambda.on(PaySalaryComponent.class).getModelComponent().getSpesific(), Matchers.equalTo(HRMConstant.MODEL_COMP_BASIC_SALARY))) && null == Lambda.selectFirst(payComponentExceptions, Lambda.having( Lambda.on(PayComponentDataException.class).getPaySalaryComponent() .getModelComponent().getSpesific(), Matchers.equalTo(HRMConstant.MODEL_COMP_BASIC_SALARY)))) { throw new BussinessException("global.error_user_does_not_have_basic_salary", empData.getNikWithFullName()); } for (PaySalaryComponent paySalaryComponent : listPayComponetNotExcp) { if (paySalaryComponent.getModelComponent().getSpesific().equals(HRMConstant.MODEL_COMP_UPLOAD)) { PayTempUploadData payUpload = this.payTempUploadDataDao .getEntityByEmpIdAndComponentId(empData.getId(), paySalaryComponent.getId()); if (payUpload != null) { PayTempKalkulasi kalkulasi = new PayTempKalkulasi(); kalkulasi.setId(Long.parseLong(RandomNumberUtil.getRandomNumber(12))); kalkulasi.setEmpData(empData); kalkulasi.setPaySalaryComponent(payUpload.getPaySalaryComponent()); kalkulasi.setFactor(this .getFactorBasedCategory(payUpload.getPaySalaryComponent().getComponentCategory())); BigDecimal nominal = new BigDecimal(payUpload.getNominalValue()); kalkulasi.setNominal(nominal); kalkulasi.setCreatedBy(createdBy); kalkulasi.setCreatedOn(createdOn); datas.add(kalkulasi); totalIncome = this.calculateTotalIncome(totalIncome, kalkulasi); //calculate totalIncome temporary LOGGER.info("Save By Upload - " + payUpload.getPaySalaryComponent().getName() + ", nominal : " + nominal); } } else if (paySalaryComponent.getModelComponent().getSpesific() .equals(HRMConstant.MODEL_COMP_BASIC_SALARY)) { PayTempKalkulasi kalkulasi = new PayTempKalkulasi(); kalkulasi.setId(Long.parseLong(RandomNumberUtil.getRandomNumber(12))); kalkulasi.setEmpData(empData); kalkulasi.setPaySalaryComponent(paySalaryComponent); kalkulasi.setFactor(this.getFactorBasedCategory(paySalaryComponent.getComponentCategory())); BigDecimal nominal = new BigDecimal(empData.getBasicSalaryDecrypted()); if ((timeTmb / 30) < 1) { //jika TMB belum memenuhi satu bulan, jadi basic salary dibagi pro-rate nominal = nominal.divide(new BigDecimal(timeTmb), RoundingMode.UP); } kalkulasi.setNominal(nominal); kalkulasi.setCreatedBy(createdBy); kalkulasi.setCreatedOn(createdOn); datas.add(kalkulasi); totalIncome = this.calculateTotalIncome(totalIncome, kalkulasi); //calculate totalIncome temporary LOGGER.info("Save By Basic Salary " + (((timeTmb / 30) < 1) ? "Not Full" : "Full") + ", nominal : " + nominal); } else if (paySalaryComponent.getModelComponent().getSpesific() .equals(HRMConstant.MODEL_COMP_LOAN)) { //cek apakah modelReferensi di paySalaryComponent valid atau tidak LoanNewType loanType = loanNewTypeDao .getEntiyByPK((long) paySalaryComponent.getModelReffernsil()); if (loanType == null) { throw new BussinessException("salaryCalculation.error_salary_component_reference", paySalaryComponent.getName()); } List<LoanNewApplicationInstallment> installments = loanNewApplicationInstallmentDao .getAllDataDisbursedByEmpDataIdAndLoanTypeIdAndPeriodDate(empData.getId(), loanType.getId(), startPeriodDate, endPeriodDate); for (LoanNewApplicationInstallment installment : installments) { PayTempKalkulasi kalkulasi = new PayTempKalkulasi(); kalkulasi.setId(Long.parseLong(RandomNumberUtil.getRandomNumber(12))); kalkulasi.setEmpData(empData); kalkulasi.setPaySalaryComponent(paySalaryComponent); kalkulasi.setFactor(this.getFactorBasedCategory(paySalaryComponent.getComponentCategory())); BigDecimal nominal = new BigDecimal(installment.getTotalPayment()); nominal = nominal.setScale(0, RoundingMode.UP); kalkulasi.setNominal(nominal); //set detail loan int termin = installment.getLoanNewApplication().getTermin(); long cicilanKe = termin - installment.getNumOfInstallment(); kalkulasi.setDetail(cicilanKe + "/" + termin); kalkulasi.setCreatedBy(createdBy); kalkulasi.setCreatedOn(createdOn); datas.add(kalkulasi); totalIncome = this.calculateTotalIncome(totalIncome, kalkulasi); //calculate totalIncome temporary LOGGER.info("Save By Loan - " + paySalaryComponent.getName() + ", nominal : " + nominal); } } else if (paySalaryComponent.getModelComponent().getSpesific() .equals(HRMConstant.MODEL_COMP_REIMBURSEMENT)) { //cek apakah modelReferensi di paySalaryComponent valid atau tidak RmbsType rmbsType = rmbsTypeDao.getEntiyByPK((long) paySalaryComponent.getModelReffernsil()); if (rmbsType == null) { throw new BussinessException("salaryCalculation.error_salary_component_reference", paySalaryComponent.getName()); } List<RmbsApplication> reimbursments = rmbsApplicationDao .getAllDataDisbursedByEmpDataIdAndRmbsTypeIdAndPeriodDate(empData.getId(), rmbsType.getId(), startPeriodDate, endPeriodDate); for (RmbsApplication reimbursment : reimbursments) { PayTempKalkulasi kalkulasi = new PayTempKalkulasi(); kalkulasi.setId(Long.parseLong(RandomNumberUtil.getRandomNumber(12))); kalkulasi.setEmpData(empData); kalkulasi.setPaySalaryComponent(paySalaryComponent); kalkulasi.setFactor(this.getFactorBasedCategory(paySalaryComponent.getComponentCategory())); kalkulasi.setNominal(reimbursment.getNominal()); //set detail reimbursement kalkulasi.setDetail(reimbursment.getCode()); kalkulasi.setCreatedBy(createdBy); kalkulasi.setCreatedOn(createdOn); datas.add(kalkulasi); totalIncome = this.calculateTotalIncome(totalIncome, kalkulasi); //calculate totalIncome temporary LOGGER.info("Save By Reimbursment, nominal : " + reimbursment.getNominal()); } } else if (paySalaryComponent.getModelComponent().getSpesific() .equals(HRMConstant.MODEL_COMP_FORMULA)) { String formulaOne = paySalaryComponent.getFormula(); if (formulaOne != null) { jsEngine.put("bS", basicSalary); jsEngine.put("wD", workingDay); jsEngine.put("lT", lessTime); jsEngine.put("mT", moreTime); jsEngine.put("oT", overTIme); jsEngine.put("tD", totalDay); outPut = (Double) jsEngine.eval(formulaOne); PayTempKalkulasi kalkulasi = new PayTempKalkulasi(); kalkulasi.setId(Long.parseLong(RandomNumberUtil.getRandomNumber(12))); kalkulasi.setEmpData(empData); kalkulasi.setPaySalaryComponent(paySalaryComponent); kalkulasi.setFactor(this.getFactorBasedCategory(paySalaryComponent.getComponentCategory())); BigDecimal nominal = new BigDecimal(outPut); kalkulasi.setNominal(nominal); kalkulasi.setCreatedBy(createdBy); kalkulasi.setCreatedOn(createdOn); datas.add(kalkulasi); totalIncome = this.calculateTotalIncome(totalIncome, kalkulasi); //calculate totalIncome temporary LOGGER.info("Save By Formula, nominal : " + nominal); } } else if (paySalaryComponent.getModelComponent().getSpesific() .equals(HRMConstant.MODEL_COMP_BENEFIT_TABLE)) { //cek apakah modelReferensi di paySalaryComponent valid atau tidak BenefitGroup benefitGroup = benefitGroupDao .getEntiyByPK((long) paySalaryComponent.getModelReffernsil()); if (benefitGroup == null) { throw new BussinessException("salaryCalculation.error_salary_component_reference", paySalaryComponent.getName()); } //cek apakah tunjangan yg didapatkan sesuai dengan hak dari golonganJabatan karyawan BenefitGroupRate benefitGroupRate = benefitGroupRateDao .getEntityByBenefitGroupIdAndGolJabatanId(benefitGroup.getId(), empData.getGolonganJabatan().getId()); if (benefitGroupRate != null) { PayTempKalkulasi kalkulasi = new PayTempKalkulasi(); kalkulasi.setId(Long.parseLong(RandomNumberUtil.getRandomNumber(12))); kalkulasi.setEmpData(empData); kalkulasi.setPaySalaryComponent(paySalaryComponent); kalkulasi.setFactor(this.getFactorBasedCategory(paySalaryComponent.getComponentCategory())); //nominal untuk benefit dikali nilai dari measurement BigDecimal nominal = new BigDecimal(benefitGroupRate.getNominal()).multiply(this .getMultiplierFromMeasurement(benefitGroupRate.getBenefitGroup().getMeasurement())); kalkulasi.setNominal(nominal); //set detail benefit kalkulasi.setDetail(benefitGroupRate.getGolonganJabatan().getCode()); kalkulasi.setCreatedBy(createdBy); kalkulasi.setCreatedOn(createdOn); datas.add(kalkulasi); totalIncome = this.calculateTotalIncome(totalIncome, kalkulasi); //calculate totalIncome temporary LOGGER.info("Save By Benefit - " + paySalaryComponent.getName() + ", nominal : " + nominal); } } } //create totalIncome Kalkulasi, hasil penjumlahan nominal dari semua component di atas PayTempKalkulasi totalIncomeKalkulasi = new PayTempKalkulasi(); totalIncomeKalkulasi.setId(Long.parseLong(RandomNumberUtil.getRandomNumber(12))); totalIncomeKalkulasi.setEmpData(empData); totalIncomeKalkulasi.setPaySalaryComponent(totalIncomeComponent); totalIncomeKalkulasi .setFactor(this.getFactorBasedCategory(totalIncomeComponent.getComponentCategory())); totalIncomeKalkulasi.setNominal(totalIncome); totalIncomeKalkulasi.setCreatedBy(createdBy); totalIncomeKalkulasi.setCreatedOn(createdOn); datas.add(totalIncomeKalkulasi); //create initial tax Kalkulasi, set nominal 0. Akan dibutuhkan di batch proses step selanjutnya PayTempKalkulasi taxKalkulasi = new PayTempKalkulasi(); taxKalkulasi.setId(Long.parseLong(RandomNumberUtil.getRandomNumber(12))); taxKalkulasi.setEmpData(empData); taxKalkulasi.setPaySalaryComponent(taxComponent); taxKalkulasi.setFactor(this.getFactorBasedCategory(taxComponent.getComponentCategory())); taxKalkulasi.setNominal(new BigDecimal(0)); taxKalkulasi.setCreatedBy(createdBy); taxKalkulasi.setCreatedOn(createdOn); datas.add(taxKalkulasi); //create initial ceil Kalkulasi, set nominal 0. Akan dibutuhkan di batch proses step selanjutnya PayTempKalkulasi ceilKalkulasi = new PayTempKalkulasi(); ceilKalkulasi.setId(Long.parseLong(RandomNumberUtil.getRandomNumber(12))); ceilKalkulasi.setEmpData(empData); ceilKalkulasi.setPaySalaryComponent(ceilComponent); ceilKalkulasi.setFactor(this.getFactorBasedCategory(ceilComponent.getComponentCategory())); ceilKalkulasi.setNominal(new BigDecimal(0)); ceilKalkulasi.setCreatedBy(createdBy); ceilKalkulasi.setCreatedOn(createdOn); datas.add(ceilKalkulasi); } return datas; }
From source file:org.wso2.carbon.business.rules.core.util.TemplateManagerHelper.java
/** * Runs the script that is given as a string, and gives all the variables specified in the script * * @param script//w ww . j a v a 2 s . co m * @return Map of Strings * @throws TemplateManagerHelperException */ public static Map<String, String> getScriptGeneratedVariables(String script) throws RuleTemplateScriptException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); ScriptContext scriptContext = new SimpleScriptContext(); scriptContext.setBindings(engine.createBindings(), ScriptContext.ENGINE_SCOPE); try { // Run script engine.eval(script); Map<String, Object> returnedScriptContextBindings = engine.getBindings(ScriptContext.ENGINE_SCOPE); // Variable names and their values as strings, from the script context binding Map<String, String> scriptVariables = new HashMap<>(); for (Map.Entry scriptVariable : returnedScriptContextBindings.entrySet()) { if (scriptVariable.getValue() == null) { scriptVariables.put(scriptVariable.getKey().toString(), null); } else { scriptVariables.put(scriptVariable.getKey().toString(), scriptVariable.getValue().toString()); } } return scriptVariables; } catch (ScriptException e) { throw new RuleTemplateScriptException(e.getCause().getMessage(), e); } }
From source file:org.pentaho.reporting.ui.datasources.pmd.PmdDataSourceEditor.java
private ScriptEngineFactory[] getScriptEngineLanguages() { final LinkedHashSet<ScriptEngineFactory> langSet = new LinkedHashSet<ScriptEngineFactory>(); langSet.add(null);//from w ww . ja v a 2s .c om final List<ScriptEngineFactory> engineFactories = new ScriptEngineManager().getEngineFactories(); for (final ScriptEngineFactory engineFactory : engineFactories) { langSet.add(engineFactory); } return langSet.toArray(new ScriptEngineFactory[langSet.size()]); }
From source file:ro.uaic.info.nlptools.ggs.engine.core.StateMachine.java
protected void initJsEngine() throws GGSException { jsEngine = new ScriptEngineManager().getEngineByName("JavaScript"); try {/*from w ww . j a v a 2s . c o m*/ jsEngine.eval(new InputStreamReader(getClass().getResourceAsStream("jsInitCode.js"))); } catch (ScriptException e) { throw new CoreCriticalException(e); } StringBuilder sb = new StringBuilder(); sb.append("var global = {};\n\n"); sb.append("var grammarClones = [];\n"); sb.append("\n\n//////////////grammar code\nvar grammar = {}; var network = grammar;"); try { jsEngine.eval(sb.toString()); } catch (ScriptException e) { throw new CoreCriticalException(e); } sb.delete(0, sb.length()); sb.append("\ngrammar.jsCode = function(){\n"); if (grammar.getJsCode() != null && !grammar.getJsCode().trim().isEmpty()) sb.append(grammar.getJsCode()).append("\n"); sb.append("};"); try { jsEngine.eval(sb.toString()); } catch (ScriptException e) { throw new GrammarJsException(e.getMessage()); } try { jsEngine.eval("grammar.jsCode()"); } catch (ScriptException e) { throw new GrammarJsException(e.getMessage()); } for (Graph graph : grammar.getGraphs().values()) { for (GraphNode gn : graph.getGraphNodes().values()) { if (gn == null || gn.getJsCode() == null) continue; if (gn.nodeType == GraphNode.NodeType.Comment) continue; sb.delete(0, sb.length()); sb.append("var graph_").append(graph.getId()).append("_node_").append(gn.getIndex()) .append("_jsCode = function(token){\n\t").append(gn.getJsCode()) .append("\n\treturn true;\n};\n\n"); try { jsEngine.eval(sb.toString()); } catch (ScriptException e) { throw new GraphNodeJsException(e, gn); } } } resetJsVariables(); }
From source file:com.datatorrent.stram.client.StramClientUtils.java
public static void evalProperties(Properties target, Configuration vars) { ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript"); Pattern substitutionPattern = Pattern.compile("\\$\\{(.+?)\\}"); Pattern evalPattern = Pattern.compile("\\{% (.+?) %\\}"); try {// w w w. j a va 2 s.c o m engine.eval("var _prop = {}"); for (Map.Entry<String, String> entry : vars) { String evalString = String.format("_prop[\"%s\"] = \"%s\"", StringEscapeUtils.escapeJava(entry.getKey()), StringEscapeUtils.escapeJava(entry.getValue())); engine.eval(evalString); } } catch (ScriptException ex) { LOG.warn("Javascript error: {}", ex.getMessage()); } for (Map.Entry<Object, Object> entry : target.entrySet()) { String value = entry.getValue().toString(); Matcher matcher = substitutionPattern.matcher(value); if (matcher.find()) { StringBuilder newValue = new StringBuilder(); int cursor = 0; do { newValue.append(value.substring(cursor, matcher.start())); String subst = vars.get(matcher.group(1)); if (subst != null) { newValue.append(subst); } cursor = matcher.end(); } while (matcher.find()); newValue.append(value.substring(cursor)); target.put(entry.getKey(), newValue.toString()); } matcher = evalPattern.matcher(value); if (matcher.find()) { StringBuilder newValue = new StringBuilder(); int cursor = 0; do { newValue.append(value.substring(cursor, matcher.start())); try { Object result = engine.eval(matcher.group(1)); String eval = result.toString(); if (eval != null) { newValue.append(eval); } } catch (ScriptException ex) { LOG.warn("JavaScript exception {}", ex.getMessage()); } cursor = matcher.end(); } while (matcher.find()); newValue.append(value.substring(cursor)); target.put(entry.getKey(), newValue.toString()); } } }
From source file:org.ngrinder.perftest.service.PerfTestService.java
/** * Get the optimal process and thread count. * * @param newVuser the count of virtual users per agent * @return optimal process thread count/*from w w w . ja va 2s . c o m*/ */ public ProcessAndThread calcProcessAndThread(int newVuser) { try { String script = getProcessAndThreadPolicyScript(); ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript"); engine.eval(script); int processCount = ((Double) engine.eval("getProcessCount(" + newVuser + ")")).intValue(); int threadCount = ((Double) engine.eval("getThreadCount(" + newVuser + ")")).intValue(); return new ProcessAndThread(processCount, threadCount); } catch (ScriptException e) { LOGGER.error("Error occurs while calc process and thread", e); } return new ProcessAndThread(1, 1); }
From source file:com.bytelightning.opensource.pokerface.PokerFace.java
/** * If requested by the user, this method walks the script directory discovering, loading, compiling, and initialing an .js javascript files it finds in the specified directory or it's children. * @param baseScriptDirectory The contents of this directory should be structured in the same layout as the url's we wish to interfere with. * @param watchScriptDirectory If true, a watch will be placed on <code>baseScriptDirectory</code> and any javascript file modifications (cud) will be dynamically rebuilt and reflected in the running server. * @return True if all scripts were successfully loaded. *///w ww. ja va2 s. co m protected boolean configureScripts(final List<Path> jsLibs, final HierarchicalConfiguration scriptConfig, final Path baseScriptDirectory, boolean watchScriptDirectory) { // Our unit test has verified that CompiledScripts can produce objects (endpoints) that can be executed from ANY thread (and even concurrently execute immutable methods). // However we have not validated that Nashorn can compile *and* recompile scripts from multiple threads. //TODO: Write unit test to see if we can use all available processors to compile discovered javascript files. ScriptCompilationExecutor = Executors.newSingleThreadScheduledExecutor(); // This is done to make sure the engine is allocated in the same thread that will be doing the compiling. Callable<Boolean> compileScriptsTask = new Callable<Boolean>() { @Override public Boolean call() { Nashorn = new ScriptEngineManager().getEngineByName("nashorn"); if (jsLibs != null) for (Path lib : jsLibs) if (!loadScriptLibrary(lib)) return false; // Recursively discover javascript files, compile, load, and setup any that are found. EnumSet<FileVisitOption> opts = EnumSet.of(FileVisitOption.FOLLOW_LINKS); try { Files.walkFileTree(baseScriptDirectory, opts, Integer.MAX_VALUE, new SimpleFileVisitor<Path>() { @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { if (Files.isDirectory(dir) && dir.getFileName().toString().startsWith("#")) return FileVisitResult.SKIP_SUBTREE; return super.preVisitDirectory(dir, attrs); } @Override public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) throws IOException { if (Files.isRegularFile(path)) { if (path.toString().toLowerCase().endsWith(".js")) { MakeJavaScriptEndPointDescriptor(baseScriptDirectory, path, scriptConfig, new NewEndpointSetupCallback()); } } return FileVisitResult.CONTINUE; } }); } catch (IOException e) { Logger.error("Unable recursively load scripts", e); return false; } return true; } }; // Walk the root directory recursively compiling all discovered javascript files (does not return until all endpoint files have been setup). try { if (!ScriptCompilationExecutor.submit(compileScriptsTask).get()) return false; } catch (Throwable e) { Logger.error("Unable to compile scripts", e); return false; } if (watchScriptDirectory) { try { // Establish a watch on the root ScriptDirectoryWatcher.establishWatch(baseScriptDirectory, new DirectoryWatchEventListener() { // Internal Callable task to load, compile, and initialize a javascript file endpoint. final class CreateEndpointTask implements Callable<Void> { public CreateEndpointTask(Path file, EndpointSetupCompleteCallback callback) { this.file = file; this.callback = callback; } private final Path file; private final EndpointSetupCompleteCallback callback; @Override public Void call() { MakeJavaScriptEndPointDescriptor(baseScriptDirectory, file, scriptConfig, callback); return null; } } // Internal Callable task that gives us the ability to schedule a delayed unload of a deleted or obsoleted endpoint. // By delaying for a period of time longer than twice the socket timeout, we can safely call the endpoint's teardown method. final class DecommisionEndpointTask implements Callable<Void> { private DecommisionEndpointTask(ScriptObjectMirror endpoint) { this.endpoint = endpoint; } private final ScriptObjectMirror endpoint; @Override public Void call() { if (endpoint.hasMember("teardown")) endpoint.callMember("teardown"); return null; } } /** * Called by the WatchService when the contents of the script directory have changed. */ @Override public void onWatchEvent(Path watchDir, final Path oldFile, final Path newFile, FileChangeType change) { if (change == FileChangeType.eRenamed) { // If it was changed to something that does *not* end .js then it should no longer be considered an endpoint. if (oldFile.toString().toLowerCase().endsWith(".js")) if (!newFile.toString().toLowerCase().endsWith(".js")) change = FileChangeType.eDeleted; } if (change == FileChangeType.eModified || change == FileChangeType.eRenamed) { // Decommission the obsolete and load the update. try { assert newFile.toString().toLowerCase().endsWith(".js"); // Will be true because of the 'rename' check at the top of this method. ScriptCompilationExecutor .submit(new CreateEndpointTask(newFile, new NewEndpointSetupCallback() { @Override public ScriptObjectMirror setupComplete(JavaScriptEndPoint endpoint) { ScriptObjectMirror old = super.setupComplete(endpoint); assert old != null; // Yeah, it's hincky, but it won't be in use this long after we remove it from the Map. ScriptCompilationExecutor.schedule(new DecommisionEndpointTask(old), 6, TimeUnit.MINUTES); return null; } })); } catch (Throwable e) { Logger.error("Unable to compile modified script found at " + newFile.toAbsolutePath().toString(), e); } } else if (change == FileChangeType.eCreated) { // This is the easy one. If a javascript file was created, load it. if (newFile.toString().toLowerCase().endsWith(".js")) { try { ScriptCompilationExecutor.submit( new CreateEndpointTask(newFile, new NewEndpointSetupCallback())); } catch (Throwable e) { Logger.error("Unable to compile new script found at " + newFile.toAbsolutePath().toString(), e); } } } else if (change == FileChangeType.eDeleted) { // Endpoint should be decommisioned. if (oldFile.toString().toLowerCase().endsWith(".js")) { String uriKey = FileToUriKey(baseScriptDirectory, oldFile); ScriptObjectMirror desc = scripts.remove(uriKey); if (desc != null) { // Yeah, it's hincky, but it won't be in use this long after we remove it from the Map. ScriptCompilationExecutor.schedule(new DecommisionEndpointTask(desc), 6, TimeUnit.MINUTES); } } } } }); } catch (IOException e) { Logger.error("Unable to establish a real time watch on the script directory.", e); } } else // Not watching for changes, so we are done with the Executor. ScriptCompilationExecutor.shutdown(); return true; }
From source file:com.willwinder.universalgcodesender.model.GUIBackend.java
@Override public void setWorkPositionUsingExpression(final Axis axis, final String expression) throws Exception { String expr = StringUtils.trimToEmpty(expression); expr = expr.replaceAll("#", String.valueOf(getWorkPosition().get(axis))); // If the expression starts with a mathimatical operation add the original position if (StringUtils.startsWithAny(expr, "/", "*")) { double value = getWorkPosition().get(axis); expr = value + " " + expr; }//from ww w . j av a 2 s . c o m // Start a script engine and evaluate the expression ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("JavaScript"); try { double position = Double.valueOf(engine.eval(expr).toString()); setWorkPosition(axis, position); } catch (ScriptException e) { throw new Exception("Invalid expression", e); } }
From source file:de.pixida.logtest.engine.Automaton.java
private void initScriptEngine() { final ScriptEngineManager manager = new ScriptEngineManager(); final String language = StringUtils.defaultIfBlank(this.scriptLanguage, DEFAULT_SCRIPTING_LANGUAGE); this.scriptingEngine = manager.getEngineByName(language); if (this.scriptingEngine == null) { final String msg = "Scripting engine for language '" + language + "' could not be initalized"; LOG.error(msg);/*w w w .j av a2s . co m*/ throw new ExecutionException(msg); } else { LOG.debug("Using script language: {}", language); } this.scriptEnvironment = new ScriptEnvironment(); this.scriptingEngine.put("engine", this.scriptEnvironment); }
From source file:org.apache.jsp.fileUploader_jsp.java
public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { PageContext pageContext = null;//w w w. jav a 2 s . c o m HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; PageContext _jspx_page_context = null; try { response.setContentType("text/html; charset=utf-8"); pageContext = _jspxFactory.getPageContext(this, request, response, "", true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; out.write("<!--\n"); out.write("Copyright 2012 The Infinit.e Open Source Project\n"); out.write("\n"); out.write("Licensed under the Apache License, Version 2.0 (the \"License\");\n"); out.write("you may not use this file except in compliance with the License.\n"); out.write("You may obtain a copy of the License at\n"); out.write("\n"); out.write(" http://www.apache.org/licenses/LICENSE-2.0\n"); out.write("\n"); out.write("Unless required by applicable law or agreed to in writing, software\n"); out.write("distributed under the License is distributed on an \"AS IS\" BASIS,\n"); out.write("WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"); out.write("See the License for the specific language governing permissions and\n"); out.write("limitations under the License.\n"); out.write("-->\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"); out.write("<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"); out.write("<head>\n"); out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"); out.write("<title>Infinit.e File Upload Tool</title>\n"); out.write("<style media=\"screen\" type=\"text/css\">\n"); out.write("\n"); out.write("body \n"); out.write("{\n"); out.write("\tfont: 14px Arial,sans-serif;\n"); out.write("}\n"); out.write("h2\n"); out.write("{\n"); out.write("\tfont-family: \"Times New Roman\";\n"); out.write("\tfont-style: italic;\n"); out.write("\tfont-variant: normal;\n"); out.write("\tfont-weight: normal;\n"); out.write("\tfont-size: 24px;\n"); out.write("\tline-height: 29px;\n"); out.write("\tfont-size-adjust: none;\n"); out.write("\tfont-stretch: normal;\n"); out.write("\t-x-system-font: none;\n"); out.write("\tcolor: #d2331f;\n"); out.write("\tmargin-bottom: 25px;\n"); out.write("}\n"); out.write(".show {\n"); out.write("display: ;\n"); out.write("visibility: visible;\n"); out.write("}\n"); out.write(".hide {\n"); out.write("display: none;\n"); out.write("visibility: hidden;\n"); out.write("}\n"); out.write("</style>\n"); out.write("<script language=\"javascript\" src=\"AppConstants.js\"> </script>\n"); out.write("</head>\n"); out.write("\n"); out.write("<body onload=\"populate()\">\n"); if (API_ROOT == null) { ServletContext context = session.getServletContext(); String realContextPath = context.getRealPath("/"); ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); try { // EC2 Machines FileReader reader = new FileReader(realContextPath + "/AppConstants.js"); engine.eval(reader); reader.close(); engine.eval("output = getEndPointUrl();"); API_ROOT = (String) engine.get("output"); SHARE_ROOT = API_ROOT + "share/get/"; } catch (Exception je) { try { ////////////Windows + Tomcat FileReader reader = new FileReader(realContextPath + "\\..\\AppConstants.js"); engine.eval(reader); reader.close(); engine.eval("output = getEndPointUrl();"); API_ROOT = (String) engine.get("output"); SHARE_ROOT = API_ROOT + "share/get/"; } catch (Exception e) { System.err.println(e.toString()); } } if (null == API_ROOT) { // Default to localhost API_ROOT = "http://localhost:8080/api/"; SHARE_ROOT = "$infinite/share/get/"; } if (API_ROOT.contains("localhost")) localCookie = true; else localCookie = false; } Boolean isLoggedIn = isLoggedIn(request, response); if (isLoggedIn == null) { out.println("The Infinit.e API cannot be reached."); out.println(API_ROOT); } else if (isLoggedIn == true) { showAll = (request.getParameter("sudo") != null); DEBUG_MODE = (request.getParameter("debug") != null); communityList = generateCommunityList(request, response); if (request.getParameter("logout") != null) { logOut(request, response); out.println("<div style=\" text-align: center;\">"); out.println("<meta http-equiv=\"refresh\" content=\"0\">"); out.println("</div>"); } else { out.println("<div style=\" text-align: center;\">"); String contentType = request.getContentType(); if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) { // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory()); // Parse the request FileItemIterator iter = upload.getItemIterator(request); byte[] fileBytes = null; String fileDS = null; byte[] iconBytes = null; String iconDS = null; Set<String> communities = new HashSet<String>(); boolean isFileSet = false; while (iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); InputStream stream = item.openStream(); if (item.isFormField()) { if (name.equalsIgnoreCase("communities")) { communities.add(Streams.asString(stream)); } else request.setAttribute(name, Streams.asString(stream)); //out.println("<b>" + name + ":</b>" + request.getAttribute(name).toString()+"</br>"); } else { if (name.equalsIgnoreCase("file")) { if (!item.getName().equals("")) isFileSet = true; fileDS = item.getContentType(); fileBytes = IOUtils.toByteArray(stream); // Check if this should be a java-archive (rather than just an octet stream) if (fileDS.equals("application/octet-stream")) { ZipInputStream zis = new ZipInputStream( new ByteArrayInputStream(fileBytes)); ZipEntry entry; while ((entry = zis.getNextEntry()) != null) { if (entry.getName().endsWith(".class")) { fileDS = "application/java-archive"; break; } } } // Reset stream, and read } } } ////////////////////////////////////Delete Share //////////////////////////////// if (request.getAttribute("deleteId") != null) { String fileId = request.getAttribute("deleteId").toString(); if (fileId != null && fileId != "") removeFromShare(fileId, request, response).toString(); } ////////////////////////////////////Update Community Info//////////////////////////////// else if (null == fileBytes) { String shareId = request.getAttribute("DBId").toString(); if (shareId != null && shareId != "") addRemoveCommunities(shareId, communities, request, response); } else { ////////////////////////////////////////////////////////////////////////////////// Boolean newUpload = (request.getAttribute("DBId").toString().length() == 0); ///////////////////////////////// SWF Manip ///////////////////////////////// String shareId = request.getAttribute("DBId").toString(); String fileUrl = ""; String fileId = ""; String bin = request.getAttribute("binary").toString(); if (request.getAttribute("title") != null && request.getAttribute("description") != null && fileBytes != null) { if (!isFileSet) //if not a binary file or file was not changed { fileId = shareId; if (shareId != null && shareId != "") addRemoveCommunities(shareId, communities, request, response); out.println("File was not set, just updated communities."); } else if (bin.equals("null")) //is a json file, make sure its okay and upload it { fileId = UpdateToShare(fileBytes, fileDS, request.getAttribute("title").toString(), request.getAttribute("description").toString(), shareId, communities, true, request.getAttribute("type").toString(), newUpload, request, response); } else //is a binary, do normal { fileId = UpdateToShare(fileBytes, fileDS, request.getAttribute("title").toString(), request.getAttribute("description").toString(), shareId, communities, false, request.getAttribute("type").toString(), newUpload, request, response); } if (fileId.contains("Failed")) { out.println(fileId); } else { fileUrl = SHARE_ROOT + fileId; if (newUpload) out.println( "You have successfully added a file to the share, its location is: " + fileUrl); else out.println( "You have successfully updated a file on the share, its location is: " + fileUrl); } } else { fileUrl = null; out.println("Error: Not enough information provided for file Upload"); } ///////////////////////////////// End File Manip ///////////////////////////////// out.println("</div>"); } } else { } out.write("\n"); out.write("\t\n"); out.write("\t<script>\n"); out.write("\tfunction clearCommList()\n"); out.write("\t\t{\n"); out.write("\t\t\tmult_comms = document.getElementById('communities');\n"); out.write("\t\t\tfor ( var i = 0, l = mult_comms.options.length, o; i < l; i++ )\n"); out.write("\t\t\t{\n"); out.write("\t\t\t o = mult_comms.options[i];\n"); out.write("\t\t\t o.selected = false;\n"); out.write("\t\t\t}\n"); out.write("\t\t}\n"); out.write("\t\tfunction highlightComms(commList)\n"); out.write("\t\t{\n"); out.write("\t\t\tmult_comms = document.getElementById('communities');\n"); out.write("\t\t\tfor ( var i = 0, l = mult_comms.options.length, o; i < l; i++ )\n"); out.write("\t\t\t{\n"); out.write("\t\t\t o = mult_comms.options[i];\n"); out.write("\t\t\t if(commList.indexOf(o.value) == -1)\n"); out.write("\t\t\t\to.selected = false;\n"); out.write("\t\t\t else \n"); out.write("\t\t\t \to.selected = true;\n"); out.write("\t\t\t}\n"); out.write("\t\t}\n"); out.write("\tfunction populate()\n"); out.write("\t{\n"); out.write("\t\tvar typerow = document.getElementById('typerow');\n"); out.write("\t\tvar type = document.getElementById('type');\n"); out.write("\t\tvar title = document.getElementById('title');\n"); out.write("\t\tvar description = document.getElementById('description');\n"); out.write("\t\tvar file = document.getElementById('file');\n"); out.write("\t\tvar created = document.getElementById('created');\n"); out.write("\t\tvar DBId = document.getElementById('DBId');\n"); out.write("\t\tvar deleteId = document.getElementById('deleteId');\n"); out.write("\t\tvar deleteButton = document.getElementById('deleteButton');\n"); out.write("\t\tvar share_url = document.getElementById('share_url');\n"); out.write("\t\tvar owner_text = document.getElementById('owner_text');\n"); out.write("\t\tvar owner = document.getElementById('owner');\n"); out.write("\t\tvar url_row = document.getElementById('url_row');\n"); out.write("\t\tvar dropdown = document.getElementById(\"upload_info\");\n"); out.write("\t\tvar list = dropdown.options[dropdown.selectedIndex].value;\n"); out.write("\t\tvar binary = document.getElementById(\"binary\");\n"); out.write("\t\t\n"); out.write("\t\tif (list == \"new\")\n"); out.write("\t\t{\n"); out.write("\t\t\ttitle.value = \"\";\n"); out.write("\t\t\tdescription.value = \"\";\n"); out.write("\t\t\ttype.value = \"binary\";\n"); out.write("\t\t\tcreated.value = \"\";\n"); out.write("\t\t\tDBId.value = \"\";\n"); out.write("\t\t\tdeleteId.value = \"\";\n"); out.write("\t\t\tshare_url.value = \"\";\n"); out.write("\t\t\towner.value = \"\";\n"); out.write("\t\t\ttyperow.className = \"hide\";\n"); out.write("\t\t\turl_row.className = \"hide\";\n"); out.write("\t\t\towner.className = \"hide\";\n"); out.write("\t\t\towner_text.className = \"hide\";\n"); out.write("\t\t\tdeleteButton.className = \"hide\";\n"); out.write("\t\t\tclearCommList();\n"); out.write("\t\t\tbinary.value = \"\";\n"); out.write("\t\t\treturn;\n"); out.write("\t\t}\n"); out.write("\t\t\n"); out.write("\t\tif ( list == \"newJSON\")\n"); out.write("\t\t{\n"); out.write("\t\t\ttitle.value = \"\";\n"); out.write("\t\t\tdescription.value = \"\";\n"); out.write("\t\t\ttype.value = \"\";\n"); out.write("\t\t\tcreated.value = \"\";\n"); out.write("\t\t\tDBId.value = \"\";\n"); out.write("\t\t\tdeleteId.value = \"\";\n"); out.write("\t\t\tshare_url.value = \"\";\n"); out.write("\t\t\towner.value = \"\";\n"); out.write("\t\t\ttyperow.className = \"show\";\n"); out.write("\t\t\turl_row.className = \"hide\";\n"); out.write("\t\t\towner.className = \"hide\";\n"); out.write("\t\t\towner_text.className = \"hide\";\n"); out.write("\t\t\tdeleteButton.className = \"hide\";\n"); out.write("\t\t\tclearCommList();\n"); out.write("\t\t\tbinary.value = \"null\";\n"); out.write("\t\t\treturn;\n"); out.write("\t\t}\n"); out.write("\t\t\n"); out.write("\t\t//_id, created, title, description\n"); out.write("\t\tsplit = list.split(\"$$$\");\n"); out.write("\t\t\n"); out.write("\t\tres_id = split[0];\n"); out.write("\t\tres_created = split[1];\n"); out.write("\t\tres_title = split[2];\n"); out.write("\t\tres_description = split[3];\n"); out.write("\t\tres_url = split[4];\n"); out.write("\t\tcommunities = split[5];\n"); out.write("\t\tres_owner = split[6];\n"); out.write("\t\tres_binary = split[7];\t\t\n"); out.write("\t\tres_type = split[8];\t\t\t\n"); out.write("\t\t\n"); out.write("\t\tif ( res_binary == \"null\" )\n"); out.write("\t\t{\n"); out.write("\t\t\ttyperow.className = \"show\";\n"); out.write("\t\t}\n"); out.write("\t\telse\n"); out.write("\t\t{\n"); out.write("\t\t\ttyperow.className = \"hide\";\n"); out.write("\t\t}\n"); out.write("\t\ttitle.value = res_title;\n"); out.write("\t\tdescription.value = res_description;\n"); out.write("\t\tcreated.value = res_created;\n"); out.write("\t\tDBId.value = res_id;\n"); out.write("\t\tdeleteId.value = res_id;\n"); out.write("\t\tshare_url.value = res_url;\n"); out.write("\t\towner.value = res_owner;\t\t\n"); out.write("\t\tdeleteButton.className = \"show\";\n"); out.write("\t\towner.className = \"show\";\n"); out.write("\t\towner_text.className = \"show\";\n"); out.write("\t\turl_row.className = \"show\";\n"); out.write("\t\thighlightComms(communities);\t\t\n"); out.write("\t\tbinary.value = res_binary;\n"); out.write("\t\ttype.value = res_type;\n"); out.write("\t}\n"); out.write("\t\tfunction validate_fields()\n"); out.write("\t\t{\n"); out.write("\t\t\ttitle = document.getElementById('title').value;\n"); out.write("\t\t\tdescription = document.getElementById('description').value;\n"); out.write("\t\t\tfile = document.getElementById('file').value;\n"); out.write("\t\t\tbinary = document.getElementById(\"binary\").value;\n"); out.write("\t\t\ttype = document.getElementById(\"type\").value;\n"); out.write("\t\t\t//share_url = document.getElementById('share_url').value;\n"); out.write("\t\t\t//file_url = document.getElementById('file_url').value;\n"); out.write("\t\t\t//file_check = document.getElementById('file_check').checked;\n"); out.write("\t\t\t\n"); out.write("\t\t\tif (title == \"\")\n"); out.write("\t\t\t{\n"); out.write("\t\t\t\talert('Please provide a title.');\n"); out.write("\t\t\t\treturn false;\n"); out.write("\t\t\t}\n"); out.write("\t\t\tif (description == \"\")\n"); out.write("\t\t\t{\n"); out.write("\t\t\t\talert('Please provide a description.');\n"); out.write("\t\t\t\treturn false;\n"); out.write("\t\t\t}\n"); out.write("\t\t\tif ( binary == \"null\" && type == \"\")\n"); out.write("\t\t\t{\n"); out.write("\t\t\t\talert('Please provide a type.');\n"); out.write("\t\t\t\treturn false;\n"); out.write("\t\t\t}\n"); out.write("\t\t\t\n"); out.write("\t\t\t\n"); out.write("\t\t}\n"); out.write("\t\tfunction confirmDelete()\n"); out.write("\t\t{\n"); out.write( "\t\t\tvar agree=confirm(\"Are you sure you wish to Delete this file from the File Share?\");\n"); out.write("\t\t\tif (agree)\n"); out.write("\t\t\t\treturn true ;\n"); out.write("\t\t\telse\n"); out.write("\t\t\t\treturn false ;\n"); out.write("\t\t}\n"); out.write("\t\tfunction showResults()\n"); out.write("\t\t{\n"); out.write("\t\t\tvar title = document.getElementById('DBId').value;\n"); out.write("\t\t\tvar url = getEndPointUrl() + \"share/get/\" + title;\n"); out.write("\t\t\twindow.open(url, '_blank');\n"); out.write("\t\t\twindow.focus();\t\t\t\n"); out.write("\t\t}\n"); out.write("\t\t// -->\n"); out.write("\t\t</script>\n"); out.write("\t</script>\n"); out.write( "\t\t<div id=\"uploader_outter_div\" name=\"uploader_outter_div\" align=\"center\" style=\"width:100%\" >\n"); out.write( "\t \t<div id=\"uploader_div\" name=\"uploader_div\" style=\"border-style:solid; border-color:#999999; border-radius: 10px; width:475px; margin:auto\">\n"); out.write("\t \t<h2>File Uploader</h2>\n"); out.write("\t \t<form id=\"search_form\" name=\"search_form\" method=\"get\">\n"); out.write("\t \t\t<div align=\"center\"\">\n"); out.write("\t \t\t<label for=\"ext\">Filter On</label>\n"); out.write("\t\t\t\t\t <select name=\"ext\" id=\"ext\" onchange=\"this.form.submit();\">\n"); out.write("\t\t\t\t\t "); out.print(populateMediaTypes(request, response)); out.write("\n"); out.write("\t\t\t\t\t </select>\n"); out.write("\t\t\t\t\t </div>\n"); out.write("\t\t\t\t\t "); if (showAll) out.print("<input type=\"hidden\" name=\"sudo\" id=\"sudo\" value=\"true\" />"); out.write("\t \t\t\n"); out.write("\t \t</form>\n"); out.write( "\t \t<form id=\"delete_form\" name=\"delete_form\" method=\"post\" enctype=\"multipart/form-data\" onsubmit=\"javascript:return confirmDelete()\" >\n"); out.write( "\t \t\t<select id=\"upload_info\" onchange=\"populate()\" name=\"upload_info\"><option value=\"new\">Upload New File</option><option value=\"newJSON\">Upload New JSON</option> "); out.print(populatePreviousUploads(request, response)); out.write("</select>\n"); out.write( "\t \t\t<input type=\"submit\" name=\"deleteButton\" id=\"deleteButton\" class=\"hidden\" value=\"Delete\" />\n"); out.write("\t \t\t<input type=\"hidden\" name=\"deleteId\" id=\"deleteId\" />\n"); out.write("\t \t\t<input type=\"hidden\" name=\"deleteFile\" id=\"deleteFile\" />\n"); out.write("\t\t\t\t\t "); if (showAll) out.print("<input type=\"hidden\" name=\"sudo\" id=\"sudo\" value=\"true\" />"); out.write("\t \t\t\n"); out.write("\t \t</form>\n"); out.write( "\t <form id=\"upload_form\" name=\"upload_form\" method=\"post\" enctype=\"multipart/form-data\" onsubmit=\"javascript:return validate_fields();\" >\n"); out.write( "\t <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"padding-left:10px; padding-right:10px\">\n"); out.write("\t <tr>\n"); out.write("\t <td colspan=\"2\" align=\"center\"></td>\n"); out.write("\t </tr>\n"); out.write("\t <tr>\n"); out.write("\t <td>Title:</td>\n"); out.write( "\t <td><input type=\"text\" name=\"title\" id=\"title\" size=\"39\" /></td>\n"); out.write("\t </tr>\n"); out.write("\t <tr>\n"); out.write("\t <td>Description:</td>\n"); out.write( "\t <td><textarea rows=\"4\" cols=\"30\" name=\"description\" id=\"description\" ></textarea></td>\n"); out.write("\t </tr>\n"); out.write("\t <tr id=\"typerow\">\n"); out.write("\t <td>Type:</td>\n"); out.write( "\t <td><input type=\"text\" name=\"type\" id=\"type\" size=\"39\" /></td>\n"); out.write("\t </tr>\n"); out.write("\t <tr>\n"); out.write("\t \t<td>Communities:</td>\n"); out.write("\t \t<td>"); out.print(communityList); out.write("</td>\n"); out.write("\t </tr>\n"); out.write("\t <tr>\n"); out.write("\t \t<td id=\"owner_text\">Owner:</td>\n"); out.write("\t \t<td>\n"); out.write( "\t <input type=\"text\" name=\"owner\" id=\"owner\" readonly=\"readonly\" size=\"25\" />\n"); out.write("\t \t</td>\n"); out.write("\t </tr>\n"); out.write("\t <tr>\n"); out.write("\t <td>File:</td>\n"); out.write("\t <td><input type=\"file\" name=\"file\" id=\"file\" /></td>\n"); out.write("\t </tr>\n"); out.write("\t <tr id=\"url_row\" class=\"hide\">\n"); out.write("\t \t<td>Share URL:</td>\n"); out.write( "\t \t<td><input type=\"text\" name=\"share_url\" id=\"share_url\" readonly=\"readonly\" size=\"38\"/>\n"); out.write( "\t \t<input type=\"button\" onclick=\"showResults()\" value=\"View\"/>\n"); out.write("\t \t</td>\n"); out.write("\t \t<td></td>\n"); out.write("\t </tr>\n"); out.write("\t <tr>\n"); out.write( "\t <td colspan=\"2\" style=\"text-align:right\"><input type=\"submit\" value=\"Submit\" /></td>\n"); out.write("\t </tr>\n"); out.write("\t </table>\n"); out.write("\t\t\t\t\t<input type=\"hidden\" name=\"created\" id=\"created\" />\n"); out.write("\t\t\t\t\t<input type=\"hidden\" name=\"DBId\" id=\"DBId\" />\n"); out.write("\t\t\t\t\t<input type=\"hidden\" name=\"fileUrl\" id=\"fileUrl\" />\n"); out.write("\t\t\t\t\t<input type=\"hidden\" name=\"binary\" id=\"binary\" />\n"); out.write("\t\t\t\t\t "); if (showAll) out.print("<input type=\"hidden\" name=\"sudo\" id=\"sudo\" value=\"true\" />"); out.write("\t \t\t\n"); out.write("\t\t\t\t</form>\n"); out.write("\t </div>\n"); out.write("\t <form id=\"logout_form\" name=\"logout_form\" method=\"post\">\n"); out.write( "\t \t<input type=\"submit\" name=\"logout\" id = \"logout\" value=\"Log Out\" />\n"); out.write("\t </form>\n"); out.write("\t </div>\n"); out.write("\t </p>\n"); out.write("\t\n"); } } else if (isLoggedIn == false) { //localCookie =(request.getParameter("local") != null); //System.out.println("LocalCookie = " + localCookie.toString()); String errorMsg = ""; if (request.getParameter("logintext") != null || request.getParameter("passwordtext") != null) { if (logMeIn(request.getParameter("logintext"), request.getParameter("passwordtext"), request, response)) { showAll = (request.getParameter("sudo") != null); out.println("<meta http-equiv=\"refresh\" content=\"0\">"); out.println("Login Success"); } else { errorMsg = "Log in Failed, Please Try again"; } } out.write("\n"); out.write("\n"); out.write("<script>\n"); out.write("\tfunction validate_fields()\n"); out.write("\t{\n"); out.write("\t\tuname = document.getElementById('logintext').value;\n"); out.write("\t\tpword = document.getElementById('passwordtext').value;\n"); out.write("\t\t\n"); out.write("\t\tif (uname == \"\")\n"); out.write("\t\t{\n"); out.write("\t\t\talert('Please provide your username.');\n"); out.write("\t\t\treturn false;\n"); out.write("\t\t}\n"); out.write("\t\tif (pword == \"\")\n"); out.write("\t\t{\n"); out.write("\t\t\talert('Please provide your password.');\n"); out.write("\t\t\treturn false;\n"); out.write("\t\t}\n"); out.write("\t}\n"); out.write("\n"); out.write("\n"); out.write("</script>\n"); out.write( "\t<div id=\"login_outter_div\" name=\"login_outter_div\" align=\"center\" style=\"width:100%\" >\n"); out.write( " \t<div id=\"login_div\" name=\"login_div\" style=\"border-style:solid; border-color:#999999; border-radius: 10px; width:450px; margin:auto\">\n"); out.write(" \t<h2>Login</h2>\n"); out.write( " <form id=\"login_form\" name=\"login_form\" method=\"post\" onsubmit=\"javascript:return validate_fields();\" >\n"); out.write( " <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"padding-left:10px\">\n"); out.write(" <tr>\n"); out.write(" <td>User Name</td>\n"); out.write(" <td> </td>\n"); out.write(" <td>Password</td>\n"); out.write(" </tr>\n"); out.write(" <tr>\n"); out.write( " <td><input type=\"text\" name=\"logintext\" id=\"logintext\" width=\"190px\" /></td>\n"); out.write(" <td> </td>\n"); out.write( " <td><input type=\"password\" name=\"passwordtext\" id=\"passwordtext\" width=\"190px\" /></td>\n"); out.write(" </tr>\n"); out.write(" <tr>\n"); out.write( " <td colspan=\"3\" align=\"right\"><input name=\"Login\" type=\"submit\" value=\"Login\" /></td>\n"); out.write(" </tr>\n"); out.write(" </table>\n"); out.write("\t\t\t</form>\n"); out.write(" </div>\n"); out.write(" </div>\n"); out.write("\t<div style=\"color: red; text-align: center;\"> "); out.print(errorMsg); out.write(" </div>\n"); } out.write("\n"); out.write(" \n"); out.write(" \n"); out.write("</body>\n"); out.write("</html>"); } catch (Throwable t) { if (!(t instanceof SkipPageException)) { out = _jspx_out; if (out != null && out.getBufferSize() != 0) try { out.clearBuffer(); } catch (java.io.IOException e) { } if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); } } finally { _jspxFactory.releasePageContext(_jspx_page_context); } }