Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Oracle JDeveloper 11gR2 Cookbook
Oracle JDeveloper 11gR2 Cookbook

Oracle JDeveloper 11gR2 Cookbook: Using JDeveloper to build ADF applications is a lot more straightforward when you learn through practical recipes. This book has over 85 of them to take you beyond the basics and raise your knowledge to a new level.

eBook
$9.99 $42.99
Paperback
$70.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

Oracle JDeveloper 11gR2 Cookbook

Chapter 2. Dealing with Basics: Entity Objects

In this chapter, we will cover:

  • Using a custom property to populate a sequence attribute

  • Overriding doDML() to populate an attribute with a gapless sequence

  • Creating and applying property sets

  • Using getPostedAttribute() to determine the posted attribute's value

  • Overriding remove() to delete associated child entities

  • Overriding remove() to delete a parent entity in an association

  • Using a method validator based on a view object accessor

  • Using Groovy expressions to resolve validation error message tokens

  • Using doDML() to enforce a detail record for a new master record

Introduction

Entity objects are the basic building blocks in the chain of business components. They represent a single row of data and they encapsulate the business model, data, rules, and persistence behavior. Usually, they map to database objects, most commonly to database tables, and views. Entity object definitions are stored in XML metadata files. These files are maintained automatically...

Introduction


Entity objects are the basic building blocks in the chain of business components. They represent a single row of data and they encapsulate the business model, data, rules, and persistence behavior. Usually, they map to database objects, most commonly to database tables, and views. Entity object definitions are stored in XML metadata files. These files are maintained automatically by JDeveloper and the ADF framework, and they should not be edited by hand. The default entity object implementation is provided by the ADF framework class oracle.jbo.server.EnityImpl. For large-scale projects you should create your own custom entity framework class, as demonstrated in the Setting up BC base classes recipe in Chapter 1,Pre-requisites to Success: ADF Project Setup and Foundations.

Likewise, it is not uncommon in large-scale projects to provide custom implementations for the entity object methods doDML(), create(), and remove(). The recipes in this chapter demonstrate, among other...

Using a custom property to populate a sequence attribute


In this recipe, we will go over a generic programming technique that you can use to assign database sequence values to specific entity object attributes. Generic functionality is achieved by using custom properties. Custom properties allow you to define custom metadata that can be accessed by the ADF business components at runtime.

Getting ready

We will add this generic functionality to the custom entity framework class. This class was created back in the Setting up BC base classes recipe in Chapter 1, Pre-requisites to Success: ADF Project Setup and Foundations. The custom framework classes in this case reside in the SharedComponets workspace. This workspace was created in the recipe Breaking up the application in multiple workspaces, Chapter1, Pre-requisites to Success: ADF Project Setup and Foundations. You will need to create a database connection to the HR schema, if you are planning to run the recipe's test case. You can do this...

Overriding doDML() to populate an attribute with a gapless sequence


In this recipe, we will go over a generic programming technique that you can use to assign gapless database sequence values to entity object attributes. A gapless sequence will produce values with no gaps in between them. The difference between this technique and the one presented in the Using a custom property to populate a sequence attribute recipe, is that the sequence values are assigned during the transaction commit cycle instead of during component creation.

Getting ready

We will add this generic functionality to the custom entity framework class that we created in the Setting up BC base classes recipe in Chapter 1, Pre-requisites to Success: ADF Project Setup and Foundations. The custom framework classes in this case reside in the SharedComponets workspace. You will need access to the HR database schema to run the recipe's test case.

How to do it...

  1. 1. Start by opening the SharedComponets workspace in JDeveloper. If...

Creating and applying property sets


In the Using a custom property to populate a sequence attribute and Overriding doDML() to populate an attribute with a gapless sequence recipes of this chapter, we introduced custom properties for generic ADF business component programming. In this recipe, we will present a technique to organize your custom properties in reusable property sets. By organizing application-wide properties in a property set and exporting them as part of an ADF Library JAR, you can then reference them from any other ADF-BC project. This in turn will allow you to centralize the custom properties used throughout your ADF application in a single property set.

getting ready

