நோயற்ற வாழ்வே குறைவற்ற செல்வம்

Monday, 20 October 2025

To-Do Application


A Deep Dive: Building a To-Do Web App with Spring Boot, JPA, and Spring Security

What is To-Do Application?

This is a web-based To-Do list application where users can manage their personal tasks. Users must log in to access their own dedicated list of to-dos. The core functionality allows users to view their tasks, add new ones with a description and target date, and update their status. Users can also modify the details of existing to-dos or delete them entirely. The system ensures that each user can only see and manage their own tasks.

This document provides a comprehensive technical breakdown of a To-Do list web application built with Spring Boot. The project demonstrates a modern Model-View-Controller (MVC) architecture, integrating a robust backend with database persistence via Spring Data JPA, endpoint security with Spring Security, and a dynamic frontend using JavaServer Pages (JSP).

1. Core Technologies & Project Setup

The application is bootstrapped by Spring Boot, which simplifies configuration and setup. The entry point is the standard MyfirstwebappApplication.java class.

src/main/java/com/springboot/myfirstwebapp/MyfirstwebappApplication.java

package com.springboot.myfirstwebapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyfirstwebappApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyfirstwebappApplication.class, args);
    }

}

1.1. Maven Dependencies

Dependencies are managed by Maven in the pom.xml file. Key dependencies include starters for Web, Data JPA, and Security, along with the MySQL driver and JSP rendering support.

pom.xml (Key Dependencies)

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>

    <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>jakarta.servlet.jsp.jstl</artifactId>
    </dependency>
</dependencies>

1.2. Application Configuration

The application.properties file contains essential configuration for the database connection, JPA behavior, and the Spring MVC view resolver for JSPs.

src/main/resources/application.properties

# View Resolver for JSP files
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

# Date format for data binding
spring.mvc.format.date=yyyy-MM-dd

# MySQL Database Connection
spring.datasource.url=jdbc:mysql://localhost:3306/todos
spring.datasource.username=*********
spring.datasource.password=*********

# JPA/Hibernate Configuration
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=update

2. The Data Layer: JPA Entity and Repository

The application's data model is defined by a JPA entity and managed by a Spring Data JPA repository.

2.1. The `Todo` Entity

The Todo.java class is a JPA entity (@Entity) that maps to a database table. It includes fields for the task description, target date, and completion status. The @Id and @GeneratedValue annotations mark the primary key, and @Size provides validation.

src/main/java/com/springboot/myfirstwebapp/todo/Todo.java

package com.springboot.myfirstwebapp.todo;

import java.time.LocalDate;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.validation.constraints.Size;

@Entity
public class Todo {

    @Id
    @GeneratedValue
    private int id;

    private String username;
    
    @Size(min=10, message="Enter at least 10 characters")
    private String description;
    private LocalDate targetDate;
    private boolean done;

    // Constructors, getters, and setters omitted for brevity
}

2.2. The `TodoRepository` Interface

The TodoRepository extends Spring Data's JpaRepository, which provides a full suite of CRUD methods without any implementation code. A custom query method, findByUsername, is defined, and Spring Data automatically implements it based on the method signature.

src/main/java/com/springboot/myfirstwebapp/todo/TodoRepository.java

package com.springboot.myfirstwebapp.todo;

import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;

public interface TodoRepository extends JpaRepository<Todo, Integer>{
    List<Todo> findByUsername(String username);
}

3. Security Layer: Authentication & Authorization

Spring Security is configured in SpringSecurityConfiguration.java to handle user authentication.

For this demo, an in-memory user store is created using InMemoryUserDetailsManager. Passwords are securely hashed using BCryptPasswordEncoder. The core security rules are defined in the SecurityFilterChain bean, which requires authentication for all requests, enables a default login form, and disables CSRF for simplicity.

src/main/java/com/springboot/myfirstwebapp/security/SpringSecurityConfiguration.java

package com.springboot.myfirstwebapp.security;

import static org.springframework.security.config.Customizer.withDefaults;
import java.util.function.Function;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
public class SpringSecurityConfiguration {

    @Bean
    public InMemoryUserDetailsManager createUserDetailsManager() {
        UserDetails userDetails1 = createNewUser("in28minutes", "**********");
        UserDetails userDetails2 = createNewUser("ranga", "**********");
        UserDetails userDetails3 = createNewUser("suresh", "**********");
        return new InMemoryUserDetailsManager(userDetails1, userDetails2, userDetails3);
    }

    private UserDetails createNewUser(String username, String password) {
        Function<String, String> passwordEncoder = input -> passwordEncoder().encode(input);
        return User.builder()
                   .passwordEncoder(passwordEncoder)
                   .username(username)
                   .password(password)
                   .roles("USER","ADMIN")
                   .build();
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(
                auth -> auth.anyRequest().authenticated());
        http.formLogin(withDefaults());
        http.csrf(csrf -> csrf.disable());
        http.headers(headers -> headers.frameOptions(frameOptionsConfig-> frameOptionsConfig.disable()));
        return http.build();
    }
}

4. Controller Layer: Handling Web Requests

Controllers bridge user actions from the view to the backend business logic and data layer.

4.1. `WelcomeController`

This controller handles the application's root URL (/). It retrieves the authenticated user's name, adds it to the model, and returns the welcome view. The @SessionAttributes("name") annotation ensures the username is available across the user's session.

src/main/java/com/springboot/myfirstwebapp/login/WelcomeController.java

package com.springboot.myfirstwebapp.login;

import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;

@Controller
@SessionAttributes("name")
public class WelcomeController {

    @RequestMapping(value="/",method = RequestMethod.GET)
    public String gotoWelcomePage(ModelMap model) {
        model.put("name", getLoggedinUsername());
        return "welcome";
    }
    
    private String getLoggedinUsername() {
        Authentication authentication = 
                SecurityContextHolder.getContext().getAuthentication();
        return authentication.getName();
    }
}

4.2. `TodoControllerJpa`

This is the primary controller for all to-do related actions. It is injected with the TodoRepository to perform database operations. It handles listing, adding, updating, and deleting todos.

src/main/java/com/springboot/myfirstwebapp/todo/TodoControllerJpa.java

package com.springboot.myfirstwebapp.todo;

import java.time.LocalDate;
import java.util.List;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.SessionAttributes;
import jakarta.validation.Valid;

@Controller
@SessionAttributes("name")
public class TodoControllerJpa {

    private TodoRepository todoRepository;
    
    public TodoControllerJpa(TodoRepository todoRepository) {
        this.todoRepository = todoRepository;
    }

    @RequestMapping("list-todos")
    public String listAllTodos(ModelMap model) {
        String username = getLoggedInUsername(model);
        List<Todo> todos = todoRepository.findByUsername(username);
        model.addAttribute("todos", todos);
        return "listTodos";
    }

    @RequestMapping(value="add-todo", method = RequestMethod.GET)
    public String showNewTodoPage(ModelMap model) {
        String username = getLoggedInUsername(model);
        Todo todo = new Todo(0, username, "", LocalDate.now().plusYears(1), false);
        model.put("todo", todo);
        return "todo";
    }

    @RequestMapping(value="add-todo", method = RequestMethod.POST)
    public String addNewTodo(ModelMap model, @Valid Todo todo, BindingResult result) {
        if(result.hasErrors()) {
            return "todo";
        }
        String username = getLoggedInUsername(model);
        todo.setUsername(username);
        todoRepository.save(todo);
        return "redirect:list-todos";
    }

    @RequestMapping("delete-todo")
    public String deleteTodo(@RequestParam int id) {
        todoRepository.deleteById(id);
        return "redirect:list-todos";
    }

    @RequestMapping(value="update-todo", method = RequestMethod.GET)
    public String showUpdateTodoPage(@RequestParam int id, ModelMap model) {
        Todo todo = todoRepository.findById(id).get();
        model.addAttribute("todo", todo);
        return "todo";
    }

    @RequestMapping(value="update-todo", method = RequestMethod.POST)
    public String updateTodo(ModelMap model, @Valid Todo todo, BindingResult result) {
        if(result.hasErrors()) {
            return "todo";
        }
        String username = getLoggedInUsername(model);
        todo.setUsername(username);
        todoRepository.save(todo);
        return "redirect:list-todos";
    }

    private String getLoggedInUsername(ModelMap model) {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        return authentication.getName();
    }
}

4.3. Alternative In-Memory Service

The project also includes an alternative, non-persistent implementation using TodoService. This service manages a static list of todos in memory, demonstrating how the persistence layer can be swapped out. The corresponding TodoController is commented out but serves as an example of using this service.

src/main/java/com/springboot/myfirstwebapp/todo/TodoService.java

