deck.tab.location=top
deck.tab.spacer=10px
deck.tab.active.background = #ffffff
deck.tab.inactive.background = #600d22
deck.tab.active.border=3px solid #600d22
deck.tab.inactive.border=1px solid #600d22
deck.card.border=1px solid #600d22
deck.startHidden=true
deck.memory.duration=0
Hello and welcome to the Education Systems - Common Services Framework wiki.
This wiki space is intended as a guide for developers and others to the Common Services Framework (CSF). This is what we call the foundation that most of our web applications are built on. CSF replaces the older "SAIS Common" framework, and is designed in a more modular fashion.
One of the main aims of the wiki is to help developers get the answers to these questions:
Where can I find stuff?
There is a lot of good stuff in CSF, but it's not always obvious what's there and where to find it. We want this wiki to help you learn what's available so you can just use it, rather than spend time writing your own version.
Where do I put stuff?
Sometimes we need to add new stuff to CSF and it may not be clear where it should go. Our wiki is here to help you put stuff in the right place.
How should I do stuff?
What are our coding standards? Should I use annotations? All these questions and more will be answered by the wiki.
And if you have a question that isn't covered here, drop us a line: csf-support@mit.edu.
Help is available by sending an email to csf-support@mit.edu
Have any suggestion on how improve this wiki? Please give us your feedback at csf-support@mit.edu
If you need help setting up Eclipse, SVN, OC4J, Maven, ES Projects etc., then you're found the right place.
About this TAB
The topics presented in this TAB are primarily designed for the software developer who:
- is a new hire and needs to configure his/her workstation, or
- has a new workstation and needs to get it configured, or
- has a need for a Maven WAR or JAR artifact which is not related to an on going ES project (e.g. A Proof of Concept project), or
- has a need to add a new artifact (WAR or JAR) to an existing ES project.
Quick Links to:
- About this TAB
- Education Systems developer VMs
- Workstation configuration
- General
- Eclipse Indigo - Eclipse IDE for Java EE Developers
- Eclipse MyEclipse
- Education Systems Maven projects
- Available for downloading
Education Systems developer VMs
Workstation configuration
- General
- Eclipse Indigo - Eclipse IDE for Java EE Developers
- Download and Installation
- Java JDK installation and configuration
- Subversion installation and configuration
- OC4J server installation and configuration
- Tomcat 7 server installation and configuration
- Maven installation and configuration
- m2e Subversive Connector installation and configuration
- JVM memory configuration
- Eclipse MyEclipse
Education Systems Maven projects
An Education Systems (ES) project will typically consist of 2 Maven artifacts. These Maven artifacts are:
- Only one Maven WAR artifact which contains all the WEB facing (i.e. jsp's, controllers, css, js, ...) components of the ES project.
- At least one Maven JAR artifact which contains all the support (i.e. services, daos, hibernate mapping, ...) components of the ES project.
The following are the instructions on how the create and configure an ES Maven WAR or Maven JAR project.
- Selecting names for your project
- How to create an ES Maven JAR project using the JAR template
- How to customize the ES Maven JAR project pom.xml
- How to create an ES Maven WAR project using the WAR template
- How to customize the ES Maven WAR project pom.xml
The following are instructions on how to writing unit tests
Available for downloading
- MAC plugin for managing Environmental Variables
- project.properties (right click on this link then select Save target as.... Navigate to your ${user.dir}/<projectName> directory and click Save)
- settings.xml (right click on this link then select Save target as.... Navigate to your ${user.home}/.m2 directory and click Save)
This link contains instructions on how to configure the settings.xml file. - Other keystore downloads
Help is available by sending an email to csf-support@mit.edu
Have any suggestion on how improve this wiki? Please give us your feedback at csf-support@mit.edu
CSF Releases and Snapshots
Overview
- The CSF Version 1.0.x series is now deprecated and will be replaced fully by version 2.0.x in the Summer of 2013.
- Version 1.0.x is now on a branch, and applications using this version will be brought to version 2.0.x by the Summer of 2013.
- Version 2.0.x is the trunk, and is using an upgraded version of Hibernate: 3.6.10. Further details are in the change logs below.
Branches
Change logs
Help is available by sending an email to csf-support@mit.edu
Have any suggestion on how improve this wiki? Please give us your feedback at csf-support@mit.edu
Quick Links to:
Database Standards
Conventions and Standards
A special thanks to Ryan Jones for contributing to the following conventions and standards.
Code Reviews
- Code Review procedures and checklist.
Hibernate
Hibernate is a complete topic unto itself. Some documents explaining Hibernate esoterica and some desired practices:
Transactions
It is important to understand how database transactions are configured in our web apps. Here is some discussion:
Help is available by sending an email to csf-support@mit.edu
Have any suggestion on how improve this wiki? Please give us your feedback at csf-support@mit.edu
Quick Links to:
CSF Architecture
- Java Web Applications
- CSF design and components
CSF Services
- AuthorizationServices
- Email Services
- Message Rules Engine
CSF Security
Help is available by sending an email to csf-support@mit.edu
Have any suggestion on how improve this wiki? Please give us your feedback at csf-support@mit.edu
Acegi Security and Spring Security
We are currently in transition from the older Acegi Security framework to the more modern Spring Security.
CSF Security and non-MITSIS Apps
In the near future (as of July 2013), we may need to be able to plug CSF Security into non-MITSIS apps - for example, administrative/SAP apps. We have done a proof of concept, showing that CSF Security can easily be used in a non-MITSIS app. Thie following page documents the details of the proof of concept and is a guide for how to use CSF Security outside the MITSIS environment.
Hash Authentication for APIs
We have developed a "hash authentication" feature for APIs. This is an optional part of CSF Security.
Switch User Once - Stateless Impersonation
Impersonation for stateless web apps (e.g. APIs). This is an optional part of CSF Security.