Giter Site home page Giter Site logo

jease / jease Goto Github PK

View Code? Open in Web Editor NEW
29.0 9.0 30.0 392.53 MB

Jease is a Java CMS framework based on Object Database

Home Page: http://jease.org

License: GNU General Public License v3.0

Java 57.25% JavaScript 38.78% CSS 3.97%
java jease db4o cms demo solr lucene jpa java-development-kit cms-framework

jease's Introduction

===========================

Build Status License: GPL v3

Jease eases the development of content- & database-driven web-applications with Java.

New branch of Jesae with Relational Database released with name JeasePlus

Home Page

Demo

Demo Admin panel

Getting Started

1) Prerequisites

  • Download and install a recent Java SE Development Kit (Java SE JDK) or OpenJDK. Please note: You'll need a full Java Development Kit (JDK), a simple Java Runtime Environment (JRE) won't work.
  • Check your environment-variables: JAVA_HOME needs to point to the root-directory of your JDK.

2) Install

3) Start

  • Linux: Open a terminal and enter:
    jease/bin/catalina.sh run
  • Windows: Navigate to "jease -> bin" and double-click:
    startup (= startup.bat)

4) Setup

  • Open your browser and call:
    http://localhost:8080/cms/setup
  • Choose a name, login and password for the administration account. The password must contain at minimum 8 characters with mixed case, digits and symbols.
  • Now you're redirected to the login-page. Enter the login and password for the newly created administrator.
  • Have fun...

5) Login

6) (Optional) Config Solr

For use solr in your environment please read this tutorial: https://github.com/jease/solr-core

About

Jease eases the development of content- & database-driven web-applications with Java. Out of the box Jease provides an Ajax-powered Content-Management-System (CMS) which makes use of drag & drop to organize content.

  • A relational database that holds blog posts and users.

This project is just meant to be a demonstration, therefore it is neither well documented nor well tested. Use it to learn about the technologies used, but do not use it for productive applications.

Any feedback is welcome, and I will incorporate useful pull requests.

Technologies

  • DB4O db4o or Perst or ZooDB as object-oriented persistence engines
  • Lucene Lucene as high performance indexing and search technology.
  • Bootstrap
  • ZK ZK as component- & event-driven Ajax-Web-Framework.
  • Solr Apache Solr is the popular, blazing-fast, open source enterprise search platform built on Apache Lucene™.

Running

Make sure Maven >= 2.2.1 is installed on your system. Go into the project dir and type mvn clean package, then deploy war file generated in target folder on a java webserver like tomcat and then point your browser to http://localhost:8080.

Contribution

Please Join us Jease User Group at GoogleGroup https://groups.google.com/forum/#!forum/jease

RoadMap

  • Add configuration properties file
  • Change admin UI framework from zk to jsf based ui
  • Update lucene and use solr based search (Completed #141)
  • Add Shopping service and shopping cart
  • Add Email support
  • Add seo Setting (Completed #140 )
  • Add new responsive themes (Completed #133)

Twitter

@jease18

Facebook

Jease on facebook

License

GPL 3

jease's People

Contributors

ghaseminya avatar jablonski avatar slavap avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jease's Issues

strange JS behaviour in cms mode

When using cms mode (localhost:8080/cms/) to add new nodes, some times the
JS jumps to a second open browser window instead of going back to the main
wondow in background.
Seens to be an unwanted side effect.
The concrete condition when this behaviour happens is unclear.
After a close and reopen of the browser the error disappears.

Original issue reported on code.google.com by [email protected] on 6 Apr 2010 at 10:04

More Audit / Logging (e.g. for Revisions)

1) The simple approach: we could add a simple field "log" to each
content-object which stores this kind of information in parallel to he
revision-blob-array. The entries in both arrays need to be in sync
which shouldn't be a problem, but it feels not right from an
object-oriented perspective... this leads to the second idea...

2) Instead of storing an array of "plain blobs", we could create a
dedicated Revision-Object (which holds a reference to the xml-blob and
could store additional log-infos like user or timestamps) and store an
array of Revision-Objects. In order to make this work, we need some
kind of migration script which needs to be executed to transfer the
"old plain blob revisions" into appropriate Revision-Objects. Should
be fairly straightforward to do and running a migration script should
be acceptable for an administrator.

3) We could implement some kind of central logging/auditing-service
which stores all necessary informations regardless of the revision
support. The revsision support could now ask the
logging/auditing-service to retrieve more meaningful informations for
the selection. The central logging/auditing-service could also be used
to display latest changes in a seperate tab and so on. This would give
an administrator an overview what happens in the system.reproduce the problem?

Original issue reported on code.google.com by [email protected] on 7 Oct 2010 at 7:39

Blog/Discussions

Introduce a Discussion-Content-Type which allows to create more Blog-like sites 
with comments.

Idea: create Discussion as container so that threading is easily possible and 
only one additional content-type is needed.

For the website some kind of good captcha is needed.

Original issue reported on code.google.com by [email protected] on 5 Jan 2011 at 1:51

on refresh problem

when login cms and  refresh  the page .
and will be logout and must  re-login 
tomcar 6
jdk 6u18

Original issue reported on code.google.com by [email protected] on 21 Aug 2010 at 6:56

Interface for pluggable authentification

Authentification (matching the login with the password) should be configurable. 

First idea: using a Predicate as interface (retrieving the login as parameter) 
and specify the implementation in the web.xml.

Original issue reported on code.google.com by [email protected] on 7 Dec 2010 at 8:33

Day-based removal of Revisions

At the moment only a configurable number of revisions is kept. It is useful to 
keep also revisions which are not older than a specified amount of days (e.g. 
keep all revisions which are not older than 30 days).

The meaning of the parameters should be cleared up:

- S1: Keep at minimum x revisions.
- S2: Keep all revisions which are not older than y days.

If S1 <> S2, take the bigger set.

Original issue reported on code.google.com by [email protected] on 2 Dec 2010 at 9:14

ZK-Wrapper for CodeMirror

CodeMirror (http://marijn.haverbeke.nl/codemirror/) is a very good
in-browser-code-editor. A ZK-Wrapper could allow to edit JSPs (via
Transit-Objects) through the web very nicely.

Original issue reported on code.google.com by [email protected] on 11 Apr 2010 at 1:50

Investigate integration of ZUL-Scripts

Script allows to add dynamic content for which an appropriate servlet is 
configured via an extension.

ZUL works (more or less), but including it dynamically in a full-blown layout, 
shows some glitches (rain bow for trendy buttons and so on).

Original issue reported on code.google.com by [email protected] on 7 Oct 2010 at 7:41

Publication Date for News

The News-item needs a user-editable publication date. The last
modification date isn't sufficient even in simple cases (think of
re-saving a News two weeks later because of a simple typo). Also the
News-List in the public layout example should show the publication
date (think of release-announcements on jease.org).

Original issue reported on code.google.com by [email protected] on 12 Dec 2009 at 2:58

VirtualHosting

Create some means (Site-Object?) to ease the hosting of multiple domains.

Original issue reported on code.google.com by [email protected] on 23 Feb 2010 at 10:41

Scan predefined custom packages for extensions

It is useful to separate jease.cms from custom extensions made by users to ease 
the deployment. A parallel package structure which resembles the original one 
could solve this issue.

jease.custom.domain
jease.custom.service
jease.custom.web

Maybe even some kind of meta-definition for a custom package is needed, so that 
a user can deploy several independant extensions.

Original issue reported on code.google.com by [email protected] on 9 Dec 2010 at 12:00

Example for database application

Jease is not only about content-management, but allows to create
"traditional" database-applications. I'm currently thinking of a
good-use-case (not too complex, but complex enough to show how easy it
is to edit/persist complex objects with a proper domain model). If
someone has an idea for a simple database which would make a good
example, please speak up, maybe you can get an database-application
with an Ajax-interface for free...;-)

Original issue reported on code.google.com by [email protected] on 12 Dec 2009 at 3:00

Improved object reference integrity check

An improved object reference integrity check is needed (this is a
common problem for object databases: how to be sure, that an object
you're going to delete isn't referenced by another object in your
persistence graph anymore). The current implementation (traversing the
object-graph) works well for database-like object-models, but it is a
little bit too costly for deeply nested content-hierarchies (like used
within Jease).


Original issue reported on code.google.com by [email protected] on 12 Dec 2009 at 2:57

zk spreadsheet does not work with "Jease 1.5" - jease.cmf.web.servlet.JeaseServletFilter.doFilter line 73 - Cannot inherit from final class

zk spreadsheet does not work with "Jease 1.5"

I wanted to see if the latest code as of today (12/27/2010) would work
with the zk spreadsheet, but unfortunately I did not see a war task in any of 
the ant build files.

Here is an abbreviated and full exception messages:

...
exception

javax.servlet.ServletException: Servlet execution threw an exception
    jease.cmf.web.servlet.JeaseServletFilter.doFilter(JeaseServletFilter.java:73)

root cause

java.lang.VerifyError: Cannot inherit from final class
...

------------------------------------------------------------

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from 
fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception
    jease.cmf.web.servlet.JeaseServletFilter.doFilter(JeaseServletFilter.java:73)

root cause

java.lang.VerifyError: Cannot inherit from final class
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2733)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1124)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1612)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
    java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    org.zkoss.zss.model.impl.ExcelImporter.importsFromStream(ExcelImporter.java:114)
    org.zkoss.zss.model.impl.ExcelImporter.importsFromURL(ExcelImporter.java:88)
    org.zkoss.zss.ui.Spreadsheet.getBook(Spreadsheet.java:340)
    org.zkoss.zss.ui.Spreadsheet.getSelectedSheet(Spreadsheet.java:417)
    org.zkoss.zss.ui.Spreadsheet.renderProperties(Spreadsheet.java:957)
    org.zkoss.zk.ui.AbstractComponent.redraw(AbstractComponent.java:1714)
    org.zkoss.zk.ui.sys.HtmlPageRenders.outPageContent(HtmlPageRenders.java:607)
    org.zkoss.zul.impl.PageRenderer.renderDesktop(PageRenderer.java:79)
    org.zkoss.zul.impl.PageRenderer.render(PageRenderer.java:55)
    org.zkoss.zk.ui.impl.PageImpl.redraw(PageImpl.java:822)
    org.zkoss.zk.ui.impl.UiEngineImpl.redrawNewPage(UiEngineImpl.java:565)
    org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:472)
    org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:305)
    org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:225)
    org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:146)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    jease.cmf.web.servlet.JeaseServletFilter.doFilter(JeaseServletFilter.java:73)

Original issue reported on code.google.com by [email protected] on 27 Dec 2010 at 10:14

Limit Link-/Image-Browser in FCKEditor to content accessible by User-Session

At the moment the Link-/Image-Browser allows to view the contents of a
complete Jease-Site (regardless if the user has the rights to edit the
content or not). This might impose some security concerns, so the safe-bet
is to limit the accessible content via FCKEditor to objects reachable
through the JeaseSession.

Original issue reported on code.google.com by [email protected] on 23 Feb 2010 at 10:44

Plugin architecture for new ContentTypes

> My sujestion is to build some kind of plugin package providing a way
> to add new content types without rebuild the entire application.
> Most probably you must get rid of the Configuration file. This is
> something that need to be dynamic, located in the database and loaded
> with the registry of the plugin package.

The current Configuration is just a simple example which information
needs to be injected into Jease. Currently it uses a "declarative
programming" approach: why code something in XML or text-config-files
when it can be done with all the comfort of an Java-IDE?

But nevertheless you have a good point: if the configuration is build
dynamically at startup, it is much easier to throw in a content-plugin
(containing class-definition for content-type with appropriate editor
and maybe an nice icon) and make it work without additional hand-coded
configuration. It should be quite easy to switch out the current
Configuration implementation with a more dynamic one, but I don't
think that we can do without any Configuration object at all (think of
it as a kind of service).

Do you want to contribute and specify how such a plugin should be
done? You don't have to do the coding (although I would appreciate
it), but maybe you can provide some ideas how the plugin-architecture
should look in detail (e.g. directory layout of plugin, format of
meta-information, etc.pp.)?

Original issue reported on code.google.com by [email protected] on 12 Dec 2009 at 3:01

Investigate support for JCR

Don't know if it is possible to support JCR **easily**, but reading through the 
spec should give some (new) ideas at least.

Original issue reported on code.google.com by [email protected] on 7 Dec 2010 at 8:35

Symlink for jease.cms

Some kind of "Symlink" would be nice. E.g. publishing the same News
in different folders without having to copy the News-item would be
nice (think of identical Newslists on Frontpage and Downloads on
jease.org)

Original issue reported on code.google.com by [email protected] on 12 Dec 2009 at 2:59

zk spreadsheet does not work with the latest version of jease (12/28/2010)

I reported the zk spreadsheet issue yesterday (12/27/2010) for jease version 
1.5.

The same problem also still happens for the latest version of jease (exception 
of cannot inherit from final class).

I tried the latest version of jease today (12/28/2010) and figured out how to 
deploy the ant build without a war task to a fresh tomcat install (also deleted 
jease db files in home dir).

If I'm doing something wrong (make zk spreadsheet work in jease), could you 
create a working example that shows the zk spreadsheet working in jease? I've 
had no problem making the zk spreadsheet work before (for some unknown reason 
in just won't work in jease).

Thanks,

Laurence

Original issue reported on code.google.com by [email protected] on 28 Dec 2010 at 7:57

JPG images loose quality on upload

See:

http://groups.google.com/group/jease/browse_thread/thread/e0fe2555cb13015f

Change jfix.zk.Mediafield so that no image conversion takes place when no 
rescale is requested by user (= no change in width/height).

Additionally add onChangeListener on width/height, so that the new ratio is 
immediately displayed in GUI. Therefore refactoring into public method of 
ratio-calculation in jfix.util.Images is needed.

Original issue reported on code.google.com by [email protected] on 5 Dec 2010 at 8:31

Lazy Tree/Model implementation

Improved Tree/Model implementation which only sends
visible Treeitems to browser. The current ZK-implementation sends the
whole tree at once (although only a little part is visible), which
gives a very good user experience (opening a node is very fast), but
makes updates to pages containing large nested trees very costly.
Additionally it can slow down the browser considerably.

Original issue reported on code.google.com by [email protected] on 12 Dec 2009 at 2:58

Implement support for sending Mails

Include JavaMail-API so that mails can be send via Jease.

Open decisions:

- where to store the smtp-config? File-System or Content-Type ala MailHost?
- Content-Type for MailTemplate which allows place-holders?

Original issue reported on code.google.com by [email protected] on 9 Jan 2011 at 3:03

Exception StandardWrapperValve invoke

What steps will reproduce the problem?
1. Open Project in NetBeans 6.7.1
2. Deploy it
3. goto http://localhost:8084/Jease/design/dynamic/Newslist.jsp or any 
other existing page.

got
org.apache.jasper.JasperException: An exception occurred processing JSP 
page /design/dynamic/Newslist.jsp at line 4

1: <%@page 
import="jfix.util.*,jease.cmf.domain.*,jease.cmf.service.*,jease.cms.domain
.*"%>
2: <%
3:  Folder folder = (Folder) ((Node) request.getAttribute("Node"))
4:          .getParent();
5:  for (News news : folder.getVisibleChildren(News.class)) {
6:      if (Validations.isEmpty(news.getTeaser())) {
7: %>


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException
(JspServletWrapper.java:505)
    org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:416)
    org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter
(MonitorFilter.java:390)


root cause 

java.lang.NullPointerException
    org.apache.jsp.design.dynamic.Newslist_jsp._jspService
(Newslist_jsp.java:59)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:342)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter
(MonitorFilter.java:390)



Original issue reported on code.google.com by [email protected] on 9 Nov 2009 at 8:06

Introduce User-Groups

In order to reflect the requirements of larger organizations, it would be 
helpful to introduce the concept of a "user-group". A User-Group stores 
references to folders which all users within the group should be able to edit.

A user holds references to several user-groups.

Original issue reported on code.google.com by [email protected] on 7 Oct 2010 at 10:10

Plugin-Content-Object

Example for a binary content-type (e.g. Flash) which is rendered as a Page
(via an embedded Player).

Original issue reported on code.google.com by [email protected] on 19 Mar 2010 at 4:13

Implement a customizable NodeFilter

Per default Jease displays all Nodes in NavigationTree / ContentTable. It would 
be nice to specify a NodeFilter which only makes a filtered subset of the nodes 
accessable in the CMS. E.g. filter out all Nodes for with the user has no 
privileges.

Original issue reported on code.google.com by [email protected] on 22 Dec 2010 at 9:30

Prototype-Object with sync feature for properties = virtual classes

With existing PropertySupport it should be easily possible to create some kind 
of "Prototype"-Object which defines a virtual class by synchronizing properties 
between a group of prototypes.

Same idea as already and successful used here:

http://www.iungo.org/products/PropertyTools

Original issue reported on code.google.com by [email protected] on 2 Dec 2010 at 9:17

Trashbin instead deletion of content?

Instead of deleting content directly, a Trashbin might be useful. Problem
is: how to regulate access and prevent users from "working" within Trashbin.

Original issue reported on code.google.com by [email protected] on 10 Mar 2010 at 7:18

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.