package com.springboot.myfirstwebapp.todo;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import org.springframework.stereotype.Service;
import jakarta.validation.Valid;

@Service
public class TodoService {

    private static final List<Todo> todos = new ArrayList<>();
    private static int todosCount = 0;

    static {
        todos.add(new Todo(++todosCount, "in28minutes","Get AWS Certified 1", LocalDate.now().plusYears(1), false ));
        todos.add(new Todo(++todosCount, "in28minutes","Learn DevOps 1", LocalDate.now().plusYears(2), false ));
    }

    public List<Todo> findByUsername(String username){
        Predicate<? super Todo> predicate = todo -> todo.getUsername().equalsIgnoreCase(username);
        return todos.stream().filter(predicate).toList();
    }

    public void addTodo(String username, String description, LocalDate targetDate, boolean done) {
        Todo todo = new Todo(++todosCount,username,description,targetDate,done);
        todos.add(todo);
    }

    public void deleteById(int id) {
        Predicate<? super Todo> predicate = todo -> todo.getId() == id;
        todos.removeIf(predicate);
    }

    public Todo findById(int id) {
        Predicate<? super Todo> predicate = todo -> todo.getId() == id;
        return todos.stream().filter(predicate).findFirst().get();
    }

    public void updateTodo(@Valid Todo todo) {
        deleteById(todo.getId());
        todos.add(todo);
    }
}

5. The View Layer: JavaServer Pages (JSP)

The user interface is built with JSP and styled with Bootstrap. Common header and footer fragments are used for a consistent layout.

5.1. Welcome Page

The landing page after a successful login, which greets the user by name.

src/main/resources/META-INF/resources/WEB-INF/jsp/welcome.jsp

<%@ include file="common/header.jspf" %>
<%@ include file="common/navigation.jspf" %>	

<div class="container">
    <h1>Welcome ${name}</h1>
    <a href="list-todos">Manage</a> your todos
</div>

<%@ include file="common/footer.jspf" %>

5.2. To-Do List Page

This page displays the user's to-do items in a table. It uses JSTL's <c:forEach> tag to iterate over the list of todos passed from the controller.

src/main/resources/META-INF/resources/WEB-INF/jsp/listTodos.jsp

<%@ include file="common/header.jspf" %>
<%@ include file="common/navigation.jspf" %>	
<div class="container">
    <h1>Your Todos</h1>
    <table class="table">
        <thead>
            <tr>
                <th>Description</th>
                <th>Target Date</th>
                <th>Is Done?</th>
                <th></th>
                <th></th>
            </tr>
        </thead>
        <tbody>		
            <c:forEach items="${todos}" var="todo">
                <tr>
                    <td>${todo.description}</td>
                    <td>${todo.targetDate}</td>
                    <td>${todo.done}</td>
                    <td> <a href="delete-todo?id=${todo.id}" class="btn btn-warning">Delete</a>   </td>
                    <td> <a href="update-todo?id=${todo.id}" class="btn btn-success">Update</a>   </td>
                </tr>
            </c:forEach>
        </tbody>
    </table>
    <a href="add-todo" class="btn btn-success">Add Todo</a>
</div>
<%@ include file="common/footer.jspf" %>

5.3. Add/Update To-Do Form

This JSP provides a form for creating and editing to-dos. It uses Spring's form tag library (<form:form>) to bind form fields directly to the Todo model attribute, which simplifies data handling and displaying validation errors.

src/main/resources/META-INF/resources/WEB-INF/jsp/todo.jsp

<%@ include file="common/header.jspf" %>
<%@ include file="common/navigation.jspf" %>	

<div class="container">
    <h1>Enter Todo Details</h1>
    
    <form:form method="post" modelAttribute="todo">
        <fieldset class="mb-3">				
            <form:label path="description">Description</form:label>
            <form:input type="text" path="description" required="required"/>
            <form:errors path="description" cssClass="text-warning"/>
        </fieldset>

        <fieldset class="mb-3">				
            <form:label path="targetDate">Target Date</form:label>
            <form:input type="text" path="targetDate" required="required"/>
            <form:errors path="targetDate" cssClass="text-warning"/>
        </fieldset>
        
        <form:input type="hidden" path="id"/>
        <form:input type="hidden" path="done"/>

        <input type="submit" class="btn btn-success"/>
    </form:form>
</div>

<%@ include file="common/footer.jspf" %>

<script type="text/javascript">
    $('#targetDate').datepicker({
        format: 'yyyy-mm-dd'
    });
</script>

Wednesday, 19 March 2025

பொன்னியின் செல்வன் - அத்தியாயம் 2 - ஆழ்வார்க்கடியான் நம்பி


 ஏரிக் கரையிலிருந்து கீழிறங்கித் தென்திசை சென்ற பாதையில் குதிரையைச் செலுத்தியபோது வந்தியத்தேவனுடைய உள்ளம் ஏரி அலைகளின் மீது நடனமாடிய படகைப் போல் ஆனந்தக் கூத்தாடியது. உள்ளத்தின் உள்ளே மறைந்து கிடந்த குதூகலம் பொங்கித் ததும்பியது. வாழ்க்கையில் வேறு யாரும் காணாத அதிசய அனுபவங்களைத் தான் அடையும் காலம் நெருங்கி விட்டதென்று அவனுடைய உள்ளுணர்ச்சி சொல்லியது. சோழ நாட்டை அணுகும்போதே இவ்வளவு ஆனந்தக் கோலாகலமாயிருக்கிறதே? கொள்ளிடத்தைத் தாண்டி விட்ட பின்னர் அச்சோழ நாட்டின் நீர்வளமும் நிலவளமும் எப்படியிருக்கும்? அந்நாட்டில் வாழும் மக்களும் மங்கையரும் எப்படியிருப்பார்கள்? எத்தனை நதிகள்? எத்தனை குளங்கள்? எத்தனை தௌிநீர் ஓடைகள்? கவிகளிலும் காவியங்களிலும் பாடப்பெற்ற பொன்னி நதியின் காட்சி எப்படியிருக்கும்? அதன் கரைகளிலே பூத்துக் குலுங்கும் புன்னை மரங்களும் கொன்னை மரங்களும் கடம்ப மரங்களும் எத்தகைய மனோகரமான காட்சியாயிருக்கும்? நீரோடைகளில் குவளைகளும் குமுதங்களும் கண்காட்டி அழைப்பதும் செந்தாமரைகள் முகமலர்ந்து வரவேற்பதும் எத்தகைய இனிய காட்சியாயிருக்கும்? காவேரியின் இரு கரைகளிலும் சிவபக்திச் செல்வர்களான சோழப் பரம்பரையினர் எடுப்பித்துள்ள அற்புத வேலைப்பாடமைந்த ஆலயங்கள் எவ்வளவு அழகாயிருக்கும்?



ஆகா! பழையாறை நகர்! சோழ மன்னர்களின் தலைநகர்! பூம்புகாரையும் உறையூரையும் சிறிய குக்கிராமங்களாகச் செய்துவிட்ட பழையாறை! அந்நகரிலுள்ள மாடமாளிகைகளும் கூட கோபுரங்களும் படை வீடுகளும் கடைவீதிகளும் சிவாலயக் கற்றளிகளும் திருமாலுக்குரிய விண்ணகரங்களும் எப்படியிருக்கும்? அந்த ஆலயங்களில் இசை வல்லவர்கள் இனிய குரலில் தேவாரப் பாடல்களையும் திருவாய்மொழிப் பாசுரங்களையும் பாடக்கேட்டோர் பரவசமடைவார்கள் என்று வந்தியத்தேவன் கேள்வியுற்றிருந்தான். அவற்றையெல்லாம் கேட்கும் பேறு தனக்கு விரைவில் கிடைக்கப் போகிறது இது மட்டுந்தானா? சில நாளைக்கு முன்பு வரையில் தான் கனவிலும் கருதாத சில பேறுகளும் கிட்டப்போகின்றன. வீரத்தில் வேலனையும் அழகில் மன்மதனையும் நிகர்த்த பராந்தக சுந்தர சோழ மகாராஜாவை நேருக்கு நேர் காணப்போகிறான். அவ்வளவுதானா? அவருடைய செல்வப் புதல்வி, ஒப்புயர்வில்லாத நாரீமணி, குந்தவைப் பிராட்டியையும் காணப் போகிறான்.

