Comparison of Four Popular Java Web Framework Implementations: Struts1.X, Webwork2.2X, Tapestry4, JSF1.2

Total Page:16

File Type:pdf, Size:1020Kb

Comparison of Four Popular Java Web Framework Implementations: Struts1.X, Webwork2.2X, Tapestry4, JSF1.2 Comparison of Four Popular Java Web Framework Implementations: Struts1.X, WebWork2.2X, Tapestry4, JSF1.2 Peng Wang University of Tampere Department of Computer Sciences Master’s thesis Supervisor: Roope Raisamo May 2008 i University of Tampere Department of Computer Sciences Peng Wang: Comparison of Java Web Framework: Struts1.X, WebWork2.2X, Tapestry4, JSF1.2 Master’s thesis, 101 pages May 2008 Java web framework has been widely used in industry Java web applications in the last few years, its outstanding MVC design concept and supported web features provide great benefits of standardizing application structure and reducing development time and effort. However, after years of evolution, numerous Java web frameworks have been invented with different focuses, it becomes increasingly difficult for developers to select a suitable framework for their web applications. In this thesis, we conduct a general comparison of four popular Java web frameworks: Struts1.X, WebWork2.2X, Tapestry 4, JSF1.2, and we try to help web developers or technique managers gain a deep insight of these frameworks through the comparison and therefore be able to choose the right framework for their web applications. The comparison preformed by this thesis generally takes three steps: first it studies the infrastructure of four chosen frameworks through which the overall view of different frameworks could be presented to readers; second it selects six basic but essential web features and fulfill the feature comparison by discussing different frameworks’ web feature implementation; third it presents a case study application to provide practical support of feature comparison. The thesis ends with an evaluation of pros and cons of different framework web features and a general suggestion of web application types that the four chosen Java web frameworks can effectively fit in. Key words and terms: Java web framework, MVC, web features, Struts1.X, WebWork2.2X, Tapestry 4, JSF1.2, feature comparison. ii Acknowledgement I would like to thank Professor Roope Raisamo and Professor Jyrki Nummenmaa for being my thesis tutor and examinator. Their patient, responsible attitude and meaningful advice help me steer clear of various serious mistakes and direct successfully my thesis to the final destination. With this chance I would also like to thanks my parents and my girlfriend Li Meng, their solicitude and encouragement is the foremost factor supporting me to finish this thesis. Tampere – Finland, June 2008 Peng Wang iii Contents 1. Introduction................................................................................................................1 2. Technology ................................................................................................................3 2.1. Technology used in Java web...........................................................................3 2.1.1 Java Servlet technology...........................................................................3 2.1.2 JavaServer Page.......................................................................................4 2.1.3 JavaBean component...............................................................................5 2.1.4 Enterprise JavaBeans (EJB) ....................................................................6 2.1.5 JavaServer Pages Standard Tag Library..................................................6 2.1.6 XML language.........................................................................................7 2.2 Introduction to MVC ...........................................................................................8 2.2.1 Traditional MVC become outdated.........................................................9 2.2.2 Web version MVC: Front Controller Pattern........................................10 2.2.3 Web version MVC involves: Page Controller Pattern ..........................12 2.3 Introduction to frameworks ...............................................................................12 2.3.1 They are the enhancement of JSP and Servlet API...............................12 2.3.2 Acting as MVC framework ...................................................................13 3. Infrastructure investigation......................................................................................15 3.1 Struts1.X ............................................................................................................15 3.1.1 Struts1.X components ...........................................................................17 3.1.2 Struts1.X workflow ...............................................................................20 3.2 WebWork2.2.X..................................................................................................21 3.2.1 WebWork key components ...................................................................24 3.2.2 WebWork2.2X workflow......................................................................27 3.3 Tapestry 4 ..........................................................................................................27 3.3.1 Tapestry 4 key components...................................................................29 3.3.2 Tapestry 4 workflow .............................................................................32 3.4 JSF1.2 ................................................................................................................34 3.4.1 JSF key components..............................................................................36 3.4.2 JSF workflow ........................................................................................37 3.5 Summary............................................................................................................39 4. Methodology............................................................................................................41 4.1. Feature comparison .................................................................................41 4.2 Case study and Conclusion of Java web frameworks ..............................42 4.3 Delimitations of the Method.....................................................................43 5. Web feature comparison ..........................................................................................44 5.1 Navigation rules.................................................................................................44 iv 5.1.1 Struts1.X................................................................................................44 5.1.2 WebWork2.2X ......................................................................................45 5.1.3 Tapestry 4..............................................................................................47 5.1.4 JSF 1.2...................................................................................................49 5.2 Validation mechanism .......................................................................................50 5.2.1 Struts1.X................................................................................................50 5.2.2 WebWork2.2X ......................................................................................52 5.2.3 Tapestry 4..............................................................................................55 5.2.4 JSF 1.2...................................................................................................58 5.3 Internationalization ............................................................................................59 5.3.1 Struts1.X................................................................................................60 5.3.2 WebWork2.2X ......................................................................................62 5.3.3 Tapestry 4..............................................................................................64 5.3.4 JSF 1.2...................................................................................................66 5.4 Type conversion.................................................................................................67 5.4.1 Struts1.X................................................................................................68 5.4.2 WebWork2.2X ......................................................................................70 5.4.3 Tapestry 4..............................................................................................72 5.4.4 JSF 1.2...................................................................................................73 5.5 IoC support ........................................................................................................75 5.5.1 Struts1.X................................................................................................75 5.5.2 WebWork2.2X ......................................................................................77 5.5.3 Tapestry 4..............................................................................................79 5.5.4 JSF 1.2...................................................................................................81 5.6 Post after Redirect..............................................................................................83 5.6.1 Struts1.X................................................................................................83 5.6.2 WebWork2.2X ......................................................................................85 5.6.3 Tapestry 4..............................................................................................87
Recommended publications
  • Chapter Index
    index.fm Page 699 Monday, April 2, 2007 12:46 PM Chapter Index A Action methods, roles of, 80 AbstractFacesBean, 580 Action states, 577 accept attribute, 101 actionListener attribute, 92, 285 h:form, 104 h:command and h:commandLink, 119 acceptcharset attribute, 101 and method expressions, 69, 396 h:form, 104 MethodBinding object, 385 Accept-Language value, 45 ActionLogger class, 286 Access control application: ActionMethodBinding, 386 directory structure for, 513 Actions, 275 messages.properties, 516 ActionSource interface, 361, 385, 387, 402 noauth.html, 514 ActionSource2 interface, 359, 361, 403 UserBean.java, 515 addDataModelListener(DataModelListener web.xml, 513–514 listener), 214 accesskey attribute, 101, 109 Address book application, EJBs, 606 h:command and h:commandLink, 120 ADF Faces components set (Oracle), 613 h:outputLink, 123 Ajax: selection tags, 132 basic, with an XHR object and a AccordionRenderer class, 551 servlet (application), 530–532 action attribute, 71 components, 546–554 h:command and h:commandLink, 119 Direct Web Remoting (DWR), 543–546 method expressions, 69, 73, 396 form completion, 534–537 MethodBinding object, 385 fundamentals of, 530–533 Action events, 33, 275–284 hybrid components, 546–551 firing, 268, 418–418 JSF-Rico accordion hybrid, 548–551 Action listeners, 385 realtime validation, 537–542 compared to actions, 275 Rico accordion, 546–551 699 index.fm Page 700 Monday, April 2, 2007 12:46 PM 700 Index Ajax (cont): arg attribute, creditCardValidator, 659 transmitting JSP tag attributes to Arithmetic operators,
    [Show full text]
  • Bakaláˇrská Práce Webová Aplikace Pro Poˇrádán´I Závod˚U V Orientacn
    Z´apadoˇcesk´a univerzita v Plzni Fakulta aplikovan´ych vˇed Katedra informatiky a v´ypoˇcetn´ı techniky Bakal´aˇrsk´apr´ace Webov´aaplikace pro poˇr´ad´an´ız´avod˚u v orientaˇcn´ım bˇehu Plzeˇn2017 Jan Palc´ut M´ısto t´eto strany bude zad´an´ıpr´ace. Prohl´aˇsen´ı Prohlaˇsuji, ˇzejsem bakal´aˇrskou pr´aci vypracoval samostatnˇea v´yhradnˇe s pouˇzit´ım citovan´ych pramen˚u. V Plzni dne 26. ˇcervna 2017 Jan Palc´ut Podˇekov´an´ı T´ımto bych chtˇel podˇekovat vedouc´ımu bakal´aˇrsk´epr´ace panu Ing. Tom´aˇsovi Hercigovi za cenn´erady, pˇripom´ınky a odborn´eveden´ıt´eto pr´ace. Abstract The topic of this bachelor thesis is the creation of a web application for organizing orienteering races including user registration, creation of races, registration of users to races, management of teams and contestants, and results evaluation based on selected criteria. Section2 deals with the de- scription of Java web frameworks. Section3 describes the Spring modules and the reasons why this framework was chosen for implementation. Sec- tion4 includes used technologies. The Section5 describes the funcionalities of the website and database. Section6 describes the creation of the ap- plication in the framework Spring, the structure of the project and selected sections of the code. Section7 includes race simulation, stress test, web browsers compatibility, and Selenium tests. Abstrakt Pˇredmˇetem m´ebakal´aˇrsk´epr´ace je vytvoˇren´ıwebov´eaplikace pro poˇr´ad´an´ı z´avod˚uv orientaˇcn´ım bˇehu umoˇzˇnuj´ıc´ı registraci uˇzivatel˚u, vytv´aˇren´ı z´a- vod˚u, registraci uˇzivatel˚udo z´avodu, spravov´an´ıseznamu t´ym˚uvˇcetnˇe´uˇcast- n´ık˚ua n´asledn´evyhodnocen´ızadan´ych v´ysledk˚upodle zvolen´ych krit´eri´ı.
    [Show full text]
  • Return of Organization Exempt from Income
    OMB No. 1545-0047 Return of Organization Exempt From Income Tax Form 990 Under section 501(c), 527, or 4947(a)(1) of the Internal Revenue Code (except black lung benefit trust or private foundation) Open to Public Department of the Treasury Internal Revenue Service The organization may have to use a copy of this return to satisfy state reporting requirements. Inspection A For the 2011 calendar year, or tax year beginning 5/1/2011 , and ending 4/30/2012 B Check if applicable: C Name of organization The Apache Software Foundation D Employer identification number Address change Doing Business As 47-0825376 Name change Number and street (or P.O. box if mail is not delivered to street address) Room/suite E Telephone number Initial return 1901 Munsey Drive (909) 374-9776 Terminated City or town, state or country, and ZIP + 4 Amended return Forest Hill MD 21050-2747 G Gross receipts $ 554,439 Application pending F Name and address of principal officer: H(a) Is this a group return for affiliates? Yes X No Jim Jagielski 1901 Munsey Drive, Forest Hill, MD 21050-2747 H(b) Are all affiliates included? Yes No I Tax-exempt status: X 501(c)(3) 501(c) ( ) (insert no.) 4947(a)(1) or 527 If "No," attach a list. (see instructions) J Website: http://www.apache.org/ H(c) Group exemption number K Form of organization: X Corporation Trust Association Other L Year of formation: 1999 M State of legal domicile: MD Part I Summary 1 Briefly describe the organization's mission or most significant activities: to provide open source software to the public that we sponsor free of charge 2 Check this box if the organization discontinued its operations or disposed of more than 25% of its net assets.
    [Show full text]
  • Full-Graph-Limited-Mvn-Deps.Pdf
    org.jboss.cl.jboss-cl-2.0.9.GA org.jboss.cl.jboss-cl-parent-2.2.1.GA org.jboss.cl.jboss-classloader-N/A org.jboss.cl.jboss-classloading-vfs-N/A org.jboss.cl.jboss-classloading-N/A org.primefaces.extensions.master-pom-1.0.0 org.sonatype.mercury.mercury-mp3-1.0-alpha-1 org.primefaces.themes.overcast-${primefaces.theme.version} org.primefaces.themes.dark-hive-${primefaces.theme.version}org.primefaces.themes.humanity-${primefaces.theme.version}org.primefaces.themes.le-frog-${primefaces.theme.version} org.primefaces.themes.south-street-${primefaces.theme.version}org.primefaces.themes.sunny-${primefaces.theme.version}org.primefaces.themes.hot-sneaks-${primefaces.theme.version}org.primefaces.themes.cupertino-${primefaces.theme.version} org.primefaces.themes.trontastic-${primefaces.theme.version}org.primefaces.themes.excite-bike-${primefaces.theme.version} org.apache.maven.mercury.mercury-external-N/A org.primefaces.themes.redmond-${primefaces.theme.version}org.primefaces.themes.afterwork-${primefaces.theme.version}org.primefaces.themes.glass-x-${primefaces.theme.version}org.primefaces.themes.home-${primefaces.theme.version} org.primefaces.themes.black-tie-${primefaces.theme.version}org.primefaces.themes.eggplant-${primefaces.theme.version} org.apache.maven.mercury.mercury-repo-remote-m2-N/Aorg.apache.maven.mercury.mercury-md-sat-N/A org.primefaces.themes.ui-lightness-${primefaces.theme.version}org.primefaces.themes.midnight-${primefaces.theme.version}org.primefaces.themes.mint-choc-${primefaces.theme.version}org.primefaces.themes.afternoon-${primefaces.theme.version}org.primefaces.themes.dot-luv-${primefaces.theme.version}org.primefaces.themes.smoothness-${primefaces.theme.version}org.primefaces.themes.swanky-purse-${primefaces.theme.version}
    [Show full text]
  • Singapore Tariff Schedule
    Annex 2C Tariff Schedule of Singapore See General Notes to Annex 2C for an explanation of staging codes Staging Heading H.S. Code Description Base Rates Category Chapter 1 Live animals 01.01 Live horses, asses, mules and hinnies. 0101.10.00 - Pure-bred breeding animals Free E 0101.90 - Other: 0101.90.10 - - Race horses Free E 0101.90.20 - - Other horses Free E 0101.90.90 - - Other Free E 01.02 Live bovine animals. 0102.10.00 - Pure-bred breeding animals Free E 0102.90 - Other: 0102.90.10 - - Oxen Free E 0102.90.20 - - Buffaloes Free E 0102.90.90 - - Other Free E 01.03 Live swine. 0103.10.00 - Pure-bred breeding animals Free E - Other: 0103.91.00 - - Weighing less than 50 kg Free E 0103.92.00 - - Weighing 50 kg or more Free E 01.04 Live sheep and goats. 0104.10 - Sheep: 0104.10.10 - - Pure-bred breeding Free E 0104.10.90 - - Other Free E 0104.20 - Goats: 0104.20.10 - - Pure-bred breeding animals Free E 0104.20.90 - - Other Free E Live poultry, that is to say, fowls of the species Gallus domesticus, 01.05 ducks, geese, turkeys and guinea fowls. - Weighing not more than 185 g: 0105.11 - Fowls of the species Gallus domesticus: 0105.11.10 - - - Breeding fowls Free E 0105.11.90 - - - Other Free E 0105.12 - - Turkeys: 0105.12.10 - - - Breeding turkeys Free E 0105.12.90 - - - Other Free E 0105.19 - - Other: 0105.19.10 - - - Breeding ducklings Free E 0105.19.20 - - - Other ducklings Free E 0105.19.30 - - - Breeding goslings Free E 0105.19.40 - - - Other goslings Free E 0105.19.50 - - - Breeding guinea fowls Free E 0105.19.90 - - - Other Free E - Other: 2C-Schedule-1 Staging Heading H.S.
    [Show full text]
  • Plugin Tapestry ​
    PlugIn Tapestry ​ Autor @picodotdev https://picodotdev.github.io/blog-bitix/ 2019 1.4.2 5.4 A tod@s l@s programador@s que en su trabajo no pueden usar el framework, librería o lenguaje que quisieran. Y a las que se divierten programando y aprendiendo hasta altas horas de la madrugada. Non gogoa, han zangoa Hecho con un esfuerzo en tiempo considerable con una buena cantidad de software libre y más ilusión en una región llamada Euskadi. PlugIn Tapestry: Desarrollo de aplicaciones y páginas web con Apache Tapestry @picodotdev 2014 - 2019 2 Prefacio Empecé El blog de pico.dev y unos años más tarde Blog Bitix con el objetivo de poder aprender y compartir el conocimiento de muchas cosas que me interesaban desde la programación y el software libre hasta análisis de los productos tecnológicos que caen en mis manos. Las del ámbito de la programación creo que usándolas pueden resolver en muchos casos los problemas típicos de las aplicaciones web y que encuentro en el día a día en mi trabajo como desarrollador. Sin embargo, por distintas circunstancias ya sean propias del cliente, la empresa o las personas es habitual que solo me sirvan meramente como satisfacción de adquirir conocimientos. Hasta el día de hoy una de ellas es el tema del que trata este libro, Apache Tapestry. Para escribir en el blog solo dependo de mí y de ninguna otra circunstancia salvo mi tiempo personal, es com- pletamente mío con lo que puedo hacer lo que quiera con él y no tengo ninguna limitación para escribir y usar cualquier herramienta, aunque en un principio solo sea para hacer un ejemplo muy sencillo, en el momento que llegue la oportunidad quizá me sirva para aplicarlo a un proyecto real.
    [Show full text]
  • Evaluating Presentation Layer Development Frameworks for EJB Applications in J2EE Architecture
    International Conference on Computer Science and Information Technology (ICCSIT'2011) Pattaya Dec. 2011 Evaluating Presentation Layer Development Frameworks for EJB Applications in J2EE Architecture Ohm Samkoses, Dipl. -Inform. Matthias Vianden, Prof. Dr. rer. nat. Horst Lichter gathering and analysis, multiple rounds of frameworks Abstract—For medium to large organizations, information selection with different criteria, prototype implementations, systems play an important role for information storage and retrieval. and results evaluation. The chosen frameworks for prototype They are used to support business processes such as decision-making. development should fulfill most of the requirement and the In information systems, huge amountof data needs to be manipulated prototypes implementation should reflect the solution for each and visualized. One way to handle this complexity is to use Enterprise JavaBeans (EJB) [1] in a J2EE architecture. Since EJB has requirement clearly, and must be able to work with the not been designed to work in the Presentation Layer, suitable existing system's environment: the back-end is managed by Presentation Layer Development frameworks are introduced to EJB 3.0, and IBM Websphere Application Server 7.0. enhanced thepresentation layer of the information systems. The MeDIC (Metric Definition Integration Calculation) system and XAM II. TASKS / STEPS (eXam Assignment and Management) system [2] are typical representatives of such information system. A. First frameworks selection Nowadays, many frameworks, such as Java Server Faces (JSF), First step was to narrow-down the scope of the focused Wicket, and Tapestry, exist to cover the Presentation Layer. They framework based mainly on framework popularity. Other provide a variety of features and architecture enhancements.
    [Show full text]
  • The Maven Definitive Guide
    Tim O'Brien (Sonatype, Inc.), John Casey (Sonatype, Inc.), Brian Fox (Sonatype, Inc.), Bruce Snyder (Sonatype, Inc.), Jason Van Zyl (Sonatype, Inc.), Eric Redmond () Copyright © 2006-2008 Copyright ......................................................................................................xiii 1. Creative Commons BY-ND-NC ........................................................xiii Foreword: Beta 0.13 ....................................................................................... xv Preface ........................................................................................................... xvi 1. How to Use this Book ........................................................................ xvi 2. Your Feedback ..................................................................................xvii 3. Font Conventions .............................................................................xviii 4. Maven Writing Conventions ............................................................xviii 5. Acknowledgements ............................................................................ xix 1. Introducing Apache Maven .......................................................................... 1 1.1. Maven... What is it? ........................................................................... 1 1.2. Convention Over Configuration ......................................................... 2 1.3. A Common Interface .......................................................................... 3 1.4. Universal Reuse through
    [Show full text]
  • Ish Case Study Ish Hires Objectstyle to Modernise Its Student Management Platform, Grows Business by 300% in the Course of 5 Years
    ish Case Study ish hires ObjectStyle to modernise its student management platform, grows business by 300% in the course of 5 years ish is the company behind onCourse™, a widely-used software platform Company: that allows colleges and short course providers to manage enrolments, curricula, student grades, and other aspects of the learning/teaching Company name: ish process. Industry: Education The platform serves dozens of educational entities in Australia (including Year founded: 2002 such heavyweights as The University of Sydney, Sydney Community College, NIDA, Coffee School, Power Training Services WA...), and is one of Location: Australia the most popular solutions in the market. Website: http://ish.com.au Challenge In the year 2011, the onCourse platform was 5 years old and needed major refactoring to modernise the code, improve performance and set a new direction for future development. ish wanted to revamp the content management system and the student/tutor portal components as well as make it easy to add new features. ish had originally chosen WebObjects as a web platform and that tool had been largely abandoned, so a change of technology was needed. ish was also picking up big new customers, including universities, that required the production servers to be able to scale with increased volume. Solution 1. Apache Tapestry-based custom CMS. Colleges received an improved, more feature-rich and flexible content management system (CMS) which they could use for publishing catalogues, individual courses, promotions, and other CMS elements. The revamped CMS provided additional space for customizing the look-and-feel as well as the layout of the materials that colleges put up on their websites.
    [Show full text]
  • Steve EYNON Web Technologies Fantom Java
    Steve EYNON MEng (Hon), AMIEE Passionate about software design Loves web technologies 0750 424 5743 Embraces agile methodologies [email protected] Having worked as senior lead developer for numerous household names such as AOL, BP, Roche, Sky, & Virgin Media, I've become more involved in architecture and Find me on: design solutions for businesses. An ability to find innovative solutions tethered by real world experience and makes me ideally placed in a technical design role. Based in London, UK As such I'm very interested in expressive positions where I can directly influence technology strategies and give guidance on industry best practices. However, life is not all code, code, code... Attempting to refute my inner geek, I've also worked as a jungle survival specialist in the Amazon (South America), and as a qualified PADI scuba instructor in Indonesia. Web Technologies HTTP Worked with HTTP, HTML, CSS and Javascript since 1997. A deep understanding of HTML, JSON, XML underlying web standards give skills and an awareness beyond basic web CSS, SCSS, Less programming. This includes: Javascript, Coffeescript HTTP protocol for solving WebSocket, CORS, caching and browser issues AngularJS, RequireJS Sematic HTML and tagging strategies for SEO JQuery, Prototype, _ CSS media queries / progressive enhancement for responsive design D3, Highcharts, Raphael Bootstrap, Bootswatch Well versered in the mechanics of web applications; be they simple page requests, Ajax updates via REST, or full blown Single Page (web) Applications. This comes from not just reading W3C RFCs but creating implementations too! Fantom IoC Fantom is a next generation JVM language, akin to a Java 2.0.
    [Show full text]
  • Diseño E Implementación De Un Framework De Presentación Curso 2012/13
    PFC – Diseño e implementación Framework Presentación (2012/13) Licencia Esta obra está bajo una licencia Reconocimiento - No comercial- Sin obras derivadas 2.5 España de Creative Commons. Puede copiarlo, distribuirlo y transmitirlo públicamente siempre que cite al autor y la obra, no se haga un uso comercial y no se hagan copias derivadas. La licencia completa se puede consultar en: http://creativecommons.org/licenses/by-nc-nd/2.5/es/deed.es 1 PFC – Diseño e implementación Framework Presentación (2012/13) Estudios de Informática y Multimedia Proyecto Fin de Carrera Diseño e implementación de un Framework de Presentación Curso 2012/13 Nombre: Daniel Rodríguez Simó Username: drodriguezsi Tutor : Óscar Escudero Sánchez 2 PFC – Diseño e implementación Framework Presentación (2012/13) Agradecimientos Quiero agradecer el apoyo a Isabel, mi mujer, de cara a todo el tiempo invertido para poder sacar adelante estos años de estudio y esfuerzo. Y en general a toda mi familia, especialmente a mis padres Eugenia y Juan Pedro, porque sin ellos y sin la educación que se han esforzado en darme, esto nunca habría sido posible y a Pilar y Eugenia, mis abuelas, que aunque no se encuentren entre nosotros, siempre algo de ellas que nos acompaña en el día a día. Por último agradecer a mi tutor Óscar su apoyo y orientación de cara a la consecución de este objetivo y al buen desarrollo de este Proyecto Fin de Carrera. A todos vosotros, Gracias! 3 PFC – Diseño e implementación Framework Presentación (2012/13) Descripción General El presente proyecto se centra en el estudio y elaboración de un marco de trabajo basado en un Framework de Presentación, dedicado al desarrollo de aplicaciones web bajo la plataforma J2EE.
    [Show full text]
  • An Apache Princess
    AN APACHE PRINCESS A Tale of the Indian Frontier BY CHARLES KING AUTHOR OF "A DAUGHTER OF THE SIOUX," "THE COLONEL'S DAUGHTER," "FORT FRAYNE," "AN ARMY WIFE," ETC., ETC. NEW YORK THE HOBART COMPANY 1903 COPYRIGHT, 1903, BY THE HOBART COMPANY. CHAPTER I THE MEETING BY THE WATERS Under the willows at the edge of the pool a young girl sat daydreaming, though the day was nearly done. All in the valley was wrapped in shadow, though the cliffs and turrets across the stream were resplendent in a radiance of slanting sunshine. Not a cloud tempered the fierce glare of the arching heavens or softened the sharp outline of neighboring peak or distant mountain chain. Not a whisper of breeze stirred the drooping foliage along the sandy shores or ruffled the liquid mirror surface. Not a sound, save drowsy hum of beetle or soft murmur of rippling waters, among the pebbly shallows below, broke the vast silence of the scene. The snow cap, gleaming at the northern horizon, lay one hundred miles away and looked but an easy one-day march. The black upheavals of the Matitzal, barring the southward valley, stood sullen and frowning along the Verde, jealous of the westward range that threw their rugged gorges into early shade. Above and below the still and placid pool and but a few miles distant, the pine-fringed, rocky hillsides came shouldering close to the[10] stream, but fell away, forming a deep, semicircular basin toward the west, at the hub of which stood bolt-upright a tall, snowy flagstaff, its shred of bunting hanging limp and lifeless from the peak, and in the dull, dirt-colored buildings of adobe, ranged in rigid lines about the dull brown, flat-topped mesa, a thousand yards up stream above the pool, drowsed a little band of martial exiles, stationed here to keep the peace 'twixt scattered settlers and swarthy, swarming Apaches.
    [Show full text]