You are on page 1of 36

Blandware AtLeap

Introduction
Andrey Grebnev
andrey.grebnev(at)blandware.com

© 2002-2008 Blandware.
Overview
• Blandware AtLeap is the Java multilingual
Website Content Management System
• Blandware AtLeap is an application for rapid
start of web applications development
• Blandware AtLeap is FREE Open Source
Software under the Apache 2.0 license
• Cross-platform, 100% pure Java™
• Blandware AtLeap is the project on Enterprise
java.net community site http://atleap.dev.java.net
© 2002-2008 Blandware.
The basis is AppFuse
• Blandware AtLeap is initially AppFuse
based project http://appfuse.dev.java.net/
• AppFuse is being developed since 2002
year
• AppFuse is being developed by Matt
Raible, the author of ”Spring in Live” and
member of J2EE1.5 Expert Group

© 2002-2008 Blandware.
Destination
Internet sites Web applications
• Blandware AtLeap • Blandware AtLeap
does not restrict the allows you to develop
ideas of your Web secure, stable,
graphical designer. reliable web
• It allows you to create applications with
unique, exceptional complicated business
solution for you or logic.
your customer.

© 2002-2008 Blandware.
Software requirements
• Blandware AtLeap can be run on free open source software.
• It does NOT require heavy or expensive EJB application servers.
• Apache Tomcat 5.x, 6.x, Caucho Resin 3, JBoss 4, Geronimo 1,2,
IBM WebSphere Community Edition 1, ObjectWeb JOnAS 4, Bea
WebLogic 9, IBM WebSphere 6, Jetty 5, Sun Java System AS 8, 9,
Oracle AS 10.1.3 or any other servlet container which implements:
– JSR 152: Java Server Pages™ 2.0,
– JSR 154: Servlet™ 2.4.
• Sun, IBM, Bea JRockit JDK 1.4.2 or later
• Apache Ant 1.6.2 or later
• Relational DBMS: MySQL, PostgreSQL, Hypersonic, Oracle, IBM
DB2, MS SQL, Derby, Interbase etc.

© 2002-2008 Blandware.
Awards and testimonials
• Second place in Java contest of Sun Microsystems
corporation www.javakonkurs.ru
• Second place in software developers contest of Intel
corporation www.intelcup.ru
• Hong Zhang said about AtLeap's deployment process:
"The whole process went pretty smooth... The
instructions that Andrey provided are very
straightforward and easy to follow. The actual
deployment was like a breeze.“
Hong Zhang,
Member of Technical Staff,
Sun Microsystems.
© 2002-2008 Blandware.
Architecture
• Blandware AtLeap is Web Server

Ant, XDoclet, DocBook,CheckStyle, PMD


based on modern

JUnit, DBUnit, HtmlUnit, JMock


Servlet Container
industry free open Struts+Tiles, FCKEditor (or
TinyMCE)
source technologies. MVC
• It uses best practices OSCache

Log4j
Spring Acegi
and design patterns DAO

of Sun Microsystems, Hibernate Lucene


+EhCache
JCP (Java
Community Process) JDBC driver POI, PdfBox

and other. RDBMS

© 2002-2008 Blandware.
Security
• About 130 hard-coded roles.
• Facility to add dynamical roles.
• 3 pre-created groups.
• Ternary relationship between users, roles
and groups.
• Authentication using Acegi.
• “Remember me” function.
• SSL support.
© 2002-2008 Blandware.
Model2 of MVC design paradigm
• Apache Jakarta Struts is the heart of Blandware AtLeap.
• Struts are being developed since 2001 year.
• There are many tools which has integration with Struts.
• Struts:
– Separation of logic, style and data.
– Server and client side validation of input forms.
– Transparently saves state information and repopulates forms
when they redisplay.
– Prevention of double form submission.
– Rich JSP tag library.
• One of the main Struts components is Action. The action
is Java method that encapsulates application business
logic.

© 2002-2008 Blandware.
Struts Tiles
• Tiles is templating library
that allows you to Tile - header
construct views by
combining various “tiles”
specified by definitions in Tile
XML file.

Tile – right column


• Several tiles can be
included into another one. Tile Tile - body
• The tile can extend
another and override
included tiles. Tile
• Some action can be
performed before tile
displaying. Tile - footer

© 2002-2008 Blandware.
Content Fields
• The content field is a editable
area of the page. Field - header
• Any tile can have one or
several content fields with text
for each language. body[i]
• 3 types of fields:
– Single line text body[0]
– Multi line text
– HTML edited via WYSIWYG
editor body[1]
• The field has unique identifier.
• The field can be indexed to body[2]
repeat block that is too
complex to edit via editor.
• The fields location is defined in
JSP by special tags. Field - footer