ஆனால் வழியில் தடை எதுவும் நேராமல் இருக்க வேண்டும். எந்தத் தடை நேர்ந்தால்தான் என்ன? கையிலே வேல் இருக்கிறது. இடையில் தொங்கிய உறையிலே வாள் இருக்கிறது; மார்பிலே கவசம் இருக்கிறது; நெஞ்சிலே உரமிருக்கிறது. ஆனால் மகாதண்ட நாயகர், இளவரசர் ஆதித்தர், ஒரு பெரிய முட்டுக்கட்டை போட்டிருக்கிறார்; ஒப்புவித்த காரியத்தை நிறைவேற்றுவதற்கு முன்பு யாரிடமும் சண்டை பிடிக்கக் கூடாதென்று. அந்தக் கட்டளையை நிறைவேற்றுவதுதான் மிகவும் கடினமாயிருந்தது. ஏதோ இவ்வளவு தூரமும் பிரயாணம் செய்தபோது நிறைவேற்றியாகி விட்டது. இன்னும் இரண்டு நாளையப் பிரயாணம்தானே மிச்சமிருக்கிறது? அதுவரை பொறுமையுடன் இருந்தே தீர வேண்டும்.



ஆதவன் மறைவதற்குள் கடம்பூரை அடைய வேண்டும் என்ற கருத்துடன் சென்று கொண்டிருந்த வந்தியத்தேவன் சிறிது நேரத்துக்கெல்லாம் வீர நாராயணபுர விண்ணகரக் கோயிலை நெருங்கினான்.

அன்று ஆடித் திருமஞ்சனத் திருவிழாவும் சேர்ந்திருந்தபடியால் கோயிலைச் சுற்றியுள்ள மரத் தோப்புகளில் பெரும் ஜனக்கூட்டம் சேர்ந்திருந்தது.

பலாச் சுளைகளும் வாழைப் பழங்களும் கரும்புக் கழிகளும் பலவகைத் தின்பண்டங்களும் விற்பவர்கள் ஆங்காங்கே கடை வைத்திருந்தார்கள். பெண்கள் தலையில் சூடிக் கொள்ளும் மலர்களையும், தேவ பூஜைக்குரிய தாமரை மொட்டுக்கள் முதலியவற்றையும் சிலர் விற்றுக் கொண்டிருந்தார்கள். தேங்காய், இளநீர், அகில், சந்தனம், வெற்றிலை, வெல்லம், அவல், பொரி முதலியவற்றைச் சிலர் குப்பல் குப்பலாகப் போட்டுக் கொண்டிருந்தார்கள். ஆங்காங்கே வேடிக்கை விநோதங்கள் நடந்து கொண்டிருந்தன.ஜோசியர்கள், ரேகை சாஸ்திரத்தில் வல்லவர்கள், குறி சொல்லுகிறவர்கள், விஷக்கடிக்கு மந்திரிப்பவர்கள், இவர்களுக்கும் அங்கே குறையில்லை. இதையெல்லாம் பார்த்துக் கொண்டு சென்ற வந்தியத்தேவன் ஓரிடத்தில் ஒரு பெருங்கூட்டம் நின்று கொண்டிருப்பதையும் அந்தக் கூட்டத்துக்குள்ளேயிருந்து யாரோ சிலர் உரத்த குரலில் வாக்குவாதம் செய்யும் சத்தம் வருவதையும் கவனித்தான். என்ன விவாதம் நடைபெறுகிறது என்பதை அறிந்து கொள்ள அவனுக்கு ஆவல் பீறிக் கொண்டு எழுந்தது. அந்த ஆவலை அடக்கிக் கொள்ள அவனால் முடியவில்லை. கூட்டத்துக்கு வெளியில் சாலை ஓரமாகக் குதிரையை நிறுத்தி விட்டுக் கீழே இறங்கினான். குதிரையை அங்கேயே நிற்கும்படி தட்டிக் கொடுத்துச் சமிக்ஞையால் சொல்லிவிட்டுக் கூட்டத்தைப் பிளந்து கொண்டு உள்ளே போனான்.



அங்கே விவாதத்தில் ஈடுபட்டிருந்தவர்கள் மூன்றே பேர்தான் என்பதைப் பார்க்க அவனுக்கு வியப்பு ஏற்பட்டது. ஆனால் விவாதத்தில் ஈடுபட்டவர்கள் மூன்றே பேர்தான் என்றாலும், கூட்டத்திலிருந்தவர்கள் பலர் அவ்வப்போது அவரவர்களுக்கு உகந்த வாதக்காரரின் கட்சியை ஆதரித்துக் கோஷங்களைக் கிளப்பினார்கள். அதனாலேதான் அவ்வளவு சத்தம் எழுந்தது என்பதை வந்தியத்தேவன் தெரிந்து கொண்டான். பிறகு என்ன விவாதம் நடைபெறுகிறது என்பதைக் கவனித்தான்.

வாதமிட்ட மூவரில் ஒருவர் உடம்பெல்லாம் ஊர்த்வபுண்டரமாகச் சந்தனம் அணிந்து தலையில் முன் குடுமி வைத்திருந்த வைஷ்ணவ பக்த சிகாமணி. கையில் அவர் ஒரு குறுந்தடியும் வைத்திருந்தார். கட்டையாயும் குட்டையாயும் வைரம் பாய்ந்த திருமேனியுடன் விளங்கினார். இன்னொருவர் தமது மேனியெல்லாம் பட்டை பட்டையாய்த் திருநீறு அணிந்திருந்த சிவபக்தர். மூன்றாவது மனிதர் காவி வஸ்திரம் தரித்துத் தலையையும் முண்டனம் செய்து கொண்டிருந்தார். அவர் வைஷ்ணவரும் அல்ல, சைவரும் அல்ல, இரண்டையும் கடந்தவரான அத்வைத வேதாந்தி என்று தெரியவந்தது.

சைவர் சொன்னார்: “ஓ, ஆழ்வார்க்கடியான் நம்பியே! இதற்கு விடை சொல்லும்! சிவபெருமானுடைய முடியைக் காண்பதற்குப் பிரம்மாவும், அடியைக் காண்பதற்குத் திருமாலும் முயன்றார்களா, இல்லையா? முடியும் அடியும் காணாமல் இருவரும் வந்து சிவபெருமானுடைய பாதங்களில் சரணாகதி அடைந்தார்களா, இல்லையா? அப்படியிருக்கச் சிவபெருமானைக் காட்டிலும் உங்கள் திருமால் எப்படிப் பெரிய தெய்வம் ஆவார்?”

இதைக் கேட்ட ஆழ்வார்க்கடியான்நம்பி தன் கைத் தடியை ஆட்டிக் கொண்டு, ” சரிதான் காணும்! வீர சைவ பாததூளி பட்டரே! நிறுத்தும் உம் பேச்சை! இலங்கை அரசனாகிய தசகண்ட ராவணனுக்கு உம்முடைய சிவன் வரங்கள் கொடுத்தாரே? அந்த வரங்கள் எல்லாம் எங்கள் திருமாலின் அவதாரமாகிய இராமபிரானின் கோதண்டத்தின் முன்னால் தவிடுபொடியாகப் போகவில்லையா? அப்படியிருக்க, எங்கள் திருமாலைக் காட்டிலும் உங்கள் சிவன் எப்படிப் பெரிய தெய்வமாவார்?” என்று கேட்டான்.

இந்தச் சமயத்தில் காவி வஸ்திரம் அணிந்த அத்வைத சந்நியாசி தலையிட்டுக் கூறியதாவது: “நீங்கள் இருவரும் எதற்காக வீணில் வாதம் இடுகிறீர்கள்? சிவன் பெரிய தெய்வமா, விஷ்ணு பெரிய தெய்வமா என்று எத்தனை நேரம் நீங்கள் வாதித்தாலும் விவகாரம் தீராது. இந்தக் கேள்விக்குப் பதில் வேதாந்தம் சொல்கிறது. நீங்கள் கீழான பக்தி மார்க்கத்தில் இருக்கிற வரையில்தான் சிவன் – விஷ்ணு என்று சண்டையிடுவீர்கள். பக்திக்கு மேலே ஞானமார்க்கம் இருக்கிறது. ஞானத்துக்கு மேலே ஞாஸம் என்று ஒன்று இருக்கிறது. அந்த நிலையை அடைந்து விட்டால் சிவனும் இல்லை, விஷ்ணுவும் இல்லை. சர்வம் பிரம்மமயம் ஜகத். ஸரீ சங்கர பகவத் பாதாச்சாரியார் பிரம்ம சூத்திர பாஷ்யத்தில் என்ன சொல்லியிருக்கிறார் என்றால்….”

இச்சமயம் ஆழ்வார்க்கடியான் நம்பி குறுக்கிட்டு, “சரிதான் காணும், நிறுத்தும்! உம்முடைய சங்கராச்சாரியார் அவ்வளவு உபநிஷதங்களுக்கும் பகவத்கீதைக்கும் பிரம்ம சூத்திரத்துக்கும் பாஷ்யம் எழுதி விட்டுக் கடைசியில் என்ன சொன்னார் தெரியுமா?

