100% found this document useful (1 vote)
30 views

Full Download OpenCms 7 Development Extending and customizing OpenCms through its Java API 1st Edition Liliedahl PDF DOCX

customizing

Uploaded by

grawiesuyuc
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 (1 vote)
30 views

Full Download OpenCms 7 Development Extending and customizing OpenCms through its Java API 1st Edition Liliedahl PDF DOCX

customizing

Uploaded by

grawiesuyuc
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/ 61

Download Full ebookname - Read Now at ebookname.

com

OpenCms 7 Development Extending and customizing


OpenCms through its Java API 1st Edition Liliedahl

https://ebookname.com/product/opencms-7-development-
extending-and-customizing-opencms-through-its-java-api-1st-
edition-liliedahl/

OR CLICK BUTTON

DOWLOAD EBOOK

Discover More Ebook - Explore Now at ebookname.com


Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...

Embedded Android Porting Extending and Customizing 1st


Edition Karim Yaghmour

https://ebookname.com/product/embedded-android-porting-extending-and-
customizing-1st-edition-karim-yaghmour/

ebookname.com

Web API Development for the Absolute Beginner A Step by


step Approach to Learning the Fundamentals of Web API
Development with NET 7 1st Edition Irina Dominte
https://ebookname.com/product/web-api-development-for-the-absolute-
beginner-a-step-by-step-approach-to-learning-the-fundamentals-of-web-
api-development-with-net-7-1st-edition-irina-dominte/
ebookname.com

Open Source Messaging Application Development Building and


Extending Gaim 1st Edition Sean Egan

https://ebookname.com/product/open-source-messaging-application-
development-building-and-extending-gaim-1st-edition-sean-egan/

ebookname.com

Love and its Critics from the Song of Songs to Shakespeare


and Milton s Eden Michael Bryson

https://ebookname.com/product/love-and-its-critics-from-the-song-of-
songs-to-shakespeare-and-milton-s-eden-michael-bryson/

ebookname.com
The Ultimate Guide to Network Marketing 37 Top Network
Marketing Income Earners Share Their Most Preciously
Guarded Secrets to Building Extreme Wealth 1st Edition Joe
Rubino
https://ebookname.com/product/the-ultimate-guide-to-network-
marketing-37-top-network-marketing-income-earners-share-their-most-
preciously-guarded-secrets-to-building-extreme-wealth-1st-edition-joe-
rubino/
ebookname.com

Dietary Sugars and Health 1st Edition Michael I. Goran

https://ebookname.com/product/dietary-sugars-and-health-1st-edition-
michael-i-goran/

ebookname.com

Doctors of Deception What They Don t Want You to Know


About Shock Treatment 1st Edition Linda Andre

https://ebookname.com/product/doctors-of-deception-what-they-don-t-
want-you-to-know-about-shock-treatment-1st-edition-linda-andre/

ebookname.com

Cardiovascular Regeneration and Stem Cell Therapy 1st


Edition Annarosa Leri Md

https://ebookname.com/product/cardiovascular-regeneration-and-stem-
cell-therapy-1st-edition-annarosa-leri-md/

ebookname.com

Hitlerjugend Hitler Youth and 12 SS Panzer Division 1933


45 1st Edition Tom Cockle

https://ebookname.com/product/hitlerjugend-hitler-youth-and-12-ss-
panzer-division-1933-45-1st-edition-tom-cockle/

ebookname.com
Artisanal Fishers on the Kenyan Coast Jan C. Hoorweg

https://ebookname.com/product/artisanal-fishers-on-the-kenyan-coast-
jan-c-hoorweg/

ebookname.com
www.it-ebooks.info
OpenCms 7 Development

Extending and customizing OpenCms through its


Java API

Dan Liliedahl

BIRMINGHAM - MUMBAI

www.it-ebooks.info
OpenCms 7 Development

Copyright © 2008 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval
system, or transmitted in any form or by any means, without the prior written
permission of the publisher, except in the case of brief quotations embedded in
critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of
the information presented. However, the information contained in this book is sold
without warranty, either express or implied. Neither the author, Packt Publishing,
nor its dealers or distributors will be held liable for any damages caused or alleged to
be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.

First published: April 2008

Production Reference: 1160408

Published by Packt Publishing Ltd.


32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.

ISBN 978-1-847191-05-2

www.packtpub.com

Cover Image by Karl Moore (karl.moore@ukonline.co.uk)

www.it-ebooks.info
Credits

Author Project Manager


Dan Liliedahl Abhijeet Deobhakta

Reviewer Indexer
Olli Aro Rekha Nair

Senior Acquisition Editor Proofreader


Douglas Paterson Angie Butcher

Development Editor Production Coordinator


Nikhil Bangera Shantanu Zagade

Technical Editor Cover Work


Himanshu Panchal Shantanu Zagade

Editorial Team Leader


Mithil Kulkarni

www.it-ebooks.info
About the Author

Dan Liliedahl is the founder and CTO of eFoundry Corporation, a premier


consulting company with expertise in selecting, specifying, and delivering Open
Source and commercial content management portal and collaboration systems. Since
starting eFoundry in 1998, he has architected and developed Web solutions for
Fortune 500 companies such as JPMorganChase, Disney, Sirius Satellite Radio, and
AMTRAK. Prior to starting eFoundry, Dan was a principal consultant and architect
with FutureTense, a start up commercial CMS product vendor, and Open Market,
whose products continue to have a strong market presence under a new company
name. In addition to his full-time work, Dan frequently donates his marketplace
and technical expertise to selected non‑profit organizations. He holds a degree in
Electrical Engineering and Computer Science from the University of New Hampshire
and has over 20 years of industry experience. In his spare time, he enjoys alpine
skiing, ice hockey and coaching his kids' soccer.

www.it-ebooks.info
I would like to thank the people at Packt who have helped me
along the way with this book, especially Douglas Paterson, Senior
Acquisition Editor for his initial guidance and ongoing support.
Thanks also to Abhijeet Deobhakta for his patience and for putting
up with many delays and missed deadlines. Many thanks to Olli
Arro and Himanshu Panchal for their time, comments, and helpful
suggestions. It is great people like these who have made this book
enjoyable to write and seem to go by quickly.

I also would like to thank Alexander Kandzior and his OpenCms


team. Beside building an outstanding product, they have always
been available for questions and help, despite their busy schedules.
I know their schedules are busy because they came out with four
versions of the software before this book was completed! Alex's
focus, diligence, obsession with quality, and professionalism has
made OpenCms and his company great.

Special thanks to my wife for her support and encouragement and


for keeping me going on those days I didn't want to. And of course,
to my three children for making me laugh and for tolerating the
times I couldn't spend with them.

www.it-ebooks.info
About the Reviewer

Olli Aro hails from Finnish Lapland, but is based now in the north of England.
Olli Aro has over 10 years experience in the area of innovation and development of
software and web-based applications. In his current role as head of technology and
product development for Clicks and Links Ltd, Olli has been responsible for the
company's portfolio of Open Source-based solutions. He has been involved in the
OpenCms project since 2001 (version 4), contributing various open source modules
and bug fixes to the project. Olli was also involved in reviewing the previous version
of the OpenCms book. Prior to Clicks and Links, Olli worked for organizations such
as Nokia, eMobile Ltd, and CCC Systems Oy. In his spare time, he works on his own
social networking site, Breakaway Republix.

www.it-ebooks.info
Table of Contents
Preface 1
Chapter 1: Overview 7
The Site Design 8
Required Developer Skills 12
Basic Site Development 12
Sites Requiring Custom Content Types 13
Sites Requiring Custom Features 14
Bespoke Site Development 14
OpenCms Application Overview 14
The OpenCms Directory Structure 15
The Real File System Layout 15
The Virtual File System Layout 18
OpenCms Architecture 19
Extensibility through Modules 20
The OpenCms Web Request Process 20
OpenCms Web Application Packaging 21
Building a Complete Site with OpenCms 21
Summary 22
Chapter 2: Developing in OpenCms 23
Developing Basic Site Content 23
Setting Up an Environment for Creating JSP Code 24
Editing Files Using File Synchronization 26
Using WebDAV for Editing 28
Debugging JSP Code in OpenCms 30
Setting Up an Eclipse Environment to Build OpenCms 33
Tools Needed to Build OpenCms in Eclipse 33
Step 1: Checkout the Project Source from CVS 34
Step 2: Setting the Classpath for Compilation 40
Step 3: Using Ant to Build a Distribution Package 41
Building OpenCms outside of Eclipse Using Ant 44
Debugging OpenCms in Eclipse 45

www.it-ebooks.info
Table of Contents

Setting Up an Eclipse Environment without Building OpenCms 46


Summary 47
Chapter 3: Our First Module 49
Understanding OpenCms Modules 50
Common Module Types 50
Module Events 51
Exporting and Importing Modules 51
Creating a Module 52
Creating a BlogEntry Content Type 55
Registering the Content Type 59
Additional Schema Features 66
Field Mappings 66
Field Validations 67
Default Field Values 67
Localization 68
Content Relationships 68
Content Previewing 69
Creating Content Using a Model 70
User Interface Widgets 70
Nested Content Definitions 80
Editing Configuration Files with Validating Editors 84
Organizing the Content 87
Summary 87
Chapter 4: Developing Templates 89
Review of the Page Layout 89
Templates in OpenCms 94
Creating the Templates 94
The Homepage Template 95
The Blog Content Loop 97
The Sidebar and Footer 99
Common Code Elements 100
Header Code 101
Search Form 102
Advertisements 102
Blog Archives 103
RSS Client and RSS Feeds 105
Footer Section 106
The Supporting Java Bean Class 106
The Blog Template 112
The Content and Template Loading Process 113
Expressions in JSP Templates 115
Using the Tag Library from JSP 115

[ ii ]

www.it-ebooks.info
Table of Contents

Combining Expressions with JSTL 116


Accelerating Template Development Using WebDAV 117
Install the Eclipse WebDAV Plug-in 118
Create a Site Within Eclipse for the Server 120
Import Content into the Project 122
Summary 124
Chapter 5: Adding Site Search 125
A Quick Overview of Lucene 125
Search Indexes 125
Search Queries 127
Configuring OpenCms Search 127
Field Configurations 128
Creating a Field Configuration 130
Creating an Index Source 133
Additional Search Settings 136
Introducing Luke – a Visual Index Tool 137
Writing the Search Code 140
A Simple Search Example 140
Subclassing the CmsSearch Bean 143
The Search.jsp Template 145
Summary 151
Chapter 6: Adding User Registration and Comment Support 153
Understanding OpenCms Security 153
User, Groups, Roles, and Permissions 154
Organizational Units 157
Setting up Security for Our Site 158
Organization Unit and Group Setup 159
Adding the Users 163
Resource Permissions 166
User Login and Registration Code 169
Adding Comment Support 178
Adding the Comments to the XML Content 181
Publishing the Comments 183
Summary 184
Chapter 7: Providing Site Customization Features 185
What is RSS? 185
Creating the Module 186
The RSS Client Code 187
Displaying the RSS Feed in the Template 189
Adding User Preferences to Accounts 190

[ iii ]

www.it-ebooks.info
Table of Contents

Updating the Java Code 191


Updating the JSP Templates 193
Hooking up the Account Management Page 196
Summary 198
Chapter 8: Extending OpenCms: Developing a Custom Widget 199
Designing a Custom Widget 199
Designing the Widget 201
The Widget Code 202
Custom Source Interface and Implementations 207
Using OpenCms Message Strings for Localization 212
Registering the Widget with OpenCms 213
Summary 214
Chapter 9: Extending OpenCms: Adding RSS Feed Support 215
RSS Feed Design 215
The RSS Feed Content Type 218
Creating a Supporting Widget 223
The RSS Feed Template and Java Classes 226
Content Wrapper Java Classes 231
Wrapping It Up 236
Summary 238
Chapter 10: Extending OpenCms: Adding an Administration Point 239
Administrative Points 239
The Administration View 243
Hooking the Administration Point Up to the Module 245
The RSS Administration Module 246
Leveraging the OpenCms Dialog Classes 250
The Feed Manager Class 259
The New Channel Action 265
Summary 270
Index 271

[ iv ]

www.it-ebooks.info
Preface
OpenCms can be used by Java developers to create sophisticated add-ons and
customizations that extend the power of OpenCms in virtually unlimited directions.
Starting by showing how to set up a development environment for OpenCms
work, this book moves you through various tasks of increasing complexity. Some
of the common tasks covered are building OpenCms, XML asset type development,
templating, module development, user and role setup, and search integration. In
addition to these common tasks some more advanced topics are covered such as
self-registering users, RSS support, developing custom widgets, and extending the
administrative interface. All the topics include examples and are presented while
building a sample blog site.

This book is a clear, practical tutorial to OpenCms development. It will take you
through the development of an example site, illustrating the key concepts of
OpenCms development with examples at every stage.

What This Book Covers


Chapter 1 starts out by describing a sample site that will be created to demonstrate
OpenCms development concepts. It also provides a description of the developer
skills required for OpenCms development, followed by a basic overview
of OpenCms architecture. We also provide a basic description of OpenCms
configuration files and their file locations.

Chapter 2 sets the stage for coding by providing details on how to set up various
OpenCms development environments. The chapter includes a step-by-step
procedure for using Eclipse to check out and build OpenCms from the CVS
repository. The chapter describes how to build OpenCms using Ant and also how to
debug OpenCms itself.

www.it-ebooks.info
Preface

Chapter 3 begins with an explanation of OpenCms modules, including a guide for


creating a new module. The module is used to define a new content type, which is
another concept covered in the chapter. Included in the content type discussion is a
complete, step-by-step guide for designing and creating a new content type used to
contain blog entries. All aspects of content type schema files are covered, including
schema design, widget usage, field selectors, field validations, nested definitions, and
registration. At the end of the chapter, the content type may be used to create new
blog entries.

Chapter 4 continues developing the sample site by covering JSP template coding.
A set of templates is created to display the blog content, including a complete run
through of how they are put together. The example illustrates the use of custom
template coding beyond the standard OpenCms tag library by sub-classing Java
template classes. Included in the chapter is an overview of the resource and template
loading mechanism. Also relating to templates is a description of using expressions
and JSTL within template code. Lastly in the chapter is a guide to using WebDAV for
template editing in Eclipse.

Chapter 5 covers the usage of Lucene within OpenCms, beginning with an overview
of basic Lucene concepts. This is followed by an in-depth guide to creating a search
index in OpenCms. The guide provides an example of building a new search index
for the blog site example and describes a developer tool, which may be used to
perform test queries against the index. The chapter includes a walkthrough of
implementing a search form in OpenCms for simple cases and for more
advanced situations.

Chapter 6 continues the build out of the sample site by adding support for users
and commenting. It starts with an explanation of OpenCms security, including a
discussion on Roles, Groups, Users, and Organizational Units. It then proceeds with
the set up of the group and role structure for the sample, and shows how they are
used within the code.

Chapter 7 shows how easy it is to support user customizations of site pages. It then
show an example of this by adding RSS feed support to the sample site, allowing
users to specify a custom feed. Included in the chapter is a discussion of integrating
third-party libraries into OpenCms.

Chapter 8 describes the custom widget interface, and then shows how to design and
create a widget. The widget provides a pluggable data interface that is used to obtain
a list of selection values for a select list. The chapter then illustrates how to read XML
content fields by creating a list source that gets its values from any content field.
Finally, the chapter shows how to localize message strings and how to register and
use the custom widget.

[]

www.it-ebooks.info
Preface

Chapter 9 shows how RSS feeds can be generated from OpenCms content. It also
shows how wrapper classes can be used around structured content items to make
them easier to work with, and then walks through creation of an RSS feed generation
module using these concepts.

Chapter 10 discusses how administration points are created in OpenCms, and also
how to use OpenCms dialog classes. The chapter also discusses how widgets can
be used programmatically. An example administration point is created that ties
together topics from previous chapters, showing how to use widgets, dialogs, and
multiple screens.

What You Need for This Book


Tools needed and used for this book:

• MySQL database server


• Apache Tomcat web server
• OpenCms 7.0.2 version (New files might have been added in newer version
of OpenCms and some files, like jar files, might not be in the book-specified
location).
• Sun Java JDK 1.5
• Eclipse WTP 1.5.4
• Apache Ant 1.70
• Sysdeo Eclipse Tomcat Launcher plug-in
• Oracle JDBC Driver

Conventions
In this book, you will find a number of styles of text that distinguish between
different kinds of information. Here are some examples of these styles and an
explanation of their meaning.

There are three styles for code. Code words in text are shown as follows: "We can
include other contexts through the use of the include directive."

A block of code will be set as follows:


<jsp:useBean id="search" scope="request"
class="org.opencms.search.CmsSearch">
<jsp:setProperty name="search" property="*"/>
<% search.init(cms.getCmsObject()); %>
</jsp:useBean�
>

[]

www.it-ebooks.info
Preface

When we wish to draw your attention to a particular part of a code block, the
relevant lines or items will be made bold:
<mappings>
<mapping suffix=".jsp" />
<mapping suffix=".html" /> (add this line)
<mapping suffix=".htm" /> (add this line)
</mappings>

Any command-line input and output is written as follows:


>ant –propertyfile opencms.properties [target]

New terms and important words are introduced in a bold-type font. Words that you
see on the screen, in menus or dialog boxes for example, appear in our text like this:
"clicking the Next button moves you to the next screen".

Important notes appear in a box like this.

Tips and tricks appear like this.

Reader Feedback
Feedback from our readers is always welcome. Let us know what you think about
this book, what you liked or may have disliked. Reader feedback is important for us
to develop titles that you really get the most out of.

To send us general feedback, simply drop an email to feedback@packtpub.com,


making sure to mention the book title in the subject of your message.

If there is a book that you need and would like to see us publish, please send
us a note in the SUGGEST A TITLE form on www.packtpub.com or
email suggest@packtpub.com.

If there is a topic that you have expertise in and you are interested in either writing
or contributing to a book, see our author guide on www.packtpub.com/authors.

[]

www.it-ebooks.info
Preface

Customer Support
Now that you are the proud owner of a Packt book, we have a number of things to
help you to get the most from your purchase.

Downloading the Example Code for the Book


Visit http://www.packtpub.com/files/code/1052_Code.zip to directly
download the example code.

The downloadable files contain instructions on how to use them.