We will create a property set in the SharedComponets workspace. I suggest that you go over the Using a custom property to populate a sequence attribute and Overriding doDML() to populate an attribute with a gapless sequence recipes in this chapter before continuing with this recipe. To run the recipe's test cases...

Using getPostedAttribute() to determine the posted attribute's value


There are times when you need to get the original database value of an entity object atttribute, such as when you want to compare the attribute's current value to the original database value. In this recipe, we will illustrate how to do this by utilizing the getPostedAttribute() method.

Getting ready

We will be working on the SharedComponets workspace. We will add a helper method to the custom entity framework class.

How to do it...

  1. 1. Start by opening the SharedComponets workspace. If needed, follow the steps in the referenced recipe to create it.

  2. 2. Locate the custom entity framework class and open it into the source editor.

  3. 3. Add the following code to the custom entity framework class:

    /**
    * Check if attribute's value differs from its posted value
    * @param attrIdx the attribute index
    * @return
    */
    public boolean isAttrValueChanged(int attrIdx) {
    // get the attribute's posted value
    Object postedValue = getPostedAttribute(attrIdx...

Overriding remove() to delete associated children entities


When deleting a parent entity, there are times you will want to delete all of the child entity rows in an entity assocation relation. In this recipe, we will see how to accomplish this task.

Getting ready

You will need access to the HR database schema.

How to do it...

  1. 1. Start by creating a new Fusion Web Application (ADF) workspace called HRComponents.

  2. 2. Create a Database Connection for the HR schema in the Application Resource section of the Application Navigator.

  3. 3. Use the Business Components from Tables selection on the New Gallery dialog to create business components objects for the DEPARTMENTS and EMPLOYEES tables. The components in the Application Navigator should look similar to the following:

  4. 4. Double-click on the EmpDeptFkAssoc association on the Application Navigator to open the association definition, then click on the Relationship tab.

  5. 5. Click on the Edit accessors button (the pen icon) in the Accessors section to...

Overriding remove() to delete a parent entity in an association


In this recipe, we will present a technique that you can use in cases that you want to delete the parent entity in an association when the last child entity is deleted. An example of such a case would be to delete a department when the last department employee is deleted.

Getting ready

You will need access to the HR schema in your database.

How to do it...

  1. 1. Start by creating a new Fusion Web Application (ADF) workspace called HRComponents.

  2. 2. Create a database connection for the HR schema in the Application Resource section of the Application Navigator.

  3. 3. Use the Business Components from Tables selection on the New Gallery dialog to create Business Components objects for the DEPARTMENTS and EMPLOYEES tables.

  4. 4. Double-click on the EmpDeptFkAssoc association on the Application Navigator to bring up the Association editor, then click on the Relationship tab.

  5. 5. Click on the Edit accessors button (the pen icon) in the Accessors section...

Using a method validator based on a view object accessor


In this recipe, we will show how to validate an entity object against a view accessor using a custom entity method validator. The use case that we will cover—based on the HR schema—will not allow the user to enter more than a specified number of employees per department.

Getting ready

We will be using the HRComponents workspace that we created in the previous recipes in this chapter so that we don't repeat these steps again. You will need access to the HR database schema.

How to do it…

  1. 1. Right-click on the com.packt.jdeveloper.cookbook.hr.components.model.view package of the HRComponentsBC business components project of the HRComponents workspace, and select New View Object….

  2. 2. Use the Create View Object wizard to create a SQL query view object called EmployeeCount based on the following query:

    SELECT COUNT(*) AS EMPLOYEE_COUNT FROM EMPLOYEES WHERE DEPARTMENT_ID = :DepartmentId
    
  3. 3. While on the Create View Object wizard, also do the...

Using Groovy expressions to resolve validation error message tokens


In this recipe, we will expand on the Using a custom validator based on a View Object accessor recipe to demonstrate how to use validation message parameter values based on Groovy expressions. Moreover, we will show how to retrieve the parameter values from a specific parameter bundle.

Groovy is a dynamic language that runs inside the Java Virtual Machine. In the context of the ADF Business Components framework, it can be used to provide declarative expressions that are interpreted at runtime. Groovy expressions can be used in validation rules, validation messages, and parameters, attribute initializations, bind variable initializations, and more.

Getting ready

This recipe builds on the Using a custom validator based on a View Object accessor recipe. It also relies on the recipes Breaking up the application in multiple workspaces and Setting up BC base classes presented in Chapter 1,Pre-requisites to Success: ADF Project...

Using doDML() to enforce a detail record for a new master record


In this recipe, we will consider a simple technique that we can use to enforce having detailed records when inserting a new master record in an entity association relationship. The use case demonstrates how to enforce creating at least one employee at the time when a new department is created.

Getting ready

We will use the HR database schema and the HRComponents workspace that we have created in previous recipes in this chapter.

How to do it...

  1. 1. Open the DepartmentImpl custom entity implementation class and override the doDML() method using the Override Methods dialog.

  2. 2. Add the following code to the doDML() method before the call to super.doDML():

    // check for insert
    if (DML_INSERT == operation) {
    // get the department employees accessor
    RowIterator departmentEmployees = this.getDepartmentEmployees();
    // check for any employees
    if (!departmentEmployees.hasNext()) {
    // avoid inserting the department if there are no employees...
Left arrow icon Right arrow icon

Key benefits

  • Encounter a myriad of ADF tasks to help you enhance the practical application of JDeveloper 11gR2
  • Get to grips with deploying, debugging, testing, profiling and optimizing Fusion Web ADF Applications with JDeveloper 11gR2 in this book and e-book
  • A high level development cookbook with immediately applicable recipes for extending your practical knowledge of building ADF applications

Description

Oracle's Application Development Framework (ADF) for Fusion Web Applications leverages Java EE best practices and proven design patterns to simplify constructing complex web solutions with JDeveloper, and this hands-on, task-based cookbook enables you to realize those complex, enterprise-scale applications. With the help of real-world implementations, practical recipes cover everything from design and construction, to deployment, testing, debugging and optimization. This practical, task-based cookbook takes you, the ADF developer, on a practical journey for building Fusion Web Applications. By implementing a range of real world use cases, you will gain invaluable and applicable knowledge for utilizing the ADF framework with JDeveloper 11gR2. "Oracle JDeveloper 11gR2 Cookbook"ù is a task-based guide to the complete lifecycle of Fusion Web Application development using Oracle JDeveloper 11gR2 and ADF.You will get quickly up and running with concepts like setting up Application Workspaces and Projects, before delving into specific Business Components such as Entity Objects, View Objects, Application Modules and more. Along the way you will encounter even more practical recipes about ADF Faces UI components and Backing Beans, and the book rounds off by covering security, session timeouts and exceptions.With "Oracle JDeveloper 11gR2 Cookbook"ù in hand you will be equipped with the practical knowledge of a range of ready to use implementation cases which can be applied to your own Fusion Web ADF Applications.

Who is this book for?

If you are a JavaEE developer who wants to go beyond the basics of building ADF applications with Oracle JDeveloper 11gR2 and get hands on with practical recipes, this book is for you. You should be comfortable with general Java development principles, the JDeveloper IDE, and ADF basics.

What you will learn

  • Get quickly up and running by downloading, installing and optimizing JDeveloper on Linux
  • Absorb the foundational techniques presented for laying out the Fusion Web ADF Application during the application architectural phases
  • Get to grips with using custom properties and property sets for generic programming and overriding doDML() to populate sequence attributes
  • Work with View objects, List-of-Values, Bind Variables and View Criteria
  • Handle security, exceptions, logging and session timeouts
  • Create and use generic extension interfaces, service-enabling Application Modules and shared Applications Modules
  • Go further with ADF Faces techniques like using custom listeners for query panel operations and programmatically executing operation bindings
  • Master Task Flow techniques such as using a Method Call activity to initialize a page and using Task Flow Initializers
Estimated delivery fee Deliver to South Korea

Standard delivery 10 - 13 business days

$12.95

Premium delivery 5 - 8 business days

$45.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jan 24, 2012
Length: 406 pages
Edition : 1st
Language : English
ISBN-13 : 9781849684767
Vendor :
Oracle
Category :
Languages :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to South Korea

Standard delivery 10 - 13 business days

$12.95

Premium delivery 5 - 8 business days

$45.95
(Includes tracking information)

Product Details

Publication date : Jan 24, 2012
Length: 406 pages
Edition : 1st
Language : English
ISBN-13 : 9781849684767
Vendor :
Oracle
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 191.97
Developing Web Applications with Oracle ADF Essentials
$54.99
Oracle ADF Real World Developer's Guide
$65.99
Oracle JDeveloper 11gR2 Cookbook
$70.99
Total $ 191.97 Stars icon
Banner background image

Table of Contents

12 Chapters
Prerequisites to Success: ADF Project Setup and Foundations Chevron down icon Chevron up icon
Dealing with Basics: Entity Objects Chevron down icon Chevron up icon
A Different Point of View: View Object Techniques Chevron down icon Chevron up icon
Important Contributors: List of Values, Bind Variables, View Criteria Chevron down icon Chevron up icon
Putting them all together: Application Modules Chevron down icon Chevron up icon
Go with the Flow: Task Flows Chevron down icon Chevron up icon
Face Value: ADF Faces, JSF Pages, and User Interface Components Chevron down icon Chevron up icon
Backing not Baking: Bean Recipes Chevron down icon Chevron up icon
Handling Security, Session Timeouts, Exceptions, and Errors Chevron down icon Chevron up icon
Deploying ADF Applications Chevron down icon Chevron up icon
Refactoring, Debugging, Profiling, and Testing Chevron down icon Chevron up icon
Optimizing, Fine-tuning, and Monitoring Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(5 Ratings)
5 star 40%
4 star 20%
3 star 40%
2 star 0%
1 star 0%
Stanley Apr 16, 2012
Full star icon Full star icon Full star icon Full star icon Full star icon 5
First, the author has discussed issues that you need to address in the early design and architectural phases of the project: * Modularize your application o Break up the application in multiple workspaces o Divide data model into appropriate application modules o Avoid circular dependencies use tools such as Dependency Finder * Make your application easy to extend o For example, allow the ability to extend the framework's base classes early on in the development process * Set up logging with the right logging framework o Choose ODL (Oracle Diagnostics Logging) for its tight integration with WebLogic and JDeveloper. * Use page template to ensure that pages throughout the application are consistent, and provide a familiar look and feel to the end user * Customize the exception error message for your application * Use a generic backing bean actions framework to encapsulate common functionality for common JSF page actionsAfter laying out the foundation, the author then expand the scope of discussion vertically and horizontally.Vertically, the book covers different layers of the ADF's MVC architecture and various components in each layer. Horizontally, it discusses different supporting frameworks or technologies which are used to help you create a successful end-to-end enterprise application: * IDE: JDeveloper * Integration Framework: Hudson * Unit Testing Framework: JUnit * Deployment Framework: WebLogic Server * Application Monitoring: JRockit Mission ControlThe author has done a good job of presenting a complex subject in a coherent and easy-to-read manner. He has also provides many useful recipes which can be eventually incorporated into your application implementations. Overall, it provides a useful reference for all developers starting enterprise application development with Oracle ADF.
Amazon Verified review Amazon
Subha Sep 20, 2012
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I found this book very useful to start working on ADF. I am an experienced middle/server side developer, with not much experience with front end development using Oracle Forms.This book helped me with ADF development being concise and very hands on in terms of development terminology using the associated tools. Yes a definite addition to ADF library.
Amazon Verified review Amazon
Serafeim Karapatis Apr 12, 2012
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
With great pleasure I will try to convey my impressions about this book, as the author of it is Nick Haralabidis (which maintains the popular blogs JDeveloper FAQ and ADF Code Bits) with whom I collaborated on the successful and complex task of Oracle Forms 6i migration to ADF 11g project for Mednet International.Working on ADF for nearly a decade, is indeed striking that today there are countless sources of information, whether coming from official documentation, books or bloggers. The fundamental difference of JDeveloper Cookbook (which more accurately should have been called ADF Cookbook) is that it requires a thorough knowledge of the ADF and is not engaged in the interpretation or description of the main concepts; on the contrary it proposes solutions to real life development issues, that a structured team will encounter in a large scale project, demanding a solid and uniform treatment.The book deals with over 120 "recipes" for development in ADF 11g, covering the ADF BC, the ADF Controller, ADF Faces and various vertical issues as debugging, deployment, tuning, etc. The presentation style is outstanding and it follows the blogs of Nick: he first describes the problem and then a detailed, step by step solving approach follows with accompanying screenshots. After that a thorough explanation is given for the fine-grained details of the solution and in the end there are comments, ideas for extension and references. The advantages of this book therefore include the style of writing that is direct, comprehensive and complete. During the description of "recipes" there is plenty of source code, provided online, which I very much liked. On the other hand, there is an imbalance in the selection of recipes: some are offered already by the official documentation of Oracle (ie Fusion Middleware Developer's Guide), others are very simple to cite, others a bit more complex, while some important issues are missing IMHO such on transaction management, javascript support, ADF regions, etc. Let us examine in more detail the chapters of this book:The first chapter ("Prerequisites to Success: ADF Project Setup and Foundations") has to do with setting up the JDeveloper environment in Linux, the creation of base classes for a project, the libraries partitioning, the logging, creating page templates and the coverage of a custom generic actions framework. The library recipe, the page templates and the base classes are covered in great detail in the Oracle documentation and perhaps a simple reference of them would suffice. The second chapter ("Dealing with Basics: Entity Objects") contains recipes for generating keys out from Oracle Sequences, managing the life cycle of an entity (doDML, removal, child removal, validation) and although there are overlaps in the documentation is a very good chapter. The same applies to "A Different Point of View: View Object Techniques" which describes the iteration through the records of a view object, changing the updateable and queriable properties of an attribute programmatically, the maintenance of current row before and after a rollback, the detection of new records, the modification of the WHERE clause, etc. Perhaps it would be preferable to merge it conceptually with the next chapter ("Important Contributors: List of Values, Bind Variables, View Criteria ") which also covers some already known issues (cascade lovs, lov switcher, view criteria) but also adds new material such as changing or cleaning the bind variables or making case-insensitive queries.Moving to Chapter 5 ("Putting them all together: Application Modules") you will find recipes on how to create a Web Service from ADF BC and respectively of how to consume it as a Web Service client and a good example of activate / passivate framework behavior modification. Also there is coverage of statistics retrieval in terms of Application Modules, shared LOV modules and the extension of the Database Transaction Factory. Then, you will browse techniques for task flows initialization (with custom methods from the Application Module or from ADF task flow initializer), how to invoke a task flow URL, create a train flow or how to get information through the MDS. The chapter on ADF Faces introduces a few new elements as themes for customization of the af: query, usage the af: tree, the af: poll, the af: carousel, the af: selectManyShuttle or pop-up for row editing are found in the official documentation. But here stands out a recipe for page templates to reuse popups and also an indicative example for file export operation, despite the unfortunate realization of it (where the file contents are contained in a java.lang.String variable)"In Backing not Baking: Bean Recipes" chapter there are useful recipes for an af: popup to alert for pending changes, a custom row selection listener, an excellent reference for custom query listeners and for a popup to inform for long-duration transactions. There is also an example of using the af: iterator in a custom data collection and an unnecessary reference to session variables (which are discouraged by the framework) Chapter 9 ("Handling Security, Session Timeouts, Exceptions, and Errors") does not add something new on the security aspect (for example there is coverage of common knowledge about the ADF Security Wizard, the programmatic access to the security context, an example of a custom login page) In contrast, most intriguing recipes are those that describe the session timeout management and handling errors from a custom exception handler that transforms error messages coming from the ADF BC layer.The deployment chapter (Deploying ADF Applications) describes among others the use of ojdeploy tool to automate tasks (build and deploy) over Hudson CI. The next chapter (Refactoring, Debugging, Profiling, and Testing) I would say that describes mostly the theoretical capabilities of the platform rather than providing practical recipes for its usage. Topics covered here are the database synchronization of the ADF BC, the refactoring, the features of remote debugging and CPU profiling (which incidentally is not supported in Linux) Also how to manage log messages and the usage of JUnit for unit testing. There is compensation for this material in the last chapter (Optimizing,Fine-tuning, and Monitoring) where there are some good tips for optimizing the ADF BC (but relevant techniques for ADF Faces are lacking), there is an excellent recipe for Weblogic Work Managers and finally there is a poor report from the ADF standpoint about JRockit Mission Control to monitor a system.In conclusion I would say that this book excels at its writing style that should drive development teams to write their own cookbooks adapted to the peculiarities of their projects, borrowing many of the recipes found here. It is also a precious reference because it brings together best practices in a single title. It is definitely a must have for any ADF developer. On the other hand, it includes some matters that are largely detailed in official documentation of Oracle, and I would very much anticipate recipes about more sophisticated issues such as ADF regions, bindings, JSF 2.0, javascript integration, ui design and transaction management. Maybe an updated version or an online additional material could cover these in the future.
Amazon Verified review Amazon
Grant Ronald Apr 26, 2012
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
Nick Haralabidis has written "Oracle JDeveloper 11gR2 Cookbook" published by Packt. Firstly, as someone who has written a book himself, I should offer my congratulations to Nick. Writing a technical book like this is never easy and so those efforts should be recognised - so well done Nick and welcome to the ADF authors club. Now, onto the book review.As the name suggests, this is a mixed bag of, some common, some less common, development recipes for ADF development. So with that in mind the book isn't really about a structured learning path through ADF. What you have are examples that you can dip in and out of as you require. Of course, you are still learning and what I liked about this book was that you could learn something with a small well contained example. I would comment that if you are new to ADF then some of the recipes might scare you off a bit. For example, you are only at page 27 "Customizing exceptions", which sounds simple enough, but you end up with a whole page of code. Now, thats not an issue with the book per se, but keep in mind my point that this book is not aimed at structured learning starting at page 1 through to the end.What I did like, was the structure of each recipe. He has headings "Getting ready", "How to do it", "How it works" and "There's more". I really like this breaking down of the recipe and it makes it much easier to follow.That said, there were a few points I was hoping for a little more explanation and I did find a couple of places where I felt I would have done things differently and one or two places where I thought "Is that right??" (e.g. page 14 when the VC and Model project were bundled together, meaning if the JAR was added to a consuming Model project then it would contain VC artefacts). I also found (can't remember the pages number) when it seemed that EOs and VOs were getting mixed up in the description and the code. So the one or two little "oddities" made me a little nervous but so long as you keep your brain in gear and still question "is this right for my specific case", rather than following it blindly, then I think you'd be ok.To summarise, I think this book is a nice addition to the current ADF book library. I wouldn't recommend it if you were starting out learning ADF, but if you start coding/working on a real project then I think it wouldn't be a bad thing for the team to have this on their bookcase.
Amazon Verified review Amazon
Mark Piller Jul 25, 2012
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
GREAT CONCEPTS DEPICTEDI like the information in this book. There are many concepts that are good to learn. An example is how to build an application modularly such that tasks could be assigned to members of a team for developing a large application.I also like the details regarding extending the basic application that is generated by the JDeveloper ADF wizards so that you have more micro management of the application's methods.GAPS, ASSUMPTIONS, AMBIGUITIES - NOT A TUTORIALWhat I have a problem with is the numerous gaps in documentation (maybe these are assumed to be understood by the user) - especially when compared to the source code that accompanies the book. Another way to state this is that many things are unclear. The best way to resolve the gaps and lack of clarity is to continually refer to the book's source code.Here are a couple of examples:p. 56 > the user is told how to test custom properties and a reference is made to the DepartmentAppModule application module. This does not even exist in the book's source code. The user is never instructed to even create this module. Yes, the user can make the necessary adjustment. However, my opinion is that this should have instructions somewhere in the book on how to accomplish this.p. 14, Steps 12 through 18 > This does not mention the important step of adding "SharedBC.jpr" to the Library Dependencies in the Deployment Profile Properties. You must do this for the configuration to be correct. This can be discovered by looking at the book's source code (as you will need to do continually).p. 16, Step 27 > "first select the appropriate project on the Application Navigator" - the reader is never told which project is the appropriate project.... you have to assume it is the SharedViewController project since that is the project the reader was working on at that moment.I am recommending this book to any ADF developer that wants to become a more effective technician. Just a word of warning: you will need to spend an extra amount of time to reconcile your application (if you are building one from the book) to the book's instructions. In the end, it will be worth it.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela