100% found this document useful (4 votes)
121 views

Ebooks File Beginning Quarkus Framework: Build Cloud-Native Enterprise Java Applications and Microservices 1st Edition Tayo Koleoso All Chapters

Koleoso

Uploaded by

tekekpungui
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
121 views

Ebooks File Beginning Quarkus Framework: Build Cloud-Native Enterprise Java Applications and Microservices 1st Edition Tayo Koleoso All Chapters

Koleoso

Uploaded by

tekekpungui
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

Download the full version of the textbook now at textbookfull.

com

Beginning Quarkus Framework: Build Cloud-


Native Enterprise Java Applications and
Microservices 1st Edition Tayo Koleoso

https://textbookfull.com/product/beginning-
quarkus-framework-build-cloud-native-enterprise-
java-applications-and-microservices-1st-edition-
tayo-koleoso/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Beginning Java MVC 1.0: Model View Controller Development


to Build Web, Cloud, and Microservices Applications Peter
Späth
https://textbookfull.com/product/beginning-java-mvc-1-0-model-view-
controller-development-to-build-web-cloud-and-microservices-
applications-peter-spath/
textbookfull.com

Beginning Java MVC 1 0 Model View Controller Development


to Build Web Cloud and Microservices Applications 1st
Edition Peter Spath Späth Peter
https://textbookfull.com/product/beginning-java-mvc-1-0-model-view-
controller-development-to-build-web-cloud-and-microservices-
applications-1st-edition-peter-spath-spath-peter/
textbookfull.com

Enterprise Java Microservices 1st Edition Ken Finnigan

https://textbookfull.com/product/enterprise-java-microservices-1st-
edition-ken-finnigan/

textbookfull.com

The Trinitarian christology of St Thomas Aquinas 1st


Edition Legge

https://textbookfull.com/product/the-trinitarian-christology-of-st-
thomas-aquinas-1st-edition-legge/

textbookfull.com
Cybertext poetics the critical landscape of new media
literary theory 1st Edition Eskelinen

https://textbookfull.com/product/cybertext-poetics-the-critical-
landscape-of-new-media-literary-theory-1st-edition-eskelinen/

textbookfull.com

Integral Investing From Profit to Prosperity Mariana


Bozesan

https://textbookfull.com/product/integral-investing-from-profit-to-
prosperity-mariana-bozesan/

textbookfull.com

Skin Cancer Management A Practical Approach 2nd Edition


Deborah F. Macfarlane

https://textbookfull.com/product/skin-cancer-management-a-practical-
approach-2nd-edition-deborah-f-macfarlane/

textbookfull.com

50 Studies Every Ophthalmologist Should Know Alan Penman

https://textbookfull.com/product/50-studies-every-ophthalmologist-
should-know-alan-penman/

textbookfull.com

The Science of Cooking 1st Edition Joseph J. Provost

https://textbookfull.com/product/the-science-of-cooking-1st-edition-
joseph-j-provost/

textbookfull.com
Database System Concepts Avi Silberschatz

https://textbookfull.com/product/database-system-concepts-avi-
silberschatz/

textbookfull.com
Beginning
Quarkus
Framework
Build Cloud-Native Enterprise
Java Applications and Microservices

Tayo Koleoso
Beginning Quarkus
Framework
Build Cloud-Native Enterprise
Java Applications and
Microservices

Tayo Koleoso
Beginning Quarkus Framework: Build Cloud-Native Enterprise Java
Applications and Microservices
Tayo Koleoso
Silver Spring, MD, USA

ISBN-13 (pbk): 978-1-4842-6031-9 ISBN-13 (electronic): 978-1-4842-6032-6


https://doi.org/10.1007/978-1-4842-6032-6

Copyright © 2020 by Tayo Koleoso


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole
or part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical
way, and transmission or information storage and retrieval, electronic adaptation,
computer software, or by similar or dissimilar methodology now known or hereafter
developed.
Trademarked names, logos, and images may appear in this book. Rather than use a
trademark symbol with every occurrence of a trademarked name, logo, or image we use the
names, logos, and images only in an editorial fashion and to the benefit of the trademark
owner, with no intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms,
even if they are not identified as such, is not to be taken as an expression of opinion as to
whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the
date of publication, neither the authors nor the editors nor the publisher can accept any
legal responsibility for any errors or omissions that may be made. The publisher makes no
warranty, express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Steve Anglin
Development Editor: Matthew Moodie
Coordinating Editor: Mark Powers
Cover designed by eStudioCalamar
Cover image by Shahadat Rahman on Unsplash (www.unsplash.com)
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza,
New York, NY 10004, U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@
springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC
and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM
Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail booktranslations@springernature.com; for
reprint, paperback, or audio rights, please e-mail bookpermissions@springernature.com.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our
Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub via the book’s product page, located at www.apress.
com/9781484260319. For more detailed information, please visit http://www.apress.com/
source-code.
Printed on acid-free paper
I dedicate this book to my grandma,
who with her grade school education would
constantly implore me to keep studying, up till today.
“You know I wasn’t a particularly brilliant student;
but you need to be far ahead of me;
never stop your education and passing your exams.”

—Mrs. Cecilia Vincent


Table of Contents
About the Author���������������������������������������������������������������������������������xi

About the Technical Reviewer�����������������������������������������������������������xiii


Acknowledgments������������������������������������������������������������������������������xv
Introduction��������������������������������������������������������������������������������������xvii

Chapter 1: Welcome to Quarkus�����������������������������������������������������������1


Write Once, Run Anywhere Predictably (WORP)����������������������������������������������������2
Supersonic Subatomic!�����������������������������������������������������������������������������������������3
A Brief Primer on JVM Internals����������������������������������������������������������������������3
Ahead-of-Time Compilation to the Rescue!�����������������������������������������������������5
Quarkus Feature Tour��������������������������������������������������������������������������������������������6
Native Image Support��������������������������������������������������������������������������������������6
Serverless and Container-Friendly������������������������������������������������������������������7
Hot Reload of Live Code����������������������������������������������������������������������������������8
Robust Framework Support�����������������������������������������������������������������������������8
Developer-Friendly Tooling������������������������������������������������������������������������������9
Reactive SQL�������������������������������������������������������������������������������������������������10
Cloud-Native and Microservices-Ready��������������������������������������������������������11
JVM Language Support: Scala and Kotlin������������������������������������������������������11
Getting Started with Quarkus������������������������������������������������������������������������������12
Java���������������������������������������������������������������������������������������������������������������12
IDEs���������������������������������������������������������������������������������������������������������������12

v
Table of Contents

Maven������������������������������������������������������������������������������������������������������������12
Starter Website����������������������������������������������������������������������������������������������16
Quarkus Maven Project Kit����������������������������������������������������������������������������16
Quarkus Main Class���������������������������������������������������������������������������������������17

Chapter 2: Dependency Injection��������������������������������������������������������21


Contexts and Dependency Injection��������������������������������������������������������������������22
Getting Started with CDI�������������������������������������������������������������������������������������23
Bean Scopes�������������������������������������������������������������������������������������������������������25
Producer and Disposer Methods�������������������������������������������������������������������������26
Qualifiers�������������������������������������������������������������������������������������������������������28
Bean Configuration File���������������������������������������������������������������������������������30
Aspect-Oriented Programming����������������������������������������������������������������������31
ArC CDI Engine����������������������������������������������������������������������������������������������33
Spring Framework����������������������������������������������������������������������������������������������41
Quarkus Spring Annotation Support��������������������������������������������������������������43
Mixing Beans�������������������������������������������������������������������������������������������������43
Substitute ApplicationContextAware and BeanFactory���������������������������������46
Substitute Spring Application Events������������������������������������������������������������48

Chapter 3: Microservices with Quarkus���������������������������������������������51


Get Started with Microservices���������������������������������������������������������������������������52
Basic Microservice Configuration������������������������������������������������������������������56
Use JSON in Your REST Resource������������������������������������������������������������������64
JAX-RS Exception Handling��������������������������������������������������������������������������������66
JAX-RS Filters and Interceptors��������������������������������������������������������������������������68
Logging Filter�������������������������������������������������������������������������������������������������68
Interceptors���������������������������������������������������������������������������������������������������70

vi
Table of Contents

Asynchronous RESTful Services in JAX-RS��������������������������������������������������������72


Generic Response Wrapper in JAX-RS����������������������������������������������������������76
Microservices, the RESTEasy Way����������������������������������������������������������������������77
Cache Control������������������������������������������������������������������������������������������������77
Asynchronous Batch Processing in RESTEasy����������������������������������������������78
Server-Side Caching�������������������������������������������������������������������������������������������80
Microservice Documentation with Swagger�������������������������������������������������������82
OpenAPI���������������������������������������������������������������������������������������������������������82
Swagger��������������������������������������������������������������������������������������������������������86
MicroProfile Support�������������������������������������������������������������������������������������������87
REST Client����������������������������������������������������������������������������������������������������88
Security���������������������������������������������������������������������������������������������������������96
Configuration�����������������������������������������������������������������������������������������������111
Health Checks����������������������������������������������������������������������������������������������112
Fault Tolerance��������������������������������������������������������������������������������������������������116
Reactive Programming with Vert.x��������������������������������������������������������������������120
High-Performance Netty with Vert.x������������������������������������������������������������121
Reactive Messaging with Vert.x������������������������������������������������������������������123
Microservice Success with Quarkus�����������������������������������������������������������������130

Chapter 4: Packaging and Deploying Quarkus Applications������������133


JVM Mode���������������������������������������������������������������������������������������������������������135
Native Mode������������������������������������������������������������������������������������������������������136
GraalVM�������������������������������������������������������������������������������������������������������138
Native Java Image Limitations��������������������������������������������������������������������141
Native Imagery in DevOps���������������������������������������������������������������������������142
A Crash Course in Containerization�������������������������������������������������������������������144
Install Docker�����������������������������������������������������������������������������������������������146
Configure Docker�����������������������������������������������������������������������������������������146

vii
Table of Contents

Install the CentOS Image�����������������������������������������������������������������������������147


