Apr 26 7:16am InfoQ
A commonly requested feature in .NET is the ability to use covariant return types. An example of this would be overriding “virtual object Clone()” with “override Widget Clone()”. From a type safety perspective, this is perfectly acceptable, but C# doesn’t currently allow it. By Jonathan Allen...
Apr 26 6:59am InfoQ
In the book Scaling Lean Ash Maurya explores how entrepreneurs can collaborate with stakeholders to establish a business model for a new product or service using Lean Startup principles. It builds on top of his first book Running Lean showing how to use experiments, measure business progress, and scale your startup. By Ben Linders...
Apr 26 6:01am DZone Java Zone
Lately, I’ve been working a lot with Jenkins for continuous deployment of one of my applications. In case you haven’t seen it, the keynote demonstration given at Couchbase Connect 2016 used Jenkins to build and redeploy the Java backend and Angular frontend every time a change was detected on GitHub. This is the application I helped build. So how did I leverage Jenkins to make this possible? We’re going to see how to create a continuous deployment pipeline for a Java application which includes building and deploying to a server.
Apr 26 3:15am
Get started working with Android Things and learn how to set up the required hardware and software.
Apr 26 3:01am DZone Java Zone
Microservices are getting constantly more and more popular. Every month, there are more libraries and solutions supporting a development process, testing, and further support. Many Java developers have heard about the microservices approach, but a significant number of companies have not taken the challenge of implementing a microservices-based architecture. Does this sound familiar? "I know, microservices are awesome, microservices bring easier maintenance and further development, but we have no resources to build a good microservices-based architecture."...
Apr 26 12:26am Thoughts on Java
If you’re using Hibernate for several years, you might remember the time when you had to define all your mappings in the orm.xml file. You had a bunch of Java classes which represented your domain model and a long XML file with the mapping and query information. One of the main challenges with that approach […] The post Mapping Definitions in JPA and Hibernate – Annotations, XML or both? appeared first on Thoughts on Java.
Apr 26 12:01am DZone Java Zone
In my previous posts, we explored the MVC Pattern Language by Trygve Reenskaug and made an attempt to implement MVC in the console, while focusing on MVC’s overarching idea – supporting users’ mental models. In this post, we’ll take a quick look on how to move the (poor) console example to the web. A Short Reminder For those of you who haven’t read the previous post or don’t (want to) remember, we were creating a simple “Pet Clinic” application. We visited an old vet lady who does not own a computer to gather requirements and get a basic idea of what her work is about. For the most part, she’s using two interesting items at work: a visit calendar and pet files. These are perfect candidates to become business objects in our system. Since the lady is so used to them in the physical world, we assume she’ll have no problems using their computerized versions. So far, we created a console representation of the visit calendar. Now, we want to move it to the web so that it’s usable for non-nerd human beings.
Apr 25 4:01pm DZone Java Zone
In an enterprise set up where updating Java on a client machine is not allowed due to software restriction policy, it becomes challenging to develop and ship applications which require the latest version of Java to be installed on client machines. One way to circumvent this policy-based restriction is to bundle the JREs for 32-bit and 64-bit Windows OS in a separate NetBeans platform installer. This ensures that the JRE remains isolated from the system and conflict with any older version of Java is avoided. This method is detailed in an excellent article written by Ernest Lotter. However, the bundling of JRE with the application forces you to maintain separate copies of the installer for 32-bit and 64-bit versions of Java. It also ties the application with the version of Java which was available at that point in time. In a scenario where development and improvement is a continuous process, one would love to have the flexibility of using the latest Java features in the application being developed and at the same time be able to deliver the latest version of Java to client machines.
Apr 25 3:30pm HowToDoInJava
Using JUnit 5 test suites, you can run tests spread into multiple test classes and different packages. JUnit 5 provides two annotations: @SelectPackages and @SelectClasses to create test suites. Additionally, you can use other annotations for filtering test packages, classes or even test methods. Table of Contents Project Structure for Test classes and Suite Create […] The post JUnit 5 Test Suites Examples appeared first on HowToDoInJava.
Apr 25 12:35pm Java News
The best products and ideas always spring out of identifying and addressing a general and widespread need. In the case of programming it's the time required when coding for searching the Internet for relevant documentation and code samples.
Apr 25 12:01pm DZone Java Zone
This is part 4 of the java 9 series. While in part 3 we covered interfaces and the private methods that were added to them, in part 4 we see that try-with-resoures was enhanced, or we might say even fixed. Try-with-resources, which was introduced back in java 7, is a concept which helps developer close resources which are not using anymore, such as database connection, file streams, etc. Let’s see how try-with-resources behaved in java 7 and now in java 9. Step 1: Pre-Java 7 Try-with-Resources Try-with-Resources, prior to Java 9, meant that instead of just calling a piece of code which opens up a resource like:...
Apr 25 10:09am DZone Java Zone
In Scala, traits can have an implementation, so why not have implementations in Java? Well, that was introduced in Java 8, so the next natural step in Java 9 is to have private logic in interfaces. In Part 2 of this series, we introduced the Java 9 REPL. In this part, we are going to examine the new functionality introduced to interfaces. Java 9 is introducing a lot of new concepts, such as REPL, factory methods for common data structures, and more. Let’s see what Java 9 has to say about private methods in interfaces.
Apr 25 9:50am InfoQ
Jenkins, the popular open source automation server that is used by development teams worldwide for continuous integration and continuous delivery pipelines, has recently announced the general availability of Blue Ocean 1.0. By Craig Smith...
Apr 25 9:11am InfoQ
Maluuba, a Microsoft company working towards general artificial intelligence, recently released a new open dialogue dataset based on booking a vacation. With this dataset, they help researchers and developers make their chatbots smarter. By Roland Meertens...
Apr 25 6:38am InfoQ
API documentation is an often overlooked part of making any API a success. This article explores how to make the documentation part of a continuous integration pipeline keeping it closer to the code itself. By Anne Gentle...
Apr 25 6:01am DZone Java Zone
The Spring framework provides a comprehensive API for database transaction management. Spring takes care of all underlying transaction management considerations and provides a consistent programming model for different transaction APIs such as Java Transaction API (JTA), JDBC, Hibernate, Java Persistence API (JPA), and Java Data Objects (JDO). There are two main types of transaction management in Spring: declarative transaction management, which is a high level one, and programmatic transaction management, which is more advanced but flexible.The Spring API works very well with almost all of the transaction management requirements as long as the transaction is on a single thread. The problem arises when we want to manage a transaction across multiple threads. Spring doesn't support transactions over multiple threads out of the box. Spring doesn't explicitly mention that in the documentation, but you will end up with runtime errors or unexpected results if you try to do so. Why Do Spring Transactions Over Multiple Threads Fail? Spring stores a set of thread locals inside the org.springframework.transaction.support.TransactionSynchronizationManager class. These thread locals are specific for an ongoing transaction on a single thread (Thread locals values are specific for a single thread. Thread local value set by one thread cannot be accessed by another thread).
Apr 25 6:00am InfoQ
At the CloudNativeCon, held in Berlin, Germany, the Cloud Foundry Foundation announced the creation of a Cloud Foundry Certified Developer (CFCD) training and certification program which is community-based, independent and vendor-neutral, and aims verify job candidates have practical experience with any distribution of Cloud Foundry. By Daniel Bryant...
Apr 25 5:45am JavaWorld
Today you'll see the price drop an extra 42\% on Tom Clancy’s Ghost Recon Wildlands. Experience total freedom of choice in Tom Clancy's Ghost Recon Wildlands, the ultimate military shooter set in a massive open world setting. The Santa Blanca drug cartel has transformed the beautiful South American country of Bolivia into a perilous narco-state, leading to lawlessness, fear, and rampant violence. With their corrosive influence growing, the cartel plagues the citizens of Bolivia but all hope is not lost. The Ghosts, an elite US Special Forces team, are tasked to combat the cartel and save the country from collapse. See the discounted Ghost Recon Wildlands on Amazon.To read this article in full or to leave a comment, please click here...
Apr 25 3:01am DZone Java Zone
For one year or so, I've been trying to show the developer community that there’s no magic involved in Spring Boot, just straightforward software engineering. This is achieved with blog posts and conference talks. At jDays, Stéphane Nicoll was nice enough to attend my talk and pointed out an issue in the code. I didn’t fix it then, and it came back to bite me last week during a Pivotal webinar. Since a lesson learned is only as useful as its audience, I’d like to share my mistake with the world, or at least with you, dear readers. The context is that of a Spring Boot starter for the XStream library: XStream is a simple library to serialize objects to XML and back again.
Apr 25 3:00am Vlad Mihalcea's Blog
Introduction Recently, on of my followers asked me to answer a question on Quora about batch processing, and, since the question was really interesting, I decided to turn it into a blog post. In this article, you are going to find out what batch processing is, why do we use it, and how to use … Continue reading The best way to do batch processing with JPA and Hibernate →...
Apr 25 12:01am DZone Java Zone
Servlet 4 has just posted a public review (this is the last step before the proposed final specification). Servlet 4 is easily one of the most critical components of Java EE 8. The primary aim of Servlet 4 is to bring first-class, core standards based HTTP/2 support to the server-side Java ecosystem. Most of the changes in Servlet 4 (with the exception of things like the server push API) should be transparent to developers and are enforced in terms of requirements for Servlet 4 implementations to fully support HTTP/2. A decent resource to learn more about Servlet 4 and HTTP/2 should be my slide deck: HTTP/2 and What it Means for the Java EE Ecosystem from Reza Rahman. You can download and take a look at the draft specification itself from the JCP site. While this is essentially the final stretch for Servlet 4, below are some ways you can still engage; most of it comes directly from the Adopt-a-JSR page I drafted while still at Oracle. The Servlet 4 specification lead Ed Burns has also asked for specific help in testing out the server-push feature. His write-up is also a great introduction to the feature.
Apr 24 7:35pm InfoQ
Peter Lawrey looks at the differences between microservices and monolith architectures and their relative benefits and disadvantage. He looks at design patterns which will allow us to utilize these different strategies as a deployment concern without significant changes to the business logic. By Peter Lawrey...
Apr 24 5:30pm InfoQ
Jonas Boner explores microservices from first principles, distilling their essence and putting them in their true context: distributed systems. In order to make each microservice resilient and elastic in and of itself, we have to design each individual microservice as a distributed system—a «microsystem»—architected from the ground up using the reactive principles. By Jonas Bonér...
Apr 24 4:58pm Java News
Vulnerability in the Java SE component of Oracle Java SE . Supported versions that are affected are Java SE: 6u141, 7u131 and 8u121.
Apr 24 4:21pm InfoQ
In this podcast Chris Matts, “The IT Risk Manager”, one of the original thinkers behind Real Options, Feature Injection and Behaviour Driven Development, talks about BDD, Real Options, Risk Management and the Impact of Culture for Effective Outcomes. By Chris Matts...
Apr 24 4:01pm DZone Java Zone
Gradle has incremental build support to speed up our builds. This means Gradle checks inputs and outputs for a task, and if something changed, the task is executed. Otherwise, the task is skipped. In previous posts, we learned how to add incremental build support to our tasks with annotations and the inputs and outputs properties of a task. When we have a task that has an output file for an input file, like with transformations, we can have a more efficient task using an incremental task action. With an incremental task action, we have extra information on the files that are handled by the task. We can have different actions based on whether an input file is out of date or removed. This way, we can handle only the input files that have changed or removed with incremental builds, instead of all the input files. To create an incremental task action, we must have a task action method (annotated with @TaskAction) that has a single argument of type IncrementalTaskInputs. The IncrementalTaskInputs class has the method outOfDate and removed. These methods take an action, which can be implemented with a closure, with an instance of InputFileDetails as the argument. We can get to the input file via this instance and use that for our task logic. When an input file is out of date, because the file's contents have changed or the output file has been removed, the action we defined for the outOfDate method is invoked. If the input file is removed, the action for the method removed is invoked.
Apr 24 3:30pm HowToDoInJava
JUnit 5 @RepeatedTest annotation enable to write repeatable test templates which could be run multiple times. The frequency can be configured as parameter to @RepeatedTest annotation. The post JUnit 5 @RepeatedTest Annotation Example appeared first on HowToDoInJava.
Apr 24 1:18pm JavaBrahman
Tutorial explains how to use Java 8's predefined collector Collectors.summarizingInt, Collectors.summarizingLong, Collectors.summarizingDouble with examples ... Continue reading Java 8 How to use Collectors summarizingInt, summarizingLong, summarizingDouble with examples → The post Java 8 How to use Collectors summarizingInt, summarizingLong, summarizingDouble with examples appeared first on JavaBrahman.
Apr 24 12:01pm DZone Java Zone
It turns out that Spring Boot doesn’t mix well with the standard Spring MVC @EnableWebMvc. What happens when you add the annotation is that Spring Boot's autoconfiguration is disabled. The bad part (that wasted me a few hours) is that in no guide you can find that explicitly stated. In this guide, it says that Spring Boot adds it automatically, but doesn’t say what happens if you follow your previous experience and just put the annotation.
Apr 24 12:01pm DZone Java Zone
To gather insights on the state of the Java ecosystem today, we spoke to nine executives who are familiar with the ecosystem. We asked these experienced Java professionals "What have been the most significant changes to the Java ecosystem in the past year?" Here's what they told us:...
Apr 24 11:01am InfoQ
Cloud infrastructure provider Digital Ocean recently released capabilities for monitoring servers and sending alerts. While not novel, this free feature is indicative of growing industry attention paid to server and application insight. By Richard Seroter...
Apr 24 11:00am InfoQ
Googles hardware engineering team that designed and developed the TensorFlow Processor Unit detailed the architecture and benchmarking experiment earlier this month. This is a follow up post on the initial announcement of the TPU from this time last year. By Dylan Raithel...
Apr 24 10:22am InfoQ
In the past five years, Google searches for Machine Learning have gone up five times. “Anything that has machine learning in it or blockchain in it, the valuation goes up, 2, 3, 4, 5x”, as pointed out by Andy Stewart. Zachary Lipton claimed a misinformation epidemic in the field in a recent blog post. In this article we present the technical perspective of ML and how it can be presented.. By Alex Giamas...
Apr 24 9:00am InfoQ
Day One of the 12th annual Emerging Technologies for the Enterprise Conference was held on Tuesday, April 18 in Philadelphia, PA. This two-day event included keynotes by Blair MacIntyre (augmented reality pioneer) and Scott Hanselman (podcaster), and featured speakers Monica Beckwith (JVM consultant at Oracle), Yehuda Katz (co-creator of Ember.js), and Jessica Kerr (lead engineer at Atomist). By Michael Redlich...
Apr 24 8:11am InfoQ
QCon New York (the 6th annual software conference) is just 10 weeks away. June 26-28 QCon returns to its new location at Times Square’s Marriott Marquis, but with the same great lineup of speakers. 2017 features speakers from Stitch Fix, Google, Netflix, Lyft, Pivotal, Redis Labs, and more. By Wesley Reisz...
Apr 24 8:00am InfoQ
Amazon Lex, the platform behind Amazon Alexa, is now generally available to create voice-powered chatbots and mobile, web, and desktop apps. By Sergio De Simone...
Apr 24 7:33am InfoQ
Not too long ago the proposal for read-only local variables was revived. This is a much more modest feature than the read-only references proposal, but the two are complementary. By Jonathan Allen...
Apr 24 6:40am Java News
Project Trinity would explore enhancing execution of bulk aggregate calculations over Streams by offloading calculations to hardware accelerators. Streams in Java allow developers to express calculations so that data parallelism can be efficiently exploited, and the Stream capability in Java Standard Edition 8 is for processing data declaratively while leveraging multicore architectures.
Apr 24 6:38am InfoQ
The IT industry borrows terms from other domains, which is a fairly good approach. But we distort their meanings or use terms in inconsistent ways, within IT and also in comparison to other disciplines. This article shares some of these leaky terminologies with examples, explains why this matters and suggest how to deal with inconsistencies and improve the situation. By Ionut Balosin...
Apr 24 4:05am Petri Kainulainen
There are many software development blogs out there, but many of them don’t publish testing articles on a regular basis. Also, I have noticed that some software developers don’t read blogs written by software testers. That is a shame because I think that we can learn a lot from them. That is why I decided […] ...
Apr 24 3:15am
Explore some key information to use session beans in an enterprise application.
Apr 24 3:01am DZone Java Zone
This blog post explores the usage of CDI along with Java EE Concurrency Utilities – specifically using CDI beans as managed tasks. Here is the sample application on GitHub. Let's Begin With a Quick Overview Java EE Concurrency Utilities provides APIs and constructs to manage concurrency within Java EE applications. Many of the Java EE components have specific concurrency semantics e.g. EJBs, JAX-RS resources, WebSocket endpoints, etc. Writing components with custom concurrency properties was traditionally difficult, since starting unmanaged threads in a Java EE container was forbidden, i.e. one was not able to leverage Java SE concurrency libraries. With Concurrency Utilities, Java EE applications have access to managed versions of the Java SE counterparts, namely,...
Apr 24 12:01am DZone Java Zone
In Scala, traits can have an implementation, so why not have implementations in Java? Well, that was introduced in Java 8, so the next natural step in Java 9 is to have private logic in interfaces. In Part 2 of this series, we introduced the Java 9 REPL. In this part, we are going to examine the new functionality introduced to interfaces. Java 9 is introducing a lot of new concepts, such as REPL, factory methods for common data structures, and more. Let’s see what Java 9 has to say about private methods.
Apr 23 11:09pm InfoQ
Anupama Naturajan presents key principles to consider when designing RESTful APIs based on his experience designing them for real-world applications. By Anupama Naturajan...
Apr 23 9:13pm InfoQ
Apr 23 7:25pm InfoQ
Casey Stella presents a utility written with Apache Spark to automate data preparation, discovering missing values, values with skewed distributions and discovering likely errors within data. By Casey Stella...
Apr 23 3:30pm HowToDoInJava
JUnit 5 @AfterAll annotation is replacement of @AfterClass annotation in JUnit 4. The annotated method should be executed after all tests in test class. The post JUnit 5 @AfterAll Annotation Example appeared first on HowToDoInJava.
Apr 23 1:50pm InfoQ
In a recent blog post on the Hyperledger project website, Brian Behlendorf, executive director of the Hyperledger project, announced the Hyperledger Technical Steering Committee has approved a proposal, submitted by Monax and Intel, to incubate the first Ethereum derived project called Burrow; a permissionable smart contract machine. By Kent Weare...
Apr 23 11:01am DZone Java Zone
To read or write XML files, you should consider JAXB (Java Architecture for XML Binding). JAXB will convert and reconvert XML objects using marshalling (writing to XML) and unmarshalling processes. When and Where Do I Need to Write XML Files? Creating a Custom Configuration or UI File Suppose, in a project, you need to customize the User Data for each field or configure the system’s database to your standard.
Apr 23 9:30am InfoQ
A lead software engineer at New Relic wrote a summary of how DevOps tools and practices are used and practised in the New Relic engineering team. It talks about the evolution of the DevOps role, using their own product for monitoring and the visible benefits of this culture. By Hrishikesh Barua...
Apr 23 8:00am InfoQ
Apache Ignite is an in-memory computing platform with transactional support, that supports both key-value persistence as well as streaming and complex-event processing. Ignite was open-sourced by GridGain in late 2014 and accepted in the Apache Incubator program. InfoQ interviewed Nikita Ivanov, CTO of GridGain, to find out more about Apache Ignite. By Alexandre Rodrigues...
Apr 23 1:01am DZone Java Zone
I gave a tech talk at Pivotal Labs today on developing Java applications on the Ethereum blockchain. The slides are available below.
Apr 22 11:59pm Java News
Compiles Python 3.4 source files into Java class files, enabling you to run Python code on a JVM . It isn't a completely compliant Python 3.4 implementation - there are some language features that still need to be implemented, and there is only a bare bones standard library implementation.
Apr 22 7:13pm Java News
I currently develop my codebase serverside in Java . SFS will likely be the best multiplayer Java socket server for the next couple decades at least.
Apr 22 11:05am InfoQ
Marcin Grzejszczak is a software engineer at Pivotal. Currently, he is working on Spring Cloud Contract, a consumer-driven contracts framework for Java. InfoQ have interviewed Marcin in order to discuss some of the framework's benefits, and how in particular consumer-driven contracts can help with microservice testing. By Andrew Morgan...
Apr 22 6:52am InfoQ
The software industry revamps half of its people every five years with fresh grads, causing a state of Perpetual Inexperience. People Reengineering proposes Mentorship As A Service to fight this phenomena through one of its threads of action that seamlessly instills professional maturity into the new generations for better performance and people retention. By Medhat Sabry...
Apr 22 1:01am DZone Java Zone
In Part 1 of this Java 9 tutorial series, we covered Java 9 modules. Here in Part 2 of this series, we are going to explore JShell. Any up-to-date programming language has a REPL. In today's world, where you have two-week sprints and you need to learn while coding, it's important to have a fast feedback loop. You don’t want to set up a whole project just to test something in the code, right? The REPL brings that to you. REPLs are common in Scala, Python, Ruby, Shell scripts, and now also in… Java! Java 9 has the following new features:...
Apr 21 9:17pm InfoQ
Scott Ambler introduces the DA framework, describing strategies at the enterprise level currently being applied in organizations around the world. By Scott Ambler...
Apr 21 4:44pm DZone Java Zone
One of the main strengths of Kotlin is good Java integration. As it is fairly easy to convert Java to Kotlin, it seems that making Java EE applications in Kotlin should be a no-brainer. However, there are some subtle differences between the two that make conversion tricky: While most frameworks require non-final classes, Kotlin classes are final. Injection will introduce a lot of unnecessary null checks. Both of these and mandatory parameterless constructors will ruin attempts to write functional-style code. Java EE and Kotlin are not really best friends unless you make them. Luckily, all those issues can be avoided.
Apr 21 4:01pm DZone Java Zone
It’s time to continue our previous blog on how to make our code more robust, concise, and more functionally defined at the same time. Here, we are moving more toward Scala and leaving traditional Java behind. We will see new types and their usage along with the benefits we get from them. This blog will show you the best way, in my perspective, to handle the exceptions gracefully in Scala (the beloved coding language for everyone here at Knoldus). Our methods would only be responsible for either returning the results or the exceptions, i.e. we will not write any try-catch blocks to handle the exceptions within different methods.