Mastering Apache Velocity Joseph D. Gradecki Jim Cole

Total Page:16

File Type:pdf, Size:1020Kb

Mastering Apache Velocity Joseph D. Gradecki Jim Cole a 457949 FM.qxd 6/13/03 1:45 PM Page i Mastering Apache Velocity Joseph D. Gradecki Jim Cole Wiley Publishing, Inc. a 457949 FM.qxd 6/13/03 1:45 PM Page xii a 457949 FM.qxd 6/13/03 1:45 PM Page i Mastering Apache Velocity Joseph D. Gradecki Jim Cole Wiley Publishing, Inc. a 457949 FM.qxd 6/13/03 1:45 PM Page ii Publisher: Joe Wikert Copyeditor: Elizabeth Welch Executive Editor: Robert Elliott Compositors: Gina Rexrode and Amy Hassos Editorial Manager: Kathryn Malm Managing Editor: Vincent Kunkemueller Book Producer: Ryan Publishing Group, Inc. Copyright © 2003 by Joseph D. Gradecki and Jim Cole. All rights reserved. Published by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8700. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4447, E-mail: [email protected]. Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or com- pleteness of the contents of this book and specifically disclaim any implied warranties of mer- chantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suit- able for your situation. You should consult with a professional where appropriate. Neither the pub- lisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages. For general information on our other products and services please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002. Trademarks: Wiley, the Wiley Publishing logo and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Java is a trademark of Sun Microsystems, Inc. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book. Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books. ISBN: 0-471-45794-9 Printed in the United States of America 10 9 8 7 6 5 4 3 2 1 a 457949 FM.qxd 6/13/03 1:45 PM Page iii CONTENTS About the Authors xi Introduction xiii What’s in This Book xiv Who Should Read This Book xiv Book Organization xv Part I Introduction to Velocity and MVC Chapter 1 Web Development Basics 1 Static Web Pages 1 Introducing CGI 2 Scripting: JSP/ASP/PHP 3 Future Development 4 What's Next 5 Chapter 2 MVC Fundamentals 7 Mixing Presentation and Logic 7 Smalltalk-80 MVC Triad 10 The Model 11 The View 12 The Controller 12 The MVC Architecture 12 Sun Models 1 and 2 13 Extending MVC to Web Applications 13 A Practical MVC 14 What's Next 16 Chapter 3 Introduction to Velocity 17 What Is Velocity? 17 How It Works 18 Designing the Page 18 Requesting the Right Information 19 Coding the Information 19 Displaying the Information 20 Velocity Features 21 What's Next 22 iii a 457949 FM.qxd 6/13/03 1:45 PM Page iv iv Contents Part II Velocity Basics Chapter 4 Installing Velocity 23 Prerequisites 23 Obtaining Velocity 24 Velocity Versions 27 Compiling Velocity 27 Testing the Velocity Installation 30 Running the Examples 31 examples/appexample1 31 examples/appexample2 31 examples/servletexample1 31 examples/servletexample2 32 examples/context_example 33 examples/logger_example 34 examples/xmlapp_example 34 examples/event_example 35 What's Next 35 Chapter 5 Building a Hello World Example 37 Hello World! 37 A Velocity Template without Context 38 The Velocity Template with Context 41 Velocity and the Web 42 What's Next 44 Chapter 6 Understanding Templates and Context 45 Using Templates 45 The Context 49 Putting the Pieces Together 50 What's Next 55 Chapter 7 Exploring References 57 Reference Types 57 Variables 58 Methods 63 Properties 66 Formal Reference Notation 70 Quiet Notation 71 Escaping References 72 What's Next 76 Chapter 8 Using Directives 77 #stop 77 #include 80 #parse 83 a 457949 FM.qxd 6/13/03 1:45 PM Page v Contents v #set 85 #end 93 #if 94 #else 96 #elseif 97 #foreach 100 #macro 105 Escaping Directives 105 What's Next 107 Chapter 9 Introducing Velocimacros 109 Argument Passing 109 Inline vs. Library Macros 114 Velocimacro Properties 115 velocimacro.library 115 velocimacro.permissions.allow.inline 115 velocimacro.permissions.allow.inline.to.replace.global 116 velocimacro.permissions.allow.inline.local.scope 116 velocimacro.context.localscope 116 velocimacro.library.autoreload 116 velocimacro.messages.on 117 Nesting and Recursion 117 What's Next 118 Chapter 10 Taking Control of Velocity 119 Initializing the Runtime Configuration 119 More Velocity Properties 123 Directive Properties 123 Encoding 124 Logging 125 Resource Management 126 Miscellaneous 128 Resource Loaders 129 Events 130 Context Chaining 133 Managing Whitespace 134 Singleton vs. Non-Singleton 137 What's Next 137 Part III Developing with Velocity Chapter 11 Velocity, XML, and Anakia 139 Accessing XML in Velocity Templates 139 Velocity and Anakia 142 The Ant Build Task 142 Source Documents 144 a 457949 FM.qxd 6/13/03 1:45 PM Page vi vi Contents Anakia Velocity Stylesheets 145 Context References 149 Outputting XML Using Velocity 150 The Artist Query XML 150 The Full CD Report XML 152 What's Next 154 Chapter 12 Using Velocity with Servlets 155 Using Servlets 155 A Common Format for Servlets 156 Extending Servlets with VelocityServlet 157 Basic Velocity Servlet Code 157 Creating an MVC Application 160 The Database Structure 161 Database Access 162 The Model Code 163 The View Code 166 The Controller Code 170 Advanced Servlet Functionality 175 Adding Reports 178 What's Next 183 Chapter 13 Velocity and Internationalization 185 Java Internationalization Components 185 The Java Locale Class 186 Resource Bundles 186 An International CD Web Application 187 What's Next 193 Chapter 14 Using Velocity and Turbine 195 What Is Turbine? 195 The Turbine Architecture 196 The Action Module 197 The Navigation Module 198 The Screen Module 198 The Layout Module 198 The Page Module 198 Module Object Encapsulation 199 How Does It Work? 200 Obtaining and Installing TDK 201 Testing the TDK Installation 202 Your First Turbine Application 203 Dissecting the Application 206 Adding a User with testApplication 215 Rebuilding and Deployment 220 Advanced Velocity in Turbine 220 What's Next 222 a 457949 FM.qxd 6/13/03 1:45 PM Page vii Contents vii Chapter 15 Using Velocity and Maverick 223 How Maverick Works 224 The Load Process 225 The Execution Process 225 Downloading and Installing Maverick 226 Requirements 227 Installing Maverick 227 Testing the Installation with the FriendBook Application 228 Installing the Optional Velocity Module 228 The Maverick Hello World 229 Writing the web.xml File 229 Writing the maverick.xml File 231 Building Controller Classes 232 Building View Files 233 Velocity and Maverick 234 Commands 235 Controllers 237 Velocity Templates 240 What's Next 246 Chapter 16 Velocity IDEs 247 IntelliJ's IDEA 247 UltraEdit 250 JEdit 251 TextPad 252 Emacs 252 What's Next 253 Chapter 17 Using Velocity and Struts 255 Introducing Struts 255 Installing Struts 256 A Sample Application 257 Building the ActionForm 257 Creating an Action 258 Configuring Struts 259 The web.xml File 260 The Success Page 262 The Register Page 263 Setup 265 What's Next 266 Chapter 18 The Hotel Reservation Velocity Application 269 The Hotel Specifications 269 The Hotel Architecture 270 The Hotel Database Schema 271 Configuring the Maverick XML 272 a 457949 FM.qxd 6/13/03 1:45 PM Page viii viii Contents The Look and Feel Frame 274 Building the Welcome Pages 277 Searching for a Room 280 Booking a Room 290 Looking Up a Room 293 What's Next 298 Chapter 19 Using JSP and Velocity 299 The Velocity Taglib 299 Installing the Velocity Taglib 300 Adding the Velocity Taglib to JSP 301 Beans and Tags 303 What's Next 303 Chapter 20 DVSL and Velocity 305 Obtaining and Installing DVSL 305 Creating a Simple Transformation 306 Compiling the DVSL/XML 307 Using Nodes 309 The DVSL Toolbox 310 Using the Command Line 313 Part IV References Appendix A The Velocity Specification 315 org.apache.velocity.Template 315 Class Summary 315 org.apache.velocity.VelocityContext 316 Class Summary 316 org.apache.velocity.anakia.AnakiaElement 316 Class Summary 316 org.apache.velocity.anakia.AnakiaJDOMFactory 317 Class Summary 317 org.apache.velocity.anakia.AnakiaTask 317 Class Summary 317 org.apache.velocity.anakia.Escape 318 Class Summary 318 org.apache.velocity.anakia.NodeList 318 Class Summary 318 org.apache.velocity.anakia.OutputWrapper
Recommended publications
  • Velocity Users Guide
    Velocity Users Guide The Apache Velocity Developers Version 1.5 Copyright © 2006 The Apache Software Foundation Table of Contents 1. Preface .......................................................................................................................................... 1 1.1. About this Guide .................................................................................................................. 1 1.2. Acknowledgements ............................................................................................................... 1 1.3. Intended Audience ................................................................................................................ 1 1.4. Feedback ............................................................................................................................ 1 2. What is Velocity? ........................................................................................................................... 2 2.1. The Fruit Store .................................................................................................................... 2 2.2. An introduction to the Velocity Template Language ................................................................... 3 2.3. Hello Velocity World! ........................................................................................................... 4 3. Language elements .......................................................................................................................... 5 3.1. Statements and directives
    [Show full text]
  • Talend Open Studio for Big Data Release Notes
    Talend Open Studio for Big Data Release Notes 6.0.0 Talend Open Studio for Big Data Adapted for v6.0.0. Supersedes previous releases. Publication date July 2, 2015 Copyleft This documentation is provided under the terms of the Creative Commons Public License (CCPL). For more information about what you can and cannot do with this documentation in accordance with the CCPL, please read: http://creativecommons.org/licenses/by-nc-sa/2.0/ Notices Talend is a trademark of Talend, Inc. All brands, product names, company names, trademarks and service marks are the properties of their respective owners. License Agreement The software described in this documentation is licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.html. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This product includes software developed at AOP Alliance (Java/J2EE AOP standards), ASM, Amazon, AntlR, Apache ActiveMQ, Apache Ant, Apache Avro, Apache Axiom, Apache Axis, Apache Axis 2, Apache Batik, Apache CXF, Apache Cassandra, Apache Chemistry, Apache Common Http Client, Apache Common Http Core, Apache Commons, Apache Commons Bcel, Apache Commons JxPath, Apache
    [Show full text]
  • Interop.Jar Activation
    Resource name License name License reference Usage Type a-j-interop.jar Eclipse 1.0 http://www.j-interop.org/license.html Dynamic library http://mirrors.ibiblio.org/pub/mirrors/maven2/javax/activation/act activation-1.1.jar CDDL 1.0 ivation/1.1/activation-1.1.pom Dynamic library activation.jar LGPL 2.1 https://github.com/wildfly/wildfly/blob/master/README.md Dynamic library http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/activem activemq-all-5.7.0.jar Apache 2.0 q/activemq-all/5.7.0/activemq-all-5.7.0.pom Dynamic library http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/activem activemq-core-5.7.0.jar Apache 2.0 q/activemq-core/5.7.0/activemq-core-5.7.0.pom Dynamic library http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/activem activemq-pool-5.7.0.jar Apache 2.0 q/activemq-pool/5.7.0/activemq-pool-5.7.0.pom Dynamic library http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/activem activemq-protobuf-1.1.jar Apache 2.0 q/protobuf/activemq-protobuf/1.1/activemq-protobuf-1.1.pom Dynamic library http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/axis2/a addressing-1.6.2.jar Apache 2.0 ddressing/1.6.2/addressing-1.6.2.pom Dynamic library advancedPersistentLookupLib-1.0.jar Commercial http://www.talend.com Dynamic library aether-api-1.11.jar Eclipse 1.0 https://www.eclipse.org/aether/download/ Dynamic library aether-connector-asynchttpclient-1.11.jar Eclipse 1.0 https://www.eclipse.org/aether/download/ Dynamic library aether-connector-wagon-1.11.jar Eclipse 1.0 https://www.eclipse.org/aether/download/ Dynamic
    [Show full text]
  • Michael Ormsby
    Michael Ormsby 24 Dawn Heath Drive Littleton, CO 80127 [email protected] Skype: ormsbytrek 303 933 7793 (home) 303 946 3678 (cell) Michael's website Michael's LinkedIn profile Career Objective A web / RIA design and development position offering interesting work utilizing some of the following interests: y Web design, web application design, Adobe Flex / Flash / AIR, HTML, CSS y Programming in Actionscript, Javascript, PHP, Ruby, and Java y User Interface design y Digital photography, digital video y UNIX, Linux, Mac OS X, Solaris Web Programming, Authoring, Admin Skills Adobe Flex 3, some familiarity with Flex 4. Adobe AIR, Flash, Cairngorm. HTML, XHTML, DHTML, CSS. XML, XSLT, XPath. Actionscript, Javascript, PHP, SVG, DOM API, Ajax. jQuery Javascript library. Eclipse, Ruby, Perl, Java 5, JSP. Omniture. Social Networking APIs. Apache Velocity and VTL. Apache web server administration. HTTP, DNS. Web Front End and Media Skills User Interface design. Drawing wireframes. Adobe CS4 apps: Flash, Photoshop, Illustrator. Adobe Flex 3 / AIR certification (ACE). Digital photography, digital image manipulation and formats. Video file formats, conversions, and encodings such as H.264. Some familiarity with shooting and editing video footage. Web Application Frameworks and Infrastructure Cairngorm and Kingussie Flex frameworks. RubyAMF. Liferay Portal, Oracle (BEA) Weblogic Portal. Servlets, JSR 286 portlets, web services. Apache Struts, WebLogic Server. Database Skills Relational database design, SQL, JDBC, Oracle, MySQL. Other Programming Languages C++, C, UNIX shells. Programming Design Methodologies UML notation. Use Cases. Design Patterns. OOP. Hardware and Operating Systems Apple hardware and OS X. Sun Solaris. Wacom graphics tablet. UNIX / Linux system APIs. Linux installation and configuration.
    [Show full text]
  • Another Tool
    Sr.N o. 3rd Party Software 3rd Party Files Provider URL License Type Reference to License License Link ANTLR – Another Tool for Copyright (c) 2005, Terence 1 Language Recognition antlr-2.7.6.jar http://www.antlr.org/ Parr, BSD License ANTLR_License.txt http://www.antlr2.org/license.html ASM - An all purpose Java bytecode manipulation and Copyright (c) 2000-2005 INRIA, 2 analysis framework asm.jar, asm-attrs.jar http://asm.ow2.org/ France Telecom BSD ASM.txt http://asm.ow2.org/license.html http://archive.apache.org/dist/avalon/avalon- 3 Apache Avalon Framework avalon-framework-cvs-20020806.jar http://avalon.apache.org/closed.html Apache License, Version 2.0 Apache2_License.txt framework/jars/LICENSE.txt 4 Apache Axis - Web Services axis.jar http://ws.apache.org/axis/ Apache License, Version 2.0 Apache2_License.txt http://www.apache.org/licenses/LICENSE-2.0.txt 5 Batik SVG Toolkit batik.jar http://xmlgraphics.apache.org/batik/faq.html Apache License, Version 2.0 Apache2_License.txt http://xmlgraphics.apache.org/batik/license.html Eclipse Public License, Version 6 bilki bliki-core-3.0.15.jar http://code.google.com/p/gwtwiki/downloads/list 1.0 EPL.txt http://www.eclipse.org/legal/epl-v10.html 7 Bean Scripting Framework (BSF) bsf.jar http://jakarta.apache.org/bsf/ Apache License, Version 2.0 Apache2_License.txt http://www.apache.org/licenses/LICENSE-2.0.txt GNU Lesser General Public 8 Bean Shell (BSH) bsh-1.2b7.jar http://www.beanshell.org/ License, Sun Public License BSH_License.txt http://www.gnu.org/licenses/lgpl-3.0.txt Apache/IBM Bean Scripting Framework (BSF) Adapter for GNU Lesser General Public 9 BeanShell bsh-bsf-2.0b4.jar http://www.beanshell.org/download.html License, Sun Public License BSH_License.txt http://www.gnu.org/licenses/lgpl-3.0.txt c3p0:JDBC Copyright (C) 2005 Machinery 10 DataSources/Resource Pools c3p0-0.9.1.2.jar http://sourceforge.net/projects/c3p0 For Change, Inc.
    [Show full text]
  • Velocity Reference
    APPENDIX Velocity Reference VELOCITY HAS A WIDE RANGE of configuration settings, directives, and resource loaders. This appendix is a reference for aU aspects of Velocity configuration and usage. Introducing the Directives The following sections show the syntax for the standard directives included in the Velocity distribution. #set The #set directive assigns variables' values. These values can be a simple literal value or another variable. Syntax #set($variable=<literal value> I <variable_name» Example #set($myVar = "Hello World") Output The #set directive has no output. 347 Appendix #if/#else/#end The #if/#else/#end directives support conditional processing within your tem­ plates. The use of these directives is synonymous with the use of the if/else construct in Java. Syntax #if«boolean expression> I <boolean literal> I <boolean variable reference» Output for true #else Output for false #end Example #set($someVar = true) #if($someVar) Hello World! #else Goodbye Cruel World! #end Output Hello World! #foreach The #foreach directive iterates over all elements in a collection or an array and performs some processing for each element. Syntax #foreach($var in $collectionOrArray) ## do something with $var #end 348 Velocity Reference Example #foreach($num in [0 •• 5]) $num #end Output o 1 2 3 4 5 #include The #include directive includes some content from another resource in the out­ put stream. The content is added as-is with no processing by the Velocity engine. Syntax #import«resource_name» Example For example, the main template, template. vm, could contain the followingVfL code: Hello #include("world.txt") And an external file resource, world. txt, could contain the following static text: World Output Hello World 349 Appendix #parse The #parse directive functions in a similar manner to the #include directive; however, the external resource is first parsed by the Velocity engine, and any VTL constructs are processed as if they were part of the main template.
    [Show full text]
  • Talend Open Studio for Big Data Getting Started Guide
    Talend Open Studio for Big Data Getting Started Guide 6.0.0 Talend Open Studio for Big Data Adapted for v6.0.0. Supersedes previous releases. Publication date: July 2, 2015 Copyleft This documentation is provided under the terms of the Creative Commons Public License (CCPL). For more information about what you can and cannot do with this documentation in accordance with the CCPL, please read: http://creativecommons.org/licenses/by-nc-sa/2.0/ Notices Talend is a trademark of Talend, Inc. All brands, product names, company names, trademarks and service marks are the properties of their respective owners. License Agreement The software described in this documentation is licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.html. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This product includes software developed at AOP Alliance (Java/J2EE AOP standards), ASM, Amazon, AntlR, Apache ActiveMQ, Apache Ant, Apache Avro, Apache Axiom, Apache Axis, Apache Axis 2, Apache Batik, Apache CXF, Apache Cassandra, Apache Chemistry, Apache Common Http Client, Apache Common Http Core, Apache Commons, Apache Commons Bcel, Apache Commons JxPath,
    [Show full text]
  • 4.2 Using Spring IO Platform with Gradle
    Spring IO Platform Reference Guide Cairo-RELEASE Copyright © 2014-2018 Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically. Spring IO Platform Reference Guide Table of Contents I. Spring IO Platform Documentation ............................................................................................ 1 1. About the documentation ................................................................................................ 2 2. Getting help .................................................................................................................... 3 II. Getting Started ....................................................................................................................... 4 3. Introducing Spring IO Platform ........................................................................................ 5 4. Using Spring IO Platform ................................................................................................ 6 4.1. Using Spring IO Platform with Maven .................................................................... 6 4.2. Using Spring IO Platform with Gradle .................................................................... 7 5. Overriding Spring IO Platform’s dependency management ................................................ 9 5.1. Overriding a version using Maven ........................................................................
    [Show full text]
  • Netbeans/Distributed Netbeans
    Modern Software Development Tools on OpenVMS Meg Watson Principal Software Engineer © 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Topics • Modern Development Tools for OpenVMS – NetBeans/Distributed NetBeans • Modernizing Existing Applications – Web Service Integration Toolkit • Questions page 2 What is Modern Software Development? • Object-Oriented Languages – Java, C++, C#, etc • Current Popular Software Designs – Web-based – Application server based • JSPs, Servlets, EJBs, Web Services – Service oriented architecture • Distributed Applications – Heterogeneous execution environments • Modern development methodology – Agile methods – Work well with object-oriented languages Goal: Use the same tools to develop all the pieces! page 3 Today’s Environment Application Enterprise PDA Web servers Windows servers system Web Server Enterprise browser Apache JavaBean (J2EE) Database Desktop and scripting Perl JavaBean (J2SE) Web PHP Services Legacy ASP applications JSP Other .NET Java servlet Client Presentation Business Logic Enterprise Tier Middle Tier Tier page 4 What is NetBeans? • Sun-Sponsored Open-Source Integrated Development Environment • 100% Java – runs anywhere there’s a JVM • Current version is 5.5.1, with 6.0 in beta • Feature-rich: drag-n-drop GUI creation, excellent editing, JSPs, Web services, excellent debugging, profiling, etc. • Extensible via plug-ins • Positioned as platform and IDE • Competes with Eclipse…the leap frog effect page 5 Why Not Use Eclipse?
    [Show full text]
  • Schedule C Third Party Software Included with Densify V12.2
    Schedule C Third Party Software Included with Densify v12.2 Part 1—Open Source Third Party Software Included with Densify ....................................................... 1 Part 2—Commercial Third Party Software Included with Densify ....................................................... 14 Part 1—Open Source Third Party Software Included with Densify Component Version Description License Home Page Apache License 2.0, jdk11.0.4 AdoptOpenJDK is used in https://adoptopenjdk.net/inde AdoptOpenJDK _11 Densify Connector v2.2.4 GPL v2 with x.html Classpath Exception Apache AdoptOpenJDK is used in License 2.0, jdk8u202 Densify Connector v2.2.3 https://adoptopenjdk.net/inde AdoptOpenJDK -b08 and Densify 12.x on- GPL v2 with x.html premises version. Classpath Exception Security-oriented, lightweight Alpine Linux 3.11.5 Linux distribution based on MIT License https://alpinelinux.org/ musl libc and busybox. http://gradle.artifactoryonline. Java Annotation Discovery Apache Annovention 1.7 com/gradle/libs/tv/cntt/annov Library License 2.0 ention/ BSD 3- Another Tool for Language clause "New" Antlr 3.4 Runtime 3.4 Recognition. Used by the http://www.antlr.org or "Revised" JSON Parser. License BSD 3- ANTLR, ANother Another Tool for Language clause "New" Tool for Language 2.7.5 Recognition. Used by the http://www.antlr.org or "Revised" Recognition JSON Parser. License Wrappers for the Java Apache Commons Apache http://commons.apache.org/p 1.9.3 reflection and introspection BeanUtils License 2.0 roper/commons-beanutilsl APIs. A set of Java classes that provides scripting language Apache Commons - support within Java Apache Bean Scripting 2.4.0 http://jakarta.apache.org/bsf/ applications and access to License 2.0 Framework (BSF) Java objects and methods from scripting languages.
    [Show full text]
  • WE05 Hacking Velocity
    Hacking Velocity – ApacheCon 2004 • What is Velocity • Velocity Tools • Custom Directives • Custom Resourceloaders • Custom Introspector • Adding Event Handlers • Modifying Velocity Syntax Presenter Contact Info: Will Glass-Husain Menlo Park, California USA [email protected] + 1 415 440-7500 November 17, 2004 (c) 2004 Will Glass-Husain. Non-commercial redistribution permitted freely. 1 What is Velocity? • A templating engine that can generate any type of text output, including HTML, email, SQL, or Java source code. • Based on a "pull" approach in which a text file includes "References" to data objects that are pulled from a provided "Context". $Date Date Order Dear $Contact.FirstName $Contact.LastName, Contact Thank you for your recent purchase of $Order.ProductName. The cost of the item was $Order.TotalCost#if($Order.Tax > 0) including a tax of $Order.TaxRate%#end. Sincerely, November 17, 2004 Biggest and Best Book Merchants, Inc. Dear Jennifer Glass, Thank you for your recent purchase of Alice in Wonderland, Annotated Edition. The cost of the item was $29.95. Sincerely, Biggest and Best Book Merchants, Inc. November 17, 2004 (c) 2004 Will Glass-Husain. Non-commercial redistribution permitted freely. 2 Basic Velocity Concepts • References – References objects from the Velocity context. Starts with a "$". – Can have Properties or Methods – Common practice is to provide two types: data objects (with properties) and "tools" (with methods). – Examples: • $contact.FirstName • $format("$#,##0.00",$order.price) • Directives – Control statements. Starts with a "#" – Example block directive: • #if ($columncount > 0) display a table #end – Example line directive: • #include('header.vm') November 17, 2004 (c) 2004 Will Glass-Husain. Non-commercial redistribution permitted freely.
    [Show full text]
  • Maintaining a Science Gateway – Lessons Learned from Mosgrid
    Proceedings of the 50th Hawaii International Conference on System Sciences | 2017 Maintaining a Science Gateway – Lessons Learned from MoSGrid Lukas Zimmermann Richard Grunzke Jens Krüger* Applied Bioinformatics, Center for Information Services Applied Bioinformatics, University of Tübingen, and High Performance University of Tübingen, Tübingen, Germany Computing, Technische Tübingen, Germany lukas.zimmermann@ Universität Dresden, Dresden, krueger@ student.uni-tuebingen.de Germany informatik.uni-tuebingen.de [email protected] Abstract software1 in molecular simulations and user convenience. It is discussed which challenges need to We here present the experiences collected be met for a science gateway to be maintained and maintaining and updating the MoSGrid science scientific protocols to be curated. gateway over the past years. Insights are provided on a MoSGrid consists of a sophisticated stack of technical and organizational level useful for the design technologies providing access to German compute and operation of science gateways in general. The infrastructures. Maintaining these technologies and specific challenges faced and solved are considered to providing a high-level service to the community is a be valuable for other communities. challenging task. The experiences made are shared to provide helpful insight for other communities. Figure 1 shows the landing page of the MoSGrid science 1. Introduction gateway, representing the entry point to the services discussed in the following sections. We will provide insights going beyond the update process of individual The Molecular Simulation Grid (MoSGrid) is being components of the gateway framework, providing a operated for over six years now [1]. The scientific broader picture of the whole venture. gateway provides workflows, access to compute infrastructure and data management capabilities for computational chemists and scientists from related 2.
    [Show full text]