© 2002-2008 Blandware.
Sequences
• Sequence contains a list
of links to Pages or
Resources.
• Any tile can have one or
pages[i]
several sequences.
• 2 types of sequences: item[0]
– Sequence of pages
– Sequence of resources item[1]
• The sequence has unique
identifier. item[2]
• The sequences are
iterated in JSP using
special tags.

© 2002-2008 Blandware.
Layout
• The layout bases on most outer tile definition (tile of the page
as a whole).
• The layout can extend another together with its tile definition.
• The layout specifies the language dependent values for each
content field and sequences which are allowed here.
• The child layout can override some fields (and/or sequences)
from parent layout and/or add new ones.
• You can enable/disable and move tiles in the scope of
containers using admin console.

© 2002-2008 Blandware.
Content Page
• The content page abstraction allows you to have
as many pages with static content as you wish.
• The content page is entirely virtual page stored
in DB.
• You can specify content page URL (search
engine friendly).
• The content page bases on layout.
• The content page can override some fields
(and/or sequences) from layout.
• You can dynamically specify roles to restrict
access to the content page.
© 2002-2008 Blandware.
Action Page
• The action page abstraction allows you to edit
content even on pages that are dynamically
generated usually depending on database data.
• The action page is the result of performing some
struts action.
• The action page bases on layout implicitly
(runtime).
• The action page can override some fields
(and/or sequences) from layout and/or add new
ones.
• You can specify roles in XML file to restrict
access to the action page.
© 2002-2008 Blandware.
Class model of AtLeap ideology

Localizable

Page
Field Layout
-uri
-identifier -tile definition
-roles

Value
-language ActionPage ContentPage
-value

© 2002-2008 Blandware.
Resources
• You can upload the resources (files,
documents and images) from local
computer into Blandware AtLeap.
• The resources are stored in the DB.
• The images support thumbnails.
• The documents support preview of the
beginning of the text.
• You can dynamically specify roles to
restrict access to the resource.
© 2002-2008 Blandware.
Menus
• Blandware AtLeap has a flexible hierarchical menu
system.
• You can specify menu items for some layout and then
override them on the child layout or content (or action)
page.
• Menu item has language dependent title and tooltip.
• You can make link by selecting from list of available
content (or action) pages or files.
• You can insert menu item icon by selecting thumbnail
from list of available images.
• You can dynamically specify roles to restrict access to
each menu item.
© 2002-2008 Blandware.
WYSIWYG HTML editor
• Blandware AtLeap uses two editors FCKEditor and TinyMCE to edit
HTML content field values. You can dynamically switch to more
preferred one.
• Editors are compatible with IE5.5+, Gecko (Mozilla 1.3+, Firefox 1.0
+, Netscape 7+), Opera 9.5+ and Safari 3.0+ browsers.
• Rich font and text formatting, Links, Images, Flashes, Tables.
• Cut and Paste, Undo-Redo, paste from Word.
• XHTML and CSS support.
• Spell checker using ieSpell.
• You can make link by selecting from list of available content (or
action) pages or files.
• You can insert image by selecting thumbnail from list of available
images.

© 2002-2008 Blandware.
Edit mode
• You can navigate on your site and choose fields
to edit by double mouse click or using context
menu.
• Multi-user work. If somebody has already edited
the field you are currently editing, you will not
lose the data. You can merge the field values.
• If your HTTP session has been invalidated while
you are editing, you will not lose the big data.

© 2002-2008 Blandware.
Internationalization
• Fully UTF-8 compliant.
• The site content is on several languages
simultaneously.
• 100% of content are stored in the database. You
can edit any data using web interface.
• AtLeap allows to index all available pages on all
languages by external search engines (Google,
Yahoo, etc)
• The administrative console on: English, Russian,
Chinese, German, Italian and Spanish
languages.

© 2002-2008 Blandware.
Full text search engine
• Embedded full text search engine based on Apache
Lucene.
• Many languages: English, Spanish, Russian, German,
French, Portuguese, Norwegian, Dutch, Japanese,
Chinese, Korean, Czech, Greek etc.
• Taking into account inflexions and stop words.
• Indexing the following document formats: RTF, PDF,
Word, Excel, PowerPoint, HTML, ODF, XHTML, XML,
TXT.
• Highlighting search words in results.
• Search results taking into account page permissions.

© 2002-2008 Blandware.
Email templates
• Sending emails generated using multilingual templates
– plain text
– HTML with inline image includes.
• You can specify following template’s attributes for each
language:
– From
– Subject
– Charset
– Body.
• Templates are preprocessed by Velocity engine, it
means you can make variable substitutions, conditions,
iteration etc.

© 2002-2008 Blandware.
Usage dependencies
• Bidirectional links between Field Values,
Menu items and Resources and Pages
allow to:
– Prevent deleting linked pages and resources
– Prevent appearing “broken” links
• If you change the URL of some
ContentPage (or Resource) almost all
links can be automatically replaced.

© 2002-2008 Blandware.
Documentation & Support
• Detailed online description of
Administrative console functionality.
• More than 150 pages of documentation in
Admin Guide and Developer guide.
• Wiki
• Mailing lists
• Forums
• Issue tracker
© 2002-2008 Blandware.
Modules
• “News” with publication and expires dates.
• “Testimonials” with random showing.
• “Contact us”.
• “Site map” with auto generation.
• “Forums” with watching forum and/or topic.
• “Questionnaires”
– custom question form creation;
– types of questions: line, multi-line, checkbox, radiobutton, list,
multi-list
• “Statistics” of visitors with properties:
– browsers, monitor resolution,
– entry pages, exit pages, browsing paths,
– search engines, search keywords, etc…

© 2002-2008 Blandware.
JSP tag library
• Blandware AtLeap has its own flexible JSP tag
library (more than 60 tags) that includes tags for
representing list structured entities.
• Grid (table) tags provide:
– columns sorting
– pagination of long lists
– columns filtering for following types:
• string
• date
• number
• set
– heterogeneous data (e.g. folders and items)

© 2002-2008 Blandware.
Data storage
• Blandware AtLeap uses Hibernate:
– Transparent persistence
– Object-oriented query language
– Flexible object-relational mapping
– Dual layer cache architecture (including query caching)
– Optimistic concurrency control (application transaction)
– Database transactions: rollbacks and pessimistic locking
– Support for wide range of DBMS (about 16)
• Blandware AtLeap uses Spring:
– JavaBeans-based configuration management
– Abstraction layer for transaction management (propagation)
• Blandware AtLeap uses DAO (Data Access Object)
design pattern.

© 2002-2008 Blandware.
Effective cache system
• Reduce costs of database operations.
• Three-tier cache system (using EHCache and
OSCache)
– First and second level cache in Hibernate.
– Third level cache for content fields, menus, resources,
etc.
• In-memory or on disk caching.
• Multiple caching algorithms LRU (Last Recently
Using), FIFO (First In First Out) or unlimited.
• Flexible management system of browser
caching: expiration and validation.

© 2002-2008 Blandware.
Logging
• Blandware AtLeap has many log statements in
its code on several levels (error, warn, info,
debug).
• Blandware AtLeap uses Log4j via Commons-
logging.
• The log message can be forwarded into:
– console
– file
– remote log4j server
– remote Unix Syslog daemon
– Windows NT event logger
– or even emailed.
© 2002-2008 Blandware.
Building
• Blandware AtLeap uses Apache Ant – java
based build tool:
– as Make without Make’s wrinkles
– full portability of pure Java code
• Blandware AtLeap uses XDoclet as code
generation engine. It enables Attribute-Oriented
Programming for Java.
• XDoclet can generate for you many routine Java
sources and XML-descriptors.

© 2002-2008 Blandware.
Backup
• Blandware AtLeap uses DBUnit to import and
export data from database.
• You can make the backup (snapshot) of DB into
database independent XML format.
• You can backup/restore data via Admin console
at runtime.
• You can upload/download DB snapshots.
• AtLeap can backup automatically.

© 2002-2008 Blandware.
AtLeap built on AtLeap
Blandware AtLeap is developed using its
own facilities. It means it provide many
good design patterns and examples in its
source code.

© 2002-2008 Blandware.
Code generation
• Code for a new entity may be generated with a single
command
• Generated entity is fully-functional
• DAO/Service and Actions/JSPs for web-pages may be
generated on demand
• If web-pages generation is requested, CRUD pages and
front-end pages are generated (if needed)
• Special cases of entities are generated: localizable and
page (allowing complex field-based localizable fields)
• Such complex html fields are indexed, links are
extracted
© 2002-2008 Blandware.
AtLeap Lite on PHP
• If the Java is too heavy for you try AtLeap
Lite which is based on PHP.
• FCKEditor for WYSIWYG-editing.
• Dynamic pages and menus.
• Resources management.
• News and Catalog features.
• Fine grained access control.

© 2002-2008 Blandware.
The end

Leap your problems with Blandware


AtLeap.
https://atleap.dev.java.net

© 2002-2008 Blandware.