‘பஜ கோவிந்தம் பஜ கோவிந்தம்
பஜ கோவிந்தம் மூடமதே!'



என்று மூன்று வாட்டி சொன்னார். உம்மைப் போன்ற மௌடீகர்களைப் பார்த்துத்தான் ‘மூடமதே!’ என்று சங்கராச்சாரியார் சொன்னார்!” எனக் கூறியதும், அந்தக் கூட்டத்தில் ‘ஆஹா’ காரமும், பரிகாசச் சிரிப்பும் கரகோஷமும் கலந்து எழுந்தன.

ஆனால் சந்நியாசி சும்மா இருக்கவில்லை. “அடே! முன்குடுமி நம்பி! நான் ‘மூடமதி’ என்று நீ சொன்னது சரிதான் ஏனென்றால், உன் கையில் வெறுந்தடியை வைத்துக் கொண்டிருக்கும் நீ வெறுந்தடியன் ஆகிறாய். உன்னைப் போன்ற வெறுந்தடியனோடு பேச வந்தது என்னுடைய மூடமதியினால்தானே?” என்றார்.

“ஓய் சுவாமிகளே! என் கையில் வைத்திருப்பது வெறுந்தடியல்ல. வேண்டிய சமயத்தில் உம்முடைய மொட்டை மண்டையை உடைக்கும் சக்தி உடையதுங் காணும்!” என்று கூறிக் கொண்டே ஆழ்வார்க்கடியான் கையிலிருந்த குறுந்தடியை ஓங்கினான். அதைப் பார்த்த அவன் கட்சியார் ‘ஓஹோ!’ என்று ஆர்ப்பரித்தனர்.

அப்போது அத்வைத சுவாமிகள், “அப்பனே! நிறுத்திக் கொள்! தடி உன்னுடைய கையிலேயே இருக்கட்டும். அப்படியே நீ உன் கைத்தடியால் என்னை அடித்தாலும் அதற்காக நான் கோபங்கொள்ள மாட்டேன். உன்னுடன் சண்டைக்கு வரவும் மாட்டேன். அடிப்பதும் பிரம்மம்; அடிபடுவதும் பிரம்மம். என்னை நீ அடித்தால் உன்னையே அடித்துக் கொள்கிறவனாவாய்!” என்றார்.

ஆழ்வார்க்கடியான் நம்பி, “இதோ எல்லோரும் பாருங்கள்! பிரம்மத்தைப் பரப்பிரம்மம் திருச்சாத்துச் சாத்தப் போகிறது. என்னை நானே தடி கொண்டு தாக்கப் போகிறேன்!” என்று தடியைச் சுழற்றிக் கொண்டு சுவாமிகளை நெருங்கினான்.

இதையெல்லாம் பார்த்துக் கொண்டிருந்த வல்லவரையனுக்கு ஒரு கணம் அந்த முன் குடுமி நம்பியின் கைத்தடியை வழிமறித்துப் பிடுங்கிக் கொண்டு அவனை அந்தத் தடியினால் நாலு திருச்சாத்துச் சாத்தலாமா என்று தோன்றியது.

ஆனால் திடீரென்று சுவாமியாரைக் காணோம்! கூட்டத்தில் புகுந்து அவர் மறைந்து விட்டார். அதைப் பார்த்துக் கொண்டிருந்த வைஷ்ணவ கோஷ்டியார் மேலும் ஆர்ப்பரித்தார்கள்.

ஆழ்வார்க்கடியான் வீரசைவருடைய பக்கமாகத் திரும்பி, “ஓய் பாத தூளி பட்டரே! நீர் என்ன சொல்லுகிறீர்? மேலும் வாதம் செய்ய விரும்புகிறீரா? அல்லது சுவாமியாரைப் போல் நீரும் ஓட்டம் எடுக்கிறீரா?” என்றான்.

“நானா? ஒருநாளும் நான் அந்த வாய் வேதாந்தியைப் போல் ஓட்டம் எடுக்க மாட்டேன். என்னையும் உம்முடைய கண்ணன் என்று நினைத்தீரோ? கோபியர் வீட்டில் வெண்ணெய் திருடி உண்டு மத்தால் அடிபட்டவன்தானே உம்முடைய கண்ணன்!…” என்று பாததூளிபட்டர் சொல்வதற்குள், ஆழ்வார்க்கடியான் குறுக்கிட்டான். “ஏன் காணும்? உம்முடைய பரமசிவன் பிட்டுக்கு மண் சுமந்து முதுகில் அடிபட்டதை மறந்து விட்டீரோ?” என்று கேட்டுக் கொண்டு கைத்தடியை வீசிக் கொண்டு வீர சைவர் அருகில் நெருங்கினான்.

ஆழ்வார்க்கடியான் நல்ல குண்டாதி குண்டன். வீரசைவராகிய பாததூளிபட்டரோ சற்று மெலிந்த மனிதர்.

மேற்கூறிய இருவரையும் விவாதத்தில் உற்சாகப்படுத்தி வந்தவர்கள் தாங்களும் கைகலக்க ஆயத்தமாகி ஆரவாரம் செய்தார்கள்.

இந்த மூடச் சண்டையைத் தடுக்க வேண்டும் என்ற எண்ணம் வல்லவரையன் மனதில் உண்டாயிற்று.

அவன் நின்ற இடத்திலிருந்து சற்றும் முன்னால் வந்து, “எதற்காக ஐயா நீங்கள் சண்டை போடுகிறீர்கள்? வேறு வேலை ஒன்றும் உங்களுக்கு இல்லையா? சண்டைக்குத் தினவு எடுத்தால் ஈழநாட்டுக்குப் போவதுதானே? அங்கே பெரும் போர் நடந்து கொண்டிருக்கிறதே?” என்றான்.

நம்பி சட்டென்று அவனைத் திரும்பிப் பார்த்து, “இவன் யாரடா நியாயம் சொல்ல வந்தவன்!” என்றான்.

கூட்டத்திலே இருந்தவர்களில் சிலருக்கு, வந்தியத்தேவனுடைய வீரத் தோற்றமும் அவனுடைய அழகிய முகவிலாசமும் பிடித்திருந்தன.

“தம்பி! நீ சொல்லு! இந்தச் சண்டைக்காரர்களுக்கு நியாயத்தை எடுத்துச் சொல்லு! உனக்குப் பக்கபலமாக நாங்கள் இருக்கிறோம்!” என்று அவர்கள் சொன்னார்கள்.

“எனக்குத் தெரிந்த நியாயத்தைச் சொல்கிறேன். சிவபெருமானும் நாராயணமூர்த்தியும் தங்களுக்குள் சண்டை போட்டுக்கொள்வதாகத் தெரியவில்லை. அவர்கள் சிநேகமாகவும் சுமுகமாகவும் இருந்து வருகிறார்கள். அப்படியிருக்க, இந்த நம்பியும் பட்டரும் எதற்காகச் சண்டை போட்டுக் கொள்ள வேண்டும்?” என்று வல்லவரையன் கூறியதைக் கேட்டு, அக்கூட்டத்தில் பலரும் நகைத்தார்கள்.



அப்போது வீரசைவபட்டர், “இந்தப் பிள்ளை அறிவாளியாகவே தோன்றுகிறான். ஆனால் வேடிக்கைப் பேச்சினால் மட்டும் விவாதம் தீர்ந்துவிடுமா? சிவபெருமான் திருமாலை விடப் பெரிய தெய்வமா, இல்லையா என்ற கேள்விக்கு இவன் விடை சொல்லட்டும்!” என்றார்.

“சிவனும் பெரிய தெய்வந்தான்; திருமாலும் பெரிய தெய்வந்தான் இருவரும் சமமான தெய்வங்கள். யாரை வேண்டுமானாலும் தொழுது கொள்ளுங்கள் சண்டை எதற்கு?” என்றான் வல்லவரையன்.

“அது எப்படிச் சொல்லலாம்? சிவனும் விஷ்ணுவும் சமமான தெய்வங்கள் என்று சொல்லுவதற்கு ஆதாரம் என்ன?” என்று ஆழ்வார்க்கடியான் அதட்டிக் கேட்டான்.

“ஆதாரமா? இதோ சொல்கிறேன்! நேற்று மாலை வைகுண்டத்துக்குப் போயிருந்தேன். அதே சமயத்தில் பரமசிவனும் அங்கே வந்திருந்தார். இருவரும் சம ஆசனத்தில் அமர்ந்திருந்தார்கள்.அவர்களுடைய உயரம் ஒன்றாகவே இருந்தது. ஆயினும் ஐயத்துக்கு இடமின்றி என் கையினால் முழம் போட்டு இருவர் உயரத்தையும் அளந்து பார்த்தேன்…”