Run the CentOS Image��������������������������������������������������������������������������������148
Build Native Images Inside a Docker Container������������������������������������������150
Build Native Images with Maven: A Shortcut�����������������������������������������������152
SSL Support�������������������������������������������������������������������������������������������������153
Third-Party Class Support���������������������������������������������������������������������������153
Package a Quarkus App As a Docker Image������������������������������������������������155
Serverless Microservices����������������������������������������������������������������������������������160
Amazon Web Services Serverless Deployment�������������������������������������������162
Funqy Serverless Apps�������������������������������������������������������������������������������������177
AWS Serverless Success with Quarkus������������������������������������������������������������178

Chapter 5: Quarkus Data Access������������������������������������������������������181


SQL Data Sources���������������������������������������������������������������������������������������������182
Configure a JDBC Connection Pool Manager�����������������������������������������������185
Is Your Data Source Healthy?����������������������������������������������������������������������186
Using SQL Data Sources������������������������������������������������������������������������������189
Reactive ORM with Hibernate���������������������������������������������������������������������������212
NoSQL Data Sources�����������������������������������������������������������������������������������������215
With AWS DynamoDB�����������������������������������������������������������������������������������216
Manage Your DynamoDB Data Model����������������������������������������������������������220
Configure DynamoDB in Quarkus����������������������������������������������������������������224
CRUD in DynamoDB�������������������������������������������������������������������������������������226
Transactions������������������������������������������������������������������������������������������������������232
Quarkus Transactions����������������������������������������������������������������������������������235
Batch Operations����������������������������������������������������������������������������������������������243
Scheduled Jobs�������������������������������������������������������������������������������������������244
Security�������������������������������������������������������������������������������������������������������������247

viii
Table of Contents

Chapter 6: Test Quarkus Applications����������������������������������������������257


JUnit Primer������������������������������������������������������������������������������������������������������257
Unit Testing�������������������������������������������������������������������������������������������������������262
Unit Test CDI Beans�������������������������������������������������������������������������������������264
Unit Test CDI Components���������������������������������������������������������������������������266
Quarkus Mocking����������������������������������������������������������������������������������������������271
Integration Testing��������������������������������������������������������������������������������������������275
Slicing Integration Tests������������������������������������������������������������������������������281
Quarkus Test Profiles�����������������������������������������������������������������������������������285
Suppress Security for Integration Tests�������������������������������������������������������287
Native Mode Integration Testing������������������������������������������������������������������290

Index�������������������������������������������������������������������������������������������������295

ix
About the Author
Tayo Koleoso is a full-time technical lead and
consulting architect with a burning passion for
learning, because he knows there’s too much
he doesn’t know, and teaching, because it’s
the best way to reinforce knowledge. He’s an
in-person instructor and author, dedicated
to topics and technologies he’ll have to study
religiously to deliver. His journey started from
Lagos, in Nigeria, bringing him to the United
States as an immigrant software engineer. Across industries, from finance to
cybersecurity, he has led teams, architected complicated integrations, and
broken and built many fun and mission-critical projects in the enterprise
space, with Java and Python, in the cloud. Quarkus is his latest victim.
Outside of technology, he’s very passionate about personal finance and
the securities market. Throw a couple of habanero peppers in, and he’s
happy! You can watch and follow his courses on LinkedIn Learning.

xi
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
About the Technical Reviewer
Mouhamadou D. Sylla is an electrical and
software engineer with extensive experience
and works for a hi-­technology, defense
and biomedical research company that
provides scientific, engineering, system
integration, and technical services. As a
senior software engineer, he is responsible
for the development integration products
produced by the company. Mouhamadou has
been working in software development for a
decade and has participated and led several
development projects in Java. His primary
interests include the integration of security into software development
lifecycles and emerging technologies such as Quarkus. Mouhamadou
graduated from the University of Maryland, College Park, with a BS in
Electrical Engineering and minor in Computer Science.

xiii
Acknowledgments
I want to thank God, my mother, and sister for all the support and
prodding to push this book through.
To my muse and #1 cheerleader, Keni, I say a huge thank you.
My technical reviewer, Mo Sylla, keeping me accurate and on target,
thank you so much; it was an honor working on this book with you.
To Eden and her mum, for granting my first book “interview,” thank you.
Finally, to the person that set me on this path so many years ago – he
probably doesn’t even remember – Femi Temowo, thank you so much.
Thanks to the Quarkus crew for building a game-changing platform!
Thank you Java for existi... [Cue the walk-off music].

xv
Introduction
Java is dead. Long live Java.
“Cloud-native” is being thrown around in the industry a lot these
days; many are joining the “microservice” train as well. Many are not
ready. To be truly microservice, cloud-native, or even “cloud-friendly”
takes a major mindset shift and technological realignment. Traditional
popular Java application design, frameworks, and thinking can no longer
deliver the goods.
Quarkus literally puts the “native” in “cloud-native”; this is not your
grandma’s web service framework.
This book is a view of how Java enterprise applications and
microservices will be built and deployed in the future. I’ve carefully
selected the extensions and practices to demonstrate in this text. The
intent is to cover the most common use cases in the enterprise, combined
with as many easily digestible and functional examples as possible. I aim
to demonstrate how to
• Build scalable and cost-effective applications on
premises and in the cloud

• Reliably deploy RESTful Java services in the


containerized world

• Prepare you and your organization for the architectural


and operational changes that are necessary for a
successful migration to microservice architecture

xvii
Introduction

• Run resource-efficient Java applications in deployment


form factors that were hitherto impractical

• Reuse your existing code and components in the new


world of Quarkus
You’re not going to want to build Java the old way again. After seeing
how much more “performant” your web services can become with the
tools in this platform, you’ll find there are very few reasons to continue to
do Java as of old.
To get the most out of this book you’ll need

• Familiarity with Java in an enterprise setting

• A basic understanding of web services

• A basic understanding of the cloud

This book is example-heavy; a lot of the examples can be copy-pasted


straight into your IDE and run. Because of the active development going
on in this book, it’s highly likely that by the time you’re reading it, some of
it is outdated or functioning differently. This is a good thing: the Quarkus
project is very actively developed.
After reading this book, you will be able to build and package a
production-strength Java application that is natively compiled and
deployable on-premise and in the cloud.

xviii
CHAPTER 1

Welcome to Quarkus
Quarkus is the latest entrant into the microservice arena, brought to
you by our friends over at Red Hat. Now it’s not like there aren’t enough
microservice frameworks out there, but ladies and gentlemen, this
one’s different. This is one of the precious few microservice frameworks
engineered from the ground up for… [drum roll] the cloud.
The market is dominated arguably by the Spring Framework, Spring
Boot being its flagship platform for microservices. The Spring Framework
does everything and a little more, but one thing needs to be said: its cloud
offerings are bolted on; afterthoughts added to a platform born before the
era of cloud-everything, serverless, and containerization.
Quarkus is a framework built with modern software development
in mind, not as an afterthought. It’s a platform built to excel as a cloud
deployment: as a containerized deployment, inside a stand-alone server,
or in one of the common serverless frameworks. Quarkus provides almost
everything we’ve grown accustomed to in a microservice framework like
Spring Boot or Micronaut, with a lot of added benefits that put it ahead
of the pack. You can run it on-premise, in the cloud, and everywhere in
between.
In this chapter, we’re going to take a window-shopper look at the
framework and even take it for a test drive. Thank you for purchasing this
book and choosing to explore this game-changing platform with me.

© Tayo Koleoso 2020 1


T. Koleoso, Beginning Quarkus Framework, https://doi.org/10.1007/978-1-4842-6032-6_1
Chapter 1 Welcome to Quarkus

 rite Once, Run Anywhere


W
Predictably (WORP)
Write Once, Run Anywhere (WORA) was the original promise of Java:
you write your Java code one time, and it’s good to run on any platform
where. The way it fulfills that promise is by adding a lot of insulation
in the JVM that protects the code from all the peculiarities of various
operating systems and platforms. This is intended to mitigate any
platform-specific weirdness that might cause code to behave differently.1
The cost of that insulation is a degradation in the speed of execution,
not to mention the bloat in the Java platform code that causes the size
of deployment packages to swell considerably. Some even rewrote that
aphorism to become “Write Once, Break Everywhere” because among
other reasons, once you added application servers to the mix, things got
decidedly less predictable.
Enter the age of containerization. Technologies like Docker and
VMware Vagrant have rendered the need to write or run insulated code
basically unnecessary. Containerization, the cloud, and serverless
technology take a lot of the guesswork out of running code. Why should
you need to keep yourself guessing what platform your code will be
deployed to, when you can reliably deploy to a docker container? You no
longer need to “Write Once, Run Anywhere”; you need to “Write Once,
Run Predictably.” WORP code, baby! With a WORP mindset, we can shed
all the baggage of insulation that the JDK saddles us with. We can now
get much smaller deployment packages. Heck, maybe our code could run
a lot fas-.

1
The famous “...but it works on my machine?!”

2
Chapter 1 Welcome to Quarkus

Supersonic Subatomic!
Supersonic and Subatomic aren’t 1980s-era compliments (though Quarkus
is totally tubular and radical, dudes and dudettes!). No, it’s a tagline
that refers to two of Quarkus’ biggest differentiators: this framework will
usually generate much smaller deployment packages with small memory
footprints (subatomic) and deploy faster (supersonic) than most other
microservice frameworks on the market.
The folks over at Red Hat mean business with this framework. Quarkus
contains most of all the features you’ve come to expect from a modern
microservice framework in a shockingly compact deployment package,
a package that’s then engineered to start up faster than the competition
[hold for thunderous applause from the serverless crowd]. It’s truly a
container-­first and cloud-native microservice platform, engineered for

• Fast application startup times to enable quick scaling


up or down of applications in a container

• Small memory footprint to minimize the cost of


running applications in the cloud

• Predictable deployment scenarios


How is the package so small and fast? The secret sauce is a relatively
new Java feature known as ahead-of-time (AOT) compilation. A little
background on this feature, for the uninitiated (and a trip down memory
lane for the platform veterans).

A Brief Primer on JVM Internals


Today’s Java is both an interpreted and a compiled language platform.
Java started as an interpreted language platform: you save a source
file with the .java extension and run the javac command to generate
a .class file. That class file contains what’s called Java bytecode, a java

3
Chapter 1 Welcome to Quarkus

