Java 9 Revealed. For Early Adoption and Migration. Kishori Sharan

Size: px
Start display at page:

Download "Java 9 Revealed. For Early Adoption and Migration. Kishori Sharan"

Transcription

1 Java 9 Revealed For Early Adoption and Migration Kishori Sharan

2 Java 9 Revealed: For Early Adoption and Migration Kishori Sharan Montgomery, Alabama, USA ISBN-13 (pbk): ISBN-13 (electronic): Library of Congress Control Number: Copyright Kishori Sharan 2017, corrected publication 2018 This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Steve Anglin Development Editor: Matthew Moodie Coordinating Editor: Mark Powers Cover designed by estudiocalamar Cover image designed by Freepik ( Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY Phone SPRINGER, fax (201) , orders-ny@springer-sbm.com, or visit Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please rights@apress.com, or visit rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. ebook versions and licenses are also available for most titles. For more information, reference our Print and ebook Bulk Sales web page at Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book's product page, located at For more detailed information, please visit Printed on acid-free paper

3 To my friend Richard Castillo, who has been incredible in helping me in my journey of writing books. Without his help, I could not have published my three-book Harnessing Java 7 series. Thank you, my friend, for all your help.

4 Contents About the Author...xvii About the Technical Reviewer...xix Acknowledgments...xxi Introduction...xxiii Chapter 1: Introduction... 1 Introduction to JDK How to Read This Book... 2 System Requirements... 3 Installing the NetBeans IDE... 4 Downloading the Source Code... 5 Chapter 2: The Module System... 7 Life Before Java The New Module System... 9 What Is a Module? Module Dependencies Module Graph Aggregator Modules Declaring Modules Module Names Controlling Access to Modules Declaring Dependency Configuring Services v

5 Module Descriptors Compiling Module Declarations Module Version Module Source Files Structure Packaging Modules A Module in a Directory A Module in a Modular JAR A Module in a JMOD File...25 Module Path Observable Modules Summary Chapter 3: Creating Your First Module Using the Command Prompt Setting Up the Directories Writing the Source Code Compiling the Source Code Packaging the Module Code Running the Program Using the NetBeans IDE Configuring the IDE Creating the Java Project Setting the Project Properties Adding the Module Declaration Viewing Module Graph Writing the Source Code Compiling the Source Code Packaging the Module Code Running the Program Summary vi

6 Chapter 4: Module Dependency Declaring Module Dependency Troubleshooting the Example Empty Package Error Module Not Found Error...66 Package Does Not Exist Error Module Resolution Exception Implicit Readability Qualified Exports Optional Dependency Accessing Modules Using Reflection Open Modules Opening Packages Using Deep Reflection Type Accessibility Splitting Packages Across Modules Restrictions in Module Declarations Types of Modules Normal Modules Open Modules Automatic Modules Unnamed Modules Migration Path to JDK Disassembling Module Definitions Summary Chapter 5: Implementing Services What Is a Service? Discovering Services vii

7 Providing Service Implementations Defining the Service Interface Defining Service Providers Defining a Generic Prime Service Provider Defining a Faster Prime Service Provider Defining a Fastest Prime Service Provider Testing the Prime Service Selecting and Filtering Providers Testing Prime Service in Legacy Mode Summary Chapter 6: Packaging Modules The JAR Format What Is a Multi-Release JAR? Creating Multi-Release JARs Rules for Multi-Release JARs Multi-Release JARs and JAR URL Multi-Release Manifest Attribute The JMOD Format Using the jmod Tool Summary Chapter 7: Creating Custom Runtime Images What Is a Custom Runtime Image? Creating Custom Runtime Images Binding Services Using Plugins with the jlink Tool The jimage Tool Summary viii

8 Chapter 8: Breaking Changes in JDK The New JDK Versioning Scheme Version Number Prerelease Information Build Information Additional Information Parsing Old and New Version Strings Version Changes to System Properties Using the Runtime.Version Class Changes to the JDK and JRE Layout Changes in JDK and JRE Behavioral Changes Changes in Class Loaders Accessing Resources Accessing Resources Before JDK Accessing Resources in JDK Using JDK Internal APIs Patching Module Contents Summary Chapter 9: Breaking Module Encapsulation What Is Breaking Module Encapsulation? Command-Line Options The --add-exports Option The --add-opens Option The --add-reads Option The --illegal-access Option An Example Using Manifest Attributes of a JAR Summary ix

9 Chapter 10: The Module API What Is the Module API? Representing Modules Describing Modules Representing Module Statements Representing a Module Version Other Properties of Modules Knowing Module Basic Info Querying Modules Updating Modules Accessing Module Resources Annotation on Modules Loading Classes Working with Module Layers Finding Modules Reading Module Contents Creating Configurations Creating Module Layers Summary Chapter 11: The Java Shell What Is the Java Shell? The JShell Architecture Starting the JShell Tool Exiting the JShell Tool What Are Snippets and Commands? Evaluating Expressions Listing Snippets Editing Snippets Rerunning Previous Snippets x

10 Declaring Variables Import Statements Method Declarations Type Declarations Setting Execution Environment No Checked Exceptions Auto-Completion Snippets and Commands History Reading JShell Stack Trace Reusing JShell Sessions Resetting the JShell State Reloading the JShell State Configuring JShell Setting the Snippet Editor Setting Feedback Mode Creating Custom feedback Modes Setting Up Startup Snippets Using JShell Documentation The JShell API Creating a JShell Working with Snippets Handling Snippet Events An Example Summary Chapter 12: Process API Updates What Is the Process API? The Current Process Querying Process State Comparing Processes xi

11 xii Creating a Process Obtaining a Process Handle Terminating Processes Managing Process Permissions Summary Chapter 13: Collection API Updates The Background Unmodifiable Lists Unmodifiable Sets Unmodifiable Maps Summary Chapter 14: The HTTP/2 Client API What Is the HTTP/2 Client API? Setting Up Examples Creating HTTP Clients Processing HTTP Requests Obtaining an HTTP Request Builder Setting HTTP Request Parameters Setting the Request Redirection Policy Using the WebSocket Protocol Creating a Server Endpoint Creating a Client Endpoint Running the WebSocket Program Troubleshooting the WebSocket Application Summary Chapter 15: Enhanced Deprecation What Is Deprecation? How to Deprecate an API Updates in JDK

12 Suppressing Deprecation Warnings A Deprecated API Example Static Analysis of Deprecated APIs Dynamic Analysis of Deprecated APIs No Deprecation Warnings on Imports Summary Chapter 16: Stack Walking What Is a Stack? What Is Stack Walking? Stack Walking in JDK Drawbacks to Stack Walking Stack Walking in JDK Specifying Stack-Walking Options Representing a Stack Frame Obtaining a StackWalker Walking the Stack Knowing the Caller s Class Stack-Walking Permissions Summary Chapter 17: Reactive Streams What Is a Stream? What Is Reactive Streams? The Reactive Streams API in JDK Publisher-Subscriber Interactions Creating Publishers Publishing Items A Quick Example Creating Subscribers Using Processors Summary xiii

13 Chapter 18: Streams API Updates New Stream Operations New Collectors Summary Chapter 19: Platform and JVM Logging Platform Logging API Setting up Log4j Libraries Setting Up a NetBeans Project Defining a Module Adding a Log4j Configuration File Creating a System Logger Creating a Logger Finder Testing the Platform Logger Unified JVM Logging Message Tags Message Levels Message Decorations Message Output Destination The -Xlog Syntax Summary Chapter 20: Other Changes in JDK The Underscore Is a Keyword Improved try-with-resources Blocks Diamond Operator in Anonymous Classes Private Methods in Interfaces... on Private Methods Discarding Process Outputs New Methods in the StrictMath Class Changes to the ClassLoader Class xiv

14 New Methods in the Optional<T> Class Additions to the CompletableFuture<T> Class Spin-Wait Hints Enhancements to the Time API The Clock Class The Duration Class The ofinstant() Factory Method Obtaining Epoch Seconds Stream of LocalDate New Formatting Options Stream Operations with Scanner Enhancement to the Matcher Class Enhancement to the Objects Class Comparing Arrays The Applet API Is Deprecated Javadoc Enhancements Native Desktop Features Object Deserialization Filters Additions to Java I/O API Summary Erratum... E1 Index xv

15 About the Author Kishori Sharan works as a senior software engineer lead at IndraSoft, Inc. He earned a master s of science degree in computer information systems from Troy State University, Alabama. He is a Sun-certified Java 2 programmer and has over 20 years of experience in developing enterprise applications and providing training to professional developers using the Java platform. xvii

16 About the Technical Reviewer Manuel Jordan Elera is an autodidactic developer and researcher who enjoys learning new technologies for his own experiments and creating new integrations. Manuel won the 2010 Springy Award Community Champion and Spring Champion In his little free time, he reads the Bible and composes music on his guitar. Manuel is known as dr_pompeii. He has tech reviewed numerous books for Apress, including Pro Spring, 4th Edition (2014), Practical Spring LDAP (2013), Pro JPA 2, Second Edition (2013), and Pro Spring Security (2013). Read his 13 detailed tutorials about many Spring technologies and contact him through his blog at blogspot.com. You can also follow him on xix

17 Acknowledgments My wife Ellen was patient when I spent long hours at my computer working on this book. I want to thank her for all of her support in writing this book. I want to thank my family members and friends for their encouragement and support: my mom Pratima Devi; my elder brothers, Janki Sharan and Dr. Sita Sharan; my nephews, Gaurav and Saurav; my sister Ratna; my friends, Karthikeya Venkatesan, Preethi Vasudev, Rahul Nagpal, Ravi Datla; and many more friends not mentioned here. I would like to thank my coworkers, Forrest Corky Butts, Antonio Mathews, and Yolanda Robinson, for their support. My sincere thanks are due to the wonderful team at Apress for their support during the publication of this book. Thanks to Mark Powers, the Editorial Operations Manager, for providing excellent support and for being exceptionally patient with me when I was slow in producing manuscript. My special thanks to Manuel Jordan Elera, the technical reviewer, whose thorough approach reviewing the book helped weed out many technical errors. Last but not least, my sincere thanks to Steve Anglin, the Lead Editor at Apress, for taking the initiative for the publication of this book. The original version of chapters 2, 4, 9, 11, 12 and 14 was revised. An erratum to all these chapters can be found at xxi

18 Introduction How This Book Came About The Java community is excited to see the module system and Java shell finally added to the Java platform in JDK 9, and so am I. After all, we had to wait over 10 years to see this module system in action. Several previous JDK releases saw prototypes of the module system, which were later dropped. The introduction of the module system in JDK 9 has also been a bumpy ride. It went through several iterations of proposals and prototypes. I started writing this book in early I have to admit that this was a difficult book to write. I had to race against the JDK release date and the changes the Java team was making to the module system. I would write about a topic to find a few months later that the final release date for JDK 9 had moved and whatever I had written was no longer valid. Today is the last day of February 2016 and it seems that the dust has finally settled the Java team and the Java community are happy with the module system and you are going to get this book as it exists today. JDK 9 is scheduled to be released in late July JDK 9 is feature complete at the time of this writing. It is very unlikely that you will see many instances where something covered in this book does not work. However, five months is a long time in terms of software releases, so don t be surprised if a piece of code does not work and you have to tweak it a bit to make it work when you read this book. In the beginning, this book was supposed to be 140 pages. As my writing progressed, I thought it would be a disservice to readers to write a book so short covering one of the biggest additions to the Java platform. I thank my publisher who never complained about me adding hundreds of pages to the book. I devoted nine chapters (Chapter 2 to Chapter 10) solely to describing the new module system. Chapter 11 covers the Java shell (JShell) with unmatched details. I spent countless hours researching this topic. I was writing on topics that were under development. There were no materials on the Internet or in books that I could find to learn about these topics. One of the biggest challenges was the fast-changing JDK implementation during the development phase. My main sources of research were the Java source code, Java Enhancement Processes (JEPs), and Java Specification Requests (JSRs). I also spent quite a bit of time reading the Java source code to learn more about some of the new topics in JDK 9. It was always fun to play with Java programs, sometimes for hours, and then add them to the book. Sometimes, it was frustrating to see that the code worked a week ago and then did not work anymore. Subscribing to the mailing lists for all JDK 9 projects helped me to stay in sync with the JDK development team. A few times I had to go through all the bugs on a JDK topic to verify that there was a bug that had not been fixed yet. All s well that ends well. Finally, I am happy that I was able to include everything that matters to readers interested in learning Java SE 9. I hope you enjoy reading the book and benefit from it. xxiii

19 Introduction The Structure of the Book This book contains 20 chapters. Chapter 1 is an introduction to JDK 9 and how to work with the book and its source code. Chapters 2 through 10 cover the module system. These chapters are designed to be read sequentially. Chapter 11 covers the Java Shell (JShell) in detail. For the most part, you can read Chapter 11 without reading the first 10 chapters. However, I recommend you read them sequentially for a complete understanding. You can read Chapters 12 through Chapter 20 in any order. They cover independent topics. The last chapter is a catch-all chapter. If a topic was small enough not to require a chapter of its own, I stuffed it into this final chapter. The Audience This book is designed for experienced Java developers who are familiar with Java SE 8. Parts of the book use Streams API, Time API, and Lambdas introduced in Java SE 8. If you know Java SE 7 or earlier versions, you can certainly benefit reading Chapters 1 through 11 of this book. These chapters teach you the module system and the Java shell. Readers are advised to use the API documentation for the Java programming language as much as possible while using this book. The Java API documentation is where you will find a complete list of everything available in the Java class library. You can download (or view) the Java API documentation from Oracle s official web site at While you read this book, you need to practice writing Java programs yourself. You can also practice by tweaking the programs provided in the book. It does not help much in your learning process if you just read this book and do not practice writing your own programs. Remember that practice makes perfect, which is also true in learning how to program using JDK 9. Source Code and Errata Source code and errata for this book can be accessed via Questions and Comments Please direct all your questions and comments to the author at ksharan@jdojo.com. xxiv

Java Quick Syntax Reference. Second Edition. Mikael Olsson

Java Quick Syntax Reference. Second Edition. Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Mikael Olsson Hammarland, Länsi-Suomi, Finland ISBN-13 (pbk):

More information

Essential Angular for ASP.NET Core MVC

Essential Angular for ASP.NET Core MVC Essential Angular for ASP.NET Core MVC Adam Freeman Essential Angular for ASP.NET Core MVC Adam Freeman London, UK ISBN-13 (pbk): 978-1-4842-2915-6 ISBN-13 (electronic): 978-1-4842-2916-3 DOI 10.1007/978-1-4842-2916-3

More information

Microsoft Computer Vision APIs Distilled

Microsoft Computer Vision APIs Distilled Microsoft Computer Vision APIs Distilled Getting Started with Cognitive Services Alessandro Del Sole Microsoft Computer Vision APIs Distilled Alessandro Del Sole Cremona, Italy ISBN-13 (pbk): 978-1-4842-3341-2

More information

Functional Programming in R

Functional Programming in R Functional Programming in R Advanced Statistical Programming for Data Science, Analysis and Finance Thomas Mailund Functional Programming in R: Advanced Statistical Programming for Data Science, Analysis

More information

The Windows 10 Productivity Handbook

The Windows 10 Productivity Handbook The Windows 10 Productivity Handbook Discover Expert Tips, Tricks, and Hidden Features in Windows 10 Mike Halsey The Windows 10 Productivity Handbook Mike Halsey Sheffield, Yorkshire, UK ISBN-13 (pbk):

More information

Windows 10 Revealed. The Universal Windows Operating System for PC, Tablets, and Windows Phone. Kinnary Jangla

Windows 10 Revealed. The Universal Windows Operating System for PC, Tablets, and Windows Phone. Kinnary Jangla Windows 10 Revealed The Universal Windows Operating System for PC, Tablets, and Windows Phone Kinnary Jangla Windows 10 Revealed Kinnary Jangla Bing Maps San Francisco, California, USA ISBN-13 (pbk): 978-1-4842-0687-4

More information

Pro MERN Stack. Full Stack Web App Development with Mongo, Express, React, and Node. Vasan Subramanian

Pro MERN Stack. Full Stack Web App Development with Mongo, Express, React, and Node. Vasan Subramanian Pro MERN Stack Full Stack Web App Development with Mongo, Express, React, and Node Vasan Subramanian Pro MERN Stack Vasan Subramanian Bangalore, Karnataka, India ISBN-13 (pbk): 978-1-4842-2652-0 ISBN-13

More information

Building Custom Tasks for SQL Server Integration Services

Building Custom Tasks for SQL Server Integration Services Building Custom Tasks for SQL Server Integration Services Andy Leonard Building Custom Tasks for SQL Server Integration Services Andy Leonard Farmville, Virginia, USA ISBN-13 (pbk): 978-1-4842-2939-2 ISBN-13

More information

Index. Kishori Sharan 2017 K. Sharan, Java 9 Revealed,

Index. Kishori Sharan 2017 K. Sharan, Java 9 Revealed, Index A Aggregator modules, 17 Applet API, 497 498 Arrays, 495 497 Automatic modules Automatic-Module-Name, 88 89 definition, 86 87 deriving names and versions, 88 explicit modules, 90 exported packages,

More information

Agile Swift. Swift Programming Using Agile Tools and Techniques. Godfrey Nolan

Agile Swift. Swift Programming Using Agile Tools and Techniques. Godfrey Nolan Agile Swift Swift Programming Using Agile Tools and Techniques Godfrey Nolan Agile Swift: Swift Programming Using Agile Tools and Techniques Godfrey Nolan Huntington Woods, Michigan, USA ISBN-13 (pbk):

More information

Java Language Features

Java Language Features Java Language Features With Modules, Streams, Threads, I/O, and Lambda Expressions Second Edition Kishori Sharan Java Language Features:With Modules, Streams, Threads, I/O, and Lambda Expressions Kishori

More information

Android Continuous Integration

Android Continuous Integration Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla Android Continuous Integration Pradeep Macharla North Carolina, USA ISBN-13 (pbk): 978-1-4842-2795-4

More information

JavaScript Quick Syntax Reference

JavaScript Quick Syntax Reference JavaScript Quick Syntax Reference Mikael Olsson JavaScript Quick Syntax Reference Copyright 2015 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the

More information

Practical Amazon EC2, SQS, Kinesis, and S3

Practical Amazon EC2, SQS, Kinesis, and S3 Practical Amazon EC2, SQS, Kinesis, and S3 A Hands-On Approach to AWS Sunil Gulabani Practical Amazon EC2, SQS, Kinesis, and S3: A Hands-On Approach to AWS Sunil Gulabani Ahmedabad, Gujarat, India ISBN-13

More information

Pro Angular 6. Third Edition. Adam Freeman

Pro Angular 6. Third Edition. Adam Freeman Pro Angular 6 Third Edition Adam Freeman Pro Angular 6 Adam Freeman London, UK ISBN-13 (pbk): 978-1-4842-3648-2 ISBN-13 (electronic): 978-1-4842-3649-9 https://doi.org/10.1007/978-1-4842-3649-9 Library

More information

SQL Server AlwaysOn Revealed

SQL Server AlwaysOn Revealed SQL Server AlwaysOn Revealed Second Edition Peter A. Carter SQL Server AlwaysOn Revealed, 2nd Edition Peter A. Carter Botley, United Kingdom ISBN-13 (pbk): 978-1-4842-2396-3 ISBN-13 (electronic): 978-1-4842-2397-0

More information

Practical Spring LDAP

Practical Spring LDAP Practical Spring LDAP Enterprise Java LDAP Development Made Easy Balaji Varanasi Practical Spring LDAP: Enterprise Java LDAP Development Made Easy Copyright 2013 Balaji Varanasi. All rights reserved. This

More information

MATLAB Programming for Numerical Analysis. César Pérez López

MATLAB Programming for Numerical Analysis. César Pérez López MATLAB Programming for Numerical Analysis César Pérez López MATLAB Programming for Numerical Analysis Copyright 2014 by César Pérez López This work is subject to copyright. All rights are reserved by the

More information

Android Continuous Integration

Android Continuous Integration Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla

More information

Java APIs, Extensions and Libraries

Java APIs, Extensions and Libraries Java APIs, Extensions and Libraries With JavaFX, JDBC, jmod, jlink, Networking, and the Process API Second Edition Kishori Sharan Java APIs, Extensions and Libraries: With JavaFX, JDBC, jmod, jlink, Networking,

More information

C Quick Syntax Reference

C Quick Syntax Reference C Quick Syntax Reference Mikael Olsson C Quick Syntax Reference Copyright 2015 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of

More information

ASP.NET Core Recipes

ASP.NET Core Recipes ASP.NET Core Recipes A Problem-Solution Approach Second Edition John Ciliberti ASP.NET Core Recipes: A Problem-Solution Approach John Ciliberti Sparta, New Jersey, USA ISBN-13 (pbk): 978-1-4842-0428-3

More information

Pro Java Clustering and Scalability

Pro Java Clustering and Scalability Pro Java Clustering and Scalability Building Real-Time Apps with Spring, Cassandra, Redis, WebSocket and RabbitMQ Jorge Acetozi Pro Java Clustering and Scalability: Building Real-Time Apps with Spring,

More information

Objective-C Quick Syntax Reference

Objective-C Quick Syntax Reference Objective-C Quick Syntax Reference Matthew Campbell Objective-C Quick Syntax Reference Copyright 2014 by Matthew Campbell This work is subject to copyright. All rights are reserved by the Publisher, whether

More information

Learn PHP 7. Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL. Steve Prettyman

Learn PHP 7. Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL. Steve Prettyman THE EXPERT S VOICE IN WEB DEVELOPMENT Learn PHP 7 Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL Steve Prettyman Learn PHP 7 Object-Oriented Modular Programming

More information

Beginning Functional JavaScript

Beginning Functional JavaScript Beginning Functional JavaScript Functional Programming with JavaScript Using EcmaScript 6 Anto Aravinth Beginning Functional JavaScript Anto Aravinth Chennai, Tamil Nadu, India ISBN-13 (pbk): 978-1-4842-2655-1

More information

MATLAB Numerical Calculations. César Pérez López

MATLAB Numerical Calculations. César Pérez López MATLAB Numerical Calculations César Pérez López MATLAB Numerical Calculations Copyright 2014 by César Pérez López This work is subject to copyright. All rights are reserved by the Publisher, whether the

More information

JavaScript Essentials for SAP ABAP Developers

JavaScript Essentials for SAP ABAP Developers JavaScript Essentials for SAP ABAP Developers A Guide to Mobile and Desktop Application Development Rehan Zaidi JavaScript Essentials for SAP ABAP Developers: A Guide to Mobile and Desktop Application

More information

Beginning Robotics Programming in Java with LEGO Mindstorms

Beginning Robotics Programming in Java with LEGO Mindstorms Beginning Robotics Programming in Java with LEGO Mindstorms Wei Lu Beginning Robotics Programming in Java with LEGO Mindstorms Wei Lu Keene, New Hampshire, USA ISBN-13 (pbk): 978-1-4842-2004-7 ISBN-13

More information

Learning Groovy. Adam L. Davis

Learning Groovy. Adam L. Davis Learning Groovy Adam L. Davis Learning Groovy Adam L. Davis New York, USA ISBN-13 (pbk): 978-1-4842-2116-7 ISBN-13 (electronic): 978-1-4842-2117-4 DOI 10.1007/978-1-4842-2117-4 Library of Congress Control

More information

C++ Quick Syntax Reference

C++ Quick Syntax Reference C++ Quick Syntax Reference Mikael Olsson C++ Quick Syntax Reference Copyright 2013 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part

More information

Pivotal Certified Professional Spring Developer Exam

Pivotal Certified Professional Spring Developer Exam Pivotal Certified Professional Spring Developer Exam A Study Guide Iuliana Cosmina Pivotal Certified Spring Web Application Developer Exam Iuliana Cosmina Sibiu, Romania ISBN-13 (pbk): 978-1-4842-0812-0

More information

Material Design Implementation with AngularJS

Material Design Implementation with AngularJS Material Design Implementation with AngularJS UI Component Framework First Edition V. Keerti Kotaru Material Design Implementation with AngularJS V. Keerti Kotaru Hyderabad, Andhra Pradesh, India ISBN-13

More information

Scalable Big Data Architecture

Scalable Big Data Architecture Scalable Big Data Architecture A Practitioner s Guide to Choosing Relevant Big Data Architecture Bahaaldine Azarmi Scalable Big Data Architecture Copyright 2016 by Bahaaldine Azarmi This work is subject

More information

Beginning Oracle WebCenter Portal 12c

Beginning Oracle WebCenter Portal 12c Beginning Oracle WebCenter Portal 12c Build next-generation Enterprise Portals with Oracle WebCenter Portal Vinay Kumar Daniel Merchán García Beginning Oracle WebCenter Portal 12c Vinay Kumar Rotterdam,

More information

Beginning PowerShell for SharePoint 2016

Beginning PowerShell for SharePoint 2016 Beginning PowerShell for SharePoint 2016 A Guide for Administrators, Developers, and DevOps Engineers Second Edition Nikolas Charlebois-Laprade John Edward Naguib Beginning PowerShell for SharePoint 2016:

More information

Pro MongoDB Development

Pro MongoDB Development Pro MongoDB Development Deepak Vohra Pro MongoDB Development Copyright 2015 by Deepak Vohra This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the

More information

Swift Quick Syntax Reference

Swift Quick Syntax Reference Swift Quick Syntax Reference Matthew Campbell Swift Quick Syntax Reference Copyright 2014 by Matthew Campbell This work is subject to copyright. All rights are reserved by the Publisher, whether the whole

More information

Windows Troubleshooting Series

Windows Troubleshooting Series Windows Troubleshooting Series Mike Halsey, MVP Series Editor Windows Networking Troubleshooting Mike Halsey Joli Ballew Windows Networking Troubleshooting Mike Halsey Sheffield, South Yorkshire, UK Joli

More information

Deepak Vohra. Pro Docker

Deepak Vohra. Pro Docker Deepak Vohra Pro Docker Pro Docker Copyright 2016 by Deepak Vohra This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically

More information

Companion ebook Available Pro Android Includes Android 1.5 SOURCE CODE ONLINE US $44.99

Companion ebook Available Pro Android Includes Android 1.5 SOURCE CODE ONLINE US $44.99 The EXPERT s VOIce in Open Source Pro Android Covers Google s Android Platform and its fundamental APIs, from basic concepts such as Android resources, intents, and content providers to advanced topics

More information

Custom Raspberry Pi Interfaces

Custom Raspberry Pi Interfaces Custom Raspberry Pi Interfaces Design and build hardware interfaces for the Raspberry Pi Warren Gay Custom Raspberry Pi Interfaces: Design and build hardware interfaces for the Raspberry Pi Warren Gay

More information

Web Programming with Dart. Moises Belchin Patricia Juberias

Web Programming with Dart. Moises Belchin Patricia Juberias Web Programming with Dart Moises Belchin Patricia Juberias Web Programming with Dart Copyright 2015 by Moises Belchin and Patricia Juberias This work is subject to copyright. All rights are reserved by

More information

Pro.NET 4 Parallel Programming in C#

Pro.NET 4 Parallel Programming in C# Pro.NET 4 Parallel Programming in C# Adam Freeman Pro.NET 4 Parallel Programming in C# Copyright 2010 by Adam Freeman All rights reserved. No part of this work may be reproduced or transmitted in any form

More information

Beginning ASP.NET MVC 4. José Rolando Guay Paz

Beginning ASP.NET MVC 4. José Rolando Guay Paz Beginning ASP.NET MVC 4 José Rolando Guay Paz Beginning ASP.NET MVC 4 Copyright 2013 by José Rolando Guay Paz This work is subject to copyright. All rights are reserved by the Publisher, whether the whole

More information

S Cove pring Bootrs Pivotal Certified Spring Enterprise Integration Specialist Exam SOURCE CODE ONLINE

S Cove pring Bootrs Pivotal Certified Spring Enterprise Integration Specialist Exam SOURCE CODE ONLINE Covers Spring Boot Pivotal Certified Spring Enterprise Integration Specialist Exam A Study Guide Lubos Krnac Pivotal Certified Spring Enterprise Integration Specialist Exam Copyright 2015 by Lubos Krnac

More information

Beginning CSS Preprocessors

Beginning CSS Preprocessors Beginning CSS Preprocessors With Sass, Compass, and Less Anirudh Prabhu Beginning CSS Preprocessors: With SASS, Compass.js, and Less.js Copyright 2015 by Anirudh Prabhu This work is subject to copyright.

More information

Enhancing Adobe Acrobat DC Forms with JavaScript

Enhancing Adobe Acrobat DC Forms with JavaScript Enhancing Adobe Acrobat DC Forms with JavaScript Jennifer Harder Enhancing Adobe Acrobat DC Forms with JavaScript Jennifer Harder Delta, British Columbia, Canada ISBN-13 (pbk): 978-1-4842-2892-0 ISBN-13

More information

Pro JavaScript Performance Monitoring and Visualization

Pro JavaScript Performance Monitoring and Visualization Pro JavaScript Performance Monitoring and Visualization Tom Barker Pro JavaScript Performance Copyright 2012 by Tom Barker This work is subject to copyright. All rights are reserved by the Publisher, whether

More information

Carlo Scarioni. Pro Spring Security

Carlo Scarioni. Pro Spring Security Carlo Scarioni Pro Spring Security Pro Spring Security Copyright 2013 by Carlo Scarioni This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material

More information

Learn Apple HomeKit on ios

Learn Apple HomeKit on ios Learn Apple HomeKit on ios A Home Automation Guide for Developers, Designers, and Homeowners Jesse Feiler Learn Apple HomeKit on ios: A Home Automation Guide for Developers, Designers, and Homeowners Jesse

More information

Reactive Programming with Angular and ngrx

Reactive Programming with Angular and ngrx Reactive Programming with Angular and ngrx Learn to Harness the Power of Reactive Programming with RxJS and ngrx Extensions Oren Farhi Reactive Programming with Angular and ngrx: Learn to Harness the Power

More information

C++ Recipes. A Problem-Solution Approach. Bruce Sutherland

C++ Recipes. A Problem-Solution Approach. Bruce Sutherland C++ Recipes A Problem-Solution Approach Bruce Sutherland C++ Recipes: A Problem-Solution Approach Copyright 2015 by Bruce Sutherland This work is subject to copyright. All rights are reserved by the Publisher,

More information

Learn Excel 2016 for OS X

Learn Excel 2016 for OS X Learn Excel 2016 for OS X Second Edition Guy Hart-Davis Learn Excel 2016 for OS X Copyright 2015 by Guy Hart-Davis This work is subject to copyright. All rights are reserved by the Publisher, whether the

More information

Network Programming with Go

Network Programming with Go Network Programming with Go Essential Skills for Using and Securing Networks Jan Newmarch Network Programming with Go: Essential Skills for Using and Securing Networks Jan Newmarch Oakleigh, Victoria Australia

More information

Beginning Visual Studio for Mac

Beginning Visual Studio for Mac Beginning Visual Studio for Mac Build Cross-Platform Apps with Xamarin and.net Core Alessandro Del Sole Beginning Visual Studio for Mac Alessandro Del Sole Cremona, Italy ISBN-13 (pbk): 978-1-4842-3032-9

More information

Server Reporting Services. Kathi Kellenberger

Server Reporting Services. Kathi Kellenberger Beginning SQL Server Reporting Services Kathi Kellenberger Beginning SQL Server Reporting Services Kathi Kellenberger Beginning SQL Server Reporting Services Kathi Kellenberger Edwardsville, Illinois USA

More information

Migrating to Swift from Android

Migrating to Swift from Android Migrating to Swift from Android Sean Liao Migrating to Swift from Android Copyright 2014 by Sean Liao This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part

More information

Creating Google Chrome Extensions

Creating Google Chrome Extensions Creating Google Chrome Extensions Prateek Mehta Creating Google Chrome Extensions Prateek Mehta New Delhi, India ISBN-13 (pbk): 978-1-4842-1774-0 ISBN-13 (electronic): 978-1-4842-1775-7 DOI 10.1007/978-1-4842-1775-7

More information

PHP 7 Zend Certification Study Guide

PHP 7 Zend Certification Study Guide PHP 7 Zend Certification Study Guide Ace the ZCE 2017-PHP Exam Andrew Beak PHP 7 Zend Certification Study Guide Andrew Beak Grafham, Cambridgeshire, United Kingdom ISBN-13 (pbk): 978-1-4842-3245-3 ISBN-13

More information

Windows Troubleshooting Series

Windows Troubleshooting Series Windows Troubleshooting Series Mike Halsey, MVP Series Editor Windows Group Policy Troubleshooting A Best Practice Guide for Managing Users and PCs Through Group Policy Kapil Arya, MVP Edited by Andrew

More information

Beginning XML with C# 7

Beginning XML with C# 7 Beginning XML with C# 7 XML Processing and Data Access for C# Developers Second Edition Bipin Joshi Beginning XML with C# 7: XML Processing and Data Access for C# Developers Bipin Joshi 301 Pitruchhaya,

More information

Nginx. From Beginner to Pro. Rahul Soni

Nginx. From Beginner to Pro. Rahul Soni Nginx From Beginner to Pro Rahul Soni Nginx: From Beginner to Pro Rahul Soni Kolkata, West Bengal India ISBN-13 (pbk): 978-1-4842-1657-6 ISBN-13 (electronic): 978-1-4842-1656-9 DOI 10.1007/978-1-4842-1656-9

More information

Digital Illustration Fundamentals

Digital Illustration Fundamentals Wallace Jackson Digital Illustration Fundamentals Vector, Raster, WaveForm, NewMedia with DICF, DAEF and ASNMF 1st ed. 2015 Wallace Jackson Lompoc, California, USA ISBN 978-1-4842-1696-5 e-isbn 978-1-4842-1697-2

More information

James Cryer. Pro Grunt.js

James Cryer. Pro Grunt.js James Cryer Pro Grunt.js Pro Grunt.js Copyright 2015 by James Cryer This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned,

More information

Troubleshooting Xcode

Troubleshooting Xcode Troubleshooting Xcode Magno Urbano Troubleshooting Xcode Copyright 2015 by Magno Urbano This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material

More information

Failure-Modes-Based Software Reading

Failure-Modes-Based Software Reading SPRINGER BRIEFS IN COMPUTER SCIENCE Yang-Ming Zhu Failure-Modes-Based Software Reading SpringerBriefs in Computer Science More information about this series at http://www.springer.com/series/10028 Yang-Ming

More information

Docker for Data Science

Docker for Data Science Docker for Data Science Building Scalable and Extensible Data Infrastructure Around the Jupyter Notebook Server Joshua Cook Docker for Data Science Joshua Cook Santa Monica, California, USA ISBN-13 (pbk):

More information

Research on Industrial Security Theory

Research on Industrial Security Theory Research on Industrial Security Theory Menggang Li Research on Industrial Security Theory Menggang Li China Centre for Industrial Security Research Beijing, People s Republic of China ISBN 978-3-642-36951-3

More information

Introducing Meteor. Josh Robinson Aaron Gray David Titarenco

Introducing Meteor. Josh Robinson Aaron Gray David Titarenco Introducing Meteor Josh Robinson Aaron Gray David Titarenco Introducing Meteor Copyright 2015 by Josh Robinson, Aaron Gray, and David Titarenco This work is subject to copyright. All rights are reserved

More information

Clean C++ Sustainable Software Development Patterns and Best Practices with C Stephan Roth

Clean C++ Sustainable Software Development Patterns and Best Practices with C Stephan Roth Clean C++ Sustainable Software Development Patterns and Best Practices with C++ 17 Stephan Roth Clean C++: Sustainable Software Development Patterns and Best Practices with C++ 17 Stephan Roth Bad Schwartau,

More information

Beginning Oracle Application Express 5

Beginning Oracle Application Express 5 Beginning Oracle Application Express 5 Doug Gault Beginning Oracle Application Express 5 Copyright 2015 by Doug Gault This work is subject to copyright. All rights are reserved by the Publisher, whether

More information

Low Level X Window Programming

Low Level X Window Programming Low Level X Window Programming Ross J. Maloney Low Level X Window Programming An Introduction by Examples 123 Dr. Ross J. Maloney Yenolam Corporation Booragoon, WA Australia ISBN 978-3-319-74249-6 ISBN

More information

Pro SQL Server 2008 Mirroring

Pro SQL Server 2008 Mirroring Pro SQL Server 2008 Mirroring Robert L. Davis, Ken Simmons Pro SQL Server 2008 Mirroring Copyright 2009 by Robert L. Davis, Ken Simmons All rights reserved. No part of this work may be reproduced or transmitted

More information

Java I/O, NIO and NIO.2

Java I/O, NIO and NIO.2 Java I/O, NIO and NIO.2 Jeff Friesen Java I/O, NIO and NIO.2 Copyright 2015 by Jeff Friesen This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the

More information

Creating Maintainable APIs

Creating Maintainable APIs Creating Maintainable APIs A Practical, Case-Study Approach Ervin Varga Creating Maintainable APIs: A Practical, Case-Study Approach Ervin Varga Expro I.T. Consulting, Kikinda Serbia ISBN-13 (pbk): 978-1-4842-2195-2

More information

7 Windows Tweaks. A Comprehensive Guide to Customizing, Increasing Performance, and Securing Microsoft Windows 7. Steve Sinchak

7 Windows Tweaks. A Comprehensive Guide to Customizing, Increasing Performance, and Securing Microsoft Windows 7. Steve Sinchak Take control of Windows 7 Unlock hidden settings Rev up your network Disable features you hate, for good Fine-tune User Account control Turbocharge online speed Master the taskbar and start button Customize

More information

Android Fragments. Dave MacLean Satya Komatineni

Android Fragments. Dave MacLean Satya Komatineni Android Fragments Dave MacLean Satya Komatineni Android Fragments Copyright 2014 by Dave MacLean, Satya Komatineni This work is subject to copyright. All rights are reserved by the Publisher, whether the

More information

Python 3 for Absolute Beginners

Python 3 for Absolute Beginners Python 3 for Absolute Beginners Tim Hall and J-P Stacey Python 3 for Absolute Beginners Copyright 2009 by Tim Hall and J-P Stacey All rights reserved. No part of this work may be reproduced or transmitted

More information

Dynamic SQL. Applications, Performance, and Security. Ed Pollack

Dynamic SQL. Applications, Performance, and Security. Ed Pollack Dynamic SQL Applications, Performance, and Security Ed Pollack Dynamic SQL Edward Pollack Albany, New York, USA ISBN-13 (pbk): 978-1-4842-1810-5 ISBN-13 (electronic): 978-1-4842-1811-2 DOI 10.1007/978-1-4842-1811-2

More information

Pivotal Certified Spring Enterprise Integration Specialist Exam

Pivotal Certified Spring Enterprise Integration Specialist Exam Pivotal Certified Spring Enterprise Integration Specialist Exam A Study Guide Lubos Krnac Pivotal Certified Spring Enterprise Integration Specialist Exam Copyright 2015 by Lubos Krnac This work is subject

More information

Pro ASP.NET MVC 5. Adam Freeman

Pro ASP.NET MVC 5. Adam Freeman Pro ASP.NET MVC 5 Adam Freeman Pro ASP.NET MVC 5 Copyright 2013 by Adam Freeman This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is

More information

Expanding Your Raspberry Pi

Expanding Your Raspberry Pi Expanding Your Raspberry Pi Storage, printing, peripherals, and network connections for your Raspberry Pi Mark Edward Soper Expanding Your Raspberry Pi: Storage, printing, peripherals, and network connections

More information

Intel Xeon Phi TM Coprocessor Architecture and Tools

Intel Xeon Phi TM Coprocessor Architecture and Tools Intel Xeon Phi TM Coprocessor Architecture and Tools The Guide for Application Developers Rezaur Rahman Intel Xeon Phi Coprocessor Architecture and Tools: The Guide for Application Developers Rezaur Rahman

More information

Pro ASP.NET SignalR. Real-Time Communication in.net with SignalR 2.1. Keyvan Nayyeri Darren White

Pro ASP.NET SignalR. Real-Time Communication in.net with SignalR 2.1. Keyvan Nayyeri Darren White Pro ASP.NET SignalR Real-Time Communication in.net with SignalR 2.1 Keyvan Nayyeri Darren White Pro ASP.NET SignalR: Real-Time Communication in.net with SignalR 2.1 Copyright 2014 by Keyvan Nayyeri and

More information

Microsoft Mapping. Geospatial Development in Windows 10 with Bing Maps and C# Second Edition. Carmen Au Ray Rischpater

Microsoft Mapping. Geospatial Development in Windows 10 with Bing Maps and C# Second Edition. Carmen Au Ray Rischpater Microsoft Mapping Geospatial Development in Windows 10 with Bing Maps and C# Second Edition Carmen Au Ray Rischpater Microsoft Mapping: Geospatial Development in Windows 10 with Bing Maps and C# Copyright

More information

Raven: Scripting Java Builds with Ruby MATTHIEU RIOU

Raven: Scripting Java Builds with Ruby MATTHIEU RIOU Raven: Scripting Java Builds with Ruby MATTHIEU RIOU Raven: Scripting Java Builds with Ruby Copyright 2007 by Matthieu Riou All rights reserved. No part of this work may be reproduced or transmitted in

More information

Beginning django CMS. Nigel George

Beginning django CMS. Nigel George Beginning django CMS Nigel George Beginning django CMS Copyright 2015 by Nigel George This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material

More information

The Definitive Guide to. NetBeans Platform 7. Heiko Bock. Apress*

The Definitive Guide to. NetBeans Platform 7. Heiko Bock. Apress* The Definitive Guide to NetBeans Platform 7 Heiko Bock Apress* Contents About the Author About the Translator About the Technical Reviewers Acknowledgments Introduction xiv xiv xv xvi xvii * Part 1: Basics

More information

Web Development with Java

Web Development with Java Web Development with Java Tim Downey Web Development with Java Using Hibernate, JSPs and Servlets Tim Downey, BS, MS Florida International University Miami, FL 33199, USA British Library Cataloguing in

More information

Deploying SharePoint 2016

Deploying SharePoint 2016 Deploying SharePoint 2016 Best Practices for Installing, Configuring, and Maintaining SharePoint Server 2016 Vlad Catrinescu Trevor Seward Deploying SharePoint 2016: Best Practices for Installing, Configuring,

More information

George Grätzer. Practical L A TEX

George Grätzer. Practical L A TEX Practical L A TEX George Grätzer Practical L A TEX 123 George Grätzer Toronto, ON, Canada Additional material to this book can be downloaded from http://extras.springer.com ISBN 978-3-319-06424-6 ISBN

More information

Guide to OSI and TCP/IP Models

Guide to OSI and TCP/IP Models SPRINGER BRIEFS IN COMPUTER SCIENCE Mohammed M. Alani Guide to OSI and TCP/IP Models SpringerBriefs in Computer Science Series editors Stan Zdonik Peng Ning Shashi Shekhar Jonathan Katz Xindong Wu Lakhmi

More information

JavaScript Object Programming

JavaScript Object Programming JavaScript Object Programming Martin Rinehart JavaScript Object Programming Copyright 2015 by Martin Rinehart This work is subject to copyright. All rights are reserved by the Publisher, whether the whole

More information

Pro Data Backup and Recovery. Steven Nelson

Pro Data Backup and Recovery. Steven Nelson Pro Data Backup and Recovery Steven Nelson Pro Data Backup and Recovery Copyright 2011 by Steven Nelson All rights reserved. No part of this work may be reproduced or transmitted in any form or by any

More information

Interactive Object Oriented Programming in Java

Interactive Object Oriented Programming in Java Interactive Object Oriented Programming in Java Learn and Test Your Skills Vaskaran Sarcar Interactive Object Oriented Programming in Java: Learn and Test Your Skills Vaskaran Sarcar Bangalore, Karnataka,

More information

Understanding Oracle APEX 5 Application Development

Understanding Oracle APEX 5 Application Development Understanding Oracle APEX 5 Application Development Second Edition Edward Sciore Understanding Oracle APEX 5 Application Development Copyright 2015 by Edward Sciore This work is subject to copyright. All

More information

Building Spring 2 Enterprise Applications

Building Spring 2 Enterprise Applications Building Spring 2 Enterprise Applications Interface 21 with Bram Smeets and Seth Ladd Building Spring 2 Enterprise Applications Copyright 2007 by Interface 21, Bram Smeets, Seth Ladd All rights reserved.

More information

Office 365. Migrating and Managing Your Business in the Cloud. Matthew Katzer Don Crawford

Office 365. Migrating and Managing Your Business in the Cloud. Matthew Katzer Don Crawford Office 365 Migrating and Managing Your Business in the Cloud Matthew Katzer Don Crawford Office 365: Migrating and Managing Your Business in the Cloud Matthew Katzer and Don Crawford Copyright 2013 by

More information

Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler

Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Agile Database Techniques

More information