Errata
Although we have taken every care to ensure the accuracy of our contents, mistakes
do happen. If you find a mistake in one of our books—maybe a mistake in text or
code—we would be grateful if you would report this to us. By doing this you can
save other readers from frustration, and help to improve subsequent versions of
this book. If you find any errata, report them by visiting http://www.packtpub.
com/support, selecting your book, clicking on the Submit Errata link, and entering
the details of your errata. Once your errata are verified, your submission will be
accepted and the errata are added to the list of existing errata. The existing errata can
be viewed by selecting your title from http://www.packtpub.com/support.

Questions
You can contact us at questions@packtpub.com if you are having a problem with
some aspect of the book, and we will do our best to address it.

[]

www.it-ebooks.info
www.it-ebooks.info
Overview
This book is a guide for developers interested in building websites using the
OpenCms content management system. The book is intended for developers
who are familiar with Java, JSP, and building web applications based on the
Java J2EE framework.

In this book, we will develop a website designed for a blog writer. In the course of
building our site, we will go over these topics:

• The site design


• Overview of OpenCms
• Setting up an OpenCms development environment
• Creating structured content types
• Creating templates
• Utilizing search
• Extending OpenCms
• Allowing online users to contribute site content

We will go over all the steps involved in building a blog website using OpenCms.
We will start by describing the features and requirements of our website and will
then provide an overview of OpenCms. Next, we will discuss how to create a
development environment. We then will go over the steps involved in creating
structured content types, to hold our site content. After that, we will cover creation
of templates and Java code, to display the content. The site also supports search and
user comments;, so we will cover the Lucene search engine as well to show how to
provide login support. As the site additionally supports RSS clients and feeds, we
will discuss how to add new features to OpenCms.

Before we get into the development details, we will first discuss some of the skills
required to develop sites with OpenCms. This will provide us with a basis
for understanding the environment and tools, which we will need to do our
development work.

www.it-ebooks.info
Overview

The Site Design


Before the development of any site can begin, there should be an understanding of
the site's feature requirements. The feature requirements will often be driven by the
actual layout and design of the site. We will design and build a blog website named
'Deep Thoughts'. The design of the site homepage layout looks like this:

[]

www.it-ebooks.info
Chapter 1

The blog site is designed to support the following features:

• Blogs are listed in descending order of date, with the most recent blog
appearing at the top.
• Each blog entry is listed in teaser style, with a link to the full blog appearing
at the end.
• Blog entries support a list of topics attached to them.
• Archives of previous blogs appear on the righthand side, in
descending order.
• Past blog archives can be browsed.
• The site supports contents search with paginated results.
• Ads may be placed on the righthand side.
• Users may self register for the site.
• Registered users may add comments and create a customized RSS feed on
their homepage.
• Blogs may be viewed in various RSS formats.

In addition to the features seen in the mockup, we will also support:

• Direct editing of content in preview mode.


• User submitted comments.

[]

www.it-ebooks.info
Overview

There are two additional mockups for the site. The first one shows a detailed view of
a blog. This view is shown when a user clicks on a blog from the homepage:

[ 10 ]

www.it-ebooks.info
Chapter 1

The last mockup shows what the search result screen looks like. Search results are
shown in decreasing order of relevance to the search term. The pagination controls at
the bottom of the page allow for the results to be scrolled, if necessary:

[ 11 ]

www.it-ebooks.info
Overview

Required Developer Skills


The level of technology and coding skills required to do site development will
vary depending upon the requirements and features of the site. Designing and
architecting a site that properly utilizes and leverages OpenCms is an exercise
in itself, which we will not discuss in this book. However, we will discuss the
development tasks that are involved, once the architecture has been designed. In
general, we can think of four different developer levels and skills.

Basic Site Development


OpenCms may be used to manage content right after installation. One way of using
it is to import static files into the Virtual File System (VFS) and utilize the publishing
and version control features to manage them. In this scenario, files from an existing
non-content managed website may easily be content managed. Files in the VFS
may be created, edited, and previewed in the offline staging area, before they are
published to the online file system. When published, versions can be taken to allow
for roll back, if necessary.

Files in the VFS may also be exported to the Real File System (RFS) and served
statically or by a web server. In this way, the website can operate in exactly the same
way it did, prior to being placed into OpenCms, except for the fact that it is now
version controlled. The following illustration shows how OpenCms can be used in
this fashion:

Utilizing OpenCms this way is straightforward, needs little, if any development


effort, and probably doesn't require use of this book! However, it is worth
mentioning here that there are a number of sites that can take advantage of this.

[ 12 ]

www.it-ebooks.info
Chapter 1

For this developer audience, the skill levels will include the following:

• Operational understanding of the use of OpenCms


• Operational knowledge of Application, Web, and Database servers
• HTML coding capabilities

OpenCms also provides a sample site called TemplateOne, packaged as a module.


This module contains structured content types and templates. Although somewhat
complex and confusing, content types and templates provided with TemplateOne
may be used to construct sites without requiring development work. The
documentation for these templates may be downloaded from the OpenCms website
and installed into OpenCms.

Sites Requiring Custom Content Types


After looking at the TemplateOne samples, we may soon realize that it does not quite
address our site requirements. Perhaps, the template layouts are not what we desire
or the structured content types do not contain the fields necessary to hold our data.
In this case, we will want to develop our own JSP code and extend or create our own
custom content types. This level of development will require some understanding of
Java, JSPs and XML.

This type of development involves working within the framework provided by


OpenCms, to define the templates, content types, and JSPs, and also perhaps java
classes that we need. Developing, at this level, does not require us to utilize a
development environment such as Eclipse or Netbeans. But we will probably want to
use a nice editor for our JSP and XML code.

Before undertaking this task, we will want to understand the feature and content
requirements of our site in detail. This will allow us to properly design the templates
and custom content types, which our site will need. This is a design exercise which
will not be touched upon in this book. However, we will discuss the specific tasks
required in implementing templates and the custom content types once they have
been designed.

For this type of development, the developer requires first level skills plus:

• Understanding of OpenCms modules


• Basic Java and JSP coding skills
• Understanding of OpenCms configuration
• Understanding of OpenCms content types

[ 13 ]

www.it-ebooks.info
Overview

Sites Requiring Custom Features


There are different types of projects that require integration of features which are not
provided with OpenCms. For example, we may need a feature that automatically
imports data from a back office application into a structured content type. Or
perhaps we need to create a content type that we can easily use to define RSS feeds
from articles in our site. For these types of projects, we will want to code in Java,
using a development environment. We will also probably want to build OpenCms
for ourselves, so that we can step through the source and gain a better understanding
of how our own code will need to work. We will discuss how to do these, in the later
chapters of this book.

Developing custom features in OpenCms will require the second level skills, plus:

• Advanced Java coding skills


• Understanding of OpenCms Java interfaces

Bespoke Site Development


The last type of development level is custom development, where OpenCms is used
as a base framework or platform, and a custom site interface is built on top of it. This
type of development might be suitable where the Workplace Explorer is too general,
and a more task-specific user interface is required.

Developing, at this level, requires the third level skills, plus:

• Knowledge of OpenCms architecture and


• Familiarity with OpenCms code

This type of development is not covered in this book.

OpenCms Application Overview


Before undertaking development, it will be helpful to understand the basic design of
OpenCms. OpenCms is structured as a typical J2EE web application conforming to a
3-tier web application architecture:

[ 14 ]

