Delete unwanted files
This commit is contained in:
@@ -1,4 +0,0 @@
|
||||
[submodule "apps/community-app"]
|
||||
path = apps/community-app
|
||||
url = https://github.com/openMF/community-app.git
|
||||
branch = develop
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
# This (sudo: false) is needed to "run on container-based infrastructure" on which cache: is available
|
||||
# http://docs.travis-ci.com/user/workers/container-based-infrastructure/
|
||||
sudo: false
|
||||
language: java
|
||||
jdk:
|
||||
- openjdk7
|
||||
script: ./travis_build.sh
|
||||
notifications:
|
||||
email: true
|
||||
# This is so that the Gradle output is readable on the Travis web console
|
||||
# @see http://stackoverflow.com/questions/17942819/how-can-i-get-clean-gradle-output-on-travis-ci
|
||||
# @see http://gradle.1045684.n5.nabble.com/Plain-console-output-td5710237.html
|
||||
env:
|
||||
- TERM=dumb
|
||||
# http://docs.travis-ci.com/user/caching/#Arbitrary-directories
|
||||
cache:
|
||||
apt: true
|
||||
directories:
|
||||
- $HOME/.gradle
|
||||
- $HOME/.m2
|
||||
-2043
File diff suppressed because it is too large
Load Diff
@@ -1,6 +0,0 @@
|
||||
Contributors
|
||||
=====
|
||||
|
||||
List of code contributors on the mifosplatform codebase (mifosx) can be viewed @ https://github.com/openMF/mifosx/contributors
|
||||
|
||||
List of code contributors on applications built on mifosplatform such as the reference app (IndividualLendingJavascript) can be viewed @ https://github.com/openMF/mifosx-community-apps/contributors
|
||||
@@ -1,26 +0,0 @@
|
||||
# Getting started with Mifos X
|
||||
Instructions for getting started are located at https://mifosforge.jira.com/wiki/display/MIFOSX/Getting+started+-+Contributing+to+MifosX
|
||||
|
||||
# Pull Request Checklist
|
||||
Before sending out a pull request, please ensure that the following pre-requisites are taken care of
|
||||
|
||||
1. API documentation has been updated to reflect any changes made to the API (new API's, adding new Fields or Options to existing API etc)
|
||||
|
||||
1. Any relevant database changes are encapsulated in an SQL file with the next avilable version number at https://github.com/openMF/mifosx/tree/develop/mifosng-provider/src/main/resources/sql/migrations/core_db. These patches are automatically applied by Flyway on server startup.
|
||||
For any modifications to the schema which affects data on existing installations (Ex: moving columns to new table etc), ensure that the upgrade scripts are also accompanied by data migration scripts in the same patch file
|
||||
|
||||
1. An integration test is added/updated to test the new feature developed/bug-fix being made
|
||||
|
||||
1. The pull request has a Jira issue associated with it. Details for creating issues on Jira are located at https://mifosforge.jira.com/wiki/display/MIFOSX/Getting+started+-+Contributing+to+MifosX#Gettingstarted-ContributingtoMifosX-CreateIssues
|
||||
|
||||
1. The Relevant Jira number (Ex: MIFOSX-1454) is present as a part of the commit message. Refer http://comments.gmane.org/gmane.comp.finance.mifos.devel/14664 for details
|
||||
|
||||
1. Newly added code has been formatted and cleaned up as per our preferences at https://github.com/openMF/mifosx/wiki/Eclipse#apply-project-preferences-to-eclipse
|
||||
|
||||
1. Comments are added where relevant to ease peer review
|
||||
|
||||
1. Your work is present in a single commit rather than several broken up commits. This helps us maintain a cleaner commit history. https://github.com/openMF/mifosx/wiki/Github-&-Git#contributing-back-changes-to-original-repositoryauthors has instructions for squashing multiple commits or resetting head and recommiting your work as a single commit
|
||||
|
||||
1. Your work is rebased on top of the latest code from develop branch to make life easier for our Committers
|
||||
|
||||
1. "gradlew licenseFormatMain licenseFormatTest licenseFormatIntegrationTest" has been run to apply the Mozilla License on all newly added files (your pull requests are verified to ensure compliance with this since https://github.com/openMF/mifosx/pull/1053)
|
||||
-301
@@ -1,301 +0,0 @@
|
||||
# Installation Mifos Platform
|
||||
|
||||
This file describes how to install mifos platform for use in a production or test environment.
|
||||
|
||||
## Release Artifact Structure
|
||||
|
||||
The release artifact (.zip file) has the following structure:
|
||||
|
||||
```
|
||||
+ mifosplatform-X.Y.Z.RELEASE ... parent folder which will have the release number on it
|
||||
|
|
||||
+ api-docs ... folder contains html based documentation on the platform API for this release
|
||||
+ database ... folder contains database setup and upgrade scripts along with sample data required for installation
|
||||
+ pentahoReports ... folder contains any out-of-the-box reports provided through pentaho
|
||||
+ apps ... folder contains apps like community app that speak to the platform
|
||||
+ runmifosx.bat ... launch script for Windows
|
||||
+ runmifosx.sh ... launch script for Mac OS X and Linux
|
||||
|
|
||||
-- CHANGELOG.MD ... file documents changelog of project up to this release
|
||||
-- CONTRIBUTORS.MD ... file provides details on contributors to project
|
||||
-- INSTALL.MD ... file provides details on installation instructions
|
||||
-- LICENSE.MD ... file provides details on the open source license used by the project
|
||||
-- mifosng-provider.war ... the platform WAR file to be dropped into Tomcat 7
|
||||
-- README.MD ... initial readme file for the project
|
||||
-- VERSIONING.MD ... file provides details on approach to release versioning
|
||||
```
|
||||
|
||||
## How to Install
|
||||
|
||||
The three ways to get up and running with mifos platform is:
|
||||
|
||||
1. Use Amazon AWS and mifosplatform public AMI to spin up a new instance in the cloud
|
||||
2. Manually install the prerequisite software on your own machine, follow setup instructions and use release artifacts to get platform running yourself.
|
||||
|
||||
|
||||
## 1. Launch script automatic out-of-the box setup
|
||||
|
||||
Important : Automatic setup is currently broken, please follow the instructions for **Manual Installation** instead. For details of the issue, refer comments at https://mifosforge.jira.com/browse/MIFOSX-1756
|
||||
|
||||
The Mifos release artifact contains two launch scripts with names starting with "**runmifosx**". One of them (the one with the *.bat* file extension) is used to launch the platform on a Windows machine while the other (which has the *.sh* file extension) is used to launch the platform on Mac OS X and Linux. Just double-click on the respective script (depending on your OS) and voila! you have your own Mifos X platform running locally on your computer.
|
||||
|
||||
**Note**: *In case your script does not launch by double clicking on Linux or Mac OS X, here's what you can do. Head over to bash and type the following:*
|
||||
|
||||
```
|
||||
$ cd /path/where/runmifosx.sh/is/located
|
||||
$ chmod 0755 ./runmifosx.sh
|
||||
$ ./runmifosx.sh
|
||||
```
|
||||
|
||||
## 2. Amazon Public AMI
|
||||
|
||||
Use AWS Wizard to launch instance by using the latest ami-id(image) from this link:-
|
||||
https://en.wikipedia.org/wiki/Mifos_X >> Amazon EC2 AMI Locator
|
||||
|
||||
*Note:* Read through the following as you step through the AWS Wizard
|
||||
|
||||
- You are automatically brought to Step 2 on the wizard, by default a 'micro' instance is selected, you may need to select a 'General Purpose' m1.small as the t1.micro's memory is right on the edge of whats needed to support MySQL, Tomcat 7 + Mifos Platform
|
||||
- Use default settings for steps 3 to 5 until you reach step 6 configure security group.
|
||||
- If your first time using AWS you should use the create new security group option and add the following 'rules' to the security group:
|
||||
- SSH (PORT 22), MYSQL (3306), HTTPS (443), Custom TCP Rule (8443) all with a 'Source' value of 'Anywhere'
|
||||
- Click 'Review and Launch'
|
||||
- You will be asked to use a 'keypair' which you will need to SSH onto the new instance, if this is your first time create a new keypair, be srue to download it and store in place as you will need it later, otherwise use an existing keypair.
|
||||
- When the instance starts, the following should be available at:
|
||||
- Platform application should be available @ https://[public DNS]:8443/mifosng-provider/api/v1/offices?tenantIdentifier=default&pretty=true
|
||||
- Community app should be available @ https://[public DNS]:8443/community-app
|
||||
- API docs should be available @ https://[public DNS]:8443/api-docs/apiLive.htm
|
||||
|
||||
A step by step process for the same is also available at this link: https://mifosforge.jira.com/wiki/display/docs/Mifos+X+Amazon+EC2+Install+Guide
|
||||
|
||||
## 3. Manual Installation
|
||||
|
||||
### 3.1 Prerequisite Software
|
||||
|
||||
Before running mifos platform you must have the following software installed:
|
||||
- Oracle Java - JDK 7 (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
|
||||
- Oracle MySQL - (http://dev.mysql.com/downloads/)
|
||||
- Apache Tomcat 7 - (http://tomcat.apache.org/download-70.cgi)
|
||||
|
||||
### 3.2 MySQL Setup
|
||||
|
||||
Assumption: MySQL server is now installed.
|
||||
|
||||
You should know your password for MySQL root user. If you wish you can change it by doing:
|
||||
```
|
||||
mysqladmin -u root -p 'oldpassword' password newpassword
|
||||
```
|
||||
The mifosplatform settings default to a mysql root user with username: root, password: mysql
|
||||
|
||||
If you have never installed mifosplatform before follow section 2.2.1 for first time setup of database, otherwise read section 2.2.2 on database upgrades.
|
||||
|
||||
#### 3.2.1 First Time Database setup
|
||||
|
||||
Mifos platform has support for hosting multiple tenants so we use two database schemas:
|
||||
- *mifosplatform-tenants*: which is responsible for persisting the tenant information which is used when deciding what schema each incoming request in the platform should route to. It acts as a registry which contains the details of all the tenant databases, and their connection information, which is used by MifosX to connect to the appropriate tenant.
|
||||
- *mifostenant-default*: All tenant specific schemas follow the pattern mifostenant-xxxx, out of the box the default schema is used.
|
||||
|
||||
Step one: create mifosplatform-tenants database
|
||||
```
|
||||
mysql -uroot -pmysql
|
||||
create database `mifosplatform-tenants`;
|
||||
exit
|
||||
```
|
||||
|
||||
Step two: create mifostenant-default database
|
||||
```
|
||||
mysql -uroot -pmysql
|
||||
create database `mifostenant-default`;
|
||||
exit
|
||||
```
|
||||
The tables and lookup data for both databases are created on application startup.
|
||||
|
||||
Step three (optional): to be followed only if your mysql credentials are other than root/mysql
|
||||
|
||||
Manually restore the contents of *mifosplatform-tenants* database
|
||||
|
||||
```
|
||||
mysql -uroot -pmysql mifosplatform-tenants < database/mifospltaform-tenants-first-time-install.sql
|
||||
```
|
||||
Next, update the default credentials for connecting to *mifoplatform-default* database stored in the *tenants* table of *mifosplatform-tenants* with your credentials
|
||||
|
||||
```
|
||||
UPDATE tenants SET schema_username = "your_username", schema_password = "your_password" WHERE identifier = "default";
|
||||
```
|
||||
Step four (optional): to be followed only if your mysql server hostname is other than 'localhost'
|
||||
|
||||
Update the default server for connecting to *mifoplatform-default* database stored in the *tenants* table of *mifosplatform-tenants* with your mysql server hostname
|
||||
|
||||
```
|
||||
UPDATE tenants SET schema_server = "[server hostname/ip]" WHERE identifier = "default";
|
||||
```
|
||||
|
||||
#### 3.2.2 Upgrade existing database(s)
|
||||
|
||||
The list database *mifosplatform-tenants* is upgraded when the application starts. Any *tenant* databases will also be upgraded automatically when the application starts if the *auto_update* field of the *tenants* database table is enabled(=1). This is the default setting.
|
||||
|
||||
Upgrading your database in this way is the recommended way as it will upgrade any *tenants* setup in the *mifosplatform-tenants* database but can be disabled by setting the *auto_update* field of the tenant to zero.
|
||||
|
||||
##### 3.2.2.1 Special Instructions for those upgrading from version 1.24.* or lower
|
||||
|
||||
Starting from version 1.25.* , updates to *mifosplatform-tenants* database are managed by Flyway (http://flywaydb.org/). To ensure that flyway works correctly, verify that table *schema_version* is present along with two entries in *mifosplatform-tenants* database.
|
||||
|
||||
You can do so as follows
|
||||
|
||||
````
|
||||
mysql -uroot -pmysql
|
||||
|
||||
use `mifosplatform-tenants`;
|
||||
select * from schema_version;
|
||||
```
|
||||
|
||||
If the table does not exist, create the same using the script at https://gist.github.com/vishwasbabu/dc105b6a9450cff8ff1f
|
||||
|
||||
Next, check if the patch for "externalizing mysql connection properties" has been run (i.e if you are updating from 1.21 or a higher version of Mifos X)
|
||||
|
||||
````
|
||||
mysql -uroot -pmysql
|
||||
|
||||
use `mifosplatform-tenants`;
|
||||
select pool_initial_size from tenants;
|
||||
```
|
||||
|
||||
If the above query does **not** throw an error (Unknown column 'pool_initial_size'), *schema_version* needs to be updated with the details of this patch by executing the scripts below
|
||||
|
||||
```
|
||||
mysql -uroot -pmysql
|
||||
|
||||
use `mifosplatform-tenants`;
|
||||
INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES
|
||||
(2, 2, '2', 'externalize-connection-properties', 'SQL', 'V2__externalize-connection-properties.sql', 210473669, 'root', '2014-10-12 22:13:51', 661, 1);
|
||||
```
|
||||
|
||||
#### 3.2.3 Load *mifostenant-default* schema with sample data (optional)
|
||||
Every release ships with sample data (offices, users, customers, loan products, savings products and a chart of accounts). The same can be restored by running the following command
|
||||
|
||||
```
|
||||
mysql -uroot -pmysql mifostenant-default < database/migrations/sample_data/load_sample_data.sql
|
||||
```
|
||||
|
||||
|
||||
### 3.3 Tomcat 7 Setup
|
||||
|
||||
Assumption: You have downloaded and installed Tomcat 7 correctly for your operation system: see http://tomcat.apache.org/tomcat-7.0-doc/setup.html
|
||||
|
||||
#### 3.3.1 Environment Variables Check
|
||||
|
||||
Check that the following environment variables exist:
|
||||
- JAVA_HOME ... should point to directory where a 1.7 JDK or JRE is on machine
|
||||
- CATALINA_HOME ... should point to a directory where a Tomcat 7 instance is installed
|
||||
|
||||
Check that the following is on your path:
|
||||
- %JAVA_HOME%\bin;
|
||||
|
||||
#### 3.3.2 Logging
|
||||
|
||||
- In the [TOMCAT_HOME]/logs create a file called ```mifos-platform.log```
|
||||
|
||||
#### 3.3.3 Libraries
|
||||
|
||||
Ensure the following libraries are in the [TOMCAT_HOME]/lib folder
|
||||
- tomcat-jdbc.jar (You can download the same from http://central.maven.org/maven2/org/apache/tomcat/tomcat-jdbc/7.0.57/tomcat-jdbc-7.0.57.jar)
|
||||
- mysql-connector-java-5.1.22 (You will need to download the latest MySQL Connector/J Jar file from http://dev.mysql.com/downloads/connector/j/)
|
||||
|
||||
#### 3.3.4 Configure for SSL
|
||||
|
||||
Generate a new keystore using java keytool (if you havent already done this):
|
||||
- Follow docs to create keystore.(http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration)
|
||||
|
||||
- Update server.xml as in docs. (Ther server.xml configuration given in the configure tomcat 7 below is what is need.)
|
||||
|
||||
```sudo keytool -genkey -alias mifostom -keyalg RSA -keystore /home/ubuntu/.keystore```
|
||||
|
||||
#### 3.3.5 Update tomcat configuration files for SSL, compression and JNDI connection to MySql
|
||||
|
||||
```
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<Server port="8005" shutdown="SHUTDOWN">
|
||||
<Listener className="org.apache.catalina.core.JasperListener" />
|
||||
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
|
||||
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
|
||||
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
|
||||
|
||||
<GlobalNamingResources>
|
||||
<Resource name="UserDatabase" auth="Container"
|
||||
type="org.apache.catalina.UserDatabase"
|
||||
description="User database that can be updated and saved"
|
||||
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
|
||||
pathname="conf/tomcat-users.xml"
|
||||
/>
|
||||
|
||||
<Resource type="javax.sql.DataSource"
|
||||
name="jdbc/mifosplatform-tenants"
|
||||
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
|
||||
driverClassName="com.mysql.jdbc.Driver"
|
||||
url="jdbc:mysql://localhost:3306/mifosplatform-tenants"
|
||||
username="root"
|
||||
password="[root mysql password]"
|
||||
initialSize="3"
|
||||
maxActive="10"
|
||||
maxIdle="6"
|
||||
minIdle="3"
|
||||
validationQuery="SELECT 1"
|
||||
testOnBorrow="true"
|
||||
testOnReturn="true"
|
||||
testWhileIdle="true"
|
||||
timeBetweenEvictionRunsMillis="30000"
|
||||
minEvictableIdleTimeMillis="60000"
|
||||
logAbandoned="true"
|
||||
suspectTimeout="60"
|
||||
/>
|
||||
</GlobalNamingResources>
|
||||
|
||||
<Service name="Catalina">
|
||||
|
||||
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
|
||||
port="8443" maxThreads="200" scheme="https"
|
||||
secure="true" SSLEnabled="true"
|
||||
keystoreFile="/home/ubuntu/.keystore"
|
||||
keystorePass="testmifos"
|
||||
clientAuth="false" sslProtocol="TLS"
|
||||
URIEncoding="UTF-8"
|
||||
compression="force"
|
||||
compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css"/>
|
||||
|
||||
<Engine name="Catalina" defaultHost="localhost">
|
||||
|
||||
<Realm className="org.apache.catalina.realm.LockOutRealm">
|
||||
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
|
||||
</Realm>
|
||||
|
||||
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
|
||||
|
||||
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
|
||||
prefix="localhost_access_log." suffix=".log"
|
||||
pattern="%h %l %u %t "%r" %s %b" />
|
||||
</Host>
|
||||
</Engine>
|
||||
</Service>
|
||||
</Server>
|
||||
```
|
||||
|
||||
#### 3.3.6 Drop application into tomcat webapps folder
|
||||
|
||||
Drop the following from the release artifact into the [TOMCAT_HOME]/webapps folder:
|
||||
- mifosng-provider.war
|
||||
|
||||
Drop the following from the release artifact into [TOMCAT_HOME]/webapps/ROOT folder:
|
||||
- The entire ```apps/community-app``` folder.
|
||||
- The entire api-docs folder
|
||||
|
||||
#### 3.3.7 Startup tomcat
|
||||
Startup tomcat:
|
||||
- Platform application should be available @ https://[server ip address]:8443/mifosng-provider/api/v1/offices?tenantIdentifier=default&pretty=true
|
||||
- Community application should be available @ https://[server ip address]:8443/community-app?baseApiUrl=https://[server ip address]:8443/mifosng-provider/api/v1/
|
||||
- API docs should be available @ https://[server ip address]:8443/api-docs/apiLive.htm
|
||||
|
||||
*where [server ip address] is the hostname or IP address of your computer. For instance, if you've installed Mifos on your local machine then [server ip address] is localhost*
|
||||
|
||||
## How to integrate the web front-end UI with the back-end
|
||||
|
||||
To be able to use the front-end UI along with the back-end, you simply need to copy the webapp's source code files to the ```apps``` folder. For instance, you could copy the source code files of the community app to ```apps/community-app```. This would enable you to access the commuity app from the following URL:
|
||||
*https://[server ip address]:8443/mifosng-provider/apps/community-app?baseApiUrl=https://[server ip address]:8443*
|
||||
@@ -1,46 +0,0 @@
|
||||
Versioning
|
||||
=====
|
||||
For releases, we follow a simplified date versioning scheme which ties in nicely with our time based release cycle (with stables releases being promoted on a three month cycle)
|
||||
|
||||
Prior to 15.03.RELEASE, we followed a semantic versioning approach. (http://semver.org/)
|
||||
|
||||
Date Versioning
|
||||
===================
|
||||
|
||||
Our date versioning scheme is built around the YY.MM.{PATCH}.{release_type} concept (for example 15.06.RELEASE or 15.06.1.BUILD-SNAPSHOT) where
|
||||
|
||||
YY represents the year of the release
|
||||
MM represents the month of the major release
|
||||
PATCH (optional) gets incremented whenever a new release is made from an existing major release
|
||||
release_type differentiates different builds off the same branch. It also differentiates between development, test and production builds.
|
||||
|
||||
Version structure
|
||||
|
||||
{number}.{release_type}
|
||||
|
||||
where {number} is further broken down as YY.MM.{PATCH}.
|
||||
|
||||
Examples:
|
||||
|
||||
15.03.BUILD-SNAPSHOT
|
||||
15.03.M1
|
||||
15.03.RC1
|
||||
15.03.RELEASE
|
||||
15.03.1.RC1
|
||||
15.03.1.RELEASE
|
||||
|
||||
Number semantics
|
||||
|
||||
In general:
|
||||
|
||||
a major version (Ex:15.03) does not have a patch number and suggests many significant new features, an associated marketing campaign, and possible breaking of backward compatibility. You can expect major releases every 3 months
|
||||
a minor version (Ex:15.03.1) may also contain serious new features, but typically contains many bug fixes and improvements and does not break compatibility. You can expect minor releases between the quarterly major release cycle.
|
||||
|
||||
|
||||
What You Should Install Where
|
||||
|
||||
As a rule of thumb …
|
||||
|
||||
Snapshot or Milestone versions should only be installed on dev boxes and integration environments. They shouldn’t be deployed to any of the dedicated test environments.
|
||||
Release candidates should be installed in the dedicated test environments. In an emergency, a release candidate can be installed into the production environment.
|
||||
Production releases can be installed anywhere - and they are the only kind of build that should be installed into the production environment.
|
||||
@@ -1,31 +0,0 @@
|
||||
Mifos Platform Apps
|
||||
======
|
||||
|
||||
Community created apps built on top of mifosplatform are stored in source control repository @ https://github.com/openMF/
|
||||
|
||||
To get the Git sub modules from here, use "--recursive" in your original git clone, or, if already cloned, do:
|
||||
|
||||
git submodule update --init --recursive; git submodule status
|
||||
|
||||
Later to update both this main repo but also get the latest from the submodule(s), do:
|
||||
|
||||
git pull; git submodule update --remote
|
||||
|
||||
Here is how a new Git submodule can (was originally) added here:
|
||||
|
||||
git submodule add -b develop https://github.com/openMF/community-app.git
|
||||
git submodule init
|
||||
|
||||
|
||||
The Community App (AngularJS-based)
|
||||
===============
|
||||
https://github.com/openMF/community-app
|
||||
|
||||
The Default app shipped which is a core part of every community release.
|
||||
|
||||
The original Reference App (Now Deprecated)
|
||||
===============
|
||||
|
||||
https://github.com/openMF/mifosx-community-apps/tree/master/IndividualLendingGeneralJavaScript
|
||||
|
||||
The reference app was used to showcase platform API capabilities and is also used in production by MFIs.
|
||||
Submodule apps/community-app deleted from e4cf52eb74
Reference in New Issue
Block a user