Java Web Scripting and Apache Tomcat

Total Page:16

File Type:pdf, Size:1020Kb

Java Web Scripting and Apache Tomcat WIRTSCHAFTSUNIVERSITÄT WIEN BAKKALAUREATSARBEIT Titel der Bakkalaureatsarbeit: Java Web Scripting und Apache Tomcat Englischer Titel der Bakkalaureatsarbeit: Java Web Scripting and Apache Tomcat Verfasser: Stanislav Ryabenkiy Matrikel-Nr.: 0350436 Studienrichtung: Wirtschaftsinformatik Kurs: 0675 Wirtschaftsinformatik Projektseminar Textsprache Englisch BetreuerIn: Prof. Mag.Dr. Rony G. Flatscher Unternehmen: Wirtschaftsuniversität Wien Ich versichere: dass ich die Bakkalaureatsarbeit selbstständig verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt und uns auch sonst keiner unerlaubten Hilfe bedient habe. Dass ich die Ausarbeitung zu dem obigen Thema bisher weder im In- noch im Ausland (einer Beurteilerin/ einem Beurteiler zur Begutachtung) in irgendeiner Form als Prüfungsar- beit vorgelegt habe. Dass diese Arbeit mit der vom Betreuer beurteilten Arbeit übereinstimmt. Datum Unterschrift RYABENKIY Abstract In a world of increasing hardware capabilities, agile development meth- ods and Web 2.0, scripting languages play an increasingly important role. This paper explores the synergy of scripting languages and web development on the Java platform through literature review and practi- cal work. KEYWORDS:JAVA,SCRIPTING,WEB DEVELOPMENT,BEAN SCRIPT- ING FRAMEWORK, JSR-223, TOMCAT In einer Welt geprägt von mächtiger werdenden Hardware, agiler Soft- wareentwicklung, und Web 2.0 spielen Skriptsprachen eine zunehmend wichtige Rolle. Diese Arbeit erforscht die Synergie von Skriptsprachen und Webentwicklung auf der Java Platform durch Literaturübersicht und praktische Arbeit. STICHWÖRTER:JAVA,SCRIPTING,WEB DEVELOPMENT,BEAN SCRIPT- ING FRAMEWORK, JSR-223, TOMCAT 2 RYABENKIY Contents 1 Introduction 7 1.1 Methodology . .8 1.2 Structure . .8 2 Java Scripting 10 2.1 Scripting Languages . 11 2.1.1 Compiler Architecture . 12 2.1.2 Variable Typing . 14 2.1.3 Other Advantages . 15 2.2 Scripting in Java . 17 2.2.1 Bean Scripting Framework . 19 2.2.2 Scripting for the Java Platform (JSR-223) . 20 3 Java Web Development 22 3.1 Apache Tomcat . 22 3.2 Servlet Specification . 25 3.3 JavaServer Pages Specification . 29 3.3.1 JSP Architecture . 30 3.3.2 Tag Libraries . 32 4 Java Web Scripting 34 4.1 The BSF Tag Library . 34 4.1.1 Architecture . 34 4.1.2 Deployment . 36 4.1.3 Usage . 39 4.2 The Script Tag Library . 39 4.2.1 Architecture . 40 4.2.2 Deployment . 40 4.2.3 Usage . 41 4.3 RexxScriptEngine . 42 4.3.1 Architecture . 43 4.3.2 Deployment . 44 4.3.3 Usage . 45 3 RYABENKIY 4.4 QuercusEngine . 45 4.4.1 Architecture . 46 4.4.2 Deployment . 46 4.4.3 Usage . 48 5 Example Application 49 5.1 Architecture . 50 5.2 Interface . 55 6 Conclusions 57 References 59 Glossary 63 A Script Tag Library for JSR-223 64 A.1 Tag Library Descriptor . 64 A.2 ExpressionTag Class . 66 A.3 ScriptletTag Class . 70 B RexxScriptEngine for JSR-223 74 B.1 Service Descriptor . 74 B.2 RexxScriptEngine Class . 74 B.3 RexxScriptEngineFactory Class . 82 C QuercusEngine for BSF 86 C.1 Modified BSF 2.4 Descriptor . 86 C.2 QuercusEngine Class . 86 4 RYABENKIY Figures 1 Compiler architecture (Bosanac 2007) . 12 2 Interpreter Architecture (Bosanac 2007) . 13 3 Hybrid compiler-interpreter architecture (Bosanac 2007) . 14 4 A selection of Java scripting languages . 18 5 Internals of the Scripting Engine (Zhang 2008) . 21 6 Generic configuration (Turk 2008) . 23 7 Secure generic configuration (Turk 2008) . 24 8 Load balancing configuration (Turk 2008) . 25 9 Servlet-based web application workflow . 26 10 Request/Response flow calling as JSP page (Mahmoud 2003) . 31 11 JSP Model 1 architecture (Mahmoud 2003) . 32 12 JSP Model 2 architecture (Mahmoud 2003) . 32 13 Architecture of Birthday Manager application . 51 14 Birthday Manager - Contact List . 55 15 Birthday Manager - New Contact . 56 16 Birthday Manager - Edit Contact . 56 5 RYABENKIY Listings 1 itoa() in x86 assembly . 10 2 itoa() in Java . 11 3 Printing a list in Python (Bosanac 2007) . 16 4 Printing a list in Java 1.4 (Bosanac 2007) . 16 5 Runtime code generation in Python (Bosanac 2007) . 17 6 Higher-order functions in Python (Bosanac 2007) . 17 7 Incompatible interfaces (Roth 2007) . 19 8 Sample HTTP servlet code . 27 9 JSP example . 30 10 Part of a translated JSP page . 31 11 Setting language using JSP page directive . 34 12 doEndTag() of scriptlet class . 35 13 Custom Ant script for building BSF taglib . 36 14 BSF taglib entry in WEB-INF/web.xml . 38 15 BSF taglib usage . 39 16 Script taglib entry in WEB-INF/web.xml . 41 17 Script taglib usage . 42 18 The eval() method of RexxScriptEngine . 43 19 Usage of RexxScriptEngine . 45 20 Using QuercusEngine . 48 21 Part of JYTHONCONTROLLER front controller HTTP GET dispatch . 52 22 Excerpt of PERSONSERVICE CRUD methods . 52 23 delete_do.jsp in PHP . 53 24 edit_do.jsp in Rexx . 54 6 RYABENKIY 1 Introduction As hardware capabilities and user expectations continue rising, soft- ware is becoming increasingly complex. Scripting languages help meet these increasingly complex environments by increasing developer pro- ductivity. Google trends show that searches involving scripting lan- guage names are on the rise (Zhang 2008). Additionally, the well estab- lished Java platform provides advanced web development capabilities. The popularity of Java for web development is dwarfed by the ubiq- uity of the PHP web development scripting language - in 2010, J2EE was present on 7.87% of domains compared to 30.32%, according to BuiltWith.com 1. The purpose of this paper is to explore the synergy of scripting lan- guages and web development on the Java platform and to fill a number of perceived gaps through practical work by extending better support for scripting languages to the Java web development environment. Better support for scripting languages in the Java web development environ- ment can provide more choice for developers, leverage existing knowl- edge of scripting language programmers and ease their transition into Java, and counteract vendor lock-in by allowing developers from other languages to apply their knowledge in a Java environment. Practical evidence suggests that providing a choice of scripting language in such an environment has been on the mind of bigger software companies - Microsoft’s Active Server Pages (ASP.NET) technology can run other script languages via Component Object Model (COM) interfaces, and IBM provides a Java-based dynamic scripting environment for enter- prise development via WebSphere sMash, which is scriptable using 1http://trends.builtwith.com/framework 7 RYABENKIY PHP and Groovy. 1.1 Methodology This paper consists of a literature review followed by practical work. The initial sections of the paper introduce the theoretical concepts of scripting and web development on the Java platform, while the latter sections discuss the author’s various implementations extending the available functionality at the intersection of these two areas as well as the example application that demonstrates this functionality. The code of the various implementations can be found in the appendix and is made available under open source licenses. 1.2 Structure Section 2 introduces basic concepts and advantages of scripting as well as the relevance of scripting for the Java platform. It also discusses the Bean Scripting Framework (BSF) and the Java Specification Request 223 (“JSR-223 Scripting for the Java Platform”). Section 3 briefly intro- duces web development from a Java perspective. It discusses the ba- sics of core technologies such as the Servlet API and the JavaServer Pages API (JSP), especially the Tag Extension mechanism, which is relevant to further work in the paper. It also introduces Apache Tomcat, a Servlet container that was used extensively in this project. Section 4 bridges the gap between web development and scripting on the Java platform. After introducing the already existing BSF Tag Library, this section discusses the author’s Script Tag Library, QuercusEngine for 8 RYABENKIY BSF 2.4, and RexxScriptEngine for JSR-223. Section 5 introduces an example application that demonstrates the basic functionality of both the BSF Tag Library and the Script Tag Library in Rexx, PHP, and Python. 9 RYABENKIY 2 Java Scripting At the most basic level, computers manipulate data using machine in- structions. An operation code, or opcode, tells the processor what task to perform on some operands. These commands are represented as sequences of bits. The instruction set of such sequences understood by a given processor is called machine language (Bosanac 2007). Ev- ery transistor-based computer2 in use today is based on these princi- ples, regardless of the actual programming language used. However, increasing hardware functionality and affordability leads to increasing expectations from users (Bosanac 2007). The first generation programming languages, machine languages, are barely readable and writeable by humans. Second-generation assem- bly languages were introduced which provided human-readable sym- bols for sequences of bits (Bosanac 2007). While more readable, these were still quite verbose and do not extend the capabilities of the pro- cessor. For instance, listing 1 demonstrates a function that converts an integer into a null-terminated ASCII string using the x86 instruction set. Listing 1: itoa() in x86 assembly itoa:; partially borrowed from Brian Raiter’s ls push eax; store number to display _mov ecx, 6 _mov al,’’ rep stosb; edi is filled with two spaces pop eax push edi; save end of string pointer mov cl, 10 .decloop: cdq 2as opposed to quantum computers, which operate using qubits 10 RYABENKIY div ecx add dl,’0’ dec edi mov[edi], dl or eax,eax jnz .decloop pop edi; returns position after string ret Higher-level, third generation programming languages add more and more abstract concepts, such as powerful loops, advanced data struc- tures, and objects, making it easier to develop applications. Such a language will often provide necessary functionality such as the integer conversion function above as part of its standard library or built into the language, making it a simple operation (see listing 2).
Recommended publications
  • Open Source Used in DNAC-Wide Area Bonjour Magneto
    Open Source Used In DNAC-Wide Area Bonjour Magneto Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the Cisco website at www.cisco.com/go/offices. Text Part Number: 78EE117C99-1090203837 Open Source Used In DNAC-Wide Area Bonjour Magneto 1 This document contains licenses and notices for open source software used in this product. With respect to the free/open source software listed in this document, if you have any questions or wish to receive a copy of any source code to which you may be entitled under the applicable free/open source license(s) (such as the GNU Lesser/General Public License), please contact us at [email protected]. In your requests please include the following reference number 78EE117C99-1090203837 Contents 1.1 javax-activation 1.2.0 1.1.1 Available under license 1.2 metrics-servlets 3.1.0 1.3 mongodb-driver 3.0.4 1.4 jaxb-core 2.3.0 1.4.1 Available under license 1.5 antlr 2.7.6 1.5.1 Available under license 1.6 spring-boot-autoconfigure 1.5.12.RELEASE 1.7 spring-instrument 4.3.19.RELEASE 1.7.1 Available under license 1.8 nimbus-jose-jwt 4.3.1 1.9 javax-inject 1 1.9.1 Available under license 1.10 json-smart 1.3.1 1.11 opentracing-util 0.31.0 1.12 xpp3-min 1.1.3.4.O 1.12.1 Notifications 1.12.2 Available under license 1.13 ojdbc 6 1.14 jax-ws-api 2.3.0 1.15 aspect-j 1.9.2 1.15.1 Available under license 1.16 jetty-util 9.3.27.v20190418 1.17 unirest-java 1.4.5 1.18 jetty-continuation 9.3.27.v20190418 Open Source Used In
    [Show full text]
  • Chapter 12 Calc Macros Automating Repetitive Tasks Copyright
    Calc Guide Chapter 12 Calc Macros Automating repetitive tasks Copyright This document is Copyright © 2019 by the LibreOffice Documentation Team. Contributors are listed below. You may distribute it and/or modify it under the terms of either the GNU General Public License (http://www.gnu.org/licenses/gpl.html), version 3 or later, or the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0/), version 4.0 or later. All trademarks within this guide belong to their legitimate owners. Contributors This book is adapted and updated from the LibreOffice 4.1 Calc Guide. To this edition Steve Fanning Jean Hollis Weber To previous editions Andrew Pitonyak Barbara Duprey Jean Hollis Weber Simon Brydon Feedback Please direct any comments or suggestions about this document to the Documentation Team’s mailing list: [email protected]. Note Everything you send to a mailing list, including your email address and any other personal information that is written in the message, is publicly archived and cannot be deleted. Publication date and software version Published December 2019. Based on LibreOffice 6.2. Using LibreOffice on macOS Some keystrokes and menu items are different on macOS from those used in Windows and Linux. The table below gives some common substitutions for the instructions in this chapter. For a more detailed list, see the application Help. Windows or Linux macOS equivalent Effect Tools > Options menu LibreOffice > Preferences Access setup options Right-click Control + click or right-click
    [Show full text]
  • Administration and Configuration Guide
    Red Hat JBoss Data Virtualization 6.4 Administration and Configuration Guide This guide is for administrators. Last Updated: 2018-09-26 Red Hat JBoss Data Virtualization 6.4 Administration and Configuration Guide This guide is for administrators. Red Hat Customer Content Services Legal Notice Copyright © 2018 Red Hat, Inc. This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
    [Show full text]
  • IBM Websphere Application Server V8 Concepts, Planning, and Design Guide
    IBM® WebSphere® Front cover IBM WebSphere Application Server V8 Concepts, Planning, and Design Guide Includes details about end-to-end planning for WebSphere implementations Defines WebSphere concepts and preferred practices Addresses distributed and z/OS platforms Margaret Ticknor Alan Corcoran Balazs Csepregi-Horvath Addison Goering José Pablo Hernandez Julien Limodin Sergio Straessli Pinto ibm.com/redbooks International Technical Support Organization IBM WebSphere Application Server V8 Concepts, Planning, and Design Guide August 2011 SG24-7957-00 Note: Before using this information and the product it supports, read the information in “Notices” on page xiii. First Edition (August 2011) This edition applies to Version 8.0 of IBM WebSphere Application Server. © Copyright International Business Machines Corporation 2011. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . xiii Trademarks . xiv Preface . .xv The team who wrote this book . .xv Become a published author, too! . xvii Comments welcome. xvii Stay connected to IBM Redbooks publications . xviii Chapter 1. Introduction to WebSphere Application Server V8 . 1 1.1 Java Platform, Enterprise Edition . 2 1.2 Overview of WebSphere Application Server . 3 1.2.1 Application server purpose . 3 1.2.2 Evolving Java application development standards . 4 1.2.3 Enhanced management . 5 1.2.4 Broader integration . 7 1.2.5 Advanced tooling and extensions . 9 1.3 Packaging . 10 1.3.1 WebSphere Application Server - Express V8 . 11 1.3.2 WebSphere Application Server V8 . 11 1.3.3 WebSphere Application Server for Developers V8 . 12 1.3.4 WebSphere Application Server Network Deployment V8 .
    [Show full text]
  • List of NMAP Scripts Use with the Nmap –Script Option
    List of NMAP Scripts Use with the nmap –script option Retrieves information from a listening acarsd daemon. Acarsd decodes ACARS (Aircraft Communication Addressing and Reporting System) data in real time. The information retrieved acarsd-info by this script includes the daemon version, API version, administrator e-mail address and listening frequency. Shows extra information about IPv6 addresses, such as address-info embedded MAC or IPv4 addresses when available. Performs password guessing against Apple Filing Protocol afp-brute (AFP). Attempts to get useful information about files from AFP afp-ls volumes. The output is intended to resemble the output of ls. Detects the Mac OS X AFP directory traversal vulnerability, afp-path-vuln CVE-2010-0533. Shows AFP server information. This information includes the server's hostname, IPv4 and IPv6 addresses, and hardware type afp-serverinfo (for example Macmini or MacBookPro). Shows AFP shares and ACLs. afp-showmount Retrieves the authentication scheme and realm of an AJP service ajp-auth (Apache JServ Protocol) that requires authentication. Performs brute force passwords auditing against the Apache JServ protocol. The Apache JServ Protocol is commonly used by ajp-brute web servers to communicate with back-end Java application server containers. Performs a HEAD or GET request against either the root directory or any optional directory of an Apache JServ Protocol ajp-headers server and returns the server response headers. Discovers which options are supported by the AJP (Apache JServ Protocol) server by sending an OPTIONS request and lists ajp-methods potentially risky methods. ajp-request Requests a URI over the Apache JServ Protocol and displays the result (or stores it in a file).
    [Show full text]
  • 2010–2011 Our Mission
    ANNUAL REPORT 2010–2011 OUR MISSION The Indianapolis Museum of Art serves the creative interests of its communities by fostering exploration of art, design, and the natural environment. The IMA promotes these interests through the collection, presentation, interpretation, and conservation of its artistic, historic, and environmental assets. FROM THE CHAIRMAN 02 FROM THE MELVIN & BREN SIMON DIRECTOR AND CEO 04 THE YEAR IN REVIEW 08 EXHIBITIONS 18 AUDIENCE ENGAGEMENT 22 PUBLIC PROGRAMS 24 ART ACQUISITIONS 30 LOANS FROM THE COLLECTION 44 DONORS 46 IMA BOARD OF GOVERNORS 56 AFFILIATE GROUP LEADERSHIP 58 IMA STAFF 59 FINANCIAL REPORT 66 Note: This report is for fiscal year July 2010 through June 2011. COVER Thornton Dial, American, b. 1928, Don’t Matter How Raggly the Flag, It Still Got to Tie Us Together (detail), 2003, mattress coils, chicken wire, clothing, can lids, found metal, plastic twine, wire, Splash Zone compound, enamel, spray paint, on canvas on wood, 71 x 114 x 8 in. James E. Roberts Fund, Deaccession Sculpture Fund, Xenia and Irwin Miller Fund, Alice and Kirk McKinney Fund, Anonymous IV Art Fund, Henry F. and Katherine DeBoest Memorial Fund, Martha Delzell Memorial Fund, Mary V. Black Art Endowment Fund, Elizabeth S. Lawton Fine Art Fund, Emma Harter Sweetser Fund, General Endowed Art Fund, Delavan Smith Fund, General Memorial Art Fund, Deaccessioned Contemporary Art Fund, General Art Fund, Frank Curtis Springer & Irving Moxley Springer Purchase Fund, and the Mrs. Pierre F. Goodrich Endowed Art Fund 2008.182 BACK COVER Miller House and Garden LEFT The Wood Pavilion at the IMA 4 | FROM THE CHAIRMAN FROM THE CHAIRMAN | 5 RESEARCH LEADERSHIP From the In addition to opening the new state-of-the-art Conservation Science Laboratory this past March, the IMA has fulfilled the challenge grant from the Andrew W.
    [Show full text]
  • Javaedge Setup and Installation
    APPENDIX A ■ ■ ■ JavaEdge Setup and Installation Throughout the book, we have used the example application, JavaEdge, to provide a practical demonstration of all the features discussed. In this appendix, we will walk you through setting up the tools and applications required to build and run JavaEdge, as well as take you through the steps needed to get the JavaEdge application running on your platform. Environment Setup Before you can get started with the JavaEdge application, you need to configure your platform to be able to build and run JavaEdge. Specifically, you need to configure Apache Ant in order to build the JavaEdge application and package it up for deployment. In addition, the JavaEdge application is designed to run on a J2EE application server and to use MySQL as the back-end database. You also need to have a current JDK installed; the JavaEdge application relies on JVM version 1.5 or higher, so make sure your JDK is compatible. We haven’t included instruc- tions for this here, since we are certain that you will already have a JDK installed if you are reading this book. However, if you do need to download one, you can find it at http://java. sun.com/j2se/1.5.0/download.jsp. Installing MySQL The JavaEdge application uses MySQL as the data store for all user, story, and comment data. If you don’t already have the MySQL database server, then you need to obtain the version applicable to your platform. You can obtain the latest production binary release of MySQL for your platform at http://www.mysql.com.
    [Show full text]
  • Development Production Line the Short Story
    Development Production Line The Short Story Jene Jasper Copyright © 2007-2018 freedumbytes.dev.net (Free Dumb Bytes) Published 3 July 2018 4.0-beta Edition While every precaution has been taken in the preparation of this installation manual, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. To get an idea of the Development Production Line take a look at the following Application Integration overview and Maven vs SonarQube Quality Assurance reports comparison. 1. Operating System ......................................................................................................... 1 1.1. Windows ........................................................................................................... 1 1.1.1. Resources ................................................................................................ 1 1.1.2. Desktop .................................................................................................. 1 1.1.3. Explorer .................................................................................................. 1 1.1.4. Windows 7 Start Menu ................................................................................ 2 1.1.5. Task Manager replacement ........................................................................... 3 1.1.6. Resource Monitor .....................................................................................
    [Show full text]
  • Web 2.0 and Restful Applications with Websphere Smash and PHP Roland Barcia ‐ STSM, Websphere Lab Services, Lead Web 2.0 Architect Agenda
    Web 2.0 and RESTful Applications with WebSphere sMash and PHP Roland Barcia ‐ STSM, WebSphere Lab Services, Lead Web 2.0 Architect Agenda • WebSphere sMash • WebSphere sMash Programming Model • PHP in WebSphere sMash • PHP Applications • Demonstrations 2 Agenda • WebSphere sMash • WebSphere sMash Programming Model • PHP in WebSphere sMash • PHP Applications • Demonstrations 3 What is WebSphere sMash? • WebSphere sMash is a new Agile Web Application Platform – Leveraging Dynamic Scripting Languages – Optimized for Producing.... • REST-based Services • Integration Applications • Mash-ups • Rich Web interfaces 44 sMash Core Values Speed • Dynamic Scripting Support • Rich User Interfaces Support Agility Simplicity • Integrated runtime • End to end web-based tooling • Pre-built services • Visual & programmatic editors 55 Dynamic Scripting • WebSphere sMash is a dynamic scripting platform • Application logic is created in a scripting language – Groovy (for people that prefer Java) – PHP (for the millions of existing PHP programmers) • Java is positioned as the “system” language 66 Application Centric Runtime • WebSphere sMash is an application-centric runtime – You create an application and run it – Each application runs in its own process (JVM) – Runtime is designed to be short lived • WebSphere sMash is a full runtime stack – Everything needed to run the application is provided • including the HTTP stack – No external proxy or web server is required 77 Simple Deployment • The deployment is essentially ZIP and Copy • No machine specific information
    [Show full text]
  • Oracle Internet Application Server 8I
    Oracle Internet Application Server 8i Migrating from Oracle Application Server Release 1.0 June, 2000 Part No. A83709-01 Oracle Internet Application Server Migrating from Oracle Application Server, Release 1.0 Part No. A83709-01 Copyright © 2000, Oracle Corporation. All rights reserved. The Programs (which include both the software and documentation) contain proprietary information of Oracle Corporation; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. Oracle Corporation does not warrant that this document is error free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Oracle Corporation. If the Programs are delivered to the U.S. Government or anyone licensing or using the programs on behalf of the U.S. Government, the following notice is applicable: Restricted Rights Notice Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-19, Commercial Computer Software - Restricted Rights (June, 1987).
    [Show full text]
  • Scripting for the Java Platform
    Scripting for the Java Platform Christopher M. Judd President/Consultant Judd Solutions, LLC Christopher M. Judd • President/Consultant of Judd Solutions • Central Ohio Java User Group (COJUG) coordinator Agenda • Java Scripting Overview •Examples –API – Script Shell – Java EE Debugging • Alternative Java Scripting Engines – Configuring –Creating • Closing Thoughts • Resources •Q&A Java is the greatest language ever invented Developer’s tools Every developer’s toolbox should contain a static typed language like Java or C# and a dynamically typed scripting language like JavaScript, Ruby or Groovy. Java Scripting • Java Scripting support added in Java SE 6 • JSR 223: Scripting for the Java Platform • Java Virtual Machine – Executes “language-neutral” bytecode – Rich class library Java JavaScript Groovy – Multi-platform JVM •Features JavaScript Groovy – API to evaluate scripts – Embedded JavaScript engine (Rhino 1.6R2) – Scripting engine discovery mechanism – Java Scripting command-line interpreter (jrunscript) Reasons for Scripting •Flexibility • Simplicity (Domain Specific Language) • Interpreted • Development productivity •Dynamic typing • Expressive syntax •FUN Scripting Uses • Configuration •Customization • Automation • Debugging • Templating •Unit Testing •Prototyping • Web Scripting • Data transport Scripting Options •JavaScript – Rhino – www.mozilla.org/rhino/ •Groovy (JSR-241) – groovy.codehaus.org •Python –Jython –www.jython.org •Ruby –JRuby–jruby.codehaus.org •TCL –Jacl–tcljava.sourceforge.net • Java (JSR-274) – BeanShell www.beanshell.org
    [Show full text]
  • Download Vol 8, No 3&4, Year 2015
    The International Journal on Advances in Systems and Measurements is published by IARIA. ISSN: 1942-261x journals site: http://www.iariajournals.org contact: [email protected] Responsibility for the contents rests upon the authors and not upon IARIA, nor on IARIA volunteers, staff, or contractors. IARIA is the owner of the publication and of editorial aspects. IARIA reserves the right to update the content for quality improvements. Abstracting is permitted with credit to the source. Libraries are permitted to photocopy or print, providing the reference is mentioned and that the resulting material is made available at no cost. Reference should mention: International Journal on Advances in Systems and Measurements, issn 1942-261x vol. 8, no. 3 & 4, year 2015, http://www.iariajournals.org/systems_and_measurements/ The copyright for each included paper belongs to the authors. Republishing of same material, by authors or persons or organizations, is not allowed. Reprint rights can be granted by IARIA or by the authors, and must include proper reference. Reference to an article in the journal is as follows: <Author list>, “<Article title>” International Journal on Advances in Systems and Measurements, issn 1942-261x vol. 8, no. 3 & 4, year 2015, http://www.iariajournals.org/systems_and_measurements/ IARIA journals are made available for free, proving the appropriate references are made when their content is used. Sponsored by IARIA www.iaria.org Copyright © 2015 IARIA International Journal on Advances in Systems and Measurements Volume 8, Number
    [Show full text]