[
https://issues.apache.org/jira/browse/CLOUDSTACK-1562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13596271#comment-13596271
]
Chip Childers commented on CLOUDSTACK-1562:
-------------------------------------------
Apply the patch to 4.1 and try to build...
~/incubator-cloudstack ‹4.1› »git fetch origin
>From https://git-wip-us.apache.org/repos/asf/incubator-cloudstack
e942df9..45c51d1 4.1 -> origin/4.1
~/incubator-cloudstack ‹4.1› »git reset --hard origin/4.1
HEAD is now at 45c51d1 CLOUDSTACK-1451 Pass randomly generated UUID instead of
empty string when create internal account as a part of project creation.
Otherwise entityexistsexception would happen when attempt to create more than 1
project in the system
~/incubator-cloudstack ‹4.1› »git am
~/Downloads/0001-CLOUDSTACK-1562-Replace-DB-support-to-be-the-formal.patch
Applying: CLOUDSTACK-1562: Replace @DB support to be the formal implementation
instead of a temporary hacking one
/Users/chip.childers/incubator-cloudstack/.git/rebase-apply/patch:112: space
before tab in indent.
clazz = target.getClass();
/Users/chip.childers/incubator-cloudstack/.git/rebase-apply/patch:113: space
before tab in indent.
for(Method m : clazz.getMethods()) {
/Users/chip.childers/incubator-cloudstack/.git/rebase-apply/patch:114: space
before tab in indent.
// it is supposed that we need to check against type
arguments,
/Users/chip.childers/incubator-cloudstack/.git/rebase-apply/patch:115: space
before tab in indent.
// this can be simplified by just checking method name
/Users/chip.childers/incubator-cloudstack/.git/rebase-apply/patch:116: space
before tab in indent.
if(m.getName().equals(method.getName())) {
warning: squelched 5 whitespace errors
warning: 10 lines add whitespace errors.
~/incubator-cloudstack ‹4.1› »mvn clean install
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for
org.apache.cloudstack:cloudstack:pom:4.1.0-SNAPSHOT
[WARNING] 'parent.relativePath' points at org.apache.cloudstack:cloudstack
instead of org.apache:apache, please verify your project structure @ line 23,
column 11
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten
the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support
building such malformed projects.
[WARNING]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Apache CloudStack
[INFO] Apache CloudStack Utils
[INFO] Apache CloudStack API
[INFO] Apache CloudStack Core
[INFO] Apache CloudStack Agents
[INFO] Apache CloudStack SystemVM Patches
[INFO] Apache CloudStack Console Proxy
[INFO] Apache CloudStack Framework
[INFO] Apache CloudStack Framework - IPC
[INFO] Apache CloudStack Framework - REST
[INFO] Apache CloudStack Cloud Engine
[INFO] Apache CloudStack Cloud Engine API
[INFO] Apache CloudStack Framework - Event Notification
[INFO] Apache CloudStack Server
[INFO] Apache CloudStack Usage Server
[INFO] Apache XenSource XAPI
[INFO] Apache CloudStack Plugin POM
[INFO] Apache CloudStack Plugin - API Rate Limit
[INFO] Apache CloudStack Plugin - API Discovery
[INFO] Apache CloudStack Plugin - ACL Static Role Based
[INFO] Apache CloudStack Plugin - User Concentrated Pod Deployment Planner
[INFO] Apache CloudStack Plugin - User Dispersing Deployment Planner
[INFO] Apache CloudStack Plugin - Host Allocator Random
[INFO] Apache CloudStack Plugin - Hypervisor OracleVM
[INFO] Apache CloudStack Cloud Engine Internal Components API
[INFO] Apache CloudStack Engine Storage Component
[INFO] Apache CloudStack Plugin - Open vSwitch
[INFO] Apache CloudStack Plugin - Hypervisor Xen
[INFO] Apache CloudStack Plugin - Hypervisor KVM
[INFO] Apache CloudStack Plugin - RabbitMQ Event Bus
[INFO] Apache CloudStack Plugin - Hypervisor Simulator
[INFO] Apache CloudStack Plugin - Hypervisor Baremetal
[INFO] Apache CloudStack Plugin - Hypervisor UCS
[INFO] Apache CloudStack Plugin - Network Elastic Load Balancer
[INFO] Apache CloudStack Plugin - Network Nicira NVP
[INFO] Apache CloudStack Plugin - BigSwitch Virtual Network Segment
[INFO] Apache CloudStack Plugin - Storage Allocator Random
[INFO] Apache CloudStack Plugin - User Authenticator LDAP
[INFO] Apache CloudStack Plugin - User Authenticator MD5
[INFO] Apache CloudStack Plugin - User Authenticator Plain Text
[INFO] Apache CloudStack Plugin - User Authenticator SHA256 Salted
[INFO] Apache CloudStack Plugin - Dns Notifier Example
[INFO] Apache CloudStack Engine Storage Image Component
[INFO] Apache CloudStack Plugin - Storage Image S3
[INFO] Apache CloudStack Engine Storage Volume Component
[INFO] Apache CloudStack Plugin - Storage Volume solidfire
[INFO] Apache CloudStack Cloud Engine Compute Component
[INFO] Apache CloudStack Cloud Engine API
[INFO] Apache CloudStack Cloud Engine Orchestration Component
[INFO] Apache CloudStack Cloud Engine Schema Component
[INFO] Apache CloudStack Engine Storage Backup Component
[INFO] Apache CloudStack Engine Storage Image Motion Component
[INFO] Apache CloudStack Engine Storage Snapshot Component
[INFO] Apache CloudStack Client UI
[INFO] Apache CloudStack Test
[INFO] Apache CloudStack Engine Storage integration test Component
[INFO] Apache CloudStack Cloud Engine Service
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Apache CloudStack 4.1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ cloudstack ---
[INFO] Deleting /Users/chip.childers/incubator-cloudstack/target
[INFO]
[INFO] --- maven-remote-resources-plugin:1.3:process (default) @ cloudstack ---
[INFO]
[INFO] --- maven-site-plugin:3.1:attach-descriptor (attach-descriptor) @
cloudstack ---
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ cloudstack ---
[INFO] Installing /Users/chip.childers/incubator-cloudstack/pom.xml to
/Users/chip.childers/.m2/repository/org/apache/cloudstack/cloudstack/4.1.0-SNAPSHOT/cloudstack-4.1.0-SNAPSHOT.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Apache CloudStack Utils 4.1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ cloud-utils ---
[INFO] Deleting /Users/chip.childers/incubator-cloudstack/utils/target
[INFO]
[INFO] --- maven-remote-resources-plugin:1.3:process (default) @ cloud-utils ---
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @
cloud-utils ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ cloud-utils
---
[INFO] Compiling 155 source files to
/Users/chip.childers/incubator-cloudstack/utils/target/classes
[INFO]
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @
cloud-utils ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @
cloud-utils ---
[INFO] Compiling 22 source files to
/Users/chip.childers/incubator-cloudstack/utils/target/test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.12:test (default-test) @ cloud-utils ---
[INFO] Surefire report directory:
/Users/chip.childers/incubator-cloudstack/utils/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.cloud.utils.log.CglibThrowableRendererTest
2013-03-07 14:44:03,065 INFO [test.context.TestContextManager] (main:)
@TestExecutionListeners is not present for class [class
com.cloud.utils.log.CglibThrowableRendererTest]: using defaults.
2013-03-07 14:44:03,229 INFO [factory.xml.XmlBeanDefinitionReader] (main:)
Loading XML bean definitions from class path resource [testContext.xml]
2013-03-07 14:44:03,531 INFO
[context.annotation.ClassPathBeanDefinitionScanner] (main:) JSR-330
'javax.inject.Named' annotation found and supported for component scanning
2013-03-07 14:44:03,815 INFO [context.support.GenericApplicationContext]
(main:) Refreshing
org.springframework.context.support.GenericApplicationContext@527736bd: startup
date [Thu Mar 07 14:44:03 EST 2013]; root of context hierarchy
2013-03-07 14:44:03,964 INFO
[factory.annotation.AutowiredAnnotationBeanPostProcessor] (main:) JSR-330
'javax.inject.Inject' annotation found and supported for autowiring
2013-03-07 14:44:04,035 INFO [factory.support.DefaultListableBeanFactory]
(main:) Pre-instantiating singletons in
org.springframework.beans.factory.support.DefaultListableBeanFactory@163b4b1e:
defining beans
[org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,dbAnnotatedBase,dbAnnotatedBaseDerived,dummyComponent,dummyImpl,componentContext,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.aop.aspectj.AspectJPointcutAdvisor#0,captureAnyMethod,transactionContextBuilder,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0];
root of factory hierarchy
2013-03-07 14:44:04,508 INFO [utils.component.ComponentContext] (main:) Setup
Spring Application context
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 2.119 sec <<<
FAILURE!
Running com.cloud.utils.net.NetUtilsTest
2013-03-07 14:44:04,610 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::2
2013-03-07 14:44:04,611 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::2
2013-03-07 14:44:04,612 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::1
2013-03-07 14:44:04,614 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::2
2013-03-07 14:44:04,615 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::2
2013-03-07 14:44:04,617 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::6be8:96de:3103:9142
2013-03-07 14:44:04,619 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::c5b9:4b28:3f9d:337e
2013-03-07 14:44:04,620 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::f7dd:9c63:ca53:a076
2013-03-07 14:44:04,622 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::3f8a:995a:ca91:261b
2013-03-07 14:44:04,624 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::890:ce9:88d1:769c
2013-03-07 14:44:04,625 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::1853:1daf:ea91:8337
2013-03-07 14:44:04,627 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::c612:3eea:fbd:b68c
2013-03-07 14:44:04,628 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::236c:f097:7306:97e7
2013-03-07 14:44:04,630 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::a24:8099:fad6:6408
2013-03-07 14:44:04,631 INFO [utils.net.NetUtilsTest] (main:) IP is
1234:5678::66b3:7078:8a87:2bf3
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.031 sec
Running com.cloud.utils.StringUtilsTest
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 sec
Running com.cloud.utils.testcase.NioTest
2013-03-07 14:44:04,644 INFO [utils.testcase.NioTest] (main:) Test
2013-03-07 14:44:04,674 INFO [utils.nio.NioServer] (NioTestServer-Selector:)
NioConnection started and listening on 0.0.0.0/0.0.0.0:7777
2013-03-07 14:44:04,677 INFO [utils.nio.NioClient] (NioTestServer-Selector:)
Connecting to 127.0.0.1:7777
2013-03-07 14:44:04,735 WARN [utils.nio.Link] (NioTestServer-Selector:) SSL:
Fail to find the generated keystore. Loading fail-safe one to continue.
2013-03-07 14:44:05,235 INFO [utils.nio.NioClient] (NioTestServer-Selector:)
SSL: Handshake done
2013-03-07 14:44:05,236 INFO [utils.testcase.NioTest]
(NioTestServer-Handler-1:) Server: Received CONNECT task
2013-03-07 14:44:05,236 INFO [utils.testcase.NioTest]
(NioTestServer-Handler-1:) Client: Received CONNECT task
2013-03-07 14:44:06,252 INFO [utils.testcase.NioTest] (main:) Client: Data sent
2013-03-07 14:44:06,253 INFO [utils.testcase.NioTest] (main:) Client: Data sent
2013-03-07 14:44:06,293 INFO [utils.testcase.NioTest]
(NioTestServer-Handler-2:) Server: Received DATA task
2013-03-07 14:44:06,316 INFO [utils.testcase.NioTest]
(NioTestServer-Handler-3:) Server: Received DATA task
2013-03-07 14:44:06,624 INFO [utils.testcase.NioTest]
(NioTestServer-Handler-2:) Verify done.
2013-03-07 14:44:06,630 INFO [utils.testcase.NioTest]
(NioTestServer-Handler-3:) Verify done.
2013-03-07 14:44:07,254 INFO [utils.testcase.NioTest] (main:) Client stopped.
2013-03-07 14:44:07,254 INFO [utils.testcase.NioTest] (main:) Server stopped.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.601 sec
Running com.cloud.utils.TestProfiler
Configure log4j with default properties
2013-03-07 14:44:07,257 INFO [cloud.utils.TestProfiler] (main:) testProfiler()
started
2013-03-07 14:44:08,259 INFO [cloud.utils.TestProfiler] (main:) Duration : 1001
2013-03-07 14:44:08,259 INFO [cloud.utils.TestProfiler] (main:) testProfiler()
stopped
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1 sec
Running com.cloud.utils.xmlobject.TestXmlObject
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running com.cloud.utils.xmlobject.TestXmlObject2
no key1, add new
no key2, add new
<test key2="value2" key1="value1" />
no ckey1, add new
no child2, add new
no child1, add new
<test key2="value2" key1="value1"><child1><child2 ckey1="value1"
/></child1></test>
no key1, add new
no child1, add new
no key3, add new
no child3, add new
no child2, add new
not list list child1, add list
<test2 key1="value1"><child1>yyy</child1><child1><child2><child3
key3="value3">xxxxx</child3></child2></child1></test2>
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec
2013-03-07 14:44:08,263 INFO [context.support.GenericApplicationContext]
(Thread-2:) Closing
org.springframework.context.support.GenericApplicationContext@527736bd: startup
date [Thu Mar 07 14:44:03 EST 2013]; root of context hierarchy
2013-03-07 14:44:08,264 INFO [factory.support.DefaultListableBeanFactory]
(Thread-2:) Destroying singletons in
org.springframework.beans.factory.support.DefaultListableBeanFactory@163b4b1e:
defining beans
[org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,dbAnnotatedBase,dbAnnotatedBaseDerived,dummyComponent,dummyImpl,componentContext,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.aop.aspectj.AspectJPointcutAdvisor#0,captureAnyMethod,transactionContextBuilder,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0];
root of factory hierarchy
Results :
Failed tests: testException(com.cloud.utils.log.CglibThrowableRendererTest)
Tests run: 18, Failures: 1, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Apache CloudStack ................................. SUCCESS [3.446s]
[INFO] Apache CloudStack Utils ........................... FAILURE [15.261s]
[INFO] Apache CloudStack API ............................. SKIPPED
[INFO] Apache CloudStack Core ............................ SKIPPED
[INFO] Apache CloudStack Agents .......................... SKIPPED
[INFO] Apache CloudStack SystemVM Patches ................ SKIPPED
[INFO] Apache CloudStack Console Proxy ................... SKIPPED
[INFO] Apache CloudStack Framework ....................... SKIPPED
[INFO] Apache CloudStack Framework - IPC ................. SKIPPED
[INFO] Apache CloudStack Framework - REST ................ SKIPPED
[INFO] Apache CloudStack Cloud Engine .................... SKIPPED
[INFO] Apache CloudStack Cloud Engine API ................ SKIPPED
[INFO] Apache CloudStack Framework - Event Notification .. SKIPPED
[INFO] Apache CloudStack Server .......................... SKIPPED
[INFO] Apache CloudStack Usage Server .................... SKIPPED
[INFO] Apache XenSource XAPI ............................. SKIPPED
[INFO] Apache CloudStack Plugin POM ...................... SKIPPED
[INFO] Apache CloudStack Plugin - API Rate Limit ......... SKIPPED
[INFO] Apache CloudStack Plugin - API Discovery .......... SKIPPED
[INFO] Apache CloudStack Plugin - ACL Static Role Based .. SKIPPED
[INFO] Apache CloudStack Plugin - User Concentrated Pod Deployment Planner
SKIPPED
[INFO] Apache CloudStack Plugin - User Dispersing Deployment Planner SKIPPED
[INFO] Apache CloudStack Plugin - Host Allocator Random .. SKIPPED
[INFO] Apache CloudStack Plugin - Hypervisor OracleVM .... SKIPPED
[INFO] Apache CloudStack Cloud Engine Internal Components API SKIPPED
[INFO] Apache CloudStack Engine Storage Component ........ SKIPPED
[INFO] Apache CloudStack Plugin - Open vSwitch ........... SKIPPED
[INFO] Apache CloudStack Plugin - Hypervisor Xen ......... SKIPPED
[INFO] Apache CloudStack Plugin - Hypervisor KVM ......... SKIPPED
[INFO] Apache CloudStack Plugin - RabbitMQ Event Bus ..... SKIPPED
[INFO] Apache CloudStack Plugin - Hypervisor Simulator ... SKIPPED
[INFO] Apache CloudStack Plugin - Hypervisor Baremetal ... SKIPPED
[INFO] Apache CloudStack Plugin - Hypervisor UCS ......... SKIPPED
[INFO] Apache CloudStack Plugin - Network Elastic Load Balancer SKIPPED
[INFO] Apache CloudStack Plugin - Network Nicira NVP ..... SKIPPED
[INFO] Apache CloudStack Plugin - BigSwitch Virtual Network Segment SKIPPED
[INFO] Apache CloudStack Plugin - Storage Allocator Random SKIPPED
[INFO] Apache CloudStack Plugin - User Authenticator LDAP SKIPPED
[INFO] Apache CloudStack Plugin - User Authenticator MD5 . SKIPPED
[INFO] Apache CloudStack Plugin - User Authenticator Plain Text SKIPPED
[INFO] Apache CloudStack Plugin - User Authenticator SHA256 Salted SKIPPED
[INFO] Apache CloudStack Plugin - Dns Notifier Example ... SKIPPED
[INFO] Apache CloudStack Engine Storage Image Component .. SKIPPED
[INFO] Apache CloudStack Plugin - Storage Image S3 ....... SKIPPED
[INFO] Apache CloudStack Engine Storage Volume Component . SKIPPED
[INFO] Apache CloudStack Plugin - Storage Volume solidfire SKIPPED
[INFO] Apache CloudStack Cloud Engine Compute Component .. SKIPPED
[INFO] Apache CloudStack Cloud Engine API ................ SKIPPED
[INFO] Apache CloudStack Cloud Engine Orchestration Component SKIPPED
[INFO] Apache CloudStack Cloud Engine Schema Component ... SKIPPED
[INFO] Apache CloudStack Engine Storage Backup Component . SKIPPED
[INFO] Apache CloudStack Engine Storage Image Motion Component SKIPPED
[INFO] Apache CloudStack Engine Storage Snapshot Component SKIPPED
[INFO] Apache CloudStack Client UI ....................... SKIPPED
[INFO] Apache CloudStack Test ............................ SKIPPED
[INFO] Apache CloudStack Engine Storage integration test Component SKIPPED
[INFO] Apache CloudStack Cloud Engine Service ............ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.157s
[INFO] Finished at: Thu Mar 07 14:44:08 EST 2013
[INFO] Final Memory: 18M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on
project cloud-utils: There are test failures.
[ERROR]
[ERROR] Please refer to
/Users/chip.childers/incubator-cloudstack/utils/target/surefire-reports for the
individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e
switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please
read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :cloud-utils
> Replace the short-cut solution of supportting @DB with the formal one
> ----------------------------------------------------------------------
>
> Key: CLOUDSTACK-1562
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-1562
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Affects Versions: 4.1.0, 4.2.0
> Reporter: Kelven Yang
> Assignee: Kelven Yang
> Priority: Critical
> Fix For: 4.1.0
>
>
> Currently, supporting of @DB to open/close database transaction in
> TransactionContextBuilder.java was a temporary solution. It is time to
> replace it with a formal one.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira