Title: Extend Apache Rave to build your own portal Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. One of the (main) goals of Apache Rave is to create an extendible platform. This document is to help Apache Rave users (developers) to customize Apache Rave based on needs. To get you started we have created a Sandbox and created a vanilla extension that shows how to implement CustomUserService and to personalize login page look and feel. The main objective of the vanilla extension is to provide reusable build environment with minimal required dependencies. Extension developers will be able to use the POM file provide and add additional project dependencies. ## Prerequisites The current version of Apache Rave must be in your local Maven repository. To do this, [check out Apache Rave from SVN][1] and build with "mvn clean install". ## Vanilla Extension Location svn co http://svn.apache.org/repos/asf/rave/sandbox/rave-extensions/rave-vanilla-extension cd rave-vanilla-extension mvn clean install cd rave-vanilla-extension-portal mvn cargo:start or mvn cargo:start -f rave-vanilla-extension-portal/pom.xml ## Best Practices - Add new javascript functions to new file or copy existing functions to new file and customize them and change imports based on your need. Reason is, changes/fixes in rave libraries should come to your project. - If you are are customizing css or adding new css methods add new files so that changes in default css files will come to your portal - Report any bug or issue to [Apache Rave JIRA][2] ## Customizations - User Service : Extension implements rave UserService interface as CustomUserService. To use CustomUserService for login you need to update Application Security context provided in ~/src/main/webapp/WEB-INF/applicationContext-security.xml and add name for customUserService. - Login page : This is just to demonstrate that if you have your own login page and style sheets you can copy them to right location and they will be included in portal war along with other portal files. If you will have the same files name as in portal war, they will be replaced with your version of files. [1]: ../source.html [2]: https://issues.apache.org/jira/browse/RAVE