10. How?
• VirtualisationLoader loads VirtualMachines
• VirtualisationLoader chooses VirtualMachine by
host name
... could be any request attr
• Internal resources chosen by current VM
eg PicoContainer, OSUser, OFBiz, Datasource,
File Locations...
• Scheduler runs for every VM
11. Configuration
Each VM configured in a single XML snippet.
- Configures OFBiz, OSUser etc automatically
- Minimum possible config (ie automatic <delegator>!)
- Can use any osuser.xml inside <user-management>
12. JIRA Changes
• No more static caches!
... looked through 6,700 ‘static’ in *.java
• 38 code changes in JIRA + 4 libs
• No more singletons
ie UserManager.getInstance() result based on VM
• PicoContainer magic - per VM containers
• EntityEngine configuration generated
... modified OFBiz so EE now reloadable!
• Fixed 7 year old loading bug in OFBizPropertySet
15. Neat Features
• VMs can use different user management
eg Crowd in one, OFBiz + OSuser in other
• Simpler setup than normal JIRA
• VMs can be loaded / unloaded on the fly
eg move a JIRA VM from one physical server to
another without unloading Java VM
• JIRA VMs can be “loaded” off the internet!
16. Func Tests?
~90% Pass
Against 2 VMs in parallel!
* Never ran them before though - probably not 100%!
17. Java VM JIRAs Memory
1 1 40MB
4 4 170MB
1 4 80MB
* HSQLDB so the data here is all in memory (I suspect results would be much better with MySQL)
** Used data from Extranet JIRA (approx 1000 issues, 20 projects, 250 users)