www.it-ebooks.info
Discovering Diverse Content Through
Random Scribd Documents
embarrassed, I confessed my error. Of course I really knew that the
Medicis had nothing to do with Venice, but for a short time it did not
appear to me at all incorrect. Now I was compelled to practise
justice; as I had so frequently interpreted my patient’s symptomatic
actions I could save my prestige only by being honest and admitting
to him the secret motives of my averseness to his trip.
It may cause general astonishment to learn how much stronger is
the impulse to tell the truth than is usually supposed. Perhaps it is a
result of my occupation with psychoanalysis that I can scarcely lie
any more. As often as I attempt a distortion I succumb to an error or
some other faulty act, which betrays my dishonesty, as was manifest
in this and in the preceding examples.
Of all faulty actions the mechanism of the error seems to be the
most superficial. That is, the occurrence of the error invariably
indicates that the mental activity concerned had to struggle with
some disturbing influence, although the nature of the error need not
be determined by the quality of the disturbing idea, which may have
remained obscure. It is not out of place to add that the same state
of affairs may be assumed in many simple cases of lapses in
speaking and writing. Every time we commit a lapse in speaking or
writing we may conclude that through mental processes there has
come a disturbance which is beyond our intention. It may be
conceded, however, that lapses in speaking and writing often follow
the laws of similarity and convenience, or the tendency to
acceleration, without allowing the disturbing element to leave a trace
of its own character in the error resulting from the lapses in
speaking or writing. It is the responsiveness of the linguistic material
which at first makes possible the determination of the error, but it
also limits the same.
In order not to confine myself exclusively to personal errors I will
relate a few examples which could just as well have been ranged
under “Lapses in Speech” or under “Erroneously Carried-out
Actions,” but as all these forms of faulty action have the same value
they may as well be reported here.
(a) I forbade a patient to speak on the telephone to his lady-love,
with whom he himself was willing to break off all relations, as each
conversation only renewed the struggling against it. He was to write
her his final decision, although there were some difficulties in the
way of delivering the letter to her. He visited me at one o’clock to tell
me that he had found a way of avoiding these difficulties, and
among other things he asked me whether he might refer to me in
my professional capacity.
At two o’clock while he was engaged in composing the letter of
refusal, he interrupted himself suddenly, and said to his mother,
“Well, I have forgotten to ask the Professor whether I may use his
name in the letter.” He hurried to the telephone, got the connection,
and asked the question, “May I speak to the Professor after his
dinner?” In answer he got an astonished “Adolf, have you gone
crazy!” The answering voice was the very voice which at my
command he had listened to for the last time. He had simply “made
a mistake,” and in place of the physician’s number had called up that
of his beloved.
(b) During a summer vacation a schoolteacher, a poor but excellent
young man, courted the daughter of a summer resident, until the
girl fell passionately in love with him, and even prevailed upon her
family to countenance the matrimonial alliance in spite of the
difference in position and race. One day, however, the teacher wrote
his brother a letter in which he said: “Pretty, the lass is not at all, but
she is very amiable, and so far so good. But whether I can make up
my mind to marry a Jewess I cannot yet tell.” This letter got into the
hands of the fiancée, who put an end to the engagement, while at
the same time his brother was wondering at the protestations of
love directed to him. My informer assured me that this was really an
error and not a cunning trick.
I am familiar with another case in which a woman who was
dissatisfied with her old physician, and still did not openly wish to
discharge him, accomplished this purpose through the interchange
of letters. Here, at least, I can assert confidently that it was error
and not conscious cunning that made use of this familiar comedy-
motive.
(c) Brill[63] tells of a woman who, inquiring about a mutual friend,
erroneously called her by her maiden name. Her attention having
been directed to this error, she had to admit that she disliked her
friend’s husband and had never been satisfied with her marriage.
Maeder[64] relates a good example of how a reluctantly repressed
wish can be satisfied by means of an “error.” A colleague wanted to
enjoy his day of leave of absence absolutely undisturbed, but he also
felt that he ought to go to Lucerne to pay a call which he did not
anticipate with any pleasure. After long reflection, however, he
concluded to go. For pastime on the train he read the daily
newspapers. He journeyed from Zurich to Arth Goldau, where he
changed trains for Lucerne, all the time engrossed in reading.
Presently the conductor informed him that he was in the wrong train
—that is, he had got into the one which was returning from Goldau
to Zurich, whereas his ticket was for Lucerne.
A very similar trick was played by me quite recently. I had promised
my oldest brother to pay him a long-due visit at a sea-shore in
England; as the time was short I felt obliged to travel by the shortest
route and without interruption. I begged for a day’s sojourn in
Holland, but he thought that I could stop there on my return trip.
Accordingly I journeyed from Munich through Cologne to Rotterdam
—Hook of Holland—where I was to take the steamer at midnight to
Harwich. In Cologne I had to change cars; I left my train to go into
the Rotterdam express, but it was not to be found. I asked various
railway employees, was sent from one platform to another, got into
an exaggerated state of despair, and could easily reckon that during
this fruitless search I had probably missed my connection.
After this was corroborated, I pondered whether or not I should
spend the night in Cologne. This was favoured by a feeling of piety,
for according to an old family tradition, my ancestors were once
expelled from this city during a persecution of the Jews. But
eventually I came to another decision; I took a later train to
Rotterdam, where I arrived late at night and was thus compelled to
spend a day in Holland. This brought me the fulfilment of a long-
fostered wish—the sight of the beautiful Rembrandt paintings at The
Hague and in the Royal Museum at Amsterdam. Not before the next
forenoon, while collecting my impressions during the railway journey
in England, did I definitely remember that only a few steps from the
place where I got off at the railroad station in Cologne, indeed, on
the same platform, I had seen a large sign, “Rotterdam—Hook of
Holland.” There stood the train in which I should have continued my
journey.
If one does not wish to assume that, contrary to my brother’s
orders, I had really resolved to admire the Rembrandt pictures on
my way to him, then the fact that despite clear directions I hurried
away and looked for another train must be designated as an
incomprehensible “blinding.” Everything else—my well-acted
perplexity, the emergence of the pious intention to spend the night
in Cologne—was only a contrivance to hide my resolution until it had
been fully accomplished.
One may possibly be disinclined to consider the class of errors which
I have here explained as very numerous or particularly significant.
But I leave it to your consideration whether there is no ground for
extending the same points of view also to the more important errors
of judgment, as evinced by people in life and science. Only for the
most select and most balanced minds does it seem possible to guard
the perceived picture of external reality against the distortion to
which it is otherwise subjected in its transit through the psychic
individuality of the one perceiving it.
XI
COMBINED FAULTY ACTS
Two of the last-mentioned examples, my error which transfers the
Medici to Venice and that of the young man who knew how to
circumvent a command against a conversation on the telephone with
his lady love, have really not been fully discussed, as after careful
consideration they may be shown to represent a union of forgetting
with an error. I can show the same union still more clearly in certain
other examples.
(a) A friend related to me the following experience: “Some years ago
I consented to be elected to the committee of a certain literary
society, as I supposed the organization might some time be of use to
me in assisting me in the production of my drama. Although not
much interested, I attended the meetings regularly every Friday.
Some months ago I was definitely assured that one of my dramas
would be presented at the theatre in F., and since that time it
regularly happened that I forgot the meeting of the association. As I
read their programme announcements I was ashamed of my
forgetfulness. I reproached myself, feeling that it was certainly rude
of me to stay away now when I no longer needed them, and
determined that I would certainly not forget the next Friday.
Continually I reminded myself of this resolution until the hour came
and I stood before the door of the meeting-room. To my
astonishment it was locked; the meeting was already over. I had
mistaken my day; it was already Saturday!”
(b) The next example is the combination of a symptomatic action
with a case of mislaying; it reached me by remote byways, but from
a reliable source.
A woman travelled to Rome with her brother-in-law, a renowned
artist. The visitor was highly honoured by the German residents of
Rome, and among other things received a gold medal of antique
origin. The woman was grieved that her brother-in-law did not
sufficiently appreciate the value of this beautiful gift. After she had
returned home she discovered in unpacking that—without knowing
how—she had brought the medal home with her. She immediately
notified her brother-in-law of this by letter, and informed him that
she would send it back to Rome the next day. The next day,
however, the medal was so aptly mislaid that it could not be found
and could not be sent back, and then it dawned on the woman what
her “absent-mindedness” signified—namely, that she wished to keep
the medal herself.
(c) Here are some cases in which the falsified action persistently
repeats itself, and at the same time also changes its mode of action:

