Welcome back! If you're just joining us in this series on the tools available for Java development, feel free to check out Part 1, which covers general tools and IDEs, and Part 2, which talks about code coverage, APM, and logging. If you're all caught up, take a look at the best tools out there that cover continuous integration, testing, web frameworks, app servers, and app management tools for your Java projects.
Continuous Integration Tools
Bamboo is a continuous integration (CI) server by Atlassian to build, test and deploy code.
- Tech stack
- Deployment projects
- Dedicated agents
- Parallel tests
- Docker agents
- FREE for 30 days
- Small teams – $10
- Up to 10 jobs
- Unlimited local agents
- No remote agents
- All proceeds are donated to the Room to Read charity!
- Growing teams
- $800 for Unlimited jobs, Unlimited local agents, 1 remote agent
- $2,200 for Unlimited jobs, Unlimited local agents, 5 remote agents
- $4,000 for Unlimited jobs, Unlimited local agents, 10 remote agents
- $8,000 for Unlimited jobs, Unlimited local agents, 25 remote agents
- $8,000 for Unlimited jobs, Unlimited local agents, 25 remote agents
- $16,000 for Unlimited jobs, Unlimited local agents, 100 remote agents
- $40,000 for Unlimited jobs, Unlimited local agents, 250 remote agents
A build management and continuous integration server tool for Java, TeamCity is offered by JetBrains.
- Feature branches with Git or Mercurial
- Easy to scale
- Good customer support
- Continuous integration server
Jenkins is the leading open source automation server and a clear leader in Java continuous integration. It can be used as a simple CI server or turned into a complete continuous delivery hub for any project.
- Self-contained and ready to run
- Easily configurable web interface
- Detects errors on the fly
- Hundreds of plugins for seamless integration
Java Testing Tools
JUnit is a framework that helps write repeatable tests. It is considered to be one of the top testing frameworks out there.
- Simple unit test tool
- You can test one block of code at a time
36. Apache JMeter
JMeter is an instance of open source software, and a 100% pure Java application for load testing. This testing tool measures the functional behavior and performance of websites, web services, and more.
- Easy to understand GUI
- Easier test plan building, and application debugging
- Open source
- Ability to load and performance test different applications/server/protocol types
- Full featured Test IDE
- Command-line mode
- Complete and ready to present dynamic HTML report
Mockito is one of the developer-favorites when it comes to Java mocking frameworks. It allows you to write tests with a clean and simple API.
- Produce readable, clean tests, and verification errors
- Stub method calls
- Verify interactions
- Slim API
- Natural mocking when TDD-ing Java code
- Similar syntax to EasyMock
Selenium is an automated browser web testing Java tool. Most developers use this tool to test frameworks in large-scale web application testing. Web-based administration tasks can also be automated.
- Choose between Selenium WebDriver or IDE
- Runs in many browsers and operating systems
- Can be controlled by many programming languages and testing frameworks
Spock is another behavior-driven development (BDD) testing tool which can support JVM language Java and Groovy. It is also an enterprise-ready specification framework.
- Enterprise-ready specification framework
- Highly expressive specification language
40. Google Guice
Google’s Guice (pronounced “juice”) is a popular dependency injection tool. It is a lightweight framework for Java 6 and above.
- Enables you to wire together and test objects with less effort
- Can use annotations when binding type is not sufficient
Java Web Frameworks
AngularJS is a Java web framework with HTML that is great for declaring static documents. It is also fully extensible and can work well with other libraries.
- Can extend HTML vocabulary for application
- Fully extensible and works well with other libraries
- Features can be modified or replaced
- Add controls
- Create components
42. Spring MVC
Another top Java web framework, Spring MVC, provides mode-view-controller architecture and ready components. These can be used to develop web applications.
- Dispatches requests to handlers
- Configurable handle mapping, local, time zone, view resolution, theme resolution, and more
- Offers wide range of flexible handling method
- Clear separation of roles
- Adaptability, non-intrusiveness, and flexibility
Vaadin is another open-source web framework that works for rich internet applications. It features server-side architecture, which makes the majority of logic to run on the servers.
- One language for the whole application
- Extensible with Java and HTML5
- UI logic is right next to the data
- Strong abstraction of web technologies
Application Servers and Application Management
44. Apache Tomcat
Apache Tomcat is one of the most used Java application servers out there. It an open-source implementation of the Java Servlet, JavaServe Pages, Java Expression Language, and Java WebSocket technologies.
- Powers numerous large-scale
- Lightweight app server
Another popular Java tool by Oracle is the WebLogic Server. It is considered to be the best application server for building and deploying enterprise Java EE applications in the industry.
- Helps lower cost of operations
- Helps in enhancing scalability
- Based on standardized, modular components.
IBM’s WebSphere in an application server that allows you to optimize, create and connect applications on-premise, and on the cloud.
- Optimize application infrastructure to reduce cost
- Connect existing Java applications to the cloud and unlock new value with API lifecycle management and cloud services
- Create and deploy cloud-native and web-based apps
- Migration support
- TCO Calculator
- Analyst Report
GlashFish is an open-source application server project by Sun Microsystems for the Java EE platform. It is now sponsored by Oracle.
- Issue tracker
- GlassFish Source Code repository
- Forum and mailing list
Mesos is an open source software solution that sits between the application layer and operating system to make it easier to deploy and manage applications.
- Abstracts CPU, memory, storage, and other compute resources away from machines
- Linear scalability
- High availability
- Two-level scheduling
- Web UI
49. JBoss EAP
Red Hat’s JBoss EAP (Enterprise Application Platform) is used for hosting apps. It provides an innovative modular, powerful management and automation, cloud-ready architecture and world-class developer productivity.
- Cloud-ready architecture
- Powerful management and automation
- High availability clustering
- Distributed caching
- Messaging and transaction and full web services stack
And there you have it! The preceding lists of tools should help get you started on anything related to CI, testing, app management, and web frameworks. Stay tuned for the conclusion to this series, which will cover the variety of artifact management, web extension, and messaging distribution tools as well as the various JVM languages out there for you to consider.