“அட பிள்ளாய்! பரிகாசமா செய்கிறாய்?” என்று ஆழ்வார்க்கடியான் கர்ஜனை செய்தான்.

கூட்டத்தினர், “சொல்லு, தம்பி! சொல்லு!” என்று ஆர்ப்பரித்தார்கள்.

“அளந்து பார்த்ததில் இருவரும் சமமான உயரமே இருந்தார்கள். அதோடு விடாமல் சிவனையும் திருமாலையும் நேரிலேயே கேட்டு விட்டேன். அவர்கள் என்ன சொன்னார்கள், தெரியுமா? ‘அரியும் சிவனும் ஒண்ணு, அறியாதவர் வாயிலே மண்ணு’ என்று சொன்னார்கள். அவ்விதம் சொல்லி, தங்களைப் பற்றிச் சண்டை போடுகிறவர்களின் வாயிலே போடுவதற்கு இந்தப் பிடி மண்ணையும் கொடுத்தார்கள்!” என்று கூறிய வல்லவரையன், மூடியிருந்த தனது வலக்கையைத் திறந்து காட்டினான். அதற்குள்ளே ஒரு பிடி மண் இருந்தது அதை வீசி உதறினான்.

கூட்டத்திலிருந்தவர்களில் பலர் அப்போது பெரும் உற்சாகங்கொண்டு தலைக்குத் தலை தரையிலிருந்து ஒரு பிடி மண் எடுத்து, நம்பியின் தலையிலும் பட்டர் தலையிலும் வீசி எறிய ஆரம்பித்தார்கள். இந்தத் தூராக்ரகச் செயலைச் சிலர் தடுக்க முயன்றார்கள்.

“அடே! தூர்த்தர்களா? நாஸ்திகர்களா?” என்று சொல்லிக் கொண்டு ஆழ்வார்க்கடியான் தன் கைத் தடியைச் சுழற்றிக் கொண்டு கூட்டத்திற்குள் பிரவேசித்தான்.

ஒரு பெரிய கலவரமும் அடிதடி சண்டையும் அப்போது அங்கே நிகழும் போலிருந்தன. நல்லவேளையாக, அந்தச் சமயத்தில் சற்றுத் தூரத்தில் ஒரு பெரிய சலசலப்பு ஏற்பட்டது.

“சூராதி சூரர், வீரப்பிரதாபர், மாறபாண்டியன் படையை வீறுகொண்டு தாக்கி வேரோடு அறுத்த வெற்றி வேல் உடையார், இருபத்து நாலு போர்களில் சண்டையிட்டு அறுபத்து நான்கு விழுப்புண்களைப் பெற்ற திருமேனியர், சோழ நாட்டுத் தனாதிகாரி, தானிய பண்டார நாயகர், இறைவிதிக்கும் தேவர், பெரிய பழுவேட்டரையர் விஜயம் செய்கிறார்! பராக்! பராக்! வழி விடுங்கள்!” என்று இடிமுழக்கக் குரலில் கட்டியம் கூறுதல் கேட்டது.

இவ்வாறு கட்டியம் கூறியவர்கள் முதலில் வந்தார்கள். பிறகு முரசு அடிப்பவர்கள் வந்தார்கள். அவர்களுக்குப் பின்னால் பனைமரக் கொடி தாங்குவோர் வந்தார்கள். பின்னர், கையில் வேல் பிடித்த வீரர்கள் சிலர் கம்பீரமாக நடந்து வந்தார்கள். இவர்களுக்குப் பின்னால் வந்த அலங்கரித்த யானையின் மீது ஆஜானுபாகுவான கரிய திருமேனியர் ஒருவர் வீற்றிருந்தார். மத்தகஜத்தின் மேல் அந்த வீரர் வீற்றிருந்த காட்சி, ஒரு மாமலைச் சிகரத்தின் மீது கரியகொண்டல் ஒன்று தங்கியது போல் இருந்தது.

கூட்டத்தில் இருந்தவர்கள் அத்தனை பேரும் சாலையின் இருபுறத்திலும் வந்து நின்றது போல் வல்லவரையனும் வந்து நின்று பார்த்தான். யானை மீது இருந்தவர் தான் பழுவேட்டரையர் என்பதை ஊகித்துக் கொண்டான்.

யானைக்குப் பின்னால் பட்டுத் திரையினால் மூடப்பட்ட சிவிகை ஒன்று வந்தது. அதற்குள் இருப்பது யாரோ என்று வல்லவரையன் சிந்திப்பதற்குள்ளே, செக்கச் சிவந்த நிறத்துடன் வளையல்களும் கங்கணங்களும் அணிந்த ஒரு கரம் சிவிகைக்குள்ளேயிருந்து வெளிப்பட்டுப் பல்லக்கின் பட்டுத் திரையைச் சிறிது விலகியது. மேகத்தினால் மூடப்பட்டிருந்த பூரண சந்திரன் மேகத் திரை விலகியதும் பளீரென்று ஒளி வீசுவது போல் சிவிகைக்குள்ளே காந்திமயமான ஒரு பெண்ணின் முகம் தெரிந்தது.



பெண் குலத்தின் அழகைக் கண்டு களிக்கும் கண்கள் வல்லவரையனுக்கு உண்டு என்றாலும், அந்தப் பெண்ணின் முகம் பிரகாசமான பூரண சந்திரனையொத்த பொன் முகமாயிருந்தாலும் எக்காரணத்தினாலோ வல்லவரையனுக்கு அம்முகத்தைப் பார்த்ததும் உள்ளத்தில் மகிழ்ச்சி தோன்றவில்லை. இனந்தெரியாத பயமும் அருவருப்பும் ஏற்பட்டன.

அதே நேரத்தில் அந்தப் பெண்ணின் கண்கள் வல்லவரையனுக்கு அருகில் உற்று நோக்கின. மறுகணம் ஒரு பீதிகரமான பெண் குரலில் ‘கிறீச்’ என்ற கூச்சல் கேட்டது உடனே சிவிகையின் பட்டுத் திரை முன்போல் மூடிக் கொண்டது.

வல்லவரையன் தன் அக்கம் பக்கத்தில் நோக்கினான். தனக்கு அருகில் எதையோ யாரையோ பார்த்துவிட்டுத்தான் அந்த மாது ‘கிறீச்’சிட்டு விட்டுச் சிவிகைத் திரையை மூடிக் கொண்டாள் என்று அவன் உள்ளுணர்ச்சி சொல்லிற்று. எனவே, சுற்றுமுற்றும் பார்த்தான். ஆழ்வார்க்கடியான் தனக்குச் சற்றுப் பின்னால் ஒரு புளிய மரத்தில் சாய்ந்து கொண்டு நிற்பதைக் கண்டான். அந்த வீர வைஷ்ணவ நம்பியினுடைய முகம் சொல்ல முடியாத விகாரத்தை அடைந்து கோர வடிவமாக மாறியிருப்பதையும் பார்த்தான். வல்லவரையனுடைய உள்ளத்தில் காரணம் விளங்காத திகைப்பும் அருவருப்பும் ஏற்பட்டன.



Tuesday, 18 March 2025

பொன்னியின் செல்வன் - அத்தியாயம் 1 - ஆடித்திருநாள்


 ஆதி அந்தமில்லாத கால வெள்ளத்தில் கற்பனை ஓடத்தில் ஏறி நம்முடன் சிறிது நேரம் பிரயாணம் செய்யுமாறு நேயர்களை அழைக்கிறோம். விநாடிக்கு ஒரு நூற்றாண்டு வீதம் எளிதில் கடந்து இன்றைக்குத் தொள்ளாயிரத்து எண்பத்திரண்டு (1950ல் எழுதியது) ஆண்டுகளுக்கு முந்திய காலத்துக்குச் செல்வோமாக.