language-­specific interpretation of all the java code that you wrote. When
you now run “java yourcode.class”, the class file is interpreted by
the JRE into the OS-specific CPU instructions. That intermediate step
of translating the class file into CPU-friendly instructions is carried out
every time the code is run – every method is reinterpreted for every time
it needs to be run. In the modern-day JVM, this would go on for a while,
until some methods in your program or chunks of code are marked as
“hotspots” – meaning the JVM has run these portions of the code many,
many times.
At this point, the JVM will then execute a Just-In-Time (JIT) compilation
of those hotspot portions. The thing is interpretation of the java bytecode
slows down the execution; JIT compilation produces durable assembly
instructions that can be executed directly by the CPU. This means that
there will be no need for the repeat interpretation. As you can imagine, that
speeds up those specific parts of the application. The JIT-compiled parts
(and only those parts) of the application will become faster to execute than
the interpreted parts.
Figure 1-1 illustrates the process.

Figure 1-1. Traditional Hotspot compilation

4
Chapter 1 Welcome to Quarkus

Ahead-of-Time Compilation to the Rescue!


Ahead-of-time (AOT) compilation takes compilation further, or rather
brings it nearer. AOT compilation takes your .java files straight to
compiled native binaries that can be immediately executed by the
CPU, skipping the relentless interpretation step and passing the savings
on to you! Your application starts up significantly faster, and most of
the code enjoys the benefit of near immediate computability by the
CPU. Additionally, the memory usage drastically shrinks. The performance
gains from this process are comparable to what the likes of C++ can boast
of. Your entire application, if AOT-compiled, can even become a self-
contained executable, without the need for a running, OS-supplied JVM.

Figure 1-2. Ahead-of-Time compilation

But there are a few catches, because there’s no free lunch: Quarkus
and AOT compilation weave their performance sorcery by stripping the
Java runtime to the essentials. Code that’s compiled using AOT contains
only exactly what that code needs from the JDK, trimming a lot of fat. This
upfront compilation step means that it will take a little bit longer than most
Java devs are used to. Other time-consuming operations like using the
Reflection API are diminished somewhat. For example, if you plan to use
reflection, you’re going to have to configure your build to prepare to use

5
Chapter 1 Welcome to Quarkus

specific classes reflectively. It’s counterintuitive I know, but in practice, it’s


a minor inconvenience at worst. At best you’re guaranteeing the behavior
of your application at runtime! WORP WORP, baby!
There are some minor sacrifices that are made at the altar of
performance that we will examine later in this book. Writing WORP code
means deploying predictably. It means knowing what JVM features your
application might need ahead of deployment (TLS, Reflection, Injection,
etc.). At the end of it all, you’re still getting a lot of bang for your buck.

Quarkus Feature Tour


Any good microservice framework must provide a minimum set of
features, like running your application without a stand-alone server and
opinionated configurations with sensible defaults. Now I’m not going
to say that Quarkus is going to make you smarter, wealthier, or more
attractive,2 but I’m also not going to say it won’t do all those things. But
what else can it do?

Native Image Support


As I’ve mentioned before, a key feature of the Quarkus framework is the
ability to generate native images from Java code. The native image that’s
generated skips the interpretation stage of running regular java code,
helping it start faster and consume less system resources.3 The process of
generating a native image using AOT strips several layers of “fat” from the
JRE and Java code, allowing the finished image to operate with significantly

2
 ditor’s note: It will not.
E
3
The performance gains manifest immediately during startup of the microservice
app. There are some special conditions where you may not get the most
performance benefits out of the framework, but on the whole, Quarkus is much
faster and lighterweight than most of the competition.

6
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Chapter 1 Welcome to Quarkus

less resources than a traditional Java application. This isn’t the only
mode of Quarkus mind; you can run your Quarkus app as a traditional
Java application (so-called JVM mode) without any problems – and still
get significant performance boosts. It’s just that now, any talk of “Java is
too slow to do ${someUseCase}” or “Java is not suitable for embedded
deployment” is no longer valid. Cheers to that!

S
 erverless and Container-Friendly
For the uninitiated, serverless deployment is an application deployment
environment available only in the cloud. It’s a deployment model
that’s offered by cloud providers where you don’t have to deal with the
application server onto which your microservice will be deployed. All
you’ll need to do as a customer of a serverless-providing vendor is to
supply your deployment package – a WAR or in the case of Quarkus, a JAR.
Kubernetes (K8s for short) deployment is a first love for Quarkus –
it was designed with K8s in mind, from the container orchestration
perspective.4 With the support for native compilation using GraalVM,
Quarkus yields

• Dramatically smaller deployment units

• Much lower memory demands

• Quick startup times

These are factors that you should care about if you’re operating in
a containerized or serverless environment. You want your dockerized
application to start fast and utilize as little RAM as reasonably possible.
Why? So that your K8s, Elastic Container Service, or other container
management service can quickly scale out your microservice in response

4
 ubernetes is a container management platform that allows you to scale and
K
manage the deployment of a containerized application.

7
Chapter 1 Welcome to Quarkus

to load. In a serverless scenario, you really want your application to start


up as quickly as possible; a delay in startup could prove expensive: some
cloud providers charge by the amount of time for which a serverless
application runs. The native compilation doesn’t apply to just your code;
many third-­party libraries and frameworks that you’re used to (Kafka,
AWS libraries, etc.) have been engineered using Quarkus’ extension API to
make them native compilable. This means you can get container-friendly
levels of performance out of things like JDBC operations and dependency
injection. Even without native compilation, Quarkus as a framework does
a lot of upfront optimization to the deployment artifacts that improves
startup time. Quarkus ships with in-built support for Amazon Web
Services, Azure, and OpenShift.

Hot Reload of Live Code


Developer productivity is another focus of the Quarkus framework. The
hot reloading capability in Quarkus allows developers to see their changes
to code reflected live. So, when you crack open your favorite IDE (that’s
right, you get this feature regardless of IDE), and run the project, you don’t
need to shut down a server or kill the application to see further changes to
your code. Simply save the change in the IDE and keep testing the code –
no need to restart anything. Even config files! It’s pretty awesome to add
new dependencies to your Maven POM.xml in a running project and have
the new libraries pulled down, all without restarting the app!

Robust Framework Support


Quarkus supports a lot of frameworks out of the box. It also provides
a robust extension framework that allows you to add support for your
favorite third-party libraries and frameworks. If you’ve worked with any of

• JavaEE

• MicroProfile

8
Chapter 1 Welcome to Quarkus

• Apache Camel

• And yes, Spring Framework5

you can use all those frameworks inside your Quarkus-based code. As I’ll
cover in a little bit, Quarkus also covers a lot of the standards we’ve grown
accustomed to: JAX-RS, JAX-B, JSON-B, and so on. It’s built to enable fresh
microservice development, as well as migrating existing microservices
into a Quarkus project. Now as at the time of this writing, Quarkus is still
a pretty young platform, so the support for some frameworks is still in
preview mode, so your mileage may vary.

D
 eveloper-Friendly Tooling
Quarkus provides a rich option set for working with and within
the framework. There are feature-rich plugins for both IntelliJ and
Microsoft’s Visual Studio Code for a GUI-led bootstrapping of a project.
There’s also the https://code.quarkus.io/ project starter page, like you
get with Spring Boot.
Once you’ve gotten the project going, there’s a healthy ecosystem
of extensions that cover most use cases in the microservice world. The
quarkus Maven plugin gives you handy access to all the functionality
you’ll need to manage your Quarkus project; my favorite function gives
you handy access to plugins just like Homebrew (for macOS) and Node
Package Manager (for Node.js). We see these tools and plugins in action
shortly.

5
In preview mode at the time of this writing.

9
Chapter 1 Welcome to Quarkus

R
 eactive SQL
Now this one, I got excited when I first read about it. Many facets of Java
standard and enterprise programming have gotten the reactive treatment:
RESTful service endpoints, core Java,6 and so on. With Quarkus, database
programming is getting the reactive treatment also! Reactive programming
as a programming style provides a responsive, flow-driven, and ­message-­
oriented approach to handling data. It’s designed for high-throughput,
robust error handling and a fluent programming style; and it’s a very
welcome addition to SQL. What does that buy you?

• Being able to operate on database query results as a


streaming flow of data, instead of having to iterate over
the results one by one

• Processing results of a query in an asynchronous,


event-driven manner

• A publish-subscribe relationship between your


business logic and the database

• All within a scalable, CPU-efficient, and responsive


framework

That’s the promise of reactive SQL with Quarkus. As at the time of this
writing, only MySQL, DB2 and PostgreSQL support are available in reactive
mode in Quarkus.

6
J DK 9 introduced core support for reactive programming with the Flow API, so
framework providers can now base their reactive implementations on core java.

10
Chapter 1 Welcome to Quarkus

C
 loud-Native and Microservices-Ready
As anyone who’s had to decompose a monolithic application into
microservices can attest, it’s not a walk in the park. When your architecture
is built with the assumption that everything your application will ever
need is in a single deployment unit, you’re going to find some peculiar
challenges breaking it down into microservices. Then double that
trouble for pushing the application into the cloud. Quarkus is loaded
with extensions that make the transition to microservices a breeze. All of
Quarkus’ features are in support of a full application living in the highly
distributed and disconnected world of the cloud:
• Foundationally, almost everything in Quarkus is
reactive for efficient CPU usage and flow control.
• With OpenTracing, MicroProfile Metrics, and Health
Checks, you will have eyes and ears over everything
your application is doing, especially when a single
business process spans multiple independent
components “up there,” in the sky.
• Your application doesn’t have to spontaneously
combust every time a black box dependency isn’t
available for whatever reason: fault tolerance is
supported, also via MicroProfile.

JVM Language Support: Scala and Kotlin


Now I’m neither a career Scala programmer nor a Kotlin one, and even
I think this is awesome: you can use Quarkus in your Scala and Kotlin
projects – and a handful of other JVM-compatible languages! Pretty hip
and with it, as the kids say.7

7
Editor’s note: “The kids” haven’t said this in over 3 decades. Please stop this.