Due to unknown motives, Jones[65] left a letter for several days on
his desk, forgetting each time to post it. He ultimately posted it, but
it was returned to him from the Dead-letter Office because he forgot
to address it. After addressing and posting it a second time it was
again returned to him, this time without a stamp. He was then
forced to recognize the unconscious opposition to the sending of the
letter.
(d) A short account by Dr. Karl Weiss (Vienna)[66] of a case of
forgetting impressively describes the futile effort to accomplish
something in the face of opposition. “How persistently the
unconscious activity can achieve its purpose if it has cause to
prevent a resolution from being executed, and how difficult it is to
guard against this tendency, will be illustrated by the following
incident: An acquaintance requested me to lend him a book and
bring it to him the next day. I immediately promised it, but perceived
a distinct feeling of displeasure which I could not explain at the time.
Later it became clear to me: this acquaintance had owed me for
years a sum of money which he evidently had no intention of
returning. I did not give this matter any more thought, but I recalled
it the following forenoon with the same feeling of displeasure, and at
once said to myself: ‘Your unconscious will see to it that you forget
the book, but you don’t wish to appear unobliging and will therefore
do everything not to forget it.’ I came home, wrapped the book in
paper, and put it near me on the desk while I wrote some letters.
“A little later I went away, but after a few steps I recollected that I
had left on the desk the letters which I wished to post. (By the way,
one of the letters was written to a person who urged me to
undertake something disagreeable.) I returned, took the letters, and
again left. While in the street-car it occurred to me that I had
undertaken to purchase something for my wife, and I was pleased at
the thought that it would be only a small package. The association,
‘small package,’ suddenly recalled ‘book’—and only then I noticed
that I did not have the book with me. Not only had I forgotten it
when I left my home the first time, but I had overlooked it again
when I got the letters near which it lay.”
(e) A similar mechanism is shown in the following fully analysed
observation of Otto Rank[67]:—
“A scrupulously orderly and pedantically precise man reported the
following occurrence, which he considered quite remarkable: One
afternoon on the street wishing to find out the time, he discovered
that he had left his watch at home, an omission which to his
knowledge had never occurred before. As he had an engagement
elsewhere and had not enough time to return for his watch, he
made use of a visit to a woman friend to borrow her watch for the
evening. This was the most convenient way out of the dilemma, as
he had a previous engagement to visit this lady the next day.
Accordingly, he promised to return her watch at that time.
“But the following day when about to consummate this he found to
his surprise that he had left the watch at home; his own watch he
had with him. He then firmly resolved to return the lady’s property
that same afternoon, and even followed out his resolution. But on
wishing to see the time on leaving her he found to his chagrin and
astonishment that he had again forgotten to take his own watch.
“The repetition of this faulty action seemed so pathologic to this
order-loving man that he was quite anxious to know its psychologic
motivation, and when questioned whether he experienced anything
disagreeable on the critical day of the first forgetting, and in what
connection it had occurred, the motive was promptly found. He
related that he had conversed with his mother after luncheon,
shortly before leaving the house. She told him that an irresponsible
relative, who had already caused him much worry and loss of
money, had pawned his (the relative’s) watch, and, as it was needed
in the house, the relative had asked for money to redeem it. This
almost “forced” loan affected our man very painfully and brought
back to his memory all the disagreeable episodes perpetrated by this
relative for many years.
“His symptomatic action therefore proves to be manifoldly
determined. First, it gives expression to a stream of thought which
runs perhaps as follows: ‘I won’t allow my money to be extorted this
way, and if a watch is needed I will leave my own at home.’ But as
he needed it for the evening to keep his appointment, this intention
could only be brought about on an unconscious path in the form of a
symptomatic action. Second, the forgetting expresses a sentiment
something like the following: ‘This everlasting sacrificing of money
for this good-for-nothing is bound to ruin me altogether, so that I
will have to give up everything.’ Although the anger, according to the
report of this man, was only momentary, the repetition of the same
symptomatic action conclusively shows that in the unconscious it
continued to act more intensely, and may be equivalent to the
conscious expression: ‘I cannot get this story out of my head.[68]
That the lady’s watch should later meet the same fate will not
surprise us after knowing this attitude of the unconscious.’
“Yet there may be still other special motives which favour the
transference on the ‘innocent’ lady’s watch. The nearest motive is
probably that he would have liked to keep it as a substitute for his
own sacrificed watch, and that hence he forgot to return it the next
day. He also might have liked to possess this watch as a souvenir of
the lady. Moreover, the forgetting of the lady’s watch gave him the
excuse for calling on the admired one a second time; for he was
obliged to visit her in the morning in reference to another matter,
and with the forgetting of the watch he seemed to indicate that this
visit for which an appointment had been made so long ago was too
good for him to be used simply for the return of a watch.
“Twice forgetting his own watch and thus making possible the
substitution of the lady’s watch speaks for the fact that our man
unconsciously endeavoured to avoid carrying both watches at the
same time. He obviously thought of avoiding the appearance of
superfluity which would have stood out in striking contrast to the
want of the relative; but, on the other hand, he utilized this as a
self-admonition against his apparent intention to marry this lady,
reminding himself that he was tied to his family (mother) by
indissoluble obligations.
“Finally, another reason for the forgetting of the lady’s watch may be
sought in the fact that the evening before he, a bachelor, was
ashamed to be seen with a lady’s watch by his friends, so that he
only looked at it stealthily, and in order to evade the repetition of
this painful situation he could not take the watch along. But as he
was obliged to return it, there resulted here, too, an unconsciously
performed symptomatic action which proved to be a compromise
formation between conflicting emotional feelings and a dearly
bought victory of the unconscious instance.”
In the same discussion Rank has also paid attention to the very
interesting relation of “faulty actions and dreams,” which cannot,
however, be followed here without a comprehensive analysis of the
dream with which the faulty action is connected. I once dreamed at
great length that I had lost my pocket-book. In the morning while
dressing I actually missed it; while undressing the night before the
dream I had forgotten to take it out of my trousers pocket and put it
in its usual place. This forgetting was therefore not unknown to me;
probably it was to give expression to an unconscious thought which
was ready to appear in the dream content.
I do not mean to assert that such cases of combined faulty actions
can teach anything new that we have not already seen in the
individual cases. But this change in form of the faulty action, which
nevertheless attains the same result, gives the plastic impression of
a will working towards a definite end, and in a far more energetic
way contradicts the idea that the faulty action represents something
fortuitous and requires no explanation. Not less remarkable is the
fact that the conscious intention thoroughly fails to check the
success of the faulty action. Despite all, my friend did not pay his
visit to the meeting of the literary society, and the woman found it
impossible to give up the medal. That unconscious something which
worked against these resolutions found another outlet after the first
road was closed to it. It requires something other than the conscious
counter-resolution to overcome the unknown motive; it requires a
psychic work which makes the unknown known to consciousness.
XII
DETERMINISM—CHANCE—AND
SUPERSTITIOUS BELIEFS
Points of View.

As the general result of the preceding separate discussions we must


put down the following principle: Certain inadequacies of our psychic
capacities—whose common character will soon be more definitely
determined—and certain performances which are apparently
unintentional prove to be well motivated when subjected to the
psychoanalytic investigation, and are determined through the
consciousness of unknown motives.
In order to belong to this class of phenomena thus explained a faulty
psychic action must satisfy the following conditions:—
(a) It must not exceed a certain measure, which is firmly established
through our estimation, and is designated by the expression “within
normal limits.”
(b) It must evince the character of the momentary and temporary
disturbance. The same action must have been previously performed
more correctly or we must always rely on ourselves to perform it
more correctly; if we are corrected by others we must immediately
recognize the truth of the correction and the incorrectness of our
psychic action.
(c) If we at all perceive a faulty action, we must not perceive in
ourselves any motivation of the same, but must attempt to explain it
through “inattention” or attribute it to an “accident.”
Thus there remain in this group the cases of forgetting and the
errors, despite better knowledge, the lapses in speaking, reading,
writing, the erroneously carried-out actions, and the so-called
chance actions. The explanations of these so definite psychic
processes are connected with a series of observations which may in
part arouse further interest.
I. By abandoning a part of our psychic capacity as unexplainable
through purposive ideas we ignore the realms of determinism in our
mental life. Here, as in still other spheres, determinism reaches
farther than we suppose. In the year 1900 I read an essay published
in the Zeit written by the literary historian R. M. Meyer, in which he
maintains, and illustrates by examples, that it is impossible to
compose nonsense intentionally and arbitrarily. For some time I have
been aware that it is impossible to think of a number, or even of a
name, of one’s own free will. If one investigates this seeming
voluntary formation, let us say, of a number of many digits uttered in
unrestrained mirth, it always proves to be so strictly determined that
the determination seems impossible. I will now briefly discuss an
example of an “arbitrarily chosen” first name, and then exhaustively
analyse an analogous example of a “thoughtlessly uttered” number.
While preparing the history of one of my patients for publication I
considered what first name I should give her in the article. There
seemed to be a wide choice; of course, certain names were at once
excluded by me, in the first place the real name, then the names of
members of my family to which I would have objected, also some
female names having an especially peculiar pronunciation. But,
excluding these, there should have been no need of being puzzled
about such a name. It would be thought, and I myself supposed,
that a whole multitude of feminine names would be placed at my
disposal. Instead of this only one sprang up, no other besides it; it
was the name Dora.
I inquired as to its determination: “Who else is called Dora?” I
wished to reject the next idea as incredulous; it occurred to me that
the nurse of my sister’s children was named Dora. But I possess so
much self-control, or practice in analysis, if you like, that I held
firmly to the idea and proceeded. Then a slight incident of the
previous evening soon flashed through my mind which brought the
looked-for determination. On my sister’s dining-room table I noticed
a letter bearing the address, “Miss Rosa W.” Astonished, I asked
whose name this was, and was informed that the right name of the
supposed Dora was really Rosa, and that on accepting the position
she had to lay aside her name, because Rosa would also refer to my
sister. I said pityingly, “Poor people! They cannot even retain their
own names!” I now recall that on hearing this I became quiet for a
moment and began to think of all sorts of serious matters which
merged into the obscure, but which I could now easily bring into my
consciousness. Thus when I sought a name for a person who could
not retain her own name no other except “Dora” occurred to me.
The exclusiveness here is based, moreover, on firmer internal
associations, for in the history of my patient it was a stranger in the
house, the governess, who exerted a decisive influence on the
course of the treatment.
This slight incident found its unexpected continuation many years
later. While discussing in a lecture the long-since published history of
the girl called Dora it occurred to me that one of my two women
pupils had the very name Dora which I was obliged to utter so often
in the different associations of the case. I turned to the young
student, whom I knew personally, with the apology that I had really
not thought that she bore the same name, and that I was ready to
substitute it in my lecture by another name.
I was now confronted with the task of rapidly choosing another
name, and reflected that I must not now choose the first name of
the other woman student, and so set a poor example to the class,
who were already quite conversant with psychoanalysis. I was
therefore well pleased when the name “Erna” occurred to me as the
substitute for Dora, and Erna I used in the discourse. After the
lecture I asked myself whence the name “Erna” could possibly have
originated, and had to laugh as I observed that the feared possibility
in the choice of the substitutive name had come to pass, in part at
least. The other lady’s family name was Lucerna, of which Erna was
a part.
In a letter to a friend I informed him that I had finished reading the
proof-sheets of The Interpretation of Dreams, and that I did not
intend to make any further changes in it, “even if it contained 2,467
mistakes.” I immediately attempted to explain to myself the number,
and added this little analysis as a postscript to the letter. It will be
best to quote it now as I wrote it when I caught myself in this
transaction:—
“I will add hastily another contribution to the Psychopathology of
Everyday Life. You will find in the letter the number 2,467 as a
jocose and arbitrary estimation of the number of errors that may be
found in the dream-book. I meant to write: no matter how large the
number might be, and this one presented itself. But there is nothing
arbitrary or undetermined in the psychic life. You will therefore
rightly suppose that the unconscious hastened to determine the
number which was liberated by consciousness. Just previous to this I
had read in the paper that General E. M. had been retired as
Inspector-General of Ordnance. You must know that I am interested
in this man. While I was serving as military medical student he, then
a colonel, once came into the hospital and said to the physician: ‘You
must make me well in eight days, as I have some work to do for
which the Emperor is waiting.’
“At that time I decided to follow this man’s career, and just think, to-
day (1899) he is at the end of it—Inspector-General of Ordnance
and already retired. I wished to figure out in what time he had
covered this road, and assumed that I had seen him in the hospital
in 1882. That would make 17 years. I related this to my wife, and
she remarked, ‘Then you, too, should be retired.’ And I protested,
‘The Lord forbid!’ After this conversation I seated myself at the table
to write to you. The previous train of thought continued, and for
good reason. The figuring was incorrect; I had a definite recollection
of the circumstances in my mind. I had celebrated my coming of
age, my 24th birthday, in the military prison (for being absent
without permission). Therefore I must have seen him in 1880, which
makes it 19 years ago. You then have the number 24 in 2,467! Now
take the number that represents my age, 43, and add 24 years to it
and you get 67! That is, to the question whether I wished to retire I
had expressed the wish to work 24 years more. Obviously I am
annoyed that in the interval during which I followed Colonel M. I
have not accomplished much myself, and still there is a sort of
triumph in the fact that he is already finished, while I still have all
before me. Thus we may justly say that not even the unintentionally
thrown-out number 2,467 lacks its determination from the
unconscious.”
Since this first example of the interpretation of an apparently
arbitrary choice of a number I have repeated a similar test with the
same result; but most cases are of such intimate content that they
do not lend themselves to report.
It is for this reason that I shall not hesitate to add here a very
interesting analysis of a “chance number” which Dr. Alfred Adler
(Vienna) received from a “perfectly healthy” man.[69] A. wrote to
me: “Last night I devoted myself to the Psychopathology of
Everyday Life, and I would have read it all through had I not been
hindered by a remarkable coincidence. When I read that every
number that we apparently conjure up quite arbitrarily in our
consciousness has a definite meaning, I decided to test it. The
number 1,734 occurred to my mind. The following associations then
came up: 1,734 ÷ 17 = 102; 102 ÷ 17 = 6. I then separated the
number into 17 and 34. I am 34 years old. I believe that I once told
you that I consider 34 the last year of youth, and for this reason I
felt miserable on my last birthday. The end of my 17th year was the
beginning of a very nice and interesting period of my development. I
divide my life into periods of 17 years. What do the divisions signify?
The number 102 recalls the fact that volume 102 of the Reclam
Universal Library is Kotzebue’s play Menschenhass und Reue (Human
Hatred and Repentance).
“My present psychic state is ‘human hatred and repentance.’ No. 6 of
the U. L. (I know a great many numbers by heart) is Mullner’s
‘Schuld’ (Fault). I am constantly annoyed at the thought that it is
through my own fault that I have not become what I could have
been with my abilities.
“I then asked myself, ‘What is No. 17 of the U. L.?’ But I could not
recall it. But as I positively knew it before, I assumed that I wished
to forget this number. All reflection was in vain. I wished to continue
with my reading, but I read only mechanically without understanding
a word, for I was annoyed by the number 17. I extinguished the
light and continued my search. It finally came to me that number 17
must be a play by Shakespeare. But which one? I thought of Hero
and Leander. Apparently a stupid attempt of my will to distract me. I
finally arose and consulted the catalogue of the U. L. Number 17
was Macbeth! To my surprise I had to discover that I knew nothing
of the play, despite the fact that it did not interest me any less than
any other Shakespearean drama. I only thought of: murder, Lady
Macbeth, witches, ‘nice is ugly,’ and that I found Schiller’s version of
Macbeth very nice. Undoubtedly I also wished to forget the play.
Then it occurred to me that 17 and 34 may be divided by 17 and
result in 1 and 2. Numbers 1 and 2 of the U. L. is Goethe’s Faust.
Formerly I found much of Faust in me.”
We must regret that the discretion of the physician did not allow us
to see the significance of ideas. Adler remarked that the man did not
succeed in the synthesis of his analysis. His association would hardly
be worth reporting unless their continuation would bring out
something that would give us the key to the understanding of the
number 1,734 and the whole series of ideas.
To quote further: “To be sure this morning I had an experience
which speaks much for the correctness of the Freudian conception.
My wife, whom I awakened through my getting up at night, asked
me what I wanted with the catalogue of the U. L. I told her the
story. She found it all pettifogging but—very interesting. Macbeth,
which caused me so much trouble, she simply passed over. She said
that nothing came to her mind when she thought of a number. I
answered, ‘Let us try it.’ She named the number 117. To this I
immediately replied: ‘17 refers to what I just told you; furthermore, I
told you yesterday that if a wife is in the 82nd year and the husband
is in the 35th year it must be a gross misunderstanding.’ For the last
few days I have been teasing my wife by maintaining that she was a
little old mother of 82 years. 82 + 35 = 117.”
The man who did not know how to determine his own number at
once found the solution when his wife named a number which was
apparently arbitrarily chosen. As a matter of fact, the woman
understood very well from which complex the number of her
husband originated, and chose her own number from the same
complex, which was surely common to both, as it dealt in his case
with their relative ages. Now, we find it easy to interpret the number
that occurred to the man. As Dr. Adler indicates, it expressed a
repressed wish of the husband which, fully developed, would read:
“For a man of 34 years as I am, only a woman of 17 would be
suitable.”
Lest one should think too lightly of such “playing,” I will add that I
was recently informed by Dr. Adler that a year after the publication
of this analysis the man was divorced from his wife.[70]
Adler gives a similar explanation for the origin of obsessive numbers.
Also the choice of so-called “favourite numbers” is not without
relation to the life of the person concerned, and does not lack a
certain psychologic interest. A gentleman who evinced a particular
partiality for the numbers 17 and 19 could specify, after brief
reflection, that at the age of 17 he attained the greatly longed-for
academic freedom by having been admitted to the university, that at
19 he made his first long journey, and shortly thereafter made his
first scientific discovery. But the fixation of this preference followed
later, after two questionable affairs, when the same numbers were
invested with importance in his “love-life.”
Indeed, even those numbers which we use in a particular connection
extremely often and with apparent arbitrariness can be traced by
analysis to an unexpected meaning. Thus, one day it struck one of
my patients that he was particularly fond of saying, “I have already
told you this from 17 to 36 times.” And he asked himself whether
there was any motive for it. It soon occurred to him that he was
born on the 27th day of the month, and that his younger brother
was born on the 26th day of another month, and he had grounds for
complaint that Fate had robbed him of so many of the benefits of life
only to bestow them on his younger brother. Thus he represented
this partiality of Fate by deducting 10 from the date of his birth and
adding it to the date of his brother’s birthday. I am the elder and yet
am so “cut short.”
I shall tarry a little longer at the analysis of chance numbers, for I
know of no other individual observation which would so readily
demonstrate the existence of highly organized thinking processes of
which consciousness has no knowledge. Moreover, there is no better
example of analysis in which the suggestion of the position, a
frequent accusation, is so distinctly out of consideration. I shall
therefore report the analysis of a chance number of one of my
patients (with his consent), to which I will only add that he is the
youngest of many children and that he lost his beloved father in his
young years.
While in a particularly happy mood he let the number 426,718 come
to his mind, and put to himself the question, “Well, what does it
bring to your mind?” First came a joke he had heard: “If your
catarrh of the nose is treated by a doctor it lasts 42 days, if it is not
treated it lasts—6 weeks.” This corresponds to the first digit of the
number (42 = 6 × 7). During the obstruction that followed this first
solution I called his attention to the fact that the number of six digits
selected by him contains all the first numbers except 3 and 5. He at
once found the continuation of this solution:—
“We were altogether 7 children, I was the youngest. Number 3 in
the order of the children corresponds to my sister A., and 5 to my
brother L.; both of them were my enemies. As a child I used to pray
to the Lord every night that He should take out of my life these two
tormenting spirits. It seems to me that I have fulfilled for myself this
wish: ‘3’ and ‘5,’ the evil brother and the hated sister, are omitted.”
“If the number stands for your sisters and brothers, what
significance is there to 18 at the end? You were altogether only 7.”
“I often thought if my father had lived longer I should not have been
the youngest child. If one more would have come, we should have
been 8, and there would have been a younger child, toward whom I
could have played the rôle of the older one.”
With this the number was explained, but we still wished to find the
connection between the first part of the interpretation and the part
following it. This came very readily from the condition required for
the last digits—if the father had lived longer. 42 = 6 × 7 signifies the
ridicule directed against the doctors who could not help the father,
and in this way expresses the wish for the continued existence of the
father. The whole number really corresponds to the fulfilment of his
two wishes in reference to his family circle—namely, that both the
evil brother and sister should die and that another little child should
follow him. Or, briefly expressed: If only these two had died in place
of my father![71]
Another analysis of numbers I take from Jones.[72] A gentleman of
his acquaintance let the number 986 come to his mind, and defied
him to connect it to anything of special interest in his mind. “Six
years ago, on the hottest day he could remember, he had seen a
joke in an evening newspaper, which stated that the thermometer
had stood at 98·6° F., evidently an exaggeration of 98·6° F. We were
at the time seated in front of a very hot fire, from which he had just
drawn back, and he remarked, probably quite correctly, that the heat
had aroused his dormant memory. However, I was curious to know
why this memory had persisted with such vividness as to be so
readily brought out, for with most people it surely would have been
forgotten beyond recall, unless it had become associated with some
other mental experience of more significance.
“He told me that on reading the joke he had laughed uproariously,
and that on many subsequent occasions he had recalled it with great
relish. As the joke was obviously of an exceedingly tenuous nature,
this strengthened my expectation that more lay behind. His next
thought was the general reflection that the conception of heat had
always greatly impressed him, that heat was the most important
thing in the universe, the source of all life, and so on. This
remarkable attitude of a quite prosaic young man certainly needed
some explanation, so I asked him to continue his free associations.
The next thought was of a factory stack which he could see from his
bedroom window. He often stood of an evening watching the flame
and smoke issuing out of it, and reflecting on this deplorable waste
of energy. Heat, flame, the source of life, the waste of vital energy
issuing from an upright, hollow tube—it was not hard to divine from
such associations that the ideas of heat and fire were unconsciously
linked in his mind with the idea of love, as is so frequent in symbolic
thinking, and that there was a strong masturbation complex present,
a conclusion that he presently confirmed.”
Those who wish to get a good impression of the way the material of
numbers becomes elaborated in the unconscious thinking, I refer to
two papers by Jung[73] and Jones.[74]
In personal analysis of this kind two things were especially striking.
First, the absolute somnambulistic certainty with which I attacked
the unknown objective point, merging into a mathematical train of
thought, which later suddenly extended to the looked-for number,
and the rapidity with which the entire subsequent work was
performed. Secondly, the fact that the numbers were always at the
disposal of my unconscious mind, when as a matter of fact I am a
poor mathematician and find it very difficult to consciously recall
years, house numbers, and the like. Moreover, in these unconscious
mental operations with figures I found a tendency to superstition,
the origin of which had long remained unknown to me.
It will not surprise us to find that not only numbers but also mental
occurrences of different kinds of words regularly prove on analytic
investigation to be well determined.
Brill relates: “While working on the English edition of this book I was
obsessed one morning with the strange word ‘Cardillac.’ Busily intent
on my work, I refused at first to pay attention to it, but, as is usually
the case, I simply could not do anything else. ‘Cardillac’ was
constantly in my mind. Realizing that my refusal to recognize it was
only a resistance, I decided to analyse it. The following associations
occurred to me: Cardillac, cardiac, carrefour, Cadillac.
“Cardiac recalled cardalgia—heartache—a medical friend who had
recently told me confidentially that he feared that he had some
cardiac affection because he had suffered some attacks of pain in
the region of his heart. Knowing him so well, I at once rejected his
theory, and told him that his attacks were of a neurotic character,
and that his other apparent physical ailments were also only the
expression of his neurosis.
“I might add that just before telling me of his heart trouble he spoke
of a business matter of vital interest to him which had suddenly
come to naught. Being a man of unbounded ambitions, he was very
depressed because of late he had suffered many similar reverses.
His neurotic conflicts, however, had become manifest a few months
before this misfortune. Soon after his father’s death had left a big
business on his hands. As the business could be continued only
under my friend’s management, he was unable to decide whether to
enter into commercial life or continue his chosen career. His great
ambition was to become a successful medical practitioner, and
although he had practised medicine successfully for many years, he
was not altogether satisfied with the financial fluctuations of his
professional income. On the other hand, his father’s business
promised him an assured, though limited, return. In brief, he was ‘at
a crossing and did not know which way to turn.’
“I then recalled the word carrefour, which is the French for
‘crossing,’ and it occurred to me that while working in a hospital in
Paris I lived near the ‘Carrefour St. Lazarre.’ And now I could
understand what relation all these associations had for me.
“When I resolved to leave the State Hospital I made the decision,
first, because I desired to get married, and, secondly, because I
wished to enter private practice. This brought up a new problem.
Although my State hospital service was an absolute success, judging
by promotions and so on, I felt like a great many others in the same
situation, namely, that my training was ill suited for private practice.
To specialize in mental work was a daring undertaking for one
without money and social connections. I also felt that the best I
could do for patients should they ever come my way would be to
commit them to one of the hospitals, as I had little confidence in the
home treatment in vogue. In spite of the enormous advances made
in recent years in mental work, the specialist is almost helpless when
he is confronted with the average case of insanity. This may be
partially attributed to the fact that such cases are brought to him
after they have fully developed the psychosis when hospital
treatment is imperative. Of the great army of milder mental
disturbances, the so-called border-line cases, which make up the
bulk of clinic and private work and which rightfully belong to the
mental specialist, I knew very little, as those patients rarely, or
never, came to the State hospital, and what I did know concerning
the treatment of neurasthenia and psychasthenia was not conducive
to make me more hopeful of success in private practice.
“It was in this state of mind that I came to Paris, where I hoped to
learn enough about the psychoneuroses to enable me to continue
my specialty in private practice, and yet feel that I could do
something for my patients. What I saw in Paris did not, however,
help to change my state of mind. There, too, most of the work was
directed to dead tissues. The mental aspects, as such, received but
scant attention. I was, therefore, seriously thinking of giving up my
mental work for some other specialty. As can be seen, I was
confronted with a situation similar to the one of my medical friend. I,
too, was at a crossing and did not know which way to turn. My
suspense was soon ended. One day I received a letter from my
friend Professor Peterson, who, by the way, was responsible for my
entering the State hospital service. In this letter he advised me not
to give up my work, and suggested the psychiatric clinic of Zurich,
where he thought I could find what I desired.
“But what does Cadillac mean? Cadillac is the name of a hotel and of
an automobile. A few days before in a country place my medical
friend and I had been trying to hire an automobile, but there was
none to be had. We both expressed the wish to own an automobile
—again an unrealized ambition. I also recalled that the ‘Carrefour St.
Lazarre’ always impressed me as being one of the busiest
thoroughfares in Paris. It was always congested with automobiles.
Cadillac also recalled that only a few days ago on the way to my
clinic I noticed a large sign over a building which announced that on
a certain day ‘this building was to be occupied by the Cadillac,’ etc.
This at first made me think of the Cadillac Hotel, but on second sight
I noticed that it referred to the Cadillac motor-car. There was a
sudden obstruction here for a few moments. The word Cadillac
reappeared and by sound association the word catalogue occurred
to me. This word brought back a very mortifying occurrence of
recent origin, the motive of which is again blighted ambition.
“When one wishes to report any auto-analysis he must be prepared
to lay bare many intimate affairs of his own life. Any one reading
carefully Professor Freud’s works cannot fail to become intimately
acquainted with him and his family. I have often been asked by
persons who claim to have read and studied Freud’s works such
questions as: ‘How old is Freud?’ ‘Is Freud married?’ ‘How many
children has he?’ etc. Whenever I hear these or similar questions I
know that the questioner has either lied when he made these
assertions, or, to be more charitable, that he is a very careless and
superficial reader. All these questions and many more are answered
in Freud’s works. Auto-analyses are autobiographies par excellence;
but whereas the autobiographer may for definite reasons consciously
and unconsciously hide many facts of his life, the auto-analyst not
only tells the truth consciously, but perforce brings to light his whole
intimate personality. It is for these reasons that one finds it very
unpleasant to report his own auto-analyses. However, as we often
report our patients’ unconscious productions, it is but fair that we
should sacrifice ourselves on the altar of publicity when occasion
demands. This is my apology for having thrust some of my personal
affairs on the reader, and for being obliged to continue a little longer
in the same strain.
“Before digressing with the last remarks I mentioned that the word
Cadillac brought the sound association catalogue. This association
brought back another important epoch in my life with which
Professor Peterson is connected. Last May I was informed by the
secretary of the faculty that I was appointed chief of clinic of the
department of psychiatry. I need hardly say that I was exceedingly
pleased to be so honoured—in the first place because it was the
realization of an ambition which I dared entertain only under special
euphoric states; and, secondly, it was a compensation for the many
unmerited criticisms from those who are blindly and unreasonably
opposing some of my work. Soon thereafter I called on the
stenographer of the faculty and spoke to her about a correction to
be made in my name as it was printed in the catalogue. For some
unknown reason (perhaps racial prejudice) this stenographer, a
maiden lady, must have taken a dislike to me. For about three years
I repeatedly requested her to have this correction made, but she had
paid no attention to me. To be sure she always promised to attend
to it, but the mistake remained uncorrected.
“When I saw her last May I again reminded her of this correction,
and also called her attention to the fact that as I had been appointed
chief of clinic I was especially anxious to have my name correctly
printed in the catalogue. She apologized for her remissness and
assured me that everything should be as I requested. Imagine my
surprise and chagrin when on receiving the new catalogue I found
that while the correction had been made in my name I was not listed
as chief of clinic. When I asked her about this she was quite puzzled;
she said she had no idea that I had been appointed chief of clinic.
She had to consult the minutes of the faculty, written by herself,
before she was convinced of it. It should be noted that as recorder
to the faculty it was her duty to know all these things as soon as
they transpired.[75] When she finally ascertained that I was right she
was very apologetic and informed me that she would at once write
to the superintendent of the clinic to inform him of my appointment,
something which she should have done months before. Of course I
gained nothing by her regrets and apologies. The catalogue was
published and those who read it did not find my name in the desired
place. I am chief of clinic in fact but not in name. Moreover, as the
appointments are made only for one year, it is quite likely that my
great ambition will never be actually realized.
“Thus the obsessive neologism cardillac, which is a condensation of
cardiac, Cadillac, and catalogue, contains some of the most
important efforts of my medical experience. When I was almost at
the end of this analysis I suddenly recalled a dream containing this
neologism cardillac in which my wish was realized. My name
appeared in its rightful place in the catalogue. The person who
showed it to me in the dream was Professor Peterson. It was when I
was at the first ‘crossing’ after I had graduated from the medical
college that Professor Peterson urged me to enter the hospital
service. About five years later while I was in the state of indecision
which I have described, it was Professor Peterson who advised me
to go to the clinic of psychiatry at Zurich where through Bleuler and
Jung I first became acquainted with Professor Freud and his works,
and it was also through the kind recommendation of Dr. Peterson
that I was elevated to my present position.”
I am indebted to Dr. Hitschman for the solution of another case in
which a line of poetry repeatedly obtruded itself on the mind in a
certain place without showing any trace of its origin and relation.
Related by Dr. E.: “Six years ago I travelled from Biarritz to San
Sebastian. The railroad crosses over the Bidassao—a river which
here forms the boundary between France and Spain. On the bridge
one has a splendid view, on the one side of the broad valley and the
Pyrenees and on the other of the sea. It was a beautiful, bright
summer day; everything was filled with sun and light. I was on a
vacation and pleased with my trip to Spain. Suddenly the following
words came to me: ‘But the soul is already free, floating on a sea of
light.’
“At that time I was trying to remember where these lines came from,
but I could not remember; judging by the rhythm, the words must
be a part of some poem, which, however, entirely escaped my
memory. Later when the verse repeatedly came to my mind, I asked
many people about it without receiving any information.
“Last year I crossed the same bridge on my return journey from
Spain. It was a very dark night and it rained. I looked through the
window to ascertain whether we had already reached the frontier
station and noticed that we were on the Bidassao bridge.
Immediately the above-cited verse returned to my memory and
again I could not recall its origin.
“At home many months later I found Uhland’s poems. I opened the
volume and my glance fell upon the verse: ‘But the soul is already
free, floating on a sea of light,’ which were the concluding lines of
the poem entitled ‘The Pilgrim.’ I read the poem and dimly recalled
that I had known it many years ago. The scene of action is in Spain,
and this seemed to me to be the only relation between the quoted
verse and the place on the railroad journey described by me. I was
only half satisfied with my discovery and mechanically continued to
turn the pages of the book. On turning the next page I found a
poem the title of which was ‘Bidassao Bridge.’
“I may add that the contents of this poem seemed even stranger to
me than that of the first, and that its first verse read:
“‘On the Bidassao bridge stands a saint grey with age, he blesses to
the right the Spanish mountain, to the left he blesses the French
land.’”
II. This understanding of the determination of apparently arbitrarily
selected names, numbers, and words may perhaps contribute to the
solution of another problem. As is known, many persons argue
against the assumption of an absolute psychic determinism by
referring to an intense feeling of conviction that there is a free will.
This feeling of conviction exists, but is not incompatible with the
belief in determinism. Like all normal feelings, it must be justified by
something. But, so far as I can observe, it does not manifest itself in
weighty and important decisions; on these occasions one has much
more the feeling of a psychic compulsion and gladly falls back upon
it. (Compare Luther’s “Here I stand, I cannot do anything else.”)
On the other hand, it is in trivial and indifferent decisions that one
feels sure that he could just as easily have acted differently, that he
acted of his own free will, and without any motives. From our
analyses we therefore need not contest the right of the feeling of
conviction that there is a free will. If we distinguish conscious from
unconscious motivation, we are then informed by the feeling of
conviction that the conscious motivation does not extend over all our
motor resolutions. Minima non curat prætor. What is thus left free
from the one side receives its motive from the other side, from the
unconscious, and the determinism in the psychic realm is thus
carried out uninterruptedly.[76]
III. Although conscious thought must be altogether ignorant of the
motivation of the faulty actions described above, yet it would be
desirable to discover a psychologic proof of its existence; indeed,
reasons obtained through a deeper knowledge of the unconscious
make it probable that such proofs are to be discovered somewhere.
As a matter of fact phenomena can be demonstrated in two spheres
which seem to correspond to an unconscious and hence to a
displaced knowledge of these motives.
(a)It is a striking and generally to be recognized feature in the
behaviour of paranoiacs, that they attach the greatest significance to
the trivial details in the behaviour of others. Details which are
usually overlooked by others they interpret and utilize as the basis of
far-reaching conclusions. For example, the last paranoiac seen by
me concluded that there was a general understanding among people
of his environment, because at his departure from the railway-
station they made a certain motion with one hand. Another noticed
how people walked on the street, how they brandished their
walking-sticks, and the like.[77]
The category of the accidental, requiring no motivation, which the
normal person lets pass as a part of his own psychic activities and
faulty actions, is thus rejected by the paranoiac in the application to
the psychic manifestations to others. All that he observes in others is
full of meaning, all is explainable. But how does he come to look at it
in this manner? Probably here as in so many other cases, he projects
into the mental life of others what exists in his own unconscious
activity. Many things obtrude themselves on consciousness in
paranoia which in normal and neurotic persons can only be
demonstrated through psychoanalysis as existing in their
unconscious.[78] In a certain sense the paranoiac is here justified, he
perceives something that escapes the normal person, he sees clearer
than one of normal intellectual capacity, but his knowledge becomes
worthless when he imputes to others the state of affairs he thus
recognizes. I hope that I shall not be expected to justify every
paranoic interpretation. But the point which we grant to paranoia in
this conception of chance actions will facilitate for us the psychologic
understanding of the conviction which the paranoiac attaches to all
these interpretations. There is certainly some truth to it; even our
errors of judgment, which are not designated as morbid, acquire
their feeling of conviction in the same way. This feeling is justified
for a certain part of the erroneous train of thought or for the source
of its origin, and we shall later extend to it the remaining
relationships.
(b) The phenomena of superstition furnish another indication of the
unconscious motivation in chance and faulty actions. I will make
myself clear through the discussion of a simple experience which
gave me the starting-point to these reflections.
Having returned from vacation, my thoughts immediately turned to
the patients with whom I was to occupy myself in the beginning of
my year’s work. My first visit was to a very old woman (see above)
for whom I had twice daily performed the same professional services
for many years. Owing to this monotony unconscious thoughts have
often found expression on the way to the patient and during my
occupation with her. She was over ninety years old; it was therefore
pertinent to ask oneself at the beginning of each year how much
longer she was likely to live.
On the day of which I speak I was in a hurry and took a carriage to
her house. Every coachman at the cabstand near my house knew
the old woman’s address, as each of them had often driven me
there. This day it happened that the driver did not stop in front of
her house, but before one of the same number in a near-by and
really similar-looking parallel street. I noticed the mistake and
reproached the coachman, who apologized for it.
Is it of any significance when I am taken to a house where the old
woman is not to be found? Certainly not to me; but were I
superstitious, I should see an omen in this incident, a hint of fate
that this would be the last year for the old woman. A great many
omens which have been preserved by history have been founded on
no better symbolism. Of course, I explain the incident as an accident
without further meaning.
The case would have been entirely different had I come on foot and,
“absorbed in thought” or “through distraction,” I had gone to the
house in the parallel street instead of the correct one. I would not
explain that as an accident, but as an action with unconscious intent
requiring interpretation. My explanation of this “lapse in walking”
would probably be that I expected that the time would soon come
when I should not meet the old woman any longer.
I therefore differ from a superstitious person in the following
manner:—
I do not believe that an occurrence in which my mental life takes no
part can teach me anything hidden concerning the future shaping of
reality; but I do believe that an unintentional manifestation of my
own mental activity surely contains something concealed which
belongs only to my mental life—that is, I believe in outer (real)
chance, but not in inner (psychic) accidents. With the superstitious
person the case is reversed: he knows nothing of the motive of his
chance and faulty actions, he believes in the existence of psychic
contingencies; he is therefore inclined to attribute meaning to
external chance, which manifests itself in actual occurrence, and to
see in the accident a means of expression for something hidden
outside of him. There are two differences between me and the
superstitious person: first, he projects the motive to the outside,
while I look for it in myself; second, he explains the accident by an
event which I trace to a thought. What he considers hidden
corresponds to the unconscious with me, and the compulsion not to
let chance pass as chance, but to explain it as common to both of
us.
Thus I admit that this conscious ignorance and unconscious
knowledge of the motivation of psychic accidentalness is one of the
psychic roots of superstition. Because the superstitious person
knows nothing of the motivation of his own accidental actions, and
because the fact of this motivation strives for a place in his
recognition, he is compelled to dispose of them by displacing them
into the outer world. If such a connection exists it can hardly be
limited to this single case. As a matter of fact, I believe that a large
portion of the mythological conception of the world which reaches
far into the most modern religions is nothing but psychology
projected into the outer world. The dim perception (the endo-
psychic perception, as it were) of psychic factors and relations[79] of
the unconscious was taken as a model in the construction of a
transcendental reality, which is destined to be changed again by
science into psychology of the unconscious.
It is difficult to express it in other terms; the analogy to paranoia
must here come to our aid. We venture to explain in this way the
myths of paradise and the fall of man, of God, of good and evil, of
immortality, and the like—that is, to transform metaphysics into
meta-psychology. The gap between the paranoiac’s displacement
and that of superstition is narrower than appears at first sight. When
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookname.com

You might also like