தொண்டை நாட்டுக்கும் சோழ நாட்டுக்கும் இடையில் உள்ள திருமுனைப்பாடி நாட்டின் தென்பகுதியில், தில்லைச் சிற்றம்பலத்துக்கு மேற்கே இரண்டு காததூரத்தில், அலை கடல் போன்ற ஓர் ஏரி விரிந்து பரந்து கிடக்கிறது. அதற்கு வீரநாராயண ஏரி என்று பெயர். அது தெற்கு வடக்கில் ஒன்றரைக் காத நீளமும் கிழக்கு மேற்கில் அரைக் காத அகலமும் உள்ளது. காலப்போக்கில் அதன் பெயர் சிதைந்து இந்நாளில் ‘வீராணத்து ஏரி’ என்ற பெயரால் வழங்கி வருகிறது.புது வெள்ளம் வந்து பாய்ந்து ஏரியில் நீர் நிரம்பித் ததும்பி நிற்கும் ஆடி ஆவணி மாதங்களில் வீரநாராயண ஏரியைப் பார்ப்பவர் எவரும் நம்முடைய பழந்தமிழ் நாட்டு முன்னோர்கள் தங்கள் காலத்தில் சாதித்த அரும்பெரும் காரியங்களைக் குறித்துப் பெருமிதமும் பெரு வியப்பும் கொள்ளாமலிருக்க முடியாது. நம் மூதாதையர்கள் தங்களுடைய நலனுக்கும் தங்கள் காலத்திய மக்களின் நலனுக்கும் உரிய காரியங்களை மட்டுமா செய்தார்கள்? தாய்த் திருநாட்டில் தங்களுக்குப் பிற்காலத்தில் வாழையடி வாழையாக வரப்போகும் ஆயிரங்கால சந்ததிகளுக்கும் நன்மை பயக்கும் மாபெரும் செயல்களை நிறைவேற்றி விட்டுப் போனார்கள் அல்லவா?


ஆடித் திங்கள் பதினெட்டாம் நாள் முன் மாலை நேரத்தில் அலை கடல் போல் விரிந்து பரந்திருந்த வீர நாராயண ஏரிக்கரை மீது ஒரு வாலிப வீரன் குதிரை ஏறிப் பிரயாணம் செய்து கொண்டிருந்தான். அவன் தமிழகத்து வீர சரித்திரத்தில் புகழ்பெற்ற வாணர் குலத்தைச் சேர்ந்தவன். வல்லவரையன் வந்தியத்தேவன் என்பது அவன் பெயர். நெடுந்தூரம் பிரயாணம் செய்து அலுத்துக்களைத்திருந்த அவனுடைய குதிரை மெள்ள மெள்ள நடந்து சென்று கொண்டிருந்தது. அதைப் பற்றி அந்த இளம் வீரன் கவலைப்படவில்லை. அகண்டமான அவன் வீர நாராயண ஏரியின் தோற்றம் அவன் உள்ளத்தை அவ்வளவாக வசீகரித்திருந்தது.


ஆடிப் பதினெட்டாம் பெருக்கன்று சோழநாட்டு நதிகளிலெல்லாம் வெள்ளம் இருகரையும்தொட்டுக் கொண்டு ஓடுவது வழக்கம். அந்த நதிகளிலிருந்து தண்ணீர் பெறும் ஏரிகளும் பூரணமாக நிரம்பிக் கரையின் உச்சியைத் தொட்டுக் கொண்டு அலைமோதிக் கொண்டிருப்பது வழக்கம். வட காவேரி என்று பக்தர்களாலும் கொள்ளிடம் என்று பொது மக்களாலும் வழங்கப்பட்ட நதியிலிருந்து வடவாற்றின் வழியாகத் தண்ணீர் வந்து வீர நாராயண ஏரியில் பாய்ந்து அதை ஒரு பொங்கும் கடலாக ஆக்கியிருந்தது. அந்த ஏரியின் எழுபத்து நான்கு கணவாய்களின் வழியாகவும் தண்ணீர் குமுகுமுவென்று பாய்ந்து சுற்றுப் பக்கத்தில் நெடுந்தூரத்துக்கு நீர்வளத்தை அளித்துக் கொண்டிருந்தது. அந்த ஏரித் தண்ணீரைக் கொண்டு கண்ணுக்கெட்டிய தூரம் கழனிகளில் உழவும் விரை தௌியும் நடவும் நடந்து கொண்டிருந்தன. உழுது கொண்டிருந்த குடியானவர்களும் நடவு நட்டுக் கொண்டிருந்த குடியானப் பெண்களும் இனிய இசைகளில் குதூகலமாக அங்கங்கே பாடிக் கொண்டிருந்தார்கள். இதையெல்லாம் கேட்டுக் கொண்டு வந்தியத்தேவன் களைத்திருந்த குதிரையை விரட்டாமல் மெதுவாகவே போய்க் கொண்டிருந்தான். ஏரிக்கரை மீது ஏறியதிலிருந்து அந்த ஏரிக்கு எழுபத்துநாலு கணவாய்கள் உண்டு என்று சொல்லப்படுவது உண்மைதானா என்று அறிந்து கொள்ளும் நோக்கத்துடன் அவன் கணவாய்களை எண்ணிக் கொண்டே வந்தான்.ஏறக்குறைய ஒன்றரைக் காத தூரம் அவன் அந்த மாபெரும் ஏரிக்கரையோடு வந்த பிறகு எழுபது கணவாய்களை எண்ணியிருந்தான்.


ஆகா! இது எவ்வளவு பிரம்மாண்டமான ஏரி? எத்தனை நீளம்? எத்தனை அகலம்? தொண்டை நாட்டில் பல்லவப் பேரரசர்களின் காலத்தில் அமைத்த ஏரிகளையெல்லாம் இந்த ஏரிக்கு முன்னால் சிறிய குளங்குட்டைகள் என்றே சொல்லத் தோன்றும் அல்லவா? வட காவேரியில் வீணாகச் சென்று கடலில் விழும் தண்ணீரைப் பயன்படுத்துவதற்காக மதுரை கொண்ட பராந்தகரின் புதல்வர் இளவரசர் இராஜாதித்தர் இந்தக் கடல் போன்ற ஏரியை அமைக்க வேண்டுமென்று எண்ணினாரே? எண்ணி அதைச் செயலிலும் நிறைவேற்றினாரே? அவர் எப்பேர்ப்பட்ட அறிவாளியாயிருந்திருக்க வேண்டும்? வீர பௌருஷத்திலேத்தான் அவருக்கு இணை வேறு யார்? தக்கோலத்தில் நடந்த போரில் தாமே முன்னணியில் யானை மீது ஏறிச் சென்று போராடினார் அல்லவா? போராடிப் பகைவர்களின் வேலை மார்பிலே தாங்கிக் கொண்டு உயிர்நீத்தார் அல்லவா? அதனால் ‘யானை மேல் துஞ்சிய தேவர்’ எனப் பெயர்பெற்று வீர சொர்க்கம் அடைந்தார் அல்லவா?

இந்தச் சோழ குலத்து மன்னர்களே அதிசயமானவர்கள்தான்! அவர்கள் வீரத்தில் எப்படியோ, அப்படியே அறத்திலும் மிக்கவர்கள். அறத்தில் எப்படியோ அப்படியே தெய்வபக்தியில் சிறந்தவர்கள். அத்தகைய சோழ குல மன்னர்களுடன் நட்புரிமை கொள்ளும் பேறு தனக்குக் கிடைத்திருப்பது பற்றி நினைக்க நினைக்க வந்தியத்தேவனுடைய தோள்கள் பூரித்தன. மேற்குத் திசையிலிருந்து விர்ரென்று அடித்த காற்றினால் வீர நாராயண ஏரித் தண்ணீர் அலைமோதிக் கொண்டு கரையைத் தாக்கியதுபோல் அவனுடைய உள்ளமும் பெருமிதத்தினால் பொங்கித் ததும்பிற்று.

இப்படியெல்லாம் எண்ணிக் கொண்டு வீர நாராயண ஏரிக் கரையின் தென்கோடிக்கு வந்தியத்தேவன் வந்து சேர்ந்தான். அங்கே வட காவேரியிலிருந்து பிரிந்து வந்த வடவாறு, ஏரியில் வந்து சேரும் காட்சியைக் கண்டான். ஏரிக்கரையிலிருந்து சிறிது தூரம் வரையில் ஏரியின் உட்புறம் படுகையாக அமைந்திருந்தது. வெள்ளம் வந்து மோதும்போது கரைக்குச் சேதம் உண்டாகாமலிருக்கும் பொருட்டு அந்தப் படுகையில் கருவேல மரங்களையும் விளாமரங்களையும் நட்டு வளர்த்திருந்தார்கள். கரையோரமாக நாணல் அடர்த்தியாக வளர்ந்திருந்தது. தென்மேற்குத் திசையிலிருந்து இருபுறமும் மர வரிசையுடன் வடவாற்றின் வெள்ளம் வந்து ஏரியில் கலக்கும் காட்சி சற்றுத் தூரத்திலிருந்து பார்க்கும்போது அழகிய வர்ணக் கோலம் போட்டது போல் காணப்பட்டது.

இந்த மனோகரமான தோற்றத்தின் இனிமையையும் குதூகலத்தையும் அதிகப்படுத்தும்படியான இன்னும் சில காட்சிகளை வந்தியத்தேவன் அங்கே கண்டான்.