11
Random documents with unrelated
content Scribd suggests to you:
jewels? You have thrown away the gold, and kept the glass. You
have foolishly rejected nectar, and taken poison. Like a blind man,
obtaining possession of the philosopher’s stone, who throws it away,
and afterwards strikes his forehead on hearing of its valuable
qualities. You have thrown away gems of high value, (meaning
Krishnù and Bulram.) You have thus lost our sons, and brought
dresses and jewels instead of them. What will you do with wealth
without them? O foolish husband! how can we pass life without
them, whose separation from us even for a moment caused us the
deepest grief? What was the state of your feelings, when they
suggested separation?”
Nund Jee was much grieved at these words, and replied, with
downcast looks, “It is true Krishnù gave me these dresses and
jewels; but I know not who brought them here. How shall I mention
what Krishnù said to me? You will also be grieved, when you hear
his words. He returned to me after having killed Kuns, and made use
of most unkind expressions. They have become the sons of
Basoodeo; and have gone away from us, after having completely
gained our affections. When I was astonished at what they said,
they talked of remuneration to us for bringing them up. Do not call
Huri, Nund’s son; look upon and worship him as a deity. I thought,
that he was Narayun from the very first; but being under the power
of delusion, regarded him as a son.”
O great king! when Nund Rae Jee had repeated truly all Shree
Krishnù had said to him, Jusodha, being under the influence of
delusion, at one time looked upon Krishnù as her son, and was
sorrowful and disturbed in mind, and shed tears. At another time,
recovering her reason, she regarded him as a deity; and meditating
upon him, and celebrating with songs his excellent attributes, she
dissipated the grief of her mind. And in this manner all the
inhabitants of Bruj, both men and women, being deeply imbued with
love for Huri, held various discourses regarding him, which I have
not power to describe.
For which reason, I will mention the sports of Muttra; listen
attentively. When Huldhur and Gobind came to Basoodeo and
Dewukee, after having permitted Nund Rae to depart, they were
delighted at seeing them, and forgot all their former griefs, as a
devotee is delighted on obtaining the fruit of the penance which he
has performed. Basoodeo Jee first addressed Dewukee, saying,
“Krishnù and Buldeo have dwelt amongst strangers, and have ate
and drank with them; and are not acquainted with the customs of
their own caste. It is right, therefore, that we should send for, and
consult the family priest, and act by his advice.” Dewukee assented.
Basoodeo Jee then sent for Gurg, the sage, who was the family
priest; and on his arrival, after having explained all the perplexities
of his mind, enquired, “O great king! kindly inform us, what we
ought to do.” Gurg, the sage, replied, “First of all send an invitation
to all their brethren of the same caste; and afterwards admit Bulram
and Krishnù to the caste, and present them with Brahminical
threads.”
When the family priest had thus spoken, Basoodeo sent an
invitation into the city, and invited all Brahmins, and all descendants
of Judoo. They came, and were received with the greatest respect,
and offered seats. Basoodeo, first of all, having gone through all the
ceremonies of initiation into caste, and caused their nativities to be
written, presented to the Brahmins ten thousand cows with horns of
gold, backs of copper, and feet of silver, dressed out in silken cloths,
which cows he had made a vow to give at the birth of Krishnù. He
afterwards caused festive rejoicings to be made, and having
observed all the customs and ordinances of the Vedas, bestowed
Brahminical threads on Bulram and Krishnù; and, having made
presents to the two brothers, sent them forth to acquire knowledge.
They departed and came to the house of a learned sage and great
pundit, named Sandeepun, of the city of Awuntika, who was then
residing at Benares, and possessed of great knowledge; and
approaching him with an obeisance, and joined hands, they said to
him with great humility of manner, “O king of sages! take
compassion on us, and with sincerity of mind bestow upon us the
gift of knowledge.” O great king! when Shree Krishnù and Bulram
Jee had made this humble address to Sandeepun, the sage, he
brought them to his house in the most affectionate manner, and
began to instruct them with great kindness. In a short time, having
read the four Vedas, and Oopvedas, six Shastrùs, nine treatises upon
Grammar, eighteen Pooranùs, and discourses upon charms, amulets,
enchantments, futurity, astrology, physic, copulation, music and
prosody, they became the receptacles of the fourteen sciences. After
this, the two brothers said one day to their spiritual preceptor, with
joined hands and great humility, “O great king! it is said, that
however much a man may give in different births, and various
descents upon the earth, he cannot give a sufficient recompense to
those who have imparted knowledge to him: but please to direct
that we should make you a present according to our power; and we
will bestow it to the utmost limit of our means; and receiving your
blessing return home.”
When Shree Krishnù and Bulram had thus spoken, Sandeepun, the
sage, rose up, and engaged in thought and reflection returned
home. He explained to his wife, “That the two children, Bulram and
Krishnù, are immortal deities, and have descended upon the earth
for the sake of their worshippers, and to remove the burthens of the
world. I have discovered this secret by witnessing their sports;
because they, who read continually in several successive births,
cannot fathom the depths of sea-like knowledge, and behold they
have, in this state of infancy, passed over this limitless and
unfordable sea in a few days: they can accomplish whatever they
wish in a single second.” The sage added, “What boon shall we ask
of them, wife?”
On hearing these words, she thought for a short time and said “Go
and ask them for our deceased son’s corpse; they will bring it to us,
if they possess the powers of Huri.”
Having thus reflected, Sandeepun, the sage, came out of his
house with his wife, into the presence of Shree Krishnù and Buldeo,
and joining his hands said, in a supplicating manner, “O great king! I
had a son, with whom, on a certain festival, I went, accompanied by
my relations, to bathe in the sea, when we arrived there, and all
having undressed began to bathe, a great wave of the sea came, in
which my son was drowned, and did not come forth again. Some
shark must have swallowed him, I am greatly grieved for his loss, if
you desire to make me a present, as your spiritual preceptor, restore
that son, and remove the affliction of my mind.”
On hearing these words, Shree Krishnù and Bulram, having made
obeisance to their spiritual preceptor and his wife, and having
ascended their ruth, went towards the sea for the purpose of
bringing their son; and, having proceeded on their journey for some
time, arrived on the shore. Seeing them approach in angry mood,
the sea was alarmed, and assuming mortal shape came forth with
many presents from her own element, and stood on the shore
before them trembling, and greatly agitated with fear; placing her
presents before them, and bowing her head, and making submissive
salutations, she said with joined hands, and in a tone of supplication,
“Great is my good fortune, that Krishnù has appeared to me, for
what purpose have you come here?” Shree Krishnù Chund said, “My
spiritual preceptor came here with his relatives to bathe, whose son
you swept away with a wave; bring him here, and give him up to us.
This is the purpose for which we have come.”
The sea replied, bowing her head, “I have not overwhelmed him
with a wave. You are the spiritual guide of all, and lord of the
universe, and are the deity under the form of Ramù. I have been
very much afraid since this circumstance occurred, and have
continued to live with a regard to the dignity of my character and my
limits.” Huri replied, “If you did not take him off, who else did so?”
The sea said, “O lord of compassion! I will explain the mystery:
there is a demon, named Sunkhasoor, in the form of a shell, who
dwells in me, and who exercises tyranny over all animals, moving in
the water, and carries off all who come to the shore to bathe;
perhaps he may have taken away your preceptor’s son. I do not
know certainly that he has done so; but be pleased to come into the
sea yourself and ascertain.”
On hearing these words Krishnù went eagerly into the sea; on
beholding Sunkhasoor, he killed him, and splitting his belly, cast out
his entrails. He did not find his spiritual preceptor’s son; and in
consequence thereof, expressed regret to Bulbhudrù, saying,
“Brother! I have destroyed Sunkhasoor to no purpose.” Bulram Jee
replied, “It does not matter, carry him now about with you.” On
hearing this Huri made that shell his weapon. The two brothers
proceeding thence reached the city of Jum, the region of the dead,
the name of which is Sunjumnee, and Dhurm Raj, the Raja thereof.
On beholding them, Dhurm Raj descended from his throne, and
advancing to meet them, gave them a most welcome reception.
Having seated them on a throne, washed their feet, and taken the
water with which their feet had been washed, he said, “Happy is this
place! fortunate this city! which Krishnù has visited, and fulfilled the
supplications of his worshippers. Give me some business to perform
for you, that your servant may execute it.” Krishnù replied, “Bring
the son of my spiritual preceptor.”
When Huri had thus spoken, Dhurm Raj went off immediately and
brought the child, and joining his hands said in a tone of submission,
“O lord of compassion! through your favour I knew, beforehand, that
you would come to fetch the child, and have therefore taken the
greatest care of him; and have not yet restored him to life.” O great
king! with these words Dhurm Raj, presented the child to Huri, who
immediately placed him upon his ruth, and proceeding thence
conveyed him in a short time to the presence of his spiritual
preceptor. The two brothers, joining their hands said, “O divine
preceptor! what further orders have you for us?”
On hearing these words, and seeing his son, Sandeepun, the
sage, was highly delighted, and bestowing many benedictions on
Shree Krishnù and Bulram Jee said, “What more shall I ask, O
Krishnù! you have conferred the greatest happiness on me by
restoring my son. Great will be my renown from having had such
pupils as you. Return home now; and may you have a safe and
pleasant journey.”
When the spiritual preceptor had given them this injunction, the
two brothers departed, after the usual ceremonies of obtaining
permission to go, and salutation; and ascending their ruth proceeded
on their journey, and arrived at Muttra. On hearing of their arrival,
the Raja Oogursen, together with Basoodeo and the inhabitants of
the city, both male and female, came forth to meet them. They met
them outside the city, and being greatly pleased brought Krishnù
into the city in musical procession, spreading silken cloths on the
road for him to walk upon. There were rejoicings and festivities in
every house.
CHAPTER XLVII.
Shree Shookdeo Jee said,—O lord of the earth! I will give an account
now how Shree Krishnù Chund brought Brindabun to mind; listen
attentively. One day Huri said to Bulram Jee, “Brother! all the
inhabitants of Brindabun must be very much grieved on thinking of
me, because the time has elapsed, in which I promised to return.
We ought therefore, to send some one there, to console them for
my absence.”
Having thus advised his brother, Huri sent for Oodho, and said to
him, “Oodho! you are a great friend of mine; and are wise and
intelligent, and resolute. I therefore wish to send you to Brindabun
to offer explanations and consolation to Nund and Jusodha, and the
cowherdesses, and to bring my mother Rohnee here.” Oodho
expressed an immediate readiness to comply with this request.
Shree Krishnù Chund again said, “First of all, inform Nund and
Jusodha, and cheer up their spirits, and suggest to them to abandon
all grief, and to look upon my arrival as near at hand; and not to
regard me as their son, but worship me as a deity. Afterwards
explain to those cowherdesses, who for my sake have given up all
respect for the world and for the Vedas, and day and night sing of
my sports, and are ready to die, if I do not fulfil their expectation of
my returning, that they must no longer consider me as their lord,
but worship me as Bhugwan, and lay aside all the anxiety they now
suffer in consequence of my separation from them.”
O great king! having thus instructed Oodho, the two brothers
wrote a letter, in which they expressed to Nund and Jusodha, and
the cowherds and their children their respects and compliments, and
blessing in due form: and advised all the women of Bruj to perform
penance, and delivered the letter to Oodho, and told him to read it
to them; and after having made the necessary explanations to return
quickly. Having given him this message, Krishnù dressed Oodho in
his own clothes, and gave him his own jewels and crown, and
seating him on his own ruth, allowed him to depart to Brindabun.
Proceeding on his journey, Oodho reached the neighbourhood of
Brindabun after a short time, and on arrival there, heard birds
singing melodiously in the thickly stocked arbours, and cows of all
colours, scattered like clouds in every direction—and the
cowherdesses and cowherds, with their children, singing the praises
of Shree Krishnù.
He was delighted at the beauty of the scene, and making
obeisance to the site of Krishnù’s sports, arrived at the outskirts of
the village, when some one having recognized the ruth of Huri from
a distance came and having enquired his name, went to Nund and
said, “O great king! a person, named Oodho, has arrived from
Muttra, in the appearance and ruth of Shree Krishnù.”
On hearing these words Nund Rae came forth from amidst the
assembly of the cowherds, where he was then sitting, and
immediately approached Oodho. Regarding him as the companion of
Bulram and Krishnú, he embraced him with the greatest affection;
and enquiring kindly of his health and welfare, escorted him to his
house with great dignity and respect; having caused his feet to be
washed, he offered him a seat, and feasted Oodho with delicacies of
all kinds; when Oodho had enjoyed and finished his meal, Nund had
an elegant couch prepared for him, shining like the foam of the sea,
on which, after eating pawn, he reclined most agreeably, and forgot
all the fatigues of his journey.
When after some time, Oodho awoke, Nund, the chief, came and
sat near him, and enquired after his son, Soorsen, and his great
friend, Basoodeo and his family, and asked whether they still
continued to love him. Nund added, “Give me news of my son, with
whom you have abode constantly. Does he ever think of me, who
am greatly grieved at his absence? He promised us all to return, but
the time of his return has long elapsed. Jusodha constantly churns
and makes butter for Krishnù, and places it apart for him. Does
Krishnù ever think of her and the women of Bruj, who are deeply
imbued with love and affection for him?”
Having proceeded thus far in the narrative, Shree Shookdeo Jee
said to the Raja Pureechit,—O lord of the earth! in this manner
enquiring the news and celebrating the former sports of Shree
Krishnù Chund, Nund Rae Jee, being deeply impregnated with
affection for Krishnù, and meditating upon him, became silent—“He
has destroyed Kuns, and other powerful men; why should Krishnù
now forget us?”
In the mean while the Ranee Jusodha, greatly agitated, and losing
all sense and perception, came weeping bitterly to Oodho and
enquiring after Bulram and Krishnù said, “Tell me, Oodho Jee! how
has Huri passed his time so long without us, and what message has
he sent us, and when will he return to us?”
On hearing these words Oodho Jee read the letter of Shree
Krishnù and Bulram to Nund and Jusodha, and said, “Who can
explain the greatness of those, in whose house Bhugwan has been
born, and whom he has made happy by his sports? You are most
fortunate, because how can the immortal Vishnù, the lord of Shivù
and Bruhmù, who has neither mother, nor father, nor brother nor
relations, whom you look upon as your own son, and constantly fix
your thoughts and meditate upon, remain separated from you? Huri
is constantly near those who love him; having assumed mortal shape
for the sake of men, he has neither friends nor enemies, whether of
high or low estate. Whoever offers adoration and worship to Huri,
will be united to him, and become a follower of his. As the large
black bee carries off another insect, and moulds it to its own form,
and as it remains enclosed in the flower of the lotus, and does not
leave it and fly away, although other bees buzz over it during the
whole night: in like manner Huri fashions after his own model, and
never abandons those who love him, and meditate upon him.”
Oodho added, “Do not any longer regard Huri as your son, but
reverence him as the deity. Krishnù, the lord, who knows the secrets
of the heart, and befriends his worshippers, will appear and come to
you, and accomplish all your desires: be not at all anxious in your
minds.”
O great king! when in conversation of this kind the whole night,
with exception of about an hour, was spent, Oodho Jee said to Nund
Rae, “O great king! it is now time for churning: with your
permission, I will go and bathe in the Jumna.” Nund, the chief, gave
his assent; he remained seated where he was, engaged in thought
and reflection, and Oodho Jee went in his ruth to the banks of the
Jumna. Having taken off his clothes, and purified himself, he
approached the water, and placing dust on his head, and joining his
hands, singing the praises of the Jumna, sipping water in the palm
of his hand, he went into the river; and having bathed, and
performed his ablutions, and completed his meditations, adorations
and libations, began to count his beads. At the same time, all the
women of Bruj rose, and having swept and besmeared with mud
and cow-dung, the inside of their houses, and having burnt
perfumes and lighted lamps, began to churn. The sound of the
churning was like thunder, and like the sound produced by anklets
and ornaments for the toes. The beautiful women of Bruj, having
churned took away the butter, and finished their household work,
went all together for water.
O great king! the cowherdesses being distracted at separation
from Krishnù, and deeply imbued with love for him, and celebrating
his many excellent qualities with songs, began, as they went along
the road, to meditate upon him, and sing of his sports. One said, “I
have seen Krishnù;” another, “That he had run off and hid himself.
He has laid hold of my arm from behind: Huri is now standing under
the shade of a fig tree.” One remarked, “I saw him milking:” another,
“I beheld him very early.” Some said, “He is tending herds; others,
Listen! he is playing the flute. We will not go this road, as Krishnù
will ask for presents. He will break our water pots, and untie the
knots, on which we carry them; and will steal away our senses by
his many glances. He is hid somewhere, and will come running
towards us; and then where shall we escape.” The women of Bruj
went along, conversing thus with each other; their minds being
much agitated in consequence of their separation from Krishnù.
CHAPTER XLVIII.
Shree Shookdeo, the sage, said,—O lord of the earth! when Oodho
Jee had finished counting his beads, he came forth from the river,
and putting on his clothes and ornaments sat down in his ruth. As he
came near Nund’s village on his way from the banks of the river, the
cowherdesses, who had come for water, saw his ruth from afar
coming along the road. On seeing it, they began to say to each
other, “Whose ruth is this? that is coming towards us, let us see, and
afterwards proceed on our journey?” One of them said, “Friend, I
hope that deceitful creature, Akroor, has not come, who took off
Shree Krishnù Chund to live at Muttra, and caused him to kill Kuns.”
Another said, “Why has this treacherous wretch come again, he has
already taken away the root of our lives, and what more will he take
away?”
O great king! carrying on various conversations of this kind, the
women of Bruj stood still, having taken the water-pots from their
heads, and placed them on the ground. In the mean while as the
ruth came near some of the cowherdesses having seen Oodho a
short way off, said to each other, “Friend! why this is some one of a
black colour with lotus-like eyes, and a crown on his head; wearing a
garland that reaches to his feet, dressed in yellow silk, and with a
scarf of the same colour. He is sitting on a ruth like that of Shree
Krishnù, and is looking at and coming towards us.” One of them
remarked, “This person has been at Nund’s house since yesterday;
his name is Oodho, and Shree Krishnù Chund has sent some
message by him.”
On hearing these words, the cowherdesses, observing a retired
spot, and laying aside all propriety and reserve, rushed towards
Oodho Jee—and regarding him as the friend of Krishnù, they made
obeisance, and enquired after Krishnù, standing on all sides of the
ruth, with joined hands. Seeing their affection Oodho Jee left his
ruth; and the cowherdesses having seated him under the shade of a
tree, sat themselves down on all sides of him, and began to say in a
most affectionate manner: “You have done well, Oodho, in coming,
and bringing us news of Krishnù. You associate constantly with him;
please inform us what message he has sent. You have been sent
here only for the sake of his father and mother; he thinks of no one
else. We have sacrificed every thing for him; our souls are entangled
in his feet. He is occupied with his own affairs exclusively; and has
given pain to all by his departure. And as birds leave trees without
fruit, Huri in like manner has abandoned us; and although we have
given up every thing to him, he has not become ours.”
O great king! when the cowherdesses, filled with delight in their
love for Krishnù, had talked thus for some time, Oodho, perceiving
the great sincerity of their love, was about to rise to make a
salutation, when a cowherdess, who saw a bee on a flower,
addressed Oodho, under pretence of addressing the bee—“O bee!
thou hast imbibed the sweetness of Krishnù’s lotus-like feet; and,
therefore, thou hast obtained the name of the honey maker. Thou
art the friend of one who is deceitful; and, therefore, he has sent
you as his messenger, do not touch our feet, because we know that
all of a black colour are treacherous, such as you are, such is
Krishnù; therefore, do not make salutations to us. In the same way
that you roam from flower to flower, tasting its sweets, and belong
not to any particular one, Huri does not love any one, or belong to
any one.” Whilst the cowherdess was thus speaking another bee
came; on seeing it, a cowherdess, named Seelta, said, “O bee,
remain apart, and go and tell this in Muttra, where there is a hump-
backed queen, and where Shree Krishnù Chund dwells. Why need I
speak of one birth; in each succeeding birth your behaviour is the
same? The Raja Buli gave up every thing, and you sent him to the
infernal regions; and drove from her home one so virtuous as Seeta
without fault on her part. Since they were thus treated, what had we
to expect?” After this, all the cowherdesses in a body, joining their
hands, said to Oodho, “Oodho Jee! we have lost our lord by the
absence of Krishnù, take us away with you.”
Shree Shookdeo Jee said,—O great king! when the cowherdesses
had thus spoken, Oodho Jee said, “I will explain the contents of the
letter Krishnù has sent by me, to which listen attentively. He has
written, that you must give up all hope of sexual pleasure, and offer
devotion to him; and that he will never be separated from you; and
he has added, that from the day you began to meditate on him,
none have been so much loved by him as you.” Oodho added, “You
have established a never-ending love for the first male, the immortal
Huri; and regarded him as your lord, whom all else celebrate as the
invisible, imperceptible, inscrutable being, and as earth, wind, water,
fire and air dwell in the body, so Krishnù dwells in you; but through
the influence of his delusive powers seems to be apart. Bear him in
mind and meditate upon him. He always promoted the advantage of
his worshippers; and by his remaining near meditation and religious
knowledge are utterly destroyed. For this reason Huri has gone to
live at a distance. And Shree Krishnù Chund gave me also to
understand, that playing on the flute he invited you into the jungle,
and when he saw the strength of your love and passion for him, he
took part in your festivities; when you forgot his divinity, the lord of
Judoos disappeared. When having recovered understanding, you
again meditated upon Huri, he, knowing the piety of your minds,
presented himself to you.”
O great king! when Oodho had thus spoken, the cowherdesses
said angrily, “We have heard all your speeches; stand apart from us
now. You tell us to cultivate knowledge and understanding, and
perform penance, and tell us to abandon meditation and look up at
the sky. You call him Narayun, in whose sports our minds have been
deeply engaged. Why has he become an invisible and imperceptible
being, who has conferred happiness on us from his childhood? And
how has he, who was endowed with all good qualities and great
personal beauty, become a being without qualities and form? Who
will pay any attention to what you have said, considering that our
souls are wrapped up in his beloved body?” One of them rose up
and said, “Let us endeavour to conciliate Oodho: say nothing to him,
but listen to what he says, and watch his looks.” Another said, “It is
not his fault, the hump-backed woman (Koobja) has sent him here.
He is now merely repeating what Koobja has taught him to say.
Krishnù would never speak as Oodho has spoken since his arrival at
Bruj. We are pierced with thorns at hearing such speeches, and
cannot endure listening to them. He tells us to abandon all thought
of sexual pleasure, and engage in devotion; when would Krishnù
speak thus? Prayers, penance, fasting, vows and prescribed rules of
conduct are all acts becoming widows. May Shree Krishnù live in
every age, having conferred happiness on us all. Who makes use of
ashes, and of cow-dung while her husband is alive? Say, where does
this custom prevail? Our vows, penance and fasts consist in showing
our love for Nund and Nundun constantly. Who can possibly blame
you, Oodho? this is a dance of Koobja’s getting up.”
Having recited thus much, Shree Shookdeo, the sage, said, O
great king! when Oodho had heard these affectionate words of the
cowherdesses, he regretted and was ashamed that he had
mentioned the subject of penance to them, and remained silent,
with downcast looks. One of the cowherdesses enquired after
Bulram, and said, “Does he ever think of and call to mind our
childish love?” Another replied, “Friend! you are all cowherdesses
and common village women, and the women of Muttra are beautiful,
by whom Huri has been captivated, and is engaged in sports with
them, why should he now think of us? Since he went to reside there,
he has become the beloved of other women; had we known
beforehand this would happen, we would not have let him go away.
Regrets are now of no avail, it is better to lay aside grief, and hope
for his return. Because, as during eight months the earth, forests
and hills, endure heat in expectation of rain, which comes in due
course and cools them; in like manner Krishnù will also come to us.”
One said, “Huri has accomplished all his business, and has destroyed
his enemies, and taken possession of their government, why should
he come to Brindabun, and leave his kingly power to tend herds? O
companions! give up all expectations of his coming. The case is quite
hopeless; and we ought not to think any more about it.” One of
them said, in great distraction of mind, “Why should we give up all
hope of Krishnù? On seeing the forests, hills and the banks of the
Jumna, where Shree Krishnù and Bulbeer engaged in sports, our
recollection of Huri, the lord of our hearts, returns forcibly.” She then
said, “This village of Bruj has become a sea of grief: his name is a
boat in the midst of the stream. Krishnù will take across all who are
immerged in the waters of absence and separation. Why has he
forgotten, that he is lord of the cowherdesses? Is he not ashamed
on account of his name?”
On hearing these words, Oodho, reflecting, began to say, “Happy
are these cowherdesses! and blessed be their firmness, in having
given up all else, and become absorbed in meditation upon Shree
Krishnù Chund.”
O great king! Oodho Jee saw and praised their love, when at the
same time all the cowherdesses rose up, and brought him to their
homes with great respect and dignity. Perceiving their affection, he
dined with them; and after resting he made them all very happy by
telling them stories of Shree Krishnù. All the cowherdesses, having
then performed poojah to Oodho Jee, and placed many presents
before him, said with joined hands and the greatest humility, “Oodho
Jee! go and say to Huri, lord! formerly you were very kind to us, and
used to take us by the hand about with you; but since you have
obtained power, you have written to us about penance at the
suggestion of that strumpet, Koobja. We, poor, impure creatures,
have never been initiated by a spiritual preceptor in any mystical
prayer: what knowledge can we possibly possess; from our
childhood we have loved him, and what do we know of the customs
of penance? Why has Huri not come himself to tell us what penance
to perform? This is not a subject to send a message about. Oodho!
go and explain to him, that our lives are ebbing out, let him come
and preserve them.”
O great king! when they had thus spoken, the cowherdesses were
delighted in fixing their thoughts on Huri; and Oodho, having made
the usual salutation, took leave and returned thence in his ruth to
Brindabun. He remained there for some days; and on his way back
he visited and stayed a few days at each of the places, where Shree
Krishnù Chund had been engaged in sports. At length after some
days he returned to Brindabun, and having gone to Nund and
Jusodha, said with joined hands, “Owing to your friendship, I have
stayed for some time at Bruj, and now, with your permission, will go
to Muttra.” On hearing these words, the Ranee Jusodha went into
the house, and brought forth milk, curds, butter and sweetmeats in
large quantities; and presenting them to Oodho, said, “Give these to
our beloved Shree Krishnù and Bulram, and tell our sister, Dewukee,
to send them both to us without any delay.” Having communicated
this message, the wife of Nund began to weep. Then Nund Jee said
to Oodho, “What more need we say to you? You are yourself
possessed of great sense, understanding and knowledge, and many
excellent qualities; intercede for us with Krishnù in such a way that
he, taking into consideration the sufferings of the inhabitants of Bruj,
may come to us quickly, and not forget us altogether.”
After having thus spoken, when Nund Rae shed tears, and all the
inhabitants of Bruj, male and female, standing round, began also to
weep, Oodho Jee consoled them, and restored them to composure
of mind by his explanations; and, accompanied by Rohnee, took his
departure for Muttra; and after journeying some time, arrived at the
abode of Shree Krishnù Chund. On seeing him, Shree Krishnù and
Buldeo rose and embraced him, and enquired in the most
affectionate manner regarding his health, and the news of
Brindabun, “Say Oodho Jee! are Nund and Jusodha, and the
inhabitants of Bruj all well, and do they ever think of us?” Oodho Jee
replied, “O great king! I am quite unable to describe the greatness
of Bruj, and the love of its inhabitants; you are their life; night and
day do they think of you, and their love for you is as complete as a
perfect worship, performed with all prescribed ceremonies. I
mentioned to them your advice regarding the performance of
penance; but I have learnt from them the manner, in which
adoration should be offered.” Oodho Jee, having communicated this
intelligence, added, “O merciful to the poor! what more need I say?
you are acquainted with the secret thoughts of each mind; and
understand me without any lengthened explanation on my part, that
all things in Bruj, animate and inanimate, are greatly distressed at
not being able to see and touch you; and the only hope they have is,
that you may return.”
On hearing these words, the two brothers were greatly dispirited;
and Oodho Jee, taking leaving of Shree Krishnù Chund, conveyed
the message of Nund and Jusodha to Basoodeo and Dewukee, and
went home. Rohnee Jee was filled with joy at meeting with Shree
Krishnù and Bulram, and abode in her own house.
CHAPTER XLIX.
Shree Shookdeo, the sage, said,—O great king! one day the sportive
Krishnù, the benefactor of his worshippers, thinking of the affection
of Koobja, went to her house, with the view of performing the
promise he had made her. When Koobja knew that Huri had come,
she had cloths of silk spread for him to walk on. She advanced to
meet him with the greatest joy; and all the good acts she had done
in former births then received their reward. Having given Oodho a
seat outside, Krishnù entered the house of Koobja; he there saw a
splendid carpet spread in a picture gallery, on which was arranged a
beautiful couch of flowers. Huri repaired to the couch, and Koobja,
having withdrawn to another room, bathed and perfumed herself,
and having combed her braided hair, wearing a most elegant dress
and handsome jewels, adorned from head to foot, having eaten
pawn, and being sweetly scented, approached Shree Krishnù Chund
with the gaiety and endearment, with which Ruttee, (the wife of
Ramudevù,) approaches her husband. Having veiled herself from a
feeling of modesty, she remained apart and silent, having a great
dread of the first interview. On seeing her, Shree Krishnù Chund, the
root of joy, took her by the hand; and placing her near him, satisfied
her desires. He then arose, and came to Oodho; blushing and
smiling, and with downcast looks. O great king! having thus made
Koobja happy, Shree Krishnù Chund returned home with Oodho Jee,
and said to Bulram, “I promised Akroor that I would pay him a visit,
so let us go to his house first and afterwards send him to
Hustinapoor, to bring us the news of that quarter.” Upon this both
brothers went to Akroor’s house; he was much pleased at seeing
Krishnù; and making a salutation, and putting the dust of his feet on
his head, said with joined hands, and with great humility of manner,
“O lord of compassion! you have shown me great favour by coming
here, and making my house pure.” Shree Krishnù replied, “Uncle!
why do you exalt me so highly? I am your son;” and added,
“through your kindness, uncle! all the demons have been destroyed,
but there is one subject, which occasions me anxiety, as I have
heard that Pandoo has gone to heaven, and that Doorjodhun
tyrannizes over my five brothers. My aunt, Koontee, is greatly
distressed; unless you go, who can afford her relief by
explanations?” Akroor Jee, on hearing these words, said in reply to
Huri, “Be not anxious on that subject, I will go to Hustinapoor and
explain matters, and bring back all the news.”
CHAPTER L.
Shree Shookdeo, the sage, said,—O lord of the earth! when Shree
Krishnù Jee heard these words of Akroor, he sent him off to bring
intelligence of Pandoo. After travelling from Muttra some days in his
ruth, he reached Hustinapoor; and, on arrival there, went to the
court of the Raja Doorjodhun, who was sitting on his throne, and,
having made a salutation, stood before him. On seeing him,
Doorjodhun arose with all his court, and embraced him; and seating
him with great dignity and respect near him, made various enquiries,
saying, “Happy are Soorsen and Basoodeo! happy Krishnù and
Buldeo! Oogursen has been made a Raja by them, and on their
account does not think of any one; since his son’s death he has
reigned and is independent of every one.”
When Doorjodhun had thus spoken, Akroor was silent, and began
to reflect, “That this was a court of wicked men, where it was not
right for him to remain: because if he staid there, they would make
many more such speeches, to which he could not with propriety
listen; and, therefore, he ought not to remain there.”
With these thoughts in his mind, Akroor Jee arose, and went
thence to the house of Pandoo, accompanied by Bidoor. On arrival
there he beheld Koontee in great affliction at the loss of her
husband, and shedding tears. He went and sat by her side, and said
to her, “Mother! no one has power over Bruhmù; and no one is
immortal, and lives for ever. Whilst in the body, the soul suffers pain
and pleasure; for which reason it is not becoming in man to grieve
and be anxious, because nothing is gained by indulging in grief; the
mind only is afflicted by it.”
When, O great king! Akroor Jee had thus reasoned with Koontee,
she reflected upon what he had said, and remained silent; and then
enquired from Akroor, “Whether her mother, father, her brother,
Basoodeo, and his relations were all well; and whether Shree
Krishnù and Bulram ever thought of their five brothers, Bheem,
Joodisthur, Urjoon, Nukool and Suhdeo. They are here fallen into a
sea of trouble; and when will they come to their assistance and
rescue? We cannot endure the tyranny of the blind Dritrasht;
because he acts by the advice of Doorjodhun, and is day and night
planning to destroy the five brothers. He has frequently mixed
poison for them, which my Bheemsen once drank.” Koontee
afterwards added, “O Akroor Jee! since all the members of the
family of Kooroo are such great enemies, to whom are my children
to look with affection, and how shall they grow up, and escape
death? How shall I explain to you the great afflictions I endure? And
as a doe, separated from the herd, is greatly alarmed, in like manner
I am constantly disquieted and sad. They are my protectors, who
have destroyed Kuns and all evil spirits. Go and tell them of the
griefs of their brothers, Judisthur, Urjoon and Bheem.”
Akroor’s eyes filled with tears at hearing these words of Koontee,
spoken with great humility; and he reasoned with her and said,
“Mother! banish all anxiety, these five sons of yours will be very
powerful and celebrated. They will utterly destroy their enemies, and
all wicked persons as Shree Gobind is their ally.” Again Akroor Jee
said, “Shree Krishnù and Bulram sent me here with this message,
‘Tell our aunt not to vex or fret herself, as we will soon come to her.’ ”
O great king! having thus delivered Shree Krishnù’s message,
Akroor Jee entered into explanations with Koontee, and restored her
to confidence and composure; and, taking leave went to Dritrasht,
accompanied by Bidoor, and said to him, “Why do you, who are an
old man, exercise such tyranny; and being under the influence of
your son, make your nephews (brothers’ children) unhappy, after
having forcibly seized upon the government of your brother?
According to what code are you guilty of such injustice. You have
lost your sight, but can you not see with the eyes of your mind, your
family is being destroyed by your crimes. Why did you, when you
were enjoying great ease and happiness, seize upon the government
of your brother, and bring distress upon Bheem and Joodisthur?”
On hearing these words, Dritrasht laid hold of Akroor’s hand, said,
“What can I do, no one will obey my orders? All follow their own
counsel, and I am looked upon as a fool by them. For this reason I
never take part in their affairs; but remain apart, and worship my
lord in silence.”
When Dritrasht had thus spoken, Akroor Jee made a salutation,
and rising went thence in his ruth; and departing from Hustinapoor
came to the city of Muttra. He mentioned to Oogursen and Basoodeo
the affairs of the Panduries, the sons of Koontee are greatly afflicted,
and their bodies much emaciated with grief. Having told Oogursen
and Basoodeo Jee all the news of Hustinapoor, Akroor went to Shree
Krishnù and Bulram; and, making a salutation, said with joined
hands, “O great king! I have been to Hustinapoor, and seen that
your aunt and five brothers suffer great calamities at the hands of
the Kooruvus. What more need I say, you know the secrets of the
heart, and the state of affairs there; and the ruin which has befallen
your family, are not hidden from you.”
Having thus spoken, and delivered Koontee’s message, Akroor Jee
took leave, and returned home. And having heard all the intelligence
which Akroor brought from Hustinapoor, Shree Krishnù and Buldeo,
the gods of all the gods, sat down after the fashion of men, and
engaged in thought, revolved in their minds, how they might remove
the burthens of the world.
Shree Shookdeo, the sage, having recited thus much of the history
to the Raja Pureechit, said,—O lord of the earth! I have related the
first half of history, comprising what took place in the forest of Bruj
and at Muttra, I will now relate the last half, if I obtain the power of
the lord of Dwarka.
CHAPTER LI.
We now write the last half of the history. Shree Shookdeo, the
sage, said,—O great king! I will relate, how Shree Krishnù Chund
conquered Joorasindhoo and his army, destroyed the right of the
dead, released Moochkoond, and, having left Bruj, took up his abode
in Dwarka: listen with the greatest attention.
The Raja Oogursen ruled over Muttra with great skill and policy;
and Shree Krishnù and Bulram, like servants, were obedient to his
orders. Under his government all his subjects were happy; except
the widows of Kuns, who were greatly grieved at the loss of their
husband. They could not sleep, and had no sensation of hunger or
thirst. During the whole eight puhurs, they were in a state of sorrow.
One day the two sisters, being deeply engaged in thought, said to
each other, “A woman has no excellence without her husband, as the
subject has no excellence without his lord, or night without the
moon. As we have lost our husbands, we ought not to stay here
now; and it is better for us to go and live in the house of our father.”
O great king! the two queens, having thus determined, sent for a
ruth, and travelled in it from Muttra to their father’s house, in the
Behar country; and with tears related to him, how Shree Krishnù and
Bulram had destroyed Kuns and all evil spirits.
On hearing their account, Joorasindhoo entered his court in great
wrath, and said, “What powerful men are these, who have been
born in the family of Judoo, and have made my daughters widows,
after destroying the very powerful Kuns and all evil spirits? I will
attack them with my whole army; and destroying with fire the city of
Muttra, and all the family and descendants of Judoo, will carry off
Bulram and Krishnù bound and alive: otherwise my name is not
Joorasindh.”
Having thus spoken, he wrote letters to all the neighbouring
Rajas, asking them to come to him with their armies; as he was
about to revenge himself for the death of Kuns, by destroying all the
descendants of Judoo, and making their race extinct. On receiving
Joorasindhoo’s letters, all the Rajas of the different countries came
quickly with their forces; and Joorasindhoo also arranged and
prepared his army.
At length when Joorasindhoo took his departure from the Behar
country to Muttra with all his army of demons, he had twenty-three
complete armies with him; each army consisting of 21,817
charioteers and as many men mounted on elephants: 109,350 foot
soldiers and 66,000 horsemen. Such were the twenty-three complete
armies he had with him, each demon of which was powerful beyond
description. O great king! when Joorasindhoo, accompanied with all
his army of evil spirits, advanced, sounding the kettle-drum, the
guardians of the ten quarters began to shake and tremble, and the
gods to fly through fear. The earth apart began to be agitated, like
the roof of a house, from the load. At length, after some days’
progress he arrived, and surrounded the city of Muttra on all sides.
Upon this, the inhabitants of the city went in the greatest alarm to
Shree Krishnù Chund, and exclaimed, “O great king! Joorasindhoo
has encompassed our city on all sides; what shall we do, and where
shall we go?”
On hearing these words, Huri reflected for a short time; and
Bulram having, in the mean while, come to him, said, “O great king,
you have descended upon the earth to remove the miseries of your
worshippers, be pleased now to assume a body of fire, and destroy
the forest in the form of an evil spirit.” At these words Shree Krishnù
Chund went with him to Oogursen, and said, “O great king! give us
an order to fight, and do you, having taken all the descendants of
Judoo with you, protect the fort.” After these words, when they
came to their father and mother, all the inhabitants of the city came
round them and being greatly agitated began to say, “O Krishnù!
how shall we escape from the hands of these demons?” Huri,
perceiving that his mother and father and all the other people were
alarmed, explained to them and said, “Suffer not any anxiety; this
army of demons, which you now see, shall in a moment be
dispersed in every direction, in the same manner that bubbles
disappear in the water.”
Having thus explained, and restored their confidence, he took
leave; and as Krishnù advanced, the gods sent two ruths, filled with
arms for him. The chariots stood before them, and the two brothers
entered them.
The two chiefs of the family of Judoo went forth and reached
Joorasindhoo’s army safely, they came to the place where
Joorasindhoo was standing. On seeing them Joorasindhoo said with
great haughtiness to Shree Krishnù Chund, “Fly from before me, why
should I kill you, you are not my equal that I should attack you? I
will see what Bulram is made of.”
Shree Krishnù Chund replied, “O proud fool! what silly talk is this
of yours. The brave never make high sounding speeches to any one;
but behave with moderation to all; when occasion requires they
exhibit their power; can they be called brave, who extol their own
greatness? There is a saying, that when it thunders, it does not rain;
so, wherefore, do you talk boastingly?”
At these words, Joorasindhoo was enraged; and Shree Krishnù
and Buldeo retired a short distance, and stood in a state of
preparation. He pursued and attacked them with his whole army,
and called out, “O wicked wretches! where will you fly from my
presence? You have long escaped alive; I know not what may be
your thoughts, but you shall live no longer, I will send you and all
the descendants of Judoo to the same place, where Kuns and all his
demons have gone.”
O great king! when that devil had made this wicked speech the
two brothers retired some distance further, and stood. Shree Krishnù
was armed with weapons of all kinds, and Bulram Jee with a plough
and wooden pestle. As the army of demons approached them, the
two heroes shouted and rushed upon them like lions on a herd of
elephants, and encountered them sword in hand. Then the kettle-
drums sounded like thunder, and the assembled army of the demons
was spread in every direction like clouds; the din of arms was as
continued rain; in the midst of which Krishnù and Bulram, whilst
fighting, appeared as brilliant and beautiful, as lightning amidst thick
clusters of clouds. All the gods were sitting in their chariots, and
viewing the battle from the sky, they celebrated the praises of
Krishnù, and earnestly wished that he might be victorious; and
Oogursen and all the descendants of Judoo were extremely anxious,
and regretted that they had allowed Shree Krishnù and Bulram to go
forth to the army of demons.
Shree Shookdeo, the sage, having proceeded thus far in his
narrative, said, O lord of the earth! when in the course of the battle
a great portion of the army of demons had been destroyed, Buldeo
Jee descended from his chariot, and bound Joorasindhoo. Upon this,
Shree Krishnù Chund said to him, “Brother! let him live, do not kill
him, because he will return and again bring more demons with him;
whom we will destroy, and remove the burthens of the world, and if
we do not spare his life, we shall lose the evil spirits, who have fled.”
In consequence of this expostulation of Krishnù, Buldeo Jee released
Joorasindhoo, who went off and joined those who had fled from the
field. Looking around he said with regret, “My whole army has
vanished, the greatest calamity has befallen me. Why should I live? I
will abandon my home, and turn devotee.” A councillor said to him,
expostulating, “Why should a wise man like you regret, sometimes
there is defeat, and sometimes victory? No one should abandon his
government and home. What matters it that you have been defeated
in this battle, we will collect our forces again, and send Krishnù and
Buldeo, and all the descendants of Judoo to heaven; banish all
anxious thought.”
O great king! the councillor having thus expostulated, returned
home with Joorasindhoo, and all the demons, who had fled from the
battle; and there began to assemble another army. Shree Krishnù
and Bulram saw blood flowing in a stream on the battle-field, in
which chariots without their charioteers were carried along like
boats; in different places the dead elephants appeared like hills,
from whose wounds blood spouted forth like springs. There
Muhadeo, accompanied by goblins and spirits, and wearing a
necklace of human heads, was dancing and singing in the greatest
glee; and female spirits and goblins, and the attendants of Devee
were drinking blood out of skulls; vultures, jackalls and crows were
devouring the bodies, and contending with each other for the flesh.
Having recited thus much, Shree Shookdeo Jee said,—O great
king! the regent of the winds collected all the chariots, elephants,
horses and demons together, and fire burnt them to ashes in a
second. The five elements were re-united with each other, all saw
them come but no one saw where they departed. Having thus put
the demons to death, and removed the burthens of the earth, Shree
Krishnù and Bulram, the benefactors of their worshippers, came to
Oogursen, and, making a salutation, said with joined hands, “O
great king! through your excellence and majesty, we have destroyed
and routed the army of the demons, rule now without fear, and
promote the happiness of your subjects.” The Raja Oogursen was
very much pleased at these words, and made great rejoicings, and
began to rule with justice.
After some time, Joorasindhoo came forth to attack with another
army as large as the former one, which Shree Krishnù and Buldeo
destroyed and dispersed as before. In this manner, Joorasindhoo
attacked seventeen times with his twenty-three armies, which
Krishnù drove back, after having inflicted great slaughter on them.
After reciting thus much of the history, Shree Shookdeo, the sage,
said to the Raja Pureechit,—O great king! at this time upon a sudden
thought Narud Jee rose, and went off to the abode of Kaljumun. On
seeing him, he stood up with all his court, and making a salutation,
enquired in a respectful manner, and with joined hands, the reason
of his coming. At these words Narud, after a little thought, said,
“Bulbhuddrù and Krishnù are at Muttra, no one, except you, can
drive them away, Joorasindhoo has not met with any success. You
are immortal and very powerful, Buldeo and Huri are children.”
Narud Jee added, “Do not cease to follow him, whom you observe of
the colour of the clouds, with lotus eyes, a very elegant person
dressed in yellow silk, and with a yellow scarf.”
Having thus spoken, Narud, the sage, departed; and Kaljumun
began to prepare his army. After some days, he collected three
crores of very unclean men of terrifying aspect, with stout arms and
thick necks, large teeth, dirty appearance, brown hair, red eyes, like
small red and black seeds; with whom, sounding the kettle-drum, he
advanced against the city of Muttra, and surrounded it on all sides.
Shree Krishnù Chund, having seen what he had done, thought to
himself, “It is not right to remain here, because to-day he has come
to attack, and to-morrow Joorasindhoo will come; the inhabitants
will be distressed; wherefore, it is most advisable, that all should
leave this place, and go and dwell elsewhere.”
O great king! Huri, having thus reflected, sent for Bishookurma,
and, explaining to him, said, “Go and build a city in the midst of the
sea, in which all the descendants of Judoo may live comfortably,
without knowing that they are not living in their own houses; and
convey them all there in a second.”
On hearing these words Bishookurma departed, and, according to
the injunction of Shree Krishnù Jee, built, during the night, in the
sea, on the quoit of Vishnù, a city, forty-eight coss in extent; and
having named it Dwarka, returned and informed Huri, who ordered
him to convey all the descendants of Judoo there in such a manner,
that no one might know, whence they had come, and who had
brought them.
When Krishnù had thus spoken, Bishookurma conveyed all the
descendants of Judoo, together with Oogursen and Basoodeo to the
city in the course of the night, and Shree Krishnù and Bulram also
went there. In the mean while, on hearing the sound of the waves
of the sea, the descendants of Judoo awoke; and being greatly
astonished began to say to each other, “Whence has the sea come
to Muttra? We cannot understand this mystery at all.”
Having proceeded thus far in his narrative, Shree Shookdeo Jee
said to the Raja Pureechit,—O lord of the earth! having thus had the
descendants of Judoo brought to Dwarka, Shree Krishnù Chund said
to Buldeo Jee, “Brother! let us go now, and afford protection to our
subjects, and kill Kaljumun.” Upon these words, the two brothers
went thence to Brujmundul.
CHAPTER LII.
Shree Shookdeo, the sage, said,—O great king! Shree Krishnù
Chund came to Brujmundul alone, having left Bulram Jee at Muttra:
and went forth and stood in front of the army of Kaljumun, a sea of
beauty, the light of the world, dressed in yellow silk, wearing a scarf
of the same colour, and ornamented from head to foot. On seeing
him, Kaljumun began to say, “This must be Krishnù, he has all the
marks mentioned by Narud, the sage, it is he who has destroyed
Kuns and all evil spirits, and slaughtered the armies of
Joorasindhoo.” With these thoughts in his mind, Kaljumun called out,
and said, “Why are you running away, Krishnù? Come here, you
have now to deal with me, stand and fight. I am not Joorasindhoo
nor Kuns. I will extirpate the whole race of Judoo.”
Raja! having thus spoken, Kaljumun advanced alone in pursuit of
Shree Krishnù Chund, leaving his whole army behind him: but that
fool did not understand Krishnù’s nature. Krishnù ran on, and
Kaljumun followed him at a hand’s distance, when he had advanced
some distance, Krishnù entered a cave in a hill, where he saw a man
lying asleep; having quickly put his yellow silk scarf upon him, he
concealed himself apart on one side. Afterwards, Kaljumun came
running and panting to the same very dark cave; and seeing a man
asleep with a yellow scarf thrown over him, thought to himself, that
it was Krishnù, pretending to be asleep. O great king! thinking thus,
and being angry, Kaljumun gave the sleeper a kick, and said, “O
trickster! what deceit are you practising, in pretending to be sleeping
at your ease like an honest man? Rise, as I intend to kill you
immediately.” With these words he snatched away the yellow cloth
from over him. He started up; and when he cast an angry look at
Kaljumun, he was burnt to ashes. At this part of the history, the Raja
Pureechit said, “Explain to me, Basoodeo, who the man was, that
had gone into the cave, by whose look Kaljumun was reduced to
ashes, who conferred a great boon on him?” Shree Shookdeo, the
sage, said,—O lord of the earth! it was Moochkoond, Manghata’s
son, a Chutree of the family of Ichwak, very powerful and renowned;
whose fame, for destroying enemies and armies was spread over
nine divisions of the earth. On one occasion, the gods, having been
harassed by evil spirits, came in great alarm to Moochkoond, and
said in a tone of great supplication, “O great king! evil spirits have
increased greatly; we cannot escape from them, come quickly, and
protect us.” It has been an immemorial custom for Chutrees to assist
gods, sages and saints, when their own power fails them.
On hearing these words, Moochkoond accompanied them, and
began to fight with the evil spirits. The battle lasted for many ages,
when the gods said to Moochkoond, “O great king! you have
undergone great labour on our account; rest somewhere now, and
give ease to your body. You have fought for many days; your wealth,
dwelling and family are all gone, not one of your relations is left; do
not therefore set foot in your own house. Go any where else you
please.” Moochkoond said in reply to the gods, “O lords of the earth!
kindly point out to me some retired spot, where I may sleep, free
from all care and anxiety, and no one awake me.” The gods were
delighted at this speech, and said to Moochkoond, “O great king! go
and sleep in the cave of the great white mountain. No one will
awake you there: and if any one should go there by accident, and do
so, he will be burnt to ashes by a single glance of your eye.”
Having proceeded thus far in the narrative, Shree Shookdeo Jee,
said to the Raja,—O great king! having obtained this boon from the
gods, Moochkoond went and dwelt in that cave; and therefore,
Kaljumun was burnt to ashes by a glance from his eye. Shortly
afterwards Krishnù, the abode of compassion, the benefactor of his
worshippers, of the colour of the clouds, with a face like the moon,
lotus eyes, four arms, and holding in his hand a shell, quoit, club
and lotus, wearing a crown in the shape of a peacock, and ear-rings
formed like the sign Capricorn, having a garland reaching to his feet,
and dressed in yellow silk, appeared to Moochkoond; who, on
beholding him, prostrated himself, so as to touch the ground with
the eight principal parts of his body, and rising up, said with joined
hands, “O lord of mercy! as you have come into this great dark cave,

You might also like