அன்று பதினெட்டாம் பெருக்குத் திருநாள் அல்லவா? பக்கத்துக் கிராமங்களிலிருந்து, தந்த நிறத் தென்னங்குருத்துகளால் சப்பரங்கள் கட்டி இழுத்துக் கொண்டு கும்பல் கும்பலாக மக்கள் அங்கே வந்து கொண்டிருந்தார்கள். ஆண்களும் பெண்களும் குழந்தைகளும் சில வயோதிகர்களும் கூடப் புதிய ஆடைகள் அணிந்து விதவிதமான அலங்காரங்கள் செய்து கொண்டு வந்திருந்தார்கள். பெண்களின் கூந்தல்களைத் தாழம்பூ, செவந்திப்பூ, மல்லிகை, முல்லை, இருவாட்சி, செண்பகம் முதலிய மலர்கள் கொத்துக் கொத்தாய் அலங்கரித்தன. கூட்டாஞ்சோறும், சித்திரான்னமும் எடுத்துக் கொண்டு பலர் குடும்பம் குடும்பமாக வந்திருந்தார்கள். சிலர் ஏரிக்கரையில் தண்ணீர் ஓரமாக நின்று கொண்டு, சித்திரான்னம் முதலியவற்றைக் கமுகு மட்டைகளில் போட்டுக் கொண்டு உண்டார்கள். இன்னும் சில தைரியசாலிகள் சிறிது தூரம் தண்ணீரில் நடந்து சென்று வடவாற்றங்கரையை அடைந்து அங்கு நின்றபடி சாப்பிட்டார்கள். குழந்தைகள் சிலர் சாப்பிட்ட கமுகு மட்டைகளைக் கணவாய்களின் ஓரமாய் எறிய, அந்த மட்டைகள் கணவாய்களின் வழியாக ஏரிக்கரைக்கு வெளியே விழுந்தடித்து ஓடி வருவதைக் கண்டு கைகொட்டிச் சிரித்தார்கள். ஆடவர்களில் சில வம்புக்காரர்கள் தங்கள் காதலிகளின் கூந்தல்களில் சூடியிருந்த மலர்களை அவர்கள் அறியாமல் எடுத்துக் கணவாய் ஓரத்தில் விட்டு ஏரிக்கரைக்கு மறு பக்கத்தில் அவை ஓடி வருவதைக் கண்டு மகிழ்ந்தார்கள். இதையெல்லாம் பார்த்துக் கொண்டு சிறிது நேரம் வல்லவரையன் அங்கேயே நின்று கொண்டிருந்தான். அங்கு நின்ற பெண்களில் இனிய குரலையுடைய சிலர் பாடுவதையும் காது கொடுத்துக் கேட்டான். அவர்கள் ஓடப்பாட்டும், வெள்ளப் பாட்டும், கும்மியும், சிந்தும் பாடினார்கள்.


"வடவாறு பொங்கி வருது

வந்து பாருங்கள், பள்ளியரே!

 வெள்ளாறு விரைந்து வருது

வேடிக்கை பாருங்கள், தோழியரே!

காவேரி புரண்டு வருது

காண வாருங்கள், பாங்கியரே"


என்பன போன்ற வெள்ளப் பாட்டுக்கள் வந்தியத்தேவன் செவிகளில் இன்ப வெள்ளமாகப் பாய்ந்தன.

வேறு சிலர் சோழ குல மன்னர்களின் வீரப் புகழைக் கூறும் பாடல்களைப் பாடினார்கள். முப்பத்திரண்டு போர்களில் ஈடுபட்டு, உடம்பில் தொண்ணூற்றாறு காயங்களை ஆபரணங்களாகப் பூண்டிருந்த விஜயாலய சோழனின் வீரத்தைச் சில பெண்கள் பாடினார்கள். அவனுடைய மகன் ஆதித்த சோழனுடைய வீரத்தைப் போற்றி, அவன் காவேரி நதி உற்பத்தியாகுமிடத்திலிருந்து கடலில் சேரும் இடம் வரையில் அறுபத்து நாலு சிவாலயங்கள் எடுப்பித்ததை ஒரு பெண் அழகிய பாட்டாகப் பாடினாள்.

ஆதித்தனுடைய மகன் பராந்தக சோழ மகாராஜன் பாண்டியர்களையும் பல்லவர்களையும் சேரர்களையும் வென்று, ஈழத்துக்குப் படை அனுப்பி வெற்றிக் கொடி நாட்டிய மெய்க் கீர்த்தியை இன்னொரு பெண் உற்சாகம் ததும்பப் பாடினாள். ஒவ்வொருத்தியும் பாடியபோது அவளைச் சுற்றிலும் பலர் நின்று கேட்டார்கள். அவ்வப்போது “ஆ! ஆ!” என்று கோஷித்துத் தங்கள் மகிழ்ச்சியைத் தெரிவித்துக் கொண்டார்கள்.

குதிரை மீது இருந்தபடியே அவர்களுடைய பாடல்களைக் கேட்டுக் கொண்டிருந்த வந்தியத்தேவனை ஒரு மூதாட்டி கவனித்தாள். “தம்பி! வெகு தூரம் வந்தாய் போலிருக்கிறது. களைத்திருக்கிறாய்! குதிரை மீதிருந்து இறங்கி வந்து கொஞ்சம் கூட்டாஞ்சோறு சாப்பிடு!” என்றாள்.

உடனே, பல இள நங்கைகள் நம் வாலிபப் பிரயாணியைப் பார்த்தார்கள். அவனுடைய தோற்றத்தைக் குறித்துத் தங்களுக்குள் இரகசியமாய்ப் பேசிக் கொண்டு கலகலவென்று சிரித்தார்கள். வந்தியத்தேவனை ஒரு பக்கம் வெட்கமும் இன்னொருபுறம் குதூகலமும் பிடுங்கித் தின்றன. அந்த மூதாட்டி சொற்படி இறங்கிச் சென்று அவள் தரும் உணவைச் சாப்பிடலாமா என்று ஒருகணம் சிந்தித்தான். அப்படிச் சென்றால் அங்கே நின்ற இளமங்கைமார்கள் பலரும் அவனைச் சூழ்ந்து கொண்டு பரிகசித்துச் சிரிப்பார்கள் என்பது நிச்சயம். அதனால் என்ன? அத்தனை அழகிய பெண்களை ஒரே இடத்தில் காண்பது சுலபமான காரியமா? அவர்கள் தன்னைப் பரிகசித்துச் சிரித்தாலும் அந்த ஒலி தேவகானமாகவே இருக்கும். வந்தியத்தேவனின் யௌவனக் கண்களுக்கு அந்த ஏரிக்கரையில் நின்ற நங்கைகள் எல்லாரும் அரம்பைகளாகவும் மேனகைகளாகவுமே தோன்றினார்கள்!

ஆனால் அதே சமயத்தில் தென்மேற்குத் திசையில் வடவாற்றின் நீரோட்டத்தில் தோன்றிய ஒரு காட்சி அவனைச் சிறிது தயங்கச் செய்தது. வெள்ளைப் பாய்கள் விரிக்கப்பட்ட ஏழெட்டுப் பெரிய ஓடங்கள், வெண்சிறகுகளை விரித்துக் கொண்டு நீரில் மிதந்து வரும் அன்னப் பட்சிகளைப் போல், மேலக் காற்றினால் உந்தப்பட்டு விரைந்து வந்து கொண்டிருந்தன.

ஏரிக்கரையில் பலவகைக் களியாட்டங்களில் ஈடுபட்டிருந்த ஜனங்கள் அத்தனை பேரும் அந்தப் படகுகள் வரும் திசையையே ஆவலுடன் பார்க்கத் தொடங்கினார்கள்.

அந்தப் படகுகளிலே ஒரு படகு எல்லாவற்றுக்கும் முன்னதாக விரைந்து வந்து ஏரிக்கரை வடக்கு நோக்கித் திரும்பும் மூலையை அடைந்தது. அந்தப் படகில் கூரிய பிரகாசமான வேல்களை ஏந்திய ஆஜானுபாகுவான வீரர்கள் பலர் இருந்தார்கள்.

அவர்களில் சிலர் ஏரிக்கரையில் குதித்திறங்கி அங்கே இருந்த ஜனங்களைப் பார்த்துப் “போங்கள்! போங்கள்!” என்று விரட்டினார்கள். அவர்கள் அதிகமாக விரட்டுவதற்கு இடம் வையாமல் ஜனங்களும் அவரவர்களுடைய பாத்திரங்கள் முதலியவற்றை எடுத்துக் கொண்டு விரைந்து கரையேறத் தொடங்கினார்கள்.

வந்தியதேவனுக்கு இது ஒன்றும் விளங்கவில்லை, இந்த வீரர்கள் யார்? பின்னால் வரும் பாய் விரித்த படகுகளில் யார் வருகிறார்கள்? எங்கிருந்து வருகிறார்கள்? ஒருவேளை அரச குடும்பத்தைச் சேர்ந்தவர்களாயிருப்பார்களோ?

ஏரிக்கரையில் கையிலே கோல் பிடித்து நின்ற பெரியவர் ஒருவரை வல்லவரையன் அணுகினான். “ஐயா! இந்த வீரர்கள் யாரைச் சேர்ந்தவர்கள்? அதோ பின்னால் வரும் அன்னக்கூட்டம் போன்ற ஓடங்கள் யாருடையவை? எதற்காக இவ்வீரர்கள் மக்களை விரட்டுகிறார்கள்? மக்களும் எதற்காக விரைகிறார்கள்?” என்று கேள்விகளை அடுக்கினான்.

“தம்பி! உனக்குத் தெரியவில்லையா, என்ன? அதோ அந்தப் படகுகளின் நடுப் படகில் ஒரு கொடி பறக்கிறதே! அதில் என்ன எழுதியிருக்கிறது, பார்!” என்றார் பெரியவர்.

“பனைமரம் போல் தோன்றுகிறது.”

“பனைமரந்தான்! பனைமரக் கொடி பழுவேட்டரையர் கொடி என்று உனக்குத் தெரியாதா?”

“மகாவீரர் பழுவேட்டரையரா வருகிறார்?” என்று வந்தியத்தேவன் திடுக்கிட்ட குரலில் கேட்டான்.

“அப்படிதான் இருக்க வேண்டும்; பனைமரக் கொடியை உயர்த்திக் கொண்டு வேறு யார் வரமுடியும்?” என்றார் பெரியவர்.


வல்லவரையனுடைய கண்கள் அளவிலா வியப்பினால் விரிந்து படகுகள் வந்த திசையை நோக்கின. பழுவேட்டரையரைப் பற்றி வல்லவரையன் எவ்வளவோ கேள்விப்பட்டிருந்தான். யார்தான் கேள்விப்படாமலிருக்க முடியும்? தெற்கே ஈழநாட்டிலிருந்து வடக்கே கலிங்க நாடு வரையில் அண்ணன் தம்பிகளான பெரிய பழுவேட்டரையர், சின்னப் பழுவேட்டரையர் என்பவர்களுடைய பெயர்கள் பிரசித்தமாயிருந்தன. உறையூருக்குப் பக்கத்தில் வட காவேரியின் வடகரையில் உள்ள பழுவூர் அவர்களுடைய நகரம். விஜயாலய சோழன் காலத்திலிருந்து பழுவேட்டரையர் குலம் வீரப் புகழ்பெற்றிருந்தது. அக்குடும்பத்தார் சோழ மன்னர் குடும்பத்துடன் கொள்வினை – கொடுப்பினை செய்து வந்தனர். இது காரணமாகவும், அவர்களுடைய குலத்தொன்மை, வீரப்புகழ் இவை காரணமாகவும் பழுவேட்டரையர் குலம் அரச குலத்தின் சிறப்புகள் எல்லாம் பெற்றிருந்தது. தனியாகக் கொடி போட்டுக் கொள்ளும் உரிமையும் அக்குலத்துக்கு உண்டு.

இப்போதுள்ள பழுவேட்டரையர் இருவரில் மூத்தவர் இருபத்து நான்கு போர்களில் ஈடுபட்டவர். அவருடைய காலத்தில் அவருக்கு இணையான வீரர் சோழ நாட்டில் யாருமில்லையென்று புகழ்பெற்றவர். இப்போது பிராயம் ஐம்பதுக்கு மேல் ஆகிவிட்டபடியால் அவர் போர்க்களங்களுக்கு நேரில் செல்வதில்லை. ஆனால் சோழ நாட்டு அரசாங்கத்தில் மிக உன்னதமான பல பதவிகளை வகித்து வந்தார். அவர் சோழ சாம்ராஜ்யத்தின் தனாதிகாரி; தான்யாதிகாரி; தனபண்டாரமும் தான்ய பண்டாரமும் அவருடைய அதிகாரத்தில் இருந்தன. அரசியலின் தேவைக்குத் தகுந்தபடி இறை விதித்து வசூலிக்கும் அதிகாரம் அவரிடம் இருந்தது. எந்தச் சிற்றரசரையும், கோட்டத் தலைவரையும், பெரிய குடித்தனக்காரரையும், “இவ்வாண்டு இவ்வளவு இறை தர வேண்டும்?” என்று கட்டளையிட்டு வசூலிக்கும் உரிமை அவருக்கு இருந்தது. ஆகவே, சுந்தர சோழ மகாராஜாவுக்கு அடுத்தபடியாகச் சோழ சாம்ராஜ்யத்தில் இப்போது வலிமை மிக்கவர் பழுவேட்டரையர்தான்.

அத்தகைய மகா வீரரும் அளவிலா வலிமையும் அதிகாரமும் படைத்தவருமான, பெரிய பழுவேட்டரையரைப் பார்க்க வேண்டும் என்ற ஆவல் வந்தியத்தேவனுடைய உள்ளத்தில் பொங்கியது. ஆனால் அதே சமயத்தில், காஞ்சி நகரின் புதிய பொன் மாளிகையில் இளவரசர் ஆதித்த கரிகாலர் தன்னிடம் அந்தரங்கமாகச் சொன்ன செய்தி அவனுக்கு நினைவு வந்தது.


“வந்தியத்தேவா! நீ சுத்த வீரன் என்பதை நன்கு அறிவேன். அத்துடன் நீ நல்ல அறிவாளி என்று நம்பி இந்த மாபெரும் பொறுப்பை உன்னிடம் ஒப்புவிக்கிறேன். நான் கொடுத்த இரு ஓலைகளில் ஒன்றை என் தந்தை மகாராஜாவிடமும் இன்னொன்றை என் சகோதரி இளையபிராட்டியிடமும் ஒப்புவிக்க வேண்டும். தஞ்சையில் இராஜ்யத்தின் பெரிய பெரிய அதிகாரிகளைப் பற்றிக் கூட ஏதேதோ கேள்விப்படுகிறேன். ஆகையால் நான் அனுப்பும் செய்தி யாருக்கும் தெரியக் கூடாது. எவ்வளவு முக்கியமானவராயிருந்தாலும் நீ என்னிடமிருந்து ஓலை கொண்டு போவது தெரியக்கூடாது. வழியில் யாருடனும் சண்டை பிடிக்க கூடாது. நீயாக வலுச் சண்டைக்குப் போகாமலிருந்தால் மட்டும் போதாது. மற்றவர்கள் வலுச் சண்டைக்கு இழுத்தாலும் நீ அகப்பட்டுக் கொள்ளக் கூடாது. உன்னுடைய வீரத்தை நான் நன்கறிவேன். எத்தனையோ தடவை நிரூபித்திருக்கிறாய், ஆகையால் வலிய வரும் சண்டையிலிருந்து விலகிக் கொண்டாலும் கௌரவக் குறைவு ஒன்றும் உனக்கு ஏற்பட்டு விடாது. முக்கியமாக, பழுவேட்டரையர்களிடமும் என் சிறிய தந்தை மதுராந்தகரிடமும் நீ மிக்க ஜாக்கிரதையாக நடந்து கொள்ள வேண்டும். அவர்களுக்கு நீ இன்னான் என்று கூடத் தெரியக் கூடாது! நீ எதற்காகப் போகிறாய் என்று அவர்களுக்குக் கண்டிப்பாய்த் தெரியக் கூடாது!”


சோழ சாம்ராஜ்யத்தின் பட்டத்துக்குரிய இளவரசரும் வடதிசைச் சைன்யத்தின் மகாதண்ட நாயகருமான ஆதித்த கரிகாலர் இவ்விதம் சொல்லியிருந்தார். மேலும் வந்தியத்தேவன் நடந்து கொள்ள வேண்டியவிதங்களைப் பற்றியும் படித்துப் படித்துக் கூறியிருந்தார். இவையெல்லாம் நினைவு வரவே, பழுவேட்டரையரைப் பார்க்க வேண்டும் என்ற ஆவலை வல்லவரையன் அடக்கிக் கொண்டான். குதிரையைத் தட்டிவிட்டு வேகமாகச் செல்ல முயன்றான். என்ன தட்டி விட்டாலும் களைப்புற்றிருந்த அந்தக் குதிரை மெதுவாகவே சென்றது. இன்று இரவு கடம்பூர் சம்புவரையர் மாளிகையில் தங்கிவிட்டு நாளைக் காலையில் புறப்படும்போது வேறு நல்ல குதிரை சம்பாதித்துக் கொண்டே கிளம்ப வேண்டும் என்று மனதிற்குள் தீர்மானித்துக் கொண்டான்.