295 42 13MB
English Pages 276 Year 2010
Web 2.0 Solutions with Oracle WebCenter 11g Learn WebCenter 11g fundamentals and develop real-world enterprise applications in an online work environment
Plinio Arbizu Ashok Aggarwal with Amit Gupta Sukanta K. Hazra
BIRMINGHAM - MUMBAI
Web 2.0 Solutions with Oracle WebCenter 11g Copyright © 2010 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: September 2010
Production Reference: 1150910
Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. ISBN 978-1-847195-80-7 www.packtpub.com
Cover Image by Sandeep Babu ([email protected])
Credits Authors Plinio Arbizu
Editorial Team Leader Gagandeep Singh
Ashok Aggarwal Project Team Leader Co-Authors
Priya Mukherji
Amit Gupta Sukanta K. Hazra
Project Coordinator Leena Purkait
Reviewers Vince Casarez Hector R. Madrid Acquisition Editor James Lumsden Development Editor Rakesh Shejwal Dilip Venkatesh
Indexer Monica Ajmera Mehta Proofreader Chris Smith Graphics Nilesh R. Mohite Production Coordinator Alwin Roy
Technical Editors Neha Damle Vinodhan Nair
Cover Work Alwin Roy
About the Authors Plinio Arbizu is member of Oracle ACE Director Program, sponsored by otn.oracle.com, which selects professionals in the world who have a strong technical level and commitment to Oracle technology diffusion. He has more than ten years of IT experience in projects using Oracle Technology, for commercial, pharmaceutical, and inance areas in companies like Bristol Myers Squibb Peru and Consite. Currently, he lives in Mexico and serves as a Senior Consultant in Deloitte Consulting. Also, he is an Oficial Oracle University Instructor in courses like JEE and Oracle WebCenter. Additionally, he has participated as a speaker and organizer of Oracle technology events in Colombia, Chile, Argentina, and Peru Plinio is a graduate of computer engineering at the Pontiicia Universidad Catolica del Peru. You can follow him through his blog: http://plinioa.blogspot.com. I begin by thanking James Lumsden, for the opportunity to write this book. His encouragement, support, and commitment were vital to complete this project. This book could never have happened without the guidance of our editor, Rakesh Shejwal, who has always been looking after our deliveries. Thanks for your coordination and collaboration in the technical reviews of each chapter. I would also like to acknowledge the Oracle WebCenter team; Vince Casarez and George Maggessy. They provided invaluable contributions with knowledge and tools. Special thanks to Leena Purkait, who from the beginning was following the development of each chapter. Her persistence and dedication was instrumental in completing the book. Finally, my gratitude to the whole team at Packt Publishing. Thanks for your effort and support in the publication of the book.
Ashok Aggarwal has been delivering web-based collaboration, document
management, content management, and worklow solutions using Oracle's products since before they were named Enterprise 2.0. As Oracle's offerings have matured and the market has grown, so has Ashok's involvement in the Oracle Fusion Middleware technology stack, leading to early adoption of Oracle WebCenter Suite 10g and 11g. Since 2002, Ashok has delivered robust solutions by leading a highly talented implementation organization, M&S Consulting. Prior to co-founding M&S, Ashok focused on delivery of enterprise applications and integration solutions at Accenture in a variety of industry verticals. Ashok has led innovative business transformation initiatives leveraging SOA, BPM, BI, Identity Management, and Enterprise 2.0 technologies as he works to solve today's most challenging business problems. He is a regular instructor and speaker at private and public events. Along with white papers and trade journal publications on Fusion Middleware, Ashok is co-authoring an Oracle SOA book and sponsoring technology and process publications for others on his team at M&S Consulting. Ashok holds a B.S. in Biomedical Engineering and a Minor in Computer Science from The Johns Hopkins University. To the talented and tireless M&S team, our wonderful customers, the Oracle E2.0 team, Packt Publishing, and, most importantly, my family and friends. All have supported me greatly in this process.
About the Co-Authors Amit Gupta has spent most of his career in high technology, media, and infrastructure. He currently leads the Enteprise 2.0 infrastructure and development team at M&S Consulting. Amit co-founded Afle Limited, which is a mobile media company with extensive operations in the Asia-Paciic region. While there, he helped to drive new product initiatives and helped to complete Microsoft's strategic investment in Afle. Prior to Afle, Amit worked at Bloomberg New York, and subsequently at Bloomberg London, helping to plan and implement major new projects such as "Bloomberg Anywhere" that helped to drive $500M+ in new revenues annually. While there, he also designed and implemented highly scalable system architectures that were used to support millions of users. Systems integration is his specialty. He is a technology enthusiast and likes to get his hands dirty with new projects. He has also spent time at various high-technology companies, developing and applying virtual reality applications, medical imaging algorithms, neural networks, and inancial trading systems. Amit holds a B.S. in Computer Science (Honors) from The Johns Hopkins University (USA). To my supportive family, the Oracle Team, and Packt Publishing. This would not have been possible without you.
Sukanta K. Hazra has a passion for technology and constant desire to try out new areas. This has taken him through academic research on wireless networks and networking protocols, mobile software development, mobile advertisement platforms, and enterprise software and architecture. His experience in various ields has given him a unique perspective on software development and the evolution of software and systems in the evolving technology landscape. Sukanta was one of the founding members of Afle Limited, which is a mobile media company with extensive operations in the Asia-Paciic region. At Afle, Sukanta led the development of their mobile software products, working on several mobile platforms. He also designed and led the implementation of Afle's mobile advertisement platform. Prior to Afle, he worked as a researcher in the ield of wireless networks at the Institute for Infocomm Research, Singapore. He has contributed several papers to IEEE conferences and journals. Sukanta considers himself to be a 'geek' and both enjoys tinkering with the guts of the system and is equally comfortable dealing with the high-level architectural view of the system. His current passion is Service-Oriented Architecture and the use of use of open standards and their consequent impact on the enterprise. Sukanta holds both a Masters degree in Engineering and a Bachelors degree (Honors) in Engineering from National University of Singapore. To the thousands of software engineers out there who are making it a better world for all of us. To my colleagues at M&S Consulting for their encouragement and helpful advice, and to Packt Publishing for their suggestions and patience. Thank you for making this possible.
About the Reviewers Vince Casarez, Vice President of Oracle Corporation, focuses on Web 2.0 technology development, Enterprise 2.0, and portal products. Over the past 14 years, Vince has held many key positions at Oracle. Currently, he is Vice President of Product Management for Enterprise 2.0 and Portal products at Oracle. He has recently co-authored a book entitled Reshaping Your Business with Web 2.0 that remains on the Amazon Technology Best Seller list. He also has responsibility for managing the WebCenter development team handling Web 2.0 and social computing services. Prior to this, he focused on hosted portal development and operations that included Oracle Portal Online for external customers, Portal Center for building a portal community, and My Oracle for the employee intranet. Previously, he was Vice President of Tools Marketing, handling all tools products including development tools and business intelligence tools. Prior to running Tools Marketing, he was Director of Product Management for Oracle's JDeveloper. Before joining Oracle, Vince spent seven years at Borland International where he was group product manager of Paradox for Windows and dBASE for Windows. He holds a Bachelors degree in Biochemistry from the University of California, Los Angeles. Oracle is the largest business software company in the world, with 345,000 customers—including 100 of the Fortune Global 100—and supports these customers in more than 145 countries.
Hector R. Madrid is the author of the Oracle 10g/11g Data and Database Management Utilities book. He is currently working as a freelance consultant; he collaborates with Oracle University as a certiied instructor for the DBA, Java, and Application Server course tracks. He is a highly respected Oracle professional with 20 years of experience as a full time DBA. He works with a wide range of DBA requirements starting from the daily DBA duties to the tasks related to mission-critical and high-availability systems. He was the irst Oracle Certiied Master in Latin America. He obtained a Masters degree in Computer Sciences from the Metropolitan Autonomous University (UAM) and he has presented different technical papers at several Oracle conferences. I want to thank my family for their patience and the time I borrowed from them during this project.
This book is dedicated to: My parents, Eusebia and Plinio, for helping me build my dreams My students, for your dedication and contribution in the technological development of Peru My wife, Maricarmen, because it's true, you are my happiness, my beautiful little princess -Plinio Arbizu
Table of Contents Preface Chapter 1: What is Oracle WebCenter? WEB 2.0 concepts Evolution of the platform application Social impact of Web Enterprise 2.0 concepts Oracle WebCenter Suite concepts Oracle JDeveloper Summary
Chapter 2: WebCenter Installation and Coniguration Hardware and software requirements High-level installation steps Step-by-step installation Installing Middleware Home Installing the WebCenter Framework and Services Summary
Chapter 3: Setting up the Development Environment Oracle JDeveloper 11g installation System requirements Downloading the tool JDeveloper installation Oracle WebCenter extension for JDeveloper Version control system installation JDeveloper integration with Subversion Testing WebCenter preconigured server Summary
1 7 8 8 9 10 10 12 13
15 16 16 16 25 31 37
39 40 40 40 41 42 45 50 51 55
Table of Contents
Chapter 4: Getting Started with WebCenter Development: Hello World(s)
Prerequisites Creating the Hello World web service Step 0: Start Oracle JDeveloper 11g Step 1: Creating a new application Step 2: Coniguring application settings Step 3: Coniguring project settings Step 4: Creating a Java class Step 5: Creating a Web Service from the Java class Step 6: Creating a deployment proile Step 7: Deploying the Web Service to the integrated Weblogic Server Step 8: Testing the web service Hello World Portlet Step 1: Creating a new Portlet Producer Application Step 2: Creating a new Portlet Step 3: Creating a Web Service Data Control for the Hello World web service Step 4: Creating a basic view to use the data control Step 5: Using the Web Service Data Control created Step 6: Creating a deployment proile Step 7: Deploying the portlet to the integrated WebLogic server Step 7: Testing the portlet Hello World WebCenter application Step 1: Creating a WebCenter application Step 2: Using the portlet producer Step 3: Creating a JSF page to host the portlet Step 4: Creating a page layout Step 5: Creating a deployment proile for the WebCenter application Step 6: Deploying the WebCenter application to the integrated WebLogic server Step 7: Testing the WebCenter application Summary
57 58 58 58 59 60 61 62 64 66 68 70 72 72 73 76 79 80 83 85 86 87 88 90 92 94 96 97 98 99
Chapter 5: Design and Personalization
101
ADF Faces Rich Client components Types of ADF Faces components Creating a new application Including a template for our application Building pages with database interaction ADF Business Components
101 102 102 104 114 114
[ ii ]
Table of Contents
Creating a persistence layer
114
Creating a Schema for our application Creating a database connection in JDeveloper Creating the Business Components Creating the page
Summary
114 115 117 121
126
Chapter 6: Portlets
127
Portlets, JSR-168 speciication WSRP speciication WebCenter portlets Developing a portlet using ADF Creating an ADF application Developing business components Creating a chart page Creating a Portlet using the page Portlet deployment Consuming a portlet Summary
127 129 129 130 131 132 137 141 142 145 149
Chapter 7: Discussions, Wiki, and Blog Services
Discussions coniguration Content structure User and group structure Integrating Discussions with WebCenter Ensuring the Discussions Server is running Creating a new WebCenter application Creating a JSF page Creating a connection to the Discussion Forum Embedding a Discussions task low in the JSF page Deploying, running, and testing Integrating Wiki and Blog with WebCenter Prerequisites Integrating Wiki and Blog using an IFrame Creating a new WebCenter Application Creating a JSF page Creating an IFrame to include the Wiki and Blog Server page Integrating Wiki and Blog using the Web Clipping Portlet Adding a new JSF page to the application Registering the Web Clipping Portlet Adding the Web Clipping Portlet to the JSF page Running the portlet page Summary [ iii ]
151
153 155 156 157 158 158 159 160 163 165 165 166 166 166 167 169 170 171 171 172 173 175
Table of Contents
Chapter 8: Search Service
177
Search in enterprise applications Integrating the WebCenter Search Service Ensuring that the WebCenter Wiki and Blog Server are running Creating a new WebCenter Application Creating a JSF page Creating a connection to the Discussions Service Adding the Discussions Forum task low to the JSF page Adding the Search task low to the JSF page Integrating the WebCenter Tags service Requirements for the Tags service Integrating with the WebCenter Tags service Creating a new custom WebCenter application Adding the required libraries Creating a connection to WebCenter schema Creating a JSF page with a tag button Creating a JSF page to host the Search Toolbar Coniguring ADF Security Creating a deployment proile Deploying the application to the Integrated WebLogic Server Viewing the application Integrating with the WebCenter Links Service Modifying the test_page to include the Links Detail Button Deploying the application to the Integrated WebLogic Server Why to use the WebCenter RSS Service Requirements for the WebCenter RSS Service Integrating the WebCenter RSS Service Creating a new custom WebCenter application Creating a JSF page to host the RSS Viewer task low Adding the RSS Viewer task low Running the application Viewing the application Summary
Chapter 9: Personalization with Oracle Composer Oracle Composer for developers Types of Oracle Components Building an environment with Oracle Composer Oracle Composer for end users Resource catalog Content customizing using Oracle Composer Summary [ iv ]
178 178 179 179 180 181 182 184 185 185 185 185 186 186 188 191 191 194 195 195 196 196 198 199 200 200 200 200 202 202 203 204
205 205 206 206 212 213 214 222
Table of Contents
Chapter 10: Oracle WebCenter Spaces Overview Oracle WebCenter Spaces Oracle WebCenter Personal Spaces Oracle WebCenter Group Spaces Oracle WebCenter Spaces installation Oracle Spaces coniguration Development of staff working environments Building a business role page Hands on Developing a Group Space Summary
Index
223 224 224 224 225 225 227 236 237 243 248
249
[v]
Preface Oracle WebCenter Suite is the industry's most comprehensive enterprise portal platform designed for business users, uniied with business applications, Enterprise 2.0 services, and social communities. It incorporates Web 2.0 content, collaboration, and communication services. However, without proper guidance on developing performance-critical enterprise applications, it is easy to make the wrong design and technology decisions. Packed with screenshots, this book offers you in-depth knowledge of developing custom WebCenter applications for your various enterprise requirements. Integrate various web services to make development simpler and faster. Build fast, reliable, and robust Web 2.0 applications with this hands-on practical tutorial. Oracle WebCenter Suite is a stack of products that helps implement Web 2.0 solutions in organizations. This book enables developers to learn the important concepts. It shows several scenarios where Oracle WebCenter 11g technology can be used to improve the productivity of your organization. Each chapter provides a practical application of the technology. It will guide you through many web-building features such as pages and portlets. Finally, the book describes complete solutions, such as Oracle WebCenter Spaces, and ready-to-use collaborative environments.
What this book covers Chapter 1, What is Oracle WebCenter?, summarizes the features of Oracle WebCenter and shows the business needs that this technology solves. Chapter 2, WebCenter Installation and Coniguration, provides the necessary instructions to install WEB Center Suite successfully in an environment standard of development.
Preface
Chapter 3, Setting up the Development Environment, helps us to prepare the development environments and the application server, in order to support our WebCenter applications. Chapter 4, Getting Started with WebCenter Development: Hello World(s), helps us create a HelloWorld web service. We also accomplish a veriication of our development environment and gain conidence in being able to build the foundational components and skills needed for WebCenter development. Chapter 5, Design and Personalization, explains how to develop templates and add data access features to our WebCenter applications. Chapter 6, Portlets, explains how to implement features using portlets in our applications, as component reuse is one of principal goals of our applications. Chapter 7, Discussions, Wiki, and Blog Services, demonstrates simple ways to incorporate the Wiki and Blog Services into your custom WebCenter applications. Chapter 8, Search Service, explores the WebCenter Search Service, Tags, Links, and RSS. By creating a sample application, it explains how to integrate WebCenter Search Service into your custom WebCenter application. Chapter 9, Personalization with Oracle Composer, works with Oracle WebCenter in two parts. In the irst part, as developers, we prepare the environment for end users. Then, we assume the role of end user to personalize the page deined in the previous step. Chapter 10, Oracle WebCenter Spaces Overview, shows how to conigure and customize Oracle WebCenter Spaces.
What you need for this book To develop and test the examples in this book, you need to have Oracle SOA Suite 11g Patch Set 2 (11.1.1.3) installed on your system. For Chapter 9, you also need Oracle Service Bus 11g (11.1.1.3) and Oracle Service Registry 11g (11.1.1.2), and for Chapter 10, you need Oracle BPA Suite 11g (11.1.1.2). • •
Oracle WebCenter Suite 11g Oracle JDeveloper 11g
Who this book is for This book is for web developers who need to improve their websites or business applications using Web 2.0 features. This book is recommended for you, if you are a: •
Portal Developer who works with a traditional portal and wants to move on to new technologies [2]
• •
Preface
Java Developer and want to add productivity features to your business applications Knowledge Manager and want to create collaborative environments and increase the productivity of your employees and organizational groups
Conventions In this book, you will ind a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning. Code words in text are shown as follows: "We can include other contexts through the use of the include directive." A block of code is set as follows:
DAV svn SVNParentPath C:\svn_repository
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
DAV svn SVNParentPath C:\svn_repository
Any command-line input or output is written as follows: SQL> create user paracas identified by paracas
New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "Select Default Role and press OK".
Warnings or important notes appear in a box like this.
Tips and tricks appear like this.
[3]
Preface
Reader feedback Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of. To send us general feedback, simply send an e-mail to [email protected], and mention the book title via the subject of your message. If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or e-mail [email protected]. If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.
Customer support Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase. Downloading the example code for this book You can download the example code iles for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub. com/support and register to have the iles e-mailed directly to you.
Errata Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you ind a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you ind any errata, please report them by visiting http://www.packtpub. com/support, selecting your book, clicking on the errata submission form link, and entering the details of your errata. Once your errata are veriied, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.
[4]
Preface
Piracy Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy. Please contact us at [email protected] with a link to the suspected pirated material. We appreciate your help in protecting our authors, and our ability to bring you valuable content.
Questions You can contact us at [email protected] if you are having a problem with any aspect of the book, and we will do our best to address it.
[5]
What is Oracle WebCenter? Man has just landed on Mars! Where would you go to ind information about this event? Although Man has not actually reached Mars yet, it is likely that you would have looked for answers on websites like Google, Yahoo, or MSN, thus demonstrating the Web's ability as a tool to work, communicate, and quickly verify that Man has not yet reached Mars. This book will give us precisely the expertise needed to take advantage the web plataform in order to build applications that offer communication, collaboration, knowledge sharing, social networking, and all those features that become our applications in WEB 2.0 solutions. This irst chapter describes how web technology has evolved into a platform that offers comprehensive services to share knowledge, communicate, and facilitate collaborative work. This platform evolution has been called Web 2.0. The arrival of Web 2.0 has not gone unnoticed in the business environment; indeed, companies have collected the beneits that this can offer and have applied them in their working environments to achieve eficiency in their operations. This new way of using Web 2.0 in business environments has been called Enterprise 2.0. Obviously, our book is not oriented to simply describing concepts, but also to implementing those concepts using the tools and technologies that Oracle offers. For this reason, we will show the main features of WebCenter Suite and JDeveloper, and how they can be used to develop Web 2.0 solutions. In this chapter, we will describe the following topics: • • • • •
Web 2.0 concepts Evolution of the platform application Enterprise 2.0 concepts Oracle WebCenter Oracle JDeveloper
What is Oracle WebCenter?
WEB 2.0 concepts The term Web 2.0 was created in 2004 during a brainstorm between O'Reilly and MediaLive International. This term is used to describe a new version of the web platform that offers its users enormous capacities for socialization. To better understand the evolution of the platform and the social impact of it, we need to review these concepts in detail.
Evolution of the platform application The irst platform used for the execution of applications was the PC, and it offered the facility to run our applications. Unfortunately, technical knowledge (memory, I/O, Interrupts, BUS, and so on) was often necessary to build applications. Currently, operating systems have become the standard platform to support our applications. Proof of this are the various applications for ofice, database management, multimedia, and others that are executed using those operating systems.
The emergence of the World Wide Web and tools for navigating it (Internet Explorer and Netscape), helped to bring about the emergence of a new platform called the Web (currently called Web 1.0). At the beginning, the GUI of this platform was limited (using only HTML and JavaScript) and it didn't offer the richness of solutions built under the support of the operating system. The emergence of new technologies that enrich the user interface, such as AJAX, consolidated the Web as a platform for a new generation of applications that are able to take advantage of these technologies. Google, Google Maps, Wikipedia, Blogs, and Flickr are evidence of this. This new version of the Web platform is called Web 2.0.
[8]
Chapter 1
The Web 2.0 as a platform provides the following technical advantages: • • • • •
We just need the support of the browser to run our applications. We can offer remote access to applications using the Internet. We can update our applications online, without installing any additional software in the clients. The applications are ready to be implemented in other portable devices such as Palm, BlackBerry, and Pocket PC. It is not necessary to have technical expertise in order to put content on the Web.
All these technical advantages, however, don't compare with the social impact that the Web 2.0 platform produces.
Social impact of Web The use of the Web 2.0 platform has enabled new ways to foster socialization among users. They are as follows: • • •
Communication: The platform, in addition to mail and instant message solutions, opens new ways to communicate using blogs, video, and so on. Knowledge exchange: Spaces opened in discussion areas, sharing pictures and iles, allow users to exchange information amongst themselves. Collaboration and participation: Web Technology allows users to participate using simple tools (blogs, podcasting) when they want to publish their information.
[9]
What is Oracle WebCenter?
•
•
Content management: The Web now permits us access to repositories of iles, such as image, audio, video, and other electronic documents. Creation of social environments: The Web supports the creation of spaces oriented to groups whose members share similar interests.
We can conclude that the arrival of Web 2.0 impacts not only technology, but above all, it represents a social impact. This social impact has signiicance in the business environment and leads to creation of new Enterprise 2.0 concepts.
Enterprise 2.0 concepts Companies can also take advantage of new web technologies. When establishing the "Enterprise 2.0" concept and examining the evolution of a company adapting to the use of new technologies, it's important to remember that the scope of Enterprise 2.0 is not restricted to the organization itself, but also includes its partners and customers. The technological beneits that Enterprise 2.0 offers are as follows: • •
Work environments online
•
Creating and customizing collaborative work environments
•
Integration with internal and external business applications
•
Use of social networks
•
Management and dissemination of knowledge of the organization
•
Ease of contacting the organization's resources Fermenting communication between an organization's members
We can then conclude that Enterprise 2.0 promotes the productivity of organizations by using a new technology platform offered by Web 2.0. At this point, you could ask yourself: How we can implement a solution that supports the guidelines suggested by Enterprise 2.0 and Web 2.0? The Oracle answer is called Oracle WebCenter Suite.
Oracle WebCenter Suite concepts Oracle WebCenter Suite is a platform for building corporate portals or custom applications that integrate Enterprise 2.0 features, and aims to improve business processes through the integration of business applications and user communities. This suite allows companies to build corporate portals, social networks, collaborative communities, content managers, composite applications, and intranet and internet sites. [ 10 ]
Chapter 1
Oracle WebCenter suite has the following key components: •
•
• •
•
Oracle WebCenter Framework: Used for building user interfaces and portlets in our solutions. The components built with this Framework use JSF and AJAX to provide a rich interface. Oracle WebCenter Services: This component provides capabilities that integrate our solutions with content managers, search, wikis, discussions, blogs, messaging services (mail, instant message, telephone) and the whole of the features of Web 2.0. Oracle WebCenter Composer: Allows users to personalize their content through friendly interfaces. Oracle WebCenter Spaces: An out-of-the-box application, which uses components previously detailed to provide a collaborative work environment, the ability to create social networks, and the facility to share resources. Oracle WebCenter Anywhere: Introduced to enable an application's interaction with mobile devices such as PDAs and smartphones.
[ 11 ]
What is Oracle WebCenter?
The relationships between these components and the application server are displayed in the following image:
In order to build Oracle WebCenter solutions, we need the support of a tool, and that is Oracle JDeveloper.
Oracle JDeveloper Oracle JDeveloper was created in 1997 as a tool for building Java solutions. Although, initially, it was based on a tool called JBuilder, Oracle started to add features for interacting with database. During this evolution, JDeveloper added many frameworks like Business Components (formely BC4J), UIX, and others. A big change came with the appearance of version 10g, which introduced the productivity framework called Application Development Framework (ADF), and which accelerates the development of JEE solutions through Oracle libraries. New versions of the tool have included other technologies such as ADF Faces, which help to create user interfaces in a declarative way. Recently, a new version of ADF Faces, call ADF Faces Rich Client, has enriched the user interface thanks to the use of technologies such as AJAX. After being consolidated in creating JEE solutions, Oracle JDeveloper was chosen as the standard tool for building solutions over the Fusion Middleware Platform. This platform supports solutions based on JEE, SOA, and Enterprise 2.0 using Oracle WebCenter. JDeveloper uses an extension in order to take advantage of key components in WebCenter such as the Framework, Services, and Composer.
[ 12 ]
Chapter 1
Therefore, during the course of the book, we will use this tool to build our custom solutions.
Summary The evolution of technology platforms and their use in new forms of socialization have led to the creation of Web 2.0, and the use of these concepts in the business environment is called Enterprise 2.0. With this motivation, Oracle introduced WebCenter as a platform for building Enterprise 2.0 solutions, which facilitate the development of collaborative environments in organizations. Finally Oracle JDeveloper is chosen to build those solutions using the platform offered by Oracle WebCenter. Now that we have the technology concepts in mind, we will begin developing our custom applications. But before that, we need to install and conigure WebCenter. We'll do it in the following chapter.
[ 13 ]
WebCenter Installation and Coniguration Oracle WebCenter 11g is outitted with the latest components of the Oracle Fusion Middleware architecture. The WebLogic Application Server (which Oracle acquired from BEA), JDeveloper 11g, support for Oracle 11g Database fully integrated Web 2.0 services as well as Spaces. A diagram outlining the building blocks that you should be aware of during installation is shown as follows. We will use this building block diagram throughout the chapter to show you the components that are being installed. For a comprehensive guide to installing all WebCenter components, please refer to the "Oracle Fusion Middleware Enterprise Deployment Guide for WebCenter 11g Release 1". Installation of the peripheral components (that is, SOA, Identity Management) and the WebCenter development IDE, JDeveloper, are not in the scope of this chapter.
WebCenter Installation and Coniguration
Hardware and software requirements Oracle WebCenter 11g's hardware and software requirements broadly follow the minimum requirements for Oracle Fusion Middleware 11g. The various requirement matrices can be found at http://www.oracle.com/technology/software/ products/ias/files/fusion_requirements.htm under "Oracle Fusion Middleware 11g System Requirements".
High-level installation steps Following are the high-level installation steps for WebCenter 11g, which you can refer to as you go through our step-by-step installation. 1. Install a supported operating system (OS). 2. Install a supported Oracle database to house the metadata repository. Oracle database versions from 10.2.0.4 to 11.0.7 are currently supported by WebCenter 11g. 3. Run the Repository Creation Utility (RCU) to create the metadata repository. 4. Install Middleware Home (Oracle WebLogic Application Server) 11gR1 (10.3.1). 5. Install WebCenter Framework and Services. 6. Conigure WebLogic, WebCenter, and Web 2.0 Services.
Step-by-step installation In this section, we will expand upon the high-level steps outlined previously and take you through a very detailed step-by-step walkthrough of the WebCenter 11g installation. 1. Install a supported OS At the time of this writing, an oficial certiication matrix was not available for WebCenter 11g, but we are using Oracle Enterprise Linux 5.3, 32-bit in our environment with an Intel Core 2 Duo 2.13 GHz CPU and 3GB of RAM. We would consider this to be minimal hardware for a server environment, and WebCenter operated without any performance issues. As we understand, the following OSs will be supported: ° ° °
AIX HPUX Red Hat Enterprise Linux [ 16 ]
° ° °
Chapter 2
Oracle Enterprise Linux Solaris Windows
Step-by-step OS installation is out of scope for this book.
2. Preinstall steps °
° °
°
Create a group called oracle belonging to a group called dba to be used for the installation. Ensure the /etc/hosts ile is conigured with a fully qualiied domain (FQDN) name as the irst entry. We used the following: 192.168.1.74 wc11g.mandsconsulting.com. Ensure you have set the number of open ile set on the OS. Set the appropriate limits in /etc/security/limits.conf by adding the following lines: oracle oracle oracle oracle
soft hard soft hard
nproc 2047 nproc 16384 nofile 1024 nofile 65536
Ensure Linux system settings are settings properly. Edit the / etc/sysctl.conf ile and add following lines: kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 6553600 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 262144
[ 17 ]
WebCenter Installation and Coniguration
3. Install a supported Oracle Database (we installed Oracle Express Edition – XE – 10.2.0.1 Universal). °
Download iles from Oracle.com: oracle-xe-univ10.2.0.1-1.0.i386.rpm
° °
Run the .rpm ile using the following command: rpm –ivvh oracle-xe-univ-10.2.0.1-1.0.1386.rpm
Conigure Oracle XE once rpm has successfully completed (we chose the defaults here).
The default settings will set the Oracle Application Express to listen on port 8080 and the Oracle database listener on port 1521. Choose a password for the DB SYS and SYSTEM accounts. Remember the chosen password.
[ 18 ]
Chapter 2
Verify that XE database has been installed properly. One way to do this is by navigating to the XE administration console.
[ 19 ]
WebCenter Installation and Coniguration
Once you have made sure that the DB is running ine you need to increase the number of processes. The default number of processes is set to 40. However, for WebCenter the number of processes should be set to at least 300. This can be done using the following command: alter system set processes=300 scope=spfile;
Bounce the DB after changing the number of processes. /etc/init.d/oracle-xe restart
4. Run the Repository Creation Utility (RCU) to create the metadata repository: ° °
°
Navigate to RCU_MEDIA /bin. Run the RCU with: ./rcu. Follow the graphical installation wizard.
The Welcome screen provides some general information about the tool. On the left navigation, you can see the list of steps that will be followed during normal coniguration. The current step is emphasized. Click Next to move on to the next step.
The Create Repository screen provides two options: Create and Drop. In this installation, we will create a new repository. Select Create and click Next to move on to the next step.
[ 20 ]
Chapter 2
In the Database Connection Details screen, we provide details that will be used to connect to the Oracle XE database that we installed. The values shown here should be suitable if you followed the steps shown for the XE DB installation thus far. The password chosen during the DB coniguration (oracle-xe configure) should be entered here. Click Next to proceed to the next step.
[ 21 ]
WebCenter Installation and Coniguration
RCU checks if all the Global Prerequisites are met. Click OK to proceed.
Select the schema preix. The default preix is DEV. You can choose to change the preix to another suitable one if you so wish. We have used the default DEV preix. Next we select the various components that we intend to install. Here we have selected WebCenter Spaces, Portlet Producers, Content Server, Discussions, and Wiki and Blogs. The other components shown selected are automatically added as prerequisites. Click Next to proceed.
[ 22 ]
Chapter 2
In the Schema Passwords screen we can choose to use the same password for all the schemas or specify individual passwords for each schema. We have chosen to use the same password for all the schemas. Click Next to proceed to the next step.
[ 23 ]
WebCenter Installation and Coniguration
This screen shows the progress of various checks on requirements. Once all the requirements have been checked, click OK to proceed.
The Summary screen shows the various tablespaces that will be created. Click Create to begin creating the tables.
[ 24 ]
Chapter 2
The Completion Summary screen shows the inal status of the repository creation. The location of the various log iles is shown. Interested users may have a look at the log iles for a detailed report on the repository creation process.
Congratulations! You are now done installing the underlying metadata repository. We are now ready to move into the WebLogic Application Server (Middleware Home).
Installing Middleware Home In this section, we shall install Middleware Home (WebLogic Application Server) 11gR1 (10.3.1). For those of you who have worked with previous Fusion Middleware products, or even WebCenter 10g, you will notice the default support for WebLogic Server is new as Oracle shifts direction after the BEA acquisition, moving away from Oracle's previous Application Server offering. Navigate to the WebLogic Application Server media and run the installer, following the graphical wizard.
[ 25 ]
WebCenter Installation and Coniguration
Once the wizard is launched, the welcome screen is shown. Click Next to proceed with the installation.
Installation of WebLogic server will create a Middleware directory where the Middleware is installed. We have selected the default directory suggested by the wizard. Click Next to proceed.
[ 26 ]
Chapter 2
Enter your e-mail address if you wish to receive security updates from Oracle regarding the WebLogic product. It is highly recommended that you do so. For this test installation we have skipped this step. Click Next to proceed.
Here the wizard provides the options to perform a typical install or to customize the components that will be installed. We have chosen the Typical install option, which will install the WebLogic Server. Click Next to proceed.
[ 27 ]
WebCenter Installation and Coniguration
The wizard provided the option to select the directory in which to install the WebLogic server. We have chosen the default directory suggested by the wizard. This will install the WebLogic server in a directory wlserver_10.3 under the Middleware home directory. Click Next to proceed.
The Installation Summary screen shows the various components of WebLogic server that will be installed. Note the two JDKs that are also installed as part of WebLogic Server installation. Click Next to proceed with the installation.
[ 28 ]
Chapter 2
The wizard shows the progress of the installation. This step can take several minutes as all the components are installed.
[ 29 ]
WebCenter Installation and Coniguration
The Installation Complete screen provides an option to Run Quickstart. This is not needed for now as we will conigure WebCenter next. Uncheck the Run Quickstart option and click Done.
Congratulations! You are now done installing the WebLogic Application Server (Middleware Home). We have highlighted that section in our building blocks diagram and we are ready to move into the WebCenter Framework.
[ 30 ]
Chapter 2
Installing the WebCenter Framework and Services Now that the WebLogic Application server is installed we need to move on to the WebCenter Framework and Services Run the WebCenter installation, specifying the location of the JRE that was installed with WebLogic.
Follow the graphical installation wizard. The wizard prompts for a directory (Inventory Directory) in which it will store information about the installed components. We have selected the default directory as suggested by the wizard. Click OK to proceed.
[ 31 ]
WebCenter Installation and Coniguration
At this point, the wizard will prompt to run a speciic script as root user. Start a new terminal and switch user to root.
Execute the createCentralInventory.sh script as root user and switch back to the graphical wizard.
[ 32 ]
Chapter 2
The wizard informs the user of the prerequisites for the installation of WebCenter. We have already run the RCU and installed the WebLogic Server in previous steps, so click Next to continue.
The installer checks to make sure that the various system parameters and libraries are in order. Click Next to continue. If you encounter any error in the checks, look through the error logs and install the appropriate libraries. After taking appropriate action to ix the errors, you can click Retry to check whether the requirements are met.
[ 33 ]
WebCenter Installation and Coniguration
The wizard prompts for the Oracle Home Directory. This is where the WebCenter components will be installed. The default is a subdirectory Oracle_WC1 under the Middleware Home directory. We select the default and click Next to continue.
Next the wizard provides the option to conigure Oracle Universal Content Management. If you don't already have UCM installed then you can skip this. Deselect the option and click Next to continue.
[ 34 ]
Chapter 2
The wizard shows the Installation Summary screen listing the various components that will be installed and the installation location. Click Install to continue.
[ 35 ]
WebCenter Installation and Coniguration
The wizard shows the progress of the installation. It can take several minutes for all the components to be installed.
The Installation Complete screen informs the user that the installation has completed successfully. You have the option to save the details if you want to view it later. Click Finish to proceed.
[ 36 ]
Chapter 2
Congratulations! You are now done installing the WebCenter Framework and Services.
Summary In this chapter, we installed the core building blocks for WebCenter 11g in a Linux environment. These building blocks lay the plumbing for creating WebCenter composite applications, which are really brought to life through "tentacles" like web services, middleware components like SOA, and other business applications that are integrated through WebCenter's hot-pluggable architecture. Important Notes: •
•
This is a single-server, standalone environment that can be quickly stood-up to accomplish the basic needs for testing and training. It does not take into account high availability, enterprise security, or other considerations that a production solution would typically require. This environment will be used as the baseline for developing our sample application, so ensuring that you have been able to successfully complete the above steps is important.
To begin WebCenter development, we will use the JDeveloper IDE, which we will review in the next chapter along with a simple example—WebCenter's version of "Hello World". [ 37 ]
Setting up the Development Environment After installing the components of Oracle WebCenter on the server side, it is necessary to prepare the development environment. As mentioned previously, the tool to construct Oracle WebCenter solutions is JDeveloper 11g. This tool is commonly used for developing Java EE solutions; however, in this book we use it for building composite solutions. This means that we will combine different kinds of components like portlets, data access components (tables, list of values) and components that promote participation (discussions, wikis) into a single user interface, under the concept of a portal. Well, in this chapter, we will focus on preparing our development environment, which we will use for creating our WebCenter applications. So, in this chapter, we will cover the following topics: • • • • •
JDeveloper 11g installation Adding WebCenter extension for JDeveloper Install Control Version System (Subversion) Integrating JDeveloper with Subversion Testing the integration of WebCenter server
So, let's get down to work.
Setting up the Development Environment
Oracle JDeveloper 11g installation During the development of this book, we will use the version Oracle JDeveloper 11g Release 1 (11.1.1.1.0).
System requirements When using the Windows operating system, the recommended system requirements are as follows: • •
Operating system: Windows Vista
•
Windows Server 2003 R2
•
CPU Type and Speed: Pentium IV 2 GHz or faster
•
Windows XP-Service Pack 2
•
Memory: 2 GB RAM
•
Hard Drive Space: 2.5 GB
•
Display: 65536 colors, set to at least 1024 X 768 resolution JDK: JDK 6.0 Update 11 for Windows
If you need to install the tool on any other operating system, see the Installation Guide for Oracle JDeveloper in the following link: http://www.oracle.com/technology/documentation/jdev.html
Downloading the tool To start using it, we must irst download it from the following page: http://www.oracle.com/technology/software/products/jdev/index.html
[ 40 ]
Chapter 3
From the available iles, download jdevstudio11111install.exe.
JDeveloper installation Perform the following steps to install the tool: 1. Double-click the downloaded ile. 2. By default, JDeveloper 11g will install on c:\Oracle\Middleware.
[ 41 ]
Setting up the Development Environment
3. Accept all options suggested by the wizard for a typical installation of JDeveloper. 4. Next, run JDeveloper from the menu that was created with the installation.
5. The irst window allows you to deine the role of the Developer. Select Default Role and press OK. 6. Next, you will see a window entitled "Tip of the Day". Push the cancel button in order to bring up the development environment.
Oracle WebCenter extension for JDeveloper The tool is ready to allow the development of Java EE solution. But, we want to use it for creating WebCenter solutions. That is why we need to install an extension of JDeveloper, to support the development of WebCenter applications. To install the extension do the following steps: 1. Choose the option Help | Check for Updates. Click the Next button on the welcome window. 2. In the next window, select Oracle Fusion Middleware Products, as shown in the following screenshot and click Next.
[ 42 ]
Chapter 3
3. Then, choose the Oracle WebCenter Framework and Services Design Time and press OK.
[ 43 ]
Setting up the Development Environment
4. To continue the installation, you will need to enter your oracle.com User name and Password and click OK.
5. Next, you will see a screen similar to the one shown next, which indicates the end of the installation. Click Finish to complete this process.
6. Finally, JDeveloper will ask to restart to implement the changes. Click Yes to complete installation.
[ 44 ]
Chapter 3
Version control system installation When working in a development team, it is advisable to use version manager software. For this reason, we will use a product called CollabNet Subversion, which is an open source Subversion project. We will install this software as follows: 1. Download CollabNet Subversion from the following address: http://www. open.collab.net/downloads/subversion/.
Choose the version: CollabNet Subversion Server and Client v1.6.3 (for Windows).
[ 45 ]
Setting up the Development Environment
2. Run the downloaded installer and accept all the default options that the wizard suggests. This setup creates the base directory c:\svn_repository.
3. Click Install to start the installation.
[ 46 ]
Chapter 3
4. This inal screen indicates that the installation was successful. Click Finish to close the window.
The Subversion server uses an Apache web server, which allows us to access the subversion repository using the HTTP protocol. The Apache server uses port 80 and starts automatically every time you turn on the computer.
5. Once you installed the repository it is necessary to create a project to save the WebCenter application code. To do this, open the Windows command-line options through Start | Run, type the command cmd, and press Enter. 6. Go to repository directory, in our case c:\svn_repository: > cd c:\svn_repository
7. Next, create the project webcenter_repository, which we will use to store versions in our code. The command is: > svnadmin create webcenter_repository
8. Now edit the following Apache coniguration ile to allow for the register of users in the repository. C:\Program Files\CollabNet SubVersion Server\httpd\conf\ httpd.conf [ 47 ]
Setting up the Development Environment
9. Go to the following section:
DAV svn SVNParentPath C:\svn_repository
And modify it like this:
DAV svn SVNParentPath C:\svn_repository SVNListParentPath On Require valid-user AuthType Basic AuthName "SubVersion Repository" AuthUserFile C:\svn_repository\password-file
With this change, we are indicating that the users and passwords are extracted from the ile password-file. 10. Go to the installation directory of the subversion software: > cd c:\Program Files\CollabNet Subversion Server\httpd\bin
11. In the next step, we are going to create users who access the repository. To create the admin user, use the htpasswd command as follows: > htpasswd -cm
c:\svn_repository\password-file admin
Then you will be prompted to enter the password the user will use. The -cm options are used to create the password ile and encrypt passwords. To register more users only use the -m option, because we have created the password ile, when we created the irst user. Remember that you must create a user for each developer of your team. See the next sample: htpasswd -m
c:\svn_repository\password-file joe
12. Finally, to verify the server version installation, go to the following link: http://localhost/svn/. 13. Enter the user and password information deined in the previous steps.
[ 48 ]
Chapter 3
14. Finally, we will see the following page:
[ 49 ]
Setting up the Development Environment
JDeveloper integration with Subversion To integrate these technologies, do the following: 1. Open JDeveloper. 2. Go to option View | Versioning Navigator.
3. In the bottom left window, you will see the version navigator. Right-click on the Subversion node and choose New Repository Connection.
4. In the next window, you will deine the data connection, click Test Connection to check, and inally click OK. ° ° °
°
Repository URL: http://localhost/svn/webcenter_ repository/
Connection Name: webcenter_repository User Name: Password:
[ 50 ]
Chapter 3
Testing WebCenter preconigured server
JDeveloper also includes a BEA WebLogic server that we will use to deploy and test our applications. In addition, this server provides a Portlet container, which offers a set of pre-built portlets, which we can take advantage of in our projects. For example, you can use the Web Clipping feature in order to capture content and functionality from existing websites. To conirm the availability of this server, we will do the following steps: 1. Go to option File | New of JDeveloper. 2. In the next window, select the Applications category, then select the item WebCenter Application and click OK.
[ 51 ]
Setting up the Development Environment
3. In the next window, change the name of the application to Test and click Finish.
4. Start the WebLogic Server using the option Run | Start Server Instance.
[ 52 ]
Chapter 3
5. The message DefaultServer started in the Log console indicates that the server has started.
6. Finally, to check that our container of portlets is active, select the option Help | WebCenter Preconigured Server Readme.
[ 53 ]
Setting up the Development Environment
7. Then, you'll see a page with links to the various services that the WebCenter server offers. To check availability of the portlet container, click the link PortalTools Welcome Page.
8. The internet browser must display the page for creating portlets, which conirms that the portlet container is installed successfully.
[ 54 ]
Chapter 3
Notice that WebLogic Server (which has included WebCenter Services) runs on port 7101. You can change the port from the option View | Run Manager.
Summary This chapter has helped us to prepare the development environment and the application server, in order to support our WebCenter applications. We will use JDeveloper to develop WebCenter solutions and its container WebLogic as a repository of portlets. Additionally, we have installed server version manager software that will help us to maintain control of changes in the project and will also allow the participation of many developers in the construction of the solution. Once our development environment is ready, in the next chapter, we can start building our irst WebCenter using JDeveloper.
[ 55 ]
Getting Started with WebCenter Development: Hello World(s) Before we jump into developing our Enterprise 2.0 Intranet, we will create a simple WebCenter application to demonstrate the tools, development methodology, and deployment of custom WebCenter applications. This chapter will go through detailed step-by-step instructions to provide you with the knowledge you will need to succeed while implementing the example throughout the rest of the book, and on your own project. I'm sure you noticed that the title of this chapter contains the phrase "Hello World(s)", where the "(s)" sticks out like a sore thumb. This is intentional, but not to say we are building multiple WebCenter examples, nor is it to subliminally proclaim and acknowledge the existence of an alien race. The fact is that a single WebCenter Hello World application is best exempliied in its entirety when built up by a few Hello World components. We will show you a web service, consumed by a portlet, consumed by a WebCenter application. • •
HelloWorldWS: A simple web service that exposes a single method to say hello to an input name HelloWorldPortlet: A Standards-based Java Portlet that uses the HelloWorldWS web service
Getting Started with WebCenter Development: Hello World(s)
•
HelloWorldApp: A WebCenter application that consumes the HelloWorldPortlet
To be clear, the simplest possible WebCenter Hello World application does not require all of these components, but we have chosen this path so you have broader foundational knowledge.
Prerequisites This tutorial uses JDeveloper 11g running on Windows platform. We will use the integrated WebLogic Server present in JDeveloper for testing the applications developed during the course of this tutorial. We will not walk through the installation of the OS or JDeveloper 11g in this chapter.
Creating the Hello World web service We will begin by creating a HelloWorld web service based on a Java class. This class exposes one method sayHello, which takes a string name as an input parameter and outputs Hello name.
Step 0: Start Oracle JDeveloper 11g The welcome screen of JDeveloper shows the Tip of the Day. It is a good way of learning various features about JDeveloper. Close the Tip of the Day window.
[ 58 ]
Chapter 4
Step 1: Creating a new application In the Application Navigator, click on New Application to begin creating an application. You can do the same by clicking Application | New from the main menu.
[ 59 ]
Getting Started with WebCenter Development: Hello World(s)
Step 2: Coniguring application settings From the Application Template list, select Generic Application. The Generic Application template is suitable when you intend to manually select the technology scope of the project. Choose a name for the application, HelloWorldWSApp in this case. Click Next. Note the various templates present including Portlet Producer Application and WebCenter Application towards the end of the list. If you do not ind the aforementioned templates listed, then the most likely cause is that WebCenter extensions for JDeveloper are not installed.
[ 60 ]
Chapter 4
Step 3: Coniguring project settings In the Project Name dialog, choose a name for the project, HelloWorldWS in this case. Note the various technologies available that can be included in the project. For developing a web service, we have to include Web Services to the project scope. On selecting Web Services, Java is automatically included as a prerequisite. Click Finish.
[ 61 ]
Getting Started with WebCenter Development: Hello World(s)
Step 4: Creating a Java class Next we will create a Java class to be used by the web service. In the Application Navigator, right-click the HelloWorldWS project and select New from the context menu.
In the New Gallery, select the General node. The list of available items is shown on the right. Select Java Class from the list and click OK.
[ 62 ]
Chapter 4
Select a name for the class, HelloWorld in this case, and click OK.
Edit the HelloWorld.java ile and add a method sayHello that takes a string as to compile the class. input and returns the input preixed with Hello. Click Make The Messages - Log window should show successful compilation.
[ 63 ]
Getting Started with WebCenter Development: Hello World(s)
Step 5: Creating a Web Service from the Java class In the Application Navigator, select the HelloWorld.java ile and right-click on it. From the context menu, select Create Web Service. This will launch the Web Service creation wizard.
We will create a Java EE 1.5 web service for Weblogic 10.3. Select the appropriate platform from the Platform list.
[ 64 ]
Chapter 4
In the General Options dialog, the web service name and ports can be conigured. We have chosen HelloWorldService as our web service name and HelloWorldPort as the port name. The default values for rest of the steps are acceptable for this tutorial. Click Finish to complete this step.
[ 65 ]
Getting Started with WebCenter Development: Hello World(s)
You can view the WSDL generated by right-clicking on the HelloWorld.java ile and selecting Show WSDL for Web Service Annotations from the context menu.
Step 6: Creating a deployment proile
In this step, we will edit the default deployment proile to change the Context Root. From the Application Navigator highlight the HelloWorldWS project, right-click on it, and select Project Properties from the context menu.
[ 66 ]
Chapter 4
From Project Properties, select Deployment, highlight the default WebServices (WAR File), and click Edit.
[ 67 ]
Getting Started with WebCenter Development: Hello World(s)
From the Edit WAR Deployment Proile Properties dialog, select General from the left pane. On the right pane, select Specify Java EE Web Context-Root and change the value to HelloWorldWS. Note that while this step is not strictly required, it eases readability of the service URLs.
Step 7: Deploying the Web Service to the integrated Weblogic Server Start the integrated Weblogic Server instance by clicking Run | Start Server Instance from the main menu. This will start a local Weblogic server instance, which we can use to test the web service.
[ 68 ]
Chapter 4
If there are no errors, then the DefaultServer started message will be shown in the log.
[ 69 ]
Getting Started with WebCenter Development: Hello World(s)
From the Application Navigator right-click on the HelloWorldWS project and navigate to Deploy | Webservices |to | IntegratedWLSConnection in the context menu.
When the deployment is completed, the Deployment inished message is shown in the Deployment log. At this point, the HelloWorldWS is deployed and we are ready to test it.
Step 8: Testing the web service Use a web browser to navigate to the HelloWorld web service port. The default value for this installation is http://localhost:7101/HelloWorldWS/HelloWorldPort.
[ 70 ]
Chapter 4
To view the WSDL for the deployed HelloWorld service, click on the WSDL URL.
Note down the WSDL URL (default: http://localhost:7101/HelloWorldWS/ HelloWorldPort?wsdl). This URL will be required when creating a portlet.
With this step, we have successfully created and deployed the HelloWorld web service. In following sections, we will use this web service to create a HelloWorld portlet.
[ 71 ]
Getting Started with WebCenter Development: Hello World(s)
Hello World Portlet In the next steps, we shall create our Hello World Portlet.
Step 1: Creating a new Portlet Producer Application From the main menu, select Application | New to create a new application. Choose an application name, HelloWorldPortletApp in this case, and from the Application Templates list select Portlet Producer Application. Click Next.
In the Project Name dialog choose a Project Name, HelloWorldPortlet in this case. From the Project Technologies list, select Web Services and add it to the selected list. Click Finish. The wizard will create the application and show the application overview screen.
[ 72 ]
Chapter 4
Step 2: Creating a new Portlet In the Application Navigator, right-click on HelloWorldPortlet and from the context menu select New.
[ 73 ]
Getting Started with WebCenter Development: Hello World(s)
In the New Gallery, expand the Web Tier node and select Portlets. From the Items list in the right pane, select Standards-based Java Portlet. Click OK.
In the General Portlet Information dialog, leave the default values and click Next.
[ 74 ]
Chapter 4
In the Additional Portlet Information dialog, enter the Display Name, Portlet Title, and Short Title and click Next.
In the Content Types and Portlet Modes dialog, click on view and change the implementation method to Generate ADF-Faces JSPX. Click Finish. The wizard will create a number of iles and conigurations as can be seen in the Application Navigator.
[ 75 ]
Getting Started with WebCenter Development: Hello World(s)
Step 3: Creating a Web Service Data Control for the Hello World web service In this step, we will create a Web Service Data Control to use the HelloWorld web service we created earlier. In the Application Navigator, select the HelloWorldPortlet project and right-click on it and select New from the context menu.
From the New Gallery expand the Business Tier node and select Web Services. In the right page, select Web Services Data Control from the Items list.
[ 76 ]
Chapter 4
Choose a name for the data control, HelloWorldWS in this case, and paste the URL of the HelloWorld web service (from Step 8 of Creating the Hello World web service). Click Next to continue.
[ 77 ]
Getting Started with WebCenter Development: Hello World(s)
From the Data Control Operations, select the sayHello method and add it to the Selected methods. Click Finish.
Expand the Data Controls accordion to view the newly created data control. You should see a HelloWorldWS data control there.
[ 78 ]
Chapter 4
Next we will create a simple layout using an HTML table for the portlet. From Application Navigator, double-click on view.jsp. From the Component Palette drop-down list, select HTML and expand the Common component.
Step 4: Creating a basic view to use the data control
From the HTML components palette, select a table and drop it onto the view.jsp page. Conigure the table to have one row and two columns.
[ 79 ]
Getting Started with WebCenter Development: Hello World(s)
Once inserted, the designer will show the table created.
Step 5: Using the Web Service Data Control created From Data Control, select sayHelloWorld(String) and drop it to the left column of the table created. Select Create | Parameters | ADF Parameter Form.
[ 80 ]
Chapter 4
On the Edit Form Fields dialog, edit the Display Label. Here we have used Input name. Click OK.
The input parameter form is placed in the left pane.
[ 81 ]
Getting Started with WebCenter Development: Hello World(s)
Next, drag the output parameter of the sayHello method onto the right column. Select Create | Texts | ADF Output Text. This return value of the sayHello method will get shown in the right column.
[ 82 ]
Chapter 4
Step 6: Creating a deployment proile
Next, we create a deployment proile for the portlet. From the Application Navigator, select the HelloWorldPortlet project and right-click on it. From the context menu, select Project Properties. In the Project Properties, select Deployment and create a new deployment.
In Create Deployment Proile, select the Archive Type from the drop-down list to WAR File. Choose a name for the proile; we use HelloWorldPortlet here. Click OK.
[ 83 ]
Getting Started with WebCenter Development: Hello World(s)
Next, we set the Context Root. We use HelloWorldPortlet as the Context Root. Click OK.
You can see the created proile HelloWorldProtlet in the Project Properties.
[ 84 ]
Chapter 4
Step 7: Deploying the portlet to the integrated WebLogic server From Application Navigator, highlight HelloWorldPortlet and right-click on it. Select Deploy | HelloWorldPortlet | to | IntegratedWLSConnection from the context menu. This will deploy the WAR ile to the integrated WebLogic server.
In the Select deployment type dialog, select Yes to allow JDeveloper to enable the portlet to be exposed as a WSRP service. Click OK.
[ 85 ]
Getting Started with WebCenter Development: Hello World(s)
Click Deploy in the Deployment Coniguration dialog to complete the deployment.
Step 7: Testing the portlet Use a browser to navigate to the deployment URL, http://localhost:7101/ HelloWorldPortlet/. The WSRP producer test page is shown. At the bottom of the page the WSDL links are shown. Click on the WSRP v2 WSDL link to view the WSDL for the portlet producer.
[ 86 ]
Chapter 4
Note down the WSDL link. It will be used when consuming the portlet in the WebCenter application.
At this point we have developed, deployed, and tested the portlet producer application. Next, we will create a WebCenter application to consume this portlet.
Hello World WebCenter application We will now create a WebCenter application to consume the portlet created. This application is based on the WebCenter Application template and will create a web application using ADF Faces.
[ 87 ]
Getting Started with WebCenter Development: Hello World(s)
Step 1: Creating a WebCenter application Use Application|New to create a new Application. Select WebCenter Application from the Application Template. This will ensure that all the appropriate technology scope is set. Choose a name for the application; we have used HelloWorldWCApp. Click Next.
When using the WebCenter Application template two projects are created, a Model and a ViewController. Add the Web Services technology to the Selected technologies scope. Click Next.
[ 88 ]
Chapter 4
[ 89 ]
Getting Started with WebCenter Development: Hello World(s)
Next, the ViewController project is created. The default values are ok. Click Finish.
Step 2: Using the portlet producer From the Application Resources, select Connections and right-click on it. From the context menu, select WSRP Producer. We will use this to consume the portlet created.
[ 90 ]
Chapter 4
Choose a name for the portlet producer. Here, we have used HelloWorldPortletProducer.
[ 91 ]
Getting Started with WebCenter Development: Hello World(s)
Next, we conigure the portlet producer. For this, we need the WSDL for the portlet. Click Next.
Select the default value for the timeout and click Finish.
Step 3: Creating a JSF page to host the portlet From Application Navigator, highlight Web Content and right-click on it and select New from the context menu.
[ 92 ]
Chapter 4
From the New Gallery, select the JSF under the Web Tier node. On the right pane, select JSF Page from the Items list.
[ 93 ]
Getting Started with WebCenter Development: Hello World(s)
In the Create JSF Page dialog, choose a File Name; we have used helloworld.jspx. Select the Create as XML Document option and select Quick Start Layout. Click OK to proceed.
Step 4: Creating a page layout From Application Navigator, select HelloWorld.jsp and create a page layout for it. We have created a header table, a middle region for the portlet, and a footer table.
[ 94 ]
Chapter 4
From the Application resources, drag the Hello World Portlet onto the middle region of the page.
[ 95 ]
Getting Started with WebCenter Development: Hello World(s)
Step 5: Creating a deployment proile for the WebCenter application In Application Navigator, select the ViewController project and right-click on it. Select Project Properties from the context menu. Create a new deployment proile. From the Archive Type drop-down menu select WAR File. For the Name ield we have chosen HelloWorldApp. Click OK to continue.
Next, change the Context Root to HelloWorldApp. Click OK to proceed.
[ 96 ]
Chapter 4
Step 6: Deploying the WebCenter application to the integrated WebLogic server In Application Navigator, select the ViewController project and right-click on it. Select Deploy | HelloWorldApp | to | IntegratedWLSConnection to deploy it to the integrated WebLogic server.
On the Deploy Coniguration dialog, click on Deploy to inish the deployment.
[ 97 ]
Getting Started with WebCenter Development: Hello World(s)
Once the deployment is completed, you can see the Deployment Finished message in the Deployment log.
Step 7: Testing the WebCenter application Using a browser, navigate to the application URL (default: http:// localhost:7101/HelloWorldApp/faces/helloworld.jspx).
[ 98 ]
Chapter 4
Congratulations! You have completed this tutorial and built a complete Hello World WebCenter application.
Summary In this tutorial, you created a HelloWorld web service, which was used by a HelloWorld portlet producer. The portlet producer was consumed by a HelloWorld WebCenter application. You have accomplished a veriication of your development environment and gained conidence in being able to build the foundational components and skills needed for WebCenter development. In the next chapter, we will begin with ABC's Intranet building the base pages.
[ 99 ]
Design and Personalization Applications developed with Oracle WebCenter combine the data of traditional information systems with collaborative resources like Wikis, Discussions, and Blogs. Therefore, in this chapter, we will teach you how to develop traditional applications. In subsequent chapters, you will learn how to add collaborative resources to the traditional applications, in order to convert them into Enterprise 2.0 solutions. In this chapter, we will touch upon the following items: • •
Getting Started with ADF Faces Rich Client framework
•
Using templates
•
Creating a WebCenter Application
•
Building data components Developing of a sample page
OK, let's start to build a traditional application.
ADF Faces Rich Client components ADF Faces Rich Client is a group of components used to build rich user interfaces. The key to these components is the use of AJAX technology, which allows our users to enjoy experiences and visual effects that are similar to those found on desktop applications (for example, EJM swing applications). These types of applications are called Rich Internet Applications (RIA).
Design and Personalization
Types of ADF Faces components ADF Faces Rich Client components can be classiied according to functionality into the following types. Components
Description
Layout components
These components are used to deine regions on the page that will serve as containers for other components.
Input components
Used to allow the entry of any type of information.
Table and Tree components
Used to display information using organized structures.
LOV components
We'll use these components to display lists.
Pop-up components
Used to generate pop-ups in our pages.
Menu and Toolbar components
Types of components used to create a menu of options in our applications.
Output components
Used to display information in different formats.
Label and Message components
Such components will help us to place descriptive tags onto our components.
Navigations components
Used to facilitate the low between pages.
Creating a new application To develop an application with Oracle WebCenter, perform the following steps: 1. Execute JDeveloper, using the option Oracle Fusion Middleware | JDdeveloper Studio from the Windows Start Menu. 2. Once in the tool, choose the option File | New in order to start the wizard. Next, choose WebCenter Application option and press the OK button, as shown in following screenshot:
[ 102 ]
Chapter 5
3. In the next page, we deine the following information: °
°
°
Name: Identiies the name of the application. In our case, our application will be called Paracas. Directory: This deines the directory where we will store the code of our application. For the project, the directory will be c:\Paracas, so you need to create it beforehand. Henceforth, we will refer to that directory by . Application Package Preix: We will use this property in order to identify the root package from which we build our applications. The current application has the com.paracas package as a root.
[ 103 ]
Design and Personalization
4. Click Finish to create the new application.
Including a template for our application Before starting the development of any page, it is necessary to create a template that has the colors and logos that identify our company. All the pages of our application will use this template in order to reduce the design time for each page. The steps for this activity are as follows: 1. Go to the Application Palette, right-click on the project ViewController, and choose New.
2. In the window New Gallery choose the JSF category, and the JSF Page Template option, as shown in the following screenshot, and click the OK button.
[ 104 ]
Chapter 5
3. In the next window, we need to enter the following data: °
°
File Name: templateParacas.jspx
°
templates
Directory: C:\Paracas\ViewController\public_html\ Page Template Name: templateParacas
Do not press the OK button, yet. 4. Our template will have three regions, one located at the top and two regions located to the left and right. The upper region will be ixed, and it will have the logo of our company. The following two regions will be variable, that is, the content of these will alter in the pages that are developed based on this template's variable regions. The next igure shows the layout of the regions in the template:
[ 105 ]
Design and Personalization
5. During the creation of the template, we need identify the regions that are variable. To do this, in the tab Facet Deinitions, click the New button to enter a new facet to identify a variable region. Enter the Facets customLeft and customRight as shown in the following screenshot:
6. Press the OK button to generate the template, which will be displayed in the main window of the tool. 7. Choose and drag to the template the Panel Group Layout component, which is in the Layout category of the Component Palette.
[ 106 ]
Chapter 5
8. In the Property Inspector, change the Layout property to scroll. With this change, the scroll bars will appear in order to display the full content of the page.
[ 107 ]
Design and Personalization
9. Go to the Component Palette and drag a Panel Splitter component to the center of the page.
10. Go to Property Inspector and select the Common category and change the value of the Orientation ield to vertical.
11. Next, choose the Style category, press the tab Box, and change the Width and Height properties to the value of 100 percent.
[ 108 ]
Chapter 5
12. The template will have generated two regions so far, called irst and second. The irst will show the data from the header, while the second will have the components associated with the variable regions, used by the pages that will be based on the template.
13. Place your cursor between the irst and second regions and change their proportions, such as shown in the following screenshot:
14. Now, we're going to divide the second region into two parts. For this, again drag a Panel Splitter component into the second region.
[ 109 ]
Design and Personalization
15. In the Property Inspector, select the Style category, select the Box tab, and change the Width and Height to 100 percent, shown as follows:
16. With the last change, we see our template divided into three regions. It is necessary to identify the variable regions, according to facets we deined in Section 5. For this, go to the Common category of the Component Palette and drag the Facet Ref component into the region located on the left side of the template; it will launch a window where we must choose the custom facet we deined previously. Choose customLeft as shown in the following screenshot and click the OK button.
[ 110 ]
Chapter 5
17. Repeat the same procedure in the right region using the customRight facet. We end up with the following template:
18. At the top of our template, we will place the logo of our company. For this, drag an Image component from the Component Palette.
[ 111 ]
Design and Personalization
19. Then a loating window appears; click on the edit option of the Source ield and select the ile that has the logo of our company (you can use the ile logo.gif, which is part of the iles for this book). After you select the ile, click Finish.
20. We will inish the development of our template, by setting a background color. In order to do this, select the Structure Palette (located on the lower left side of JDeveloper) and choose the reference af: panelGroupLayout - Scroll, as shown in the following screenshot:
[ 112 ]
Chapter 5
21. Go to the Property Inspector, select the Style and Theme category, click the arrow button of the StyleClass ield, and choose the Edit option.
22. In the Edit Property window, select the OraBGColorVeryDark style and click OK.
23. Finally, our template should have the following appearance:
[ 113 ]
Design and Personalization
Building pages with database interaction At this point, we have a custom template for all our pages. Now, let's use it for building a page with database access. As always, we start with a brief overview of the technologies to use.
ADF Business Components ADF Business Components is a framework for implementing a persistence and business layer in our JEE applications. It's easy to use and improves the productivity. Furthermore, we can add business logic over the components. The architecture of ADF Business Components includes the following components: • • •
Entity: This is a Java Component that represents a speciic source of information (that is, a database table). View Object: This component will be used to implement queries in order to access the data. Application Module: The principal business rules of our applications will be deined in this component. Generally, we have an application module for each case we use. For more detail about ADF Business Components see the Fusion Developer's Guide, Part II Building Your Business Services http://download.oracle.com/docs/cd/E12839_01/ web.1111/b31974.pdf.
Creating a persistence layer First, we will create a schema and execute the relevant script. Make sure you have downloaded the script from the book's website into your directory. This script will create data and structures that will be used in our application.
Creating a Schema for our application For this exercise, it is necessary to have an Oracle database. The following exercise is made using an Oracle 10g Express Edition database. Using the command line of your database, run the following instructions: 1. Connect to the database as a dba user, like sys or system.
[ 114 ]
Chapter 5
2. Execute the following command: SQL> create user paracas identified by paracas
3. Give privileges to the paracas user: SQL>grant connect, resource to paracas;
4. Connect as the paracas user: SQL> conn paracas/paracas;
5. Execute the script from this location: SQL> start c:\paracas\script\paracas.sql
Creating a database connection in JDeveloper 1. In JDeveloper, go to the Application Resource Palette, right-click in the Connection option, and choose New Connection | Database.
2. In the current window, conigure the following parameters: °
°
° °
Connection Name: db_paracas Connection Type: Oracle(JDBC); we use Oracle Database Username: paracas; identiies the user previously created Password: paracas; deine the password user
[ 115 ]
Design and Personalization
°
°
Host Name: localhost; we assume a local database SID: XE; we use Oracle Express Edition version
Press OK to inish. See more information about Oracle Database Express Edition at the following link: http://www.oracle.com/technology/products/database/ xe/index.html
[ 116 ]
Chapter 5
Creating the Business Components 1. In the Project Palette, right-click on the Project Model and choose New.
2. On the next page, select the category Business Tier | ADF Business Components and choose Business Components from Tables. Next, press the OK button.
3. On the following page, you conigure the connection to the database. At this point, you only need to make sure that db_paracas is the connection selected. Press the OK button.
[ 117 ]
Design and Personalization
4. Now, select the tables that serve as a basis for the creation of the entities. Check the Auto-Query option and use the arrow keys to move and select everything, as shown in the following screenshot, and click the Next button.
5. The next page allows you to create View Objects components, which are necessary for the deinition of queries. In the same way as the previous step, select and move all the components, and click the Next button.
[ 118 ]
Chapter 5
6. On the next screen, Read-Only View Objects, do not make any changes and click the Next button. 7. Finally on the next screen, keep the suggested options, and press the button Finish.
The last steps have allowed us to create components based on our tables. The RequestView component includes, among its attributes, the code of the requested material. However, RequestView will need the description of the material. To add this description, we will make the following customizations: 1. In the Project Palette, double-click on RequestView.
[ 119 ]
Design and Personalization
2. On the right side of the tool, you should see the coniguration of the component. Choose the category Entity Objects and add material in the Selected region as shown in the following screenshot. With this step RequestView will get this information from the Request and Material entities.
3. Then choose the category Attributes and click the button Add from Entity, located in the upper right corner of the page. 4. In the window displayed, choose the Description ield and move it to the right, as shown in the following screenshot:
[ 120 ]
Chapter 5
5. Press the OK button to apply the changes. 6. The ProposalView view object also needs to have the description of the supplier. Thus, do the same steps for RequestView, and add the Description attribute of the entity Supplier.
7. Save all changes using the Save All button from the JDeveloper menu.
Creating the page 1. In the Project Palette, right-click on the project ViewController, then choose New.
[ 121 ]
Design and Personalization
2. In the next window, select the category Web Tier JSF, choose the option JSF Page, and click the OK button.
3. For the next step, check the Create as XML Document option, deine the name requestMaterial.jspx for the page, choose the Page template option, select templateParacas, and click the OK button.
[ 122 ]
Chapter 5
4. Once you create the page, drag a Panel Splitter into the customLeft region:
5. Go to the property inspector and change the following properties: ° °
°
Common | Orientation : vertical Style | Box | Width : 100 Style | Box | Height : 100
[ 123 ]
Design and Personalization
6. With the last change, we have split the left region into two parts. We will take advantage the irst part to show a table with request information. To do this, go to the Data Control Palette and drag the AppModuleDataControl | RequestView1 reference into the top (irst) panel. Next, choose Tables | ADF Read Only Table from the contextual menu.
7. In the next window, we have to choose the ields that are required to display on the page. Check the Row Selection and use the scroll buttons to remove some ields to deine a screen similar to the one shown next. Next, click the OK button.
[ 124 ]
Chapter 5
8. Finally, for testing the page, right-click on the page and select Run.
9. The result should show the requests for materials.
[ 125 ]
Design and Personalization
Notice that the page only displays the contents of the irst region, because the others regions are empty. In the following chapters, we will continue to work with this page by adding other features to the available regions.
Summary In this chapter, we have seen how to develop templates and add data-access features to our WebCenter applications. If you require further details of data access in applications, we encourage you to review the Fusion Developer's Guide for Oracle Application Development Framework at the following address: http://download.oracle.com/docs/cd/E12839_01/web.1111/b31974.pdf
[ 126 ]
Portlets In the previous chapter, we looked at how to build a page containing information on our example company's requirements, and the offers made by its suppliers. Now, we are interested in adding a chart to that page that graphically shows the status of requirements pending and closed, as a percentage. However, this graph will not only be required on this page but in many others. Therefore, it is necessary build this chart as a reusable component. In this kind of scenario, the technology of portlets can help us. A portlet is a component of software that can be part of a page. In consequence, a page can be enriched by many portlets allowing us to grab the contents of various sources of data. This chapter will help us to understand the concept associated with this technology and how it can apply to our projects with Oracle WebCenter. During this chapter, you will learn the following: • • • •
JSF speciication concepts The types of portlets you can build with WebCenter Developing a portlet using ADF Integrating portlets with custom Applications
Portlets
Portlets, JSR-168 speciication
Speciication JSR-168, which deines the Java technologies, gives us a precise deinition of Java portlets: Portlets are web components—like Servlets—speciically designed to be aggregated in the context of a composite page. Usually, many Portlets are invoked to in the single request of a Portal page. Each Portlet produces a fragment of markup that is combined with the markup of other Portlets, all within the Portal page markup. You can see more detail of this speciication on the following page: http://jcp.org/en/jsr/detail?id=168
While the deinition makes a comparison with servlets, it is important to note that the portlets cannot be accessed directly through a URL; instead, it is necessary to use a page-like container of portlets. Consequently, we might consider portlets as tiny web applications that return dynamic content (HTML, WML) into a region of a Portal page. Graphically, we could view a page with portlets as follows:
Additionally, we must emphasize that the portlets are not isolated from the rest of the components in the pages, but can also share information and respond to events that occur in other components or portlets.
[ 128 ]
Chapter 6
WSRP speciication
The WSRP speciication allows exposing portlets as Web services. For this purpose, clients access portlets through an interface (*. wsdl) and get graphic content associated. Optionally, the portlet might be able to interact directly with the user through events ocurring on them. This way of invoking offers the following advantages: • • •
The portals that share a portlet centralize their support in a single point. The portlet integration with the portal is simple and requires no programming. The use of portlets, hosted on different sites, helps to reduce the load on servers.
WebCenter portlets Portlets can be built in different ways, and the applications developed with Oracle WebCenter can consume any of these types of portlets. •
JSF Portlets: This type of portlet is based on a JSF application, which is used to create a portlet using a JSF Portlet Bridge.
[ 129 ]
Portlets
• • • • •
Web Clipping: Using this tool, we can build portlets declaratively using only a browser. These portlets show content from other sites. OmniPortlet: These portlets can retrieve information from different types of data sources (XML, CSV, database, and so on) to expose different ways of presenting things, such as tables, forms, charts, and so on. Content Presenter: This allows you to drop content from UCM on the page and display this content in any way you like or using a template. Ensemble: This is a way to "mashup" or produce portlets or "pagelets" of information that can be displayed on the page. Programmatic Portlets: Obviously, in addition to the previous technologies that facilitate the construction of portlets, it is also possible to build in a programmatic way. When we build in this way, we reach a high degree of personalization and control. However, we need specialized Java knowledge in order to program in this way.
As we can see, there are several ways in which we can build a portlet; however, in order to use the rich components that the ADF Faces framework offers, we will focus on JSF Portlets.
Developing a portlet using ADF The portlet that we will build will have a chart, which shows the status of the company's requests. To do this, we must create a model layer that represents our business logic and exposes this information in a page. Therefore, we are going to do the following steps: 1. Create an ADF application. 2. Develop business components. 3. Create a chart page. 4. Generate a portlet using the page. 5. Deploy the portlet. In this example, we use a page for the construction of a portlet; however, ADF also offers the ability to create portlets based on a low of pages through the use of ADF TaskFlows. You can ind more information on the following link: http://download.oracle.com/docs/cd/E15523_01/web.1111/ b31974/taskflows.htm#BABDJEDD
[ 130 ]
Chapter 6
Creating an ADF application To create the application, do the following steps: 1. Go to JDeveloper. 2. In the menu, choose the option File | New to start the wizard for creating applications. In the window displayed, choose the Application category and choose the Fusion Web Application ADF option and press the OK button.
3. Next, enter the following properties for creating the application: ° ° °
Name: ParacasPortlet Directory: c:\ParacasPortlet Application Package Preix : com.paracasportlet
[ 131 ]
Portlets
4. Click Finish to create the application.
Developing business components Before starting this activity, make sure you have created a connection to the database. To recollect this process, see in Chapter 3, Setting up the Development Environment. 1. In the project Palette, right-click on Project Model, and choose New.
2. On the next page, select the category Business Tier | ADF Business Components and choose Business Components from Tables. Next, press the OK button.
[ 132 ]
Chapter 6
3. In the following page, you conigure the connection to the database. At this point, select the connection db_paracas and press the OK button. 4. In order to build a page with a chart, we need to create a read-only view. For this reason, don't change anything, just press the Next button.
5. In this next step, we can create updateable views. But, we don't need this type of component. So, don't change anything. Click the Next button.
[ 133 ]
Portlets
6. Now, we need to allow the creation of read-only views. We will use this kind of component in our page; therefore select the table REQUEST, as shown next and press Next.
7. Our next step will allow the creation of an application module. This component is necessary to display the read-only view in the whole application. Keep this screen with the suggested values and click the Finish button.
8. Check the Application Navigator. You must have your components arranged in the same way as shown in the following screenshot: [ 134 ]
Chapter 6
9. Our query must determine the number of requests for status. Therefore, it will be necessary to make some changes in the created component. To start, double-click on the view RequestView, select the Query category, and click on the Edit SQL Query option as shown in the following screenshot:
[ 135 ]
Portlets
10. In the window shown, modify the SQL as shown next and click the OK button.
SELECT Request.STATUS, COUNT(*) COUNT_STATUS FROM REQUEST Request GROUP BY Request.STATUS
11. We only use the attributes Status and CountStatus. For this reason, choose the Attributes category, select the attributes that are not used, and press Delete selected attribute(s) as shown in the following screenshot:
[ 136 ]
Chapter 6
12. Save all changes and verify that the view is similar to that shown next:
Creating a chart page Once we have completed the stage of building the model, we will create the page that hosts our chart. 1. In Application Navigator, right-click on the project ViewController, then choose New.
[ 137 ]
Portlets
2. In the next window, select the category Web Tier | JSF, select the option JSF Page, and click the OK button.
3. Then, we deine the name of the page: requestGraph.jspx and press the OK button.
[ 138 ]
Chapter 6
4. Now, locate the Data Controls palette and drag the view RequestView1 to the page. Then choose, from the context menu, the option Graphs in the same way as shown in the following screenshot:
5. Next, choose the Pie category and Pie type item, as shown next:
[ 139 ]
Portlets
6. After the last step, a screen will appear that indicates the attributes used to populate the graph. Choose CountStatus in the Pie item and Status in the Slice. Press OK.
7. Finally, change the graphic appearance. To do this, once you have created the component, go to the Property Inspector, select the Appearance region and change the value of property Style to Comet and the 3D Effect to true as shown in the following screenshot:
8. Save all the changes. [ 140 ]
Chapter 6
Creating a Portlet using the page Now that we have our page, we will use it. 1. Go to Application Navigator and right-click on the page requestGraph.jspx and select Create Portlet Entry as shown in the following screenshot:
2. In the next window, change the names and descriptions of the portlet as shown next and click the OK button. ° ° ° ° °
Portlet Name: ParacasPortlet Display Name: ParacasPortlet Portlet Title : Requests by Status Short Title : Requests by Status Description: Requests by Status
[ 141 ]
Portlets
3. This last step will be suficient to create the portlet based on the data page. Click OK, then check that the iles portlet.xml and oracle-portlet.xml are created as shown in the following screenshot:
Portlet deployment 1. Once we have built our Portlet, it is necessary to include it in our Portal. To do this, we must obtain this portlet from a repository. To start with, we must ensure that the server is active. In order to start up this server, choose the menu option Run | Start Server Instance.
[ 142 ]
Chapter 6
2. The following message at the Console conirms that the server is initialized: DefaultServer started.
3. Right-click on the ParacasPortlet application and choose Deploy | ParacasPortlet_application1 | to | IntegratedWLSConnection, in the same way as shown next:
4. In the next window, click the button OK to complete the process.
[ 143 ]
Portlets
5. Finally, in order to check the deployment of portlet, go to the following page: http://localhost:7101/ParacasPortlet-ViewController-contextroot/
This page shows the deployed portlet's information on the server and, amongst other things, provides links to the interface's WSRP. These interfaces are part of a speciication-oriented communication between portlets. We'll use this interface to consume the portlet from other sites. Therefore, click on the link WSRP v2 WSDL and see this URL: http://localhost:7101/ParacasPortlet-ViewController-contextroot/portlets/wsrp2?WSDL
[ 144 ]
Chapter 6
Consuming a portlet After the construction and deployment of the portlet, it's time for it to be re-used by another application. For this, it is necessary to create a reference to this portlet in the application that needs to use it. Let's see the steps for this integration: 1. In the Application Navigator, change the current application ParacasPortlet to the Paracas Application, which we were building in Chapter 5, Design and Personalization.
. Alternatively, you can use the ParacasEndOfChapter5.zip ile that is included in the code bundle of the book.
2. In the Application Navigator, locate the section Application Resources. Then, right-click on Connections and choose the New Connection | WSRP Producer.
[ 145 ]
Portlets
3. In the next window, rename the registration of the portlet to WsrpPortletParacas and click Next.
4. In the URL for the endpoint, type the URL associated with the previously deployed portlet and press Next. http://localhost:7101/ParacasPortlet-ViewController-contextroot/portlets/wsrp2?WSDL
5. Now, click the Finish button to complete the establishment of the connection to the portlet. [ 146 ]
Chapter 6
6. Let's go back to the Application Navigator and double-click on the page requestMaterial to show it in the editor.
7. Subsequently, drag the Portlet reference Requests by Status to the customRight region in the page, as shown next:
[ 147 ]
Portlets
8. Right-click on the page and select Run in the Application Navigator.
9. Finally, the page will show the following result:
[ 148 ]
Chapter 6
Summary This chapter has shown us the power of portlets, a mechanism that can be reused between pages. In this case, we have taken advantage of the JSF and wizards offered by JDeveloper to quickly build graphical components. In this chapter, we discovered the features offered by portlets as a technique of component reuse. Also, we applied this technology to build a portlet using JDeveloper. Next, we hosted the said component in a repository offered by Oracle WebCenter. Finally, we consumed this portlet through our Paracas portal, which we built earlier in this book.
[ 149 ]
Discussions, Wiki, and Blog Services The Oracle WebCenter Discussions Service provides a forum tool that can be used within the organization to share information and foster collaboration. Forums are one of the most popular information exchange mechanisms used on the Internet. We are all familiar with the power of forums to create user communities and disseminate information. If you have used the Oracle Technology Network Forums, the WebCenter Discussions Service will look very familiar to you—both use the same powerful forum software.
Discussions, Wiki, and Blog Services
Some of the common challenges we have found with implementing forums for the enterprise have been related to the following: 1. Integration into the existing technology stack 2. User and group administration using existing LDAP 3. Support 4. Cultural adoption Many of the most popular forum software solutions have been based on PHP and MySQL. Not long ago, we implemented the open source phpBB solution for an Oracle Fusion Middleware customer. Most of the implementation time and cost was spent in integrating with the existing Portal infrastructure and identity management components. With Discussions, Oracle has successfully minimized the technical level of effort required during implementation by addressing the main technical challenges (numbers 1 and 2 above). And with formal support offered, as well as the general idea that forums integration using Discussions will not be unique for each implementation, organizations can feel more comfortable about viable long-term support. Given how well Discussions addresses the irst three challenges, we now view the cultural adoption as the largest challenge, which can be overcome with effective training and strategic management decisions. Forums in general have become increasingly popular within organizations and Oracle has implemented an intuitive end-user approach. The Discussions Server is installed as part of Oracle WebCenter installation. It can be accessed directly at the default location http://hostname:8890/owc_discussions. While Discussions in itself is a useful forum tool, the real power comes from the Discussions Service that enables us to embed, view, and interact with the forums as part of custom WebCenter applications where forums can be used as a means to obtain and share information by the enterprise from within the current application being used. A Wiki is a website that allows a group of editors to easily create web pages in a collaborative manner using simple markup language. The markup language helps to organize and format the web pages. Many corporations use Wikis to create documentation internally. Each employee of the company has easy access to edit the information within the wiki, and can therefore incorporate new information for the entire community.
[ 152 ]
Chapter 7
A Blog is a website that allows an individual author to post a stream of content for a community to view. The word "Blog" is derived from the contraction of "Web Log". Each item in the Blog stream can be viewed as an article. An article can be something as simple as a video or image posting, or something as formal as a newspaper article. It is up to the author to decide what content to post. Typically, authors allow members of a community to engage in dialog related to the blog article by allowing them to post comments on the article. Both the Wiki Service and the Blog Service depend on the WebCenter Wiki and Blog Server. Both services use a single connection to the single backend server. In this chapter, we will do the following: • • • •
Walk you through creating a custom WebCenter application that leverages the Discussions Service Present a handful of task lows Show you where to ind key pieces of information required to conigure your Discussions Service connection in your custom application Learn how to integrate a custom WebCenter application with the Wiki and Blog Services, speciically, using an IFrame and using the Web Clipping Portlet
Discussions coniguration
Our application is built with JDeveloper 11g and connects to the Oracle WebCenter Discussions Server. Ensure that the Discussions Server is running by connecting to the Discussions Server URL (http://hostname:8890/owc_discussions). It is a good idea to populate the Discussions Server with some example users, categories, and forums. The Forums Admin Console is used to create new users and forums. The admin console can be accessed at http://hostname:8890/owc_discussions/admin. The default admin username is weblogic and the password is weblogic. This is irrespective of any username/password speciied at installation time.
You can conigure a wide variety of settings in the Admin Console, including but not limited to the following: • • •
Content Structure: Categories, Subcategories, Forums Users and Groups Permissions [ 153 ]
Discussions, Wiki, and Blog Services
• •
Filters and Interceptors
•
User Interface (Colors and themes)
•
System Settings (Cache, e-mail, locale, and so on)
•
Moderation
•
Reports and Metrics Plugins
The following is a screenshot of the admin console home page:
We will not focus on coniguring all aspects of the forum, but instead the main pieces required to get started and integrated into WebCenter. Speciically, we will focus on users/groups, and the overall forum content structure. Jive documentation is thorough and explains individual settings in detail.
[ 154 ]
Chapter 7
Content structure The general structure for Discussions is as follows: •
Categories: logical grouping of discussions content °
Subcategories: optional subgrouping(s)
Forums: Lowest-level grouping where end users can create discussion threads Threads: Entries made by end users, which contain the original entry as well as replies
Within the Forums Admin Console, you can deine a structure that makes sense for your organization. The same principles that apply to other forum software will apply to Discussions content structure. For the purpose of this demo, we have created a Marketing category and a Marketing Ideas forum.
[ 155 ]
Discussions, Wiki, and Blog Services
The following is an image of that Category Summary that relects the new Marketing Ideas forum that was just created:
User and group structure We have worked on this Discussions Service as an independent service, and hence created our users and groups manually. In an enterprise solution, you will likely hook this into your LDAP (like Oracle Internet Directory) using Enterprise Manager. Following is a screenshots of the users we have conigured within the Discussions administration:
[ 156 ]
Chapter 7
As shown previously, we have added two users—amit and jimmy—with the appropriate privileges to post to the Marketing Ideas forum.
Integrating Discussions with WebCenter During the remainder of this chapter, we will create a custom WebCenter application, which will integrate with the Discussions Server and in which we will expose a view of the forum that allows you to interact with the forum using task lows. Oracle exposes multiple task lows for the Discussions service. We have listed all the out-of-box task lows in the following table and bolded the ones we will drop into our WebCenter application: Task Flow
Description
Discussions Forums
This task low shows all the topics associated with a speciied forum. Users can create, read, update, and delete topics based on their privileges.
Discussions – Popular Topics
Shows the popular topics under a given category ID or forum ID.
Discussions – Recent Topics
Shows all the recent topics under a given category ID or forum ID.
Discussions – Watched Forums
Allows users to see all their watched forums under a given category ID.
Discussions – Watched Topics
Allows users to see all their watched topics under a given category ID or forum ID.
Discussions – Sidebar View
This shows a combined view of the Popular Topics, Recent Topics, Watched Topics, and Watched Forums task lows.
The main steps we will complete are as follows: 1. Ensure the Discussions Server is running 2. Create a WebCenter application 3. Create a connection to the Discussions Server 4. Create a JSF page 5. Select appropriate Discussions Service Task Flow and embed it in the page 6. Deploy, run, and test the application
[ 157 ]
Discussions, Wiki, and Blog Services
Ensuring the Discussions Server is running Before we start developing the application, ensure that the WebCenter Discussions Server is running. If the Discussions Server is not running then start the WLS_ Services managed server as described in the WebCenter Installation and Coniguration chapter. Using a browser, open the URL for Discussions (for example, http:// hostname:8890/owc_discussions). Log in with the newly created users and post some sample articles.
Creating a new WebCenter application Using JDeveloper, create a new application, selecting the WebCenter application template. The steps to be followed are similar to the ones used in HelloWorldApp and therefore we will not repeat them here.
[ 158 ]
Chapter 7
Creating a JSF page Next, we will create a JSF page to host the view for the Discussions Forum. In the Application Navigator, highlight the ViewController project, right-click on it, and from the context menu select New. In the New Gallery, select JSF Page to create a new JSF page.
[ 159 ]
Discussions, Wiki, and Blog Services
In the Create JSF Page dialog, select a name for the page and create the page.
Creating a connection to the Discussion Forum In order to use the Discussions Service in our application, we need to create a Discussions Forum connection to the Discussions Server. This connection will be used by the application to connect to the backend Discussions Server. Note that it is possible to modify the connection after the application is deployed to the WebLogic server by using the Enterprise Manager Fusion Middleware Control. To set up the discussions connection, right-click on the Connections node in Application Resources pane and select New Connection| Discussions Forum.
[ 160 ]
Chapter 7
Select a unique name for the connection such as MyDiscussions. Ensure that the Make this the connection default checkbox is ticked. Next, we have to set the property values for the forum.url and admin.user. The value of forum.url should be the URL of the Discussions server. The default admin user is weblogic. Click on Test Connection to ensure that the connection is set up properly. Click Finish to complete this step.
[ 161 ]
Discussions, Wiki, and Blog Services
Click on the Resource Palette and open My Catalogs. You should now see the WebCenter Services Catalog. Expand the catalog to view the various task lows available.
In the task lows shown, you see the various discussions-related task lows such as the Discussion Forums, Discussions – Popular Topics, Discussions - Recent Topics, and so on. We will use these task lows in our application to create a view of the Discussion Forum.
[ 162 ]
Chapter 7
Embedding a Discussions task low in the JSF page
From the Resource Palette, drag the Discussions Forums task low and drop it on to the JSF page. When prompted, select Region as the way to create the task low.
In the Task Flow Binding dialog, enter the values for the categoryId and forumId. You can ind the IDs using the Jive Forums Admin Console.
Parameters categoryId
Description
forumId
The identiier for an existing forum within the speciied category. You should make sure that the speciic forum exists.
showRecursiveForums
Determines if only the forums in the speciied category will be shown or all the subcategories as well. If set to false (the default value) then only the forums under the given category will be shown, otherwise all the forums under the category and the subcategories will be shown.
isCategoryView
If this is set to true then the task low will list the forums grouped under the category. When it is set to false (the default), the topics associated with the forum will be shown.
The category ID of an existing category in your WebCenter Discussions instance to which the view should be scoped.
[ 163 ]
Discussions, Wiki, and Blog Services
See the following screenshot to locate the CATEGORYID:
See the following image to locate the FORUMID:
If prompted to add a library, click Add Library.
Next, we embed the Discussions – Sidebar View task low to the page using the same procedure as for Discussions Forums.
[ 164 ]
Chapter 7
Deploying, running, and testing Now you can run the page by right clicking on main.jspx ile in the Application Navigator and choosing Run from the context menu. The application will be deployed to the Integrated WebLogic Server and the default browser will be launched with the appropriate URL.
Integrating Wiki and Blog with WebCenter There are three primary methods of integrating the Oracle WebCenter Wiki and Blog Server into custom WebCenter applications. They are as follows: 1. Using an IFrame, which you include in a page in your custom WebCenter application. [ 165 ]
Discussions, Wiki, and Blog Services
2. Using any portlet capable of consuming a URL such as the Web Clipping portlet. 3. Using the Web Services provided, which requires a custom-built user interface. We will not cover this method in detail. In this chapter, we will illustrate the use of the irst two methods. For details on how to use the Web Services interface to the Wiki and Blog Server, refer to the Oracle WebCenter Developer's guide.
Prerequisites Before we start developing the custom WebCenter application to integrate with the Wiki and Blog Server, we should ensure that the WebCenter Wiki and Blog Server is running. If the Wiki and Blog Server is not running then start the WLS_Services managed server as described in the WebCenter Installation and Coniguration chapter. Using a browser, open the URL for Wiki main page (for example, http:// hostname:8890/owc_wiki).
Integrating Wiki and Blog using an IFrame We will see how to integrate it as follows.
Creating a new WebCenter Application Using JDeveloper, create a new application selecting the WebCenter Application template. The steps to be followed are similar to the ones for HelloWorldApp in Chapter 4, Getting Started with WebCenter Development.
[ 166 ]
Chapter 7
The defaults should be ine for this application, so click Finish to continue.
Creating a JSF page Next, we will create a JSF page to host the view for the Wiki and Blog Server. In the Application Navigator, select the ViewController project, right-click on it, and from the context menu, select New to launch the New Gallery.
[ 167 ]
Discussions, Wiki, and Blog Services
In the New Gallery, select JSF Page to create a new JSF page.
In the Create JSF Page dialog, select a name for the page and create the page.
[ 168 ]
Chapter 7
Creating an IFrame to include the Wiki and Blog Server page In order to integrate the Wiki and Blog Server pages into your custom WebCenter application, drag the Inline Frame component from the Component Palette onto the JSF page created.
[ 169 ]
Discussions, Wiki, and Blog Services
Next modify Source property of the IFrame to point to the Wiki and Blog Server page that you want to embed in the application. The format of the URL is http:// hostname:port/owc_wiki/page/show.jz?page=domain:wikiPageName. Here we have used the StartPage of the domain webcentech.
We are now ready to view the page. Right-click on the main.jspx ile in the Application Navigator and click Run from the context menu. The Web Browser is launched and shows the login page for the Wiki and Blog Server. Use any valid username and password to log in to the Wiki and Blog Server.
Integrating Wiki and Blog using the Web Clipping Portlet In the following sections, we will demonstrate how to add the Wiki and Blog Server to a custom WebCenter application using the Web Clipping Portlet. Oracle WebCenter Framework includes a Web Clipping Portlet that we can register with our custom WebCenter application. On running the application in the browser we can consume the Wiki and Blog Server URL using the Web Clipping Studio. [ 170 ]
Chapter 7
Adding a new JSF page to the application Add a new JSF page to the application using the procedure described previously.
Registering the Web Clipping Portlet From Application Resources, select Connections | New Connection | Oracle PDKJava Producer.
[ 171 ]
Discussions, Wiki, and Blog Services
Next specify the connection details. The default URL for the Web Clipping Portlet is http://hostname:port/portalTools/webClipping/providers/webClipping. The defaults for the other coniguration parameters are acceptable, so click Finish to complete the registration.
Once the Web Clipping Portlet is registered, you can see its entry under Connections.
Adding the Web Clipping Portlet to the JSF page Drag the Web Clipping Portlet from Connections to the portlet.jspx page. This will add the portlet to the page. [ 172 ]
Chapter 7
Running the portlet page Right-click on portlet.jspx page in Application Navigator and from the context menu select Run to run the page. The browser will be launched showing the Web Clipping Studio. Next, we need to customize the Web Clipping Studio and input the Wiki and Blog Server URL. Click on the dropdown at the top-right corner of the page to open the Web Clipping Portlet menu.
From the menu, select Customize. This will open the form to enter the URL location.
[ 173 ]
Discussions, Wiki, and Blog Services
Enter the URL for the Wiki in the URL Location ield. After entering the URL, click Start to view the Wiki and Blog page as seen in the following screenshot:
Enter valid user credentials to log in to the Wiki Server.
The Wiki pages are shown within the Web Clipping Studio.
[ 174 ]
Chapter 7
Finally, you must select the areas you would like the Web Clipping Portlet to clip, and then save your settings. This completes our demonstration of how to integrate Oracle WebCenter Wiki and Blog Server with custom WebCenter application using an iFrame and using a Web Clipping Portlet.
Summary In this chapter, we have started on the path of integrating WebCenter services into our custom WebCenter application. We have demonstrated how the useful Discussion Forums Service can be used to create a view of the forum in our application. We demonstrated simple ways to incorporate the Wiki and Blog Services into your custom WebCenter applications. Utilizing these services within your organization can lead to dramatically improved communications and productivity. Individuals can even beneit from leveraging these services. For example, a user can use a Wiki as a personal notepad, and a Blog as a personal diary.
[ 175 ]
Search Service In the previous chapter we have seen how to integrate various WebCenter collaboration tools such as Wiki, Blogs, and Discussions. These collaboration tools allow sharing of information in the enterprise allowing collective knowledge to be built and stored. One of the primary means of accessing the information is by using a search tool. WebCenter caters to this need by providing a built-in Search Service. In this chapter, we will explore the WebCenter Search Service, Tags and Links, and RSS. The Search Service allows WebCenter applications to search resources owned by other services. Search is a powerful tool in discovering information from and linking various WebCenter applications. By creating a sample application, we will demonstrate how to integrate WebCenter Search Service in your custom WebCenter application. Tags and Links are useful tools in organizing information for easy search and for creating context between different pieces of information. By creating links to different resources, we can promote reuse and avoid duplicating the same information at multiple locations. For example, in a discussion thread, a link can be created to another document that is being discussed or has more information about the subject matter, thus providing easy access to additional information stored elsewhere in the enterprise. Tags, on the other hand, enable labeling resources for easy discovery in Search and provide a loose organization of information. When users tag a resource, they are able to search quickly for the resource based on their own ad hoc label. Really Simple Syndication (RSS) is an important tool that allows us to collect information from multiple sources and present it at a single location. A typical use of RSS is to read (updated) information from multiple websites in a single RSS Reader. Custom WebCenter applications can use the RSS Service to present the information collected from multiple external RSS sources (feeds) at a single location.
Search Service
Speciically, we will be covering these topics: • • • • • •
Role of search in WebCenter applications Methods of integrating the Search Service in WebCenter applications An example showing how to integrate Search task lows in a custom WebCenter application Integrating with WebCenter Tags Service Integrating with the WebCenter Links Service Integrating with the WebCenter RSS Service in a custom WebCenter application
Search in enterprise applications With the growth in the amount of information collected and stored in the enterprise, it is important to have tools that ease the discovery of information in documents, blogs, forums, and so on. Search is the most popular mechanism by which information can be located. WebCenter provides a convenient service that allows easy integration with WebCenter applications opening up the beneits of Search to any custom WebCenter application. Using the WebCenter Search task lows, we can search through the resources owned by the application. Most WebCenter services such as Wiki, Blogs, Discussions, and Documents support Search.
Integrating the WebCenter Search Service In a custom WebCenter application, we can use the Search Service to provide a convenient search facility to search other WebCenter services that are used in the application. In general, any WebCenter Web 2.0 service that owns resources supports Search, including announcements, discussions, documents, tags, and the Page service. Search Service can be integrated with the custom WebCenter application using a number of task lows. They are listed as follows: Task Flow
Description
Search
This is the most comprehensive of the task lows and provides options for searching, reining, and saving search results.
Search Preferences
This task low lets you select which WebCenter services to search. You can also set preferences such as the order of the columns available in search results. [ 178 ]
Chapter 8
Task Flow
Description
Search – Saved Searches
This task low lets users run their saved searches from within the application.
Search Toolbar
This task low lets users quickly enter simple search criteria and search from the application.
In order to demonstrate the use of Search in a custom WebCenter application, we will create an application that connects to the Discussions Server. We will then use the Search task low to provide a search facility to the Discussions Server from within the custom application developed.
Ensuring that the WebCenter Wiki and Blog Server are running Before we start developing the application, ensure that the WebCenter Discussions Server is running. If the Discussions Server is not running, then start the WLS_Services managed server as described in Chapter 2.
Creating a new WebCenter Application Using JDeveloper, create a new Application selecting the WebCenter Application template. The steps to be followed are similar to the ones used in HelloWorldApp and therefore we will not repeat them here.
[ 179 ]
Search Service
The defaults should be ine for this application, so click Finish to continue.
Creating a JSF page Next, we will create a JSF page to host the view for the Discussions Service and the Search task low. In the Application Navigator, highlight the ViewController project, right-click on it, and from the context menu select New. In the New Gallery, select JSF Page to create a new JSF page.
In the Create JSF Page dialog, select a name for the page and create the page. Ensure that the Create as XML Document (.jspx) checkbox is selected.
[ 180 ]
Chapter 8
Creating a connection to the Discussions Service In Chapter 7, we listed the steps to integrate with the Discussions Service. We will repeat the steps in brief here. In Application Resources, create a new connection to the Discussions Forum.
[ 181 ]
Search Service
Enter the connection name and ensure that you set the connection as the default connection.
On the next page, enter the forum URL and admin username. Test the connection to ensure that the connection is set up properly. Click Finish to continue.
Adding the Discussions Forum task low to the JSF page From the Resource Palette | Task Flows select Discussion Forums and drag it onto the page. When prompted, select Region as the method to lay out the task low.
[ 182 ]
Chapter 8
Click Add Library when prompted to add the forum-view.jar library to the project.
Enter the details for the forum for which you want to create the view. These details can be obtained using the Jive Forum Admin Console (see Chapter 7).
[ 183 ]
Search Service
Adding the Search task low to the JSF page
We are now ready to add the Search task low to the page. From the Resource Palette select the Search task low and drag it to the page. When prompted, select Region as the layout mode.
We are now ready to view the page. Right-click on the search.jspx ile in the Application Navigator and click Run from the context menu. The web browser is launched showing the search page. The top half of the page shows the discussion forum and below that the search form is shown. Enter a search term to search within the discussions forum.
[ 184 ]
Chapter 8
Integrating the WebCenter Tags service Tags are the rage in the world of Web 2.0. Tags allow consumers of information classify the information rather than the publisher. Amongst the various uses of tags, classiication, bookmarking, and enhancing search are the most popular. WebCenter Tags service allows end users to tag various resources including pages and documents. Tagging promotes collaboration among the users of the resource by enabling sharing of tags. This allows other users to discover the tagged items in their search.
Requirements for the Tags service In order to integrate the Tags service in a custom WebCenter application, we need a connection to a database that has the WebCenter schema installed. There are no additional requirements to use the Tags service. In this chapter, we will use the WebCenter schema that was installed during WebCenter installation.
Integrating with the WebCenter Tags service We will see how to integrate with WebCenter Tags in the following section.
Creating a new custom WebCenter application Start by creating a new custom WebCenter application. We have named the application TagsApp. Click Finish to create the application.
[ 185 ]
Search Service
Adding the required libraries In order to allow users the ability to tag pages in this application, we need to add the WebCenter Page Service and WebCenter Page Service View libraries. In Application Navigator, right-click on ViewController and select Project Properties from the context menu. Add the two libraries to the project.
Creating a connection to WebCenter schema Tags service requires a connection to WebCenter schema. We have used the schema installed during the installation of WebCenter. From Application Resources, select Connections and right-click on it. From the context menu, select New Connection | Database.
[ 186 ]
Chapter 8
Fill in the connection details. The Connection Name must be WebCenter. Click Test Connection to verify that the connection is set up properly. Click OK to continue.
[ 187 ]
Search Service
Creating a JSF page with a tag button Next, we will create a JSF page where we will prove the tag button to enable tagging the page. Right click on ViewController and from the context menu select New. Create the new JSF page.
Choose a name for the JSF page; we have used test_page.jspx. Click OK to complete the creation of the page.
[ 188 ]
Chapter 8
From the Component Palette, select Panel Group Layout and drag it to the page.
Next, select Tagging Button from the Component Palette and drop it inside the Panel Group Layout on the page.
Fill in the values for the three parameters presented in Insert Tagging Button dialog. Field
Description
ResourceId
The ID that uniquely identiies the object to which you are binding the Tagging Button. For example: To tag pages, enter #{facesContext.viewRoot.viewId}. To tag custom components, enter customComponentABC.
ResourceName
The name of the object to which you are binding the Tagging Button. For example: To tag pages, enter #{facesContext.viewRoot.viewId}. To tag custom components, enter Custom Component ABC.
ServiceId
An application-wide ID: To tag pages, enter oracle.webcenter.page. To tag custom components, enter mycompany.myproduct.myapp.mycomponent. [ 189 ]
Search Service
From the Resource Palette| WebCenter Services Catalog select Tagging Dialog and drop it next to the Tagging Button such that the Tagging Button and the Tagging Dialog are siblings.
This completes the creation of the test_page. Next, we will create a page that hosts a search toolbar to search for tags.
[ 190 ]
Chapter 8
Creating a JSF page to host the Search Toolbar Next, we create a JSF page with a search toolbar, using which we can search for tagged items. Create a new JSF page with the name tag_view.jspx. From the Resource Palette | WebCenter Services Catalog | Task Flows select Search Toolbar and drop it on the page.
This completes the creation of the tag_view page.
Coniguring ADF Security ADF Security is a protection framework to authorize user access to iterator, action and attribute bindings. While any user can tag pages (anonymous role), in order for tagged resources to appear in search results, the application must be secured. In this step, we will conigure ADF Security to secure our application.
[ 191 ]
Search Service
From the Application menu select Secure | Conigure ADF Security.
In the Conigure ADF Security dialog select ADF Authentication and Authorization and click Finish. The defaults for the remaining steps are acceptable for our application. ADF Authentication and Authorization is an alternative to standard web container security.
Next, we will set the ADF policy on the two pages created. From the Application menu select Secure | ADF Policies. An ADF policy allows you to deine ine-grained access control on Task Flows and JSP/JSPX pages.
[ 192 ]
Chapter 8
We will grant the view permission on the pages test_page.jspx and tag_view. jspx to the authenticated role. This will ensure that only authenticated users can view the page. When opening the page, the user will be prompted to enter the authentication credentials.
[ 193 ]
Search Service
Creating a deployment proile In order to deploy the application and its security policies to the WebLogic server, we will create a deployment proile. Right-click on ViewController and select Project Properties from the context menu. In the Project Properties dialog, select Deployment and create a new deployment proile. When you deploy the application and its security policy, the web container will apply the security policies on behalf of the application.
Select the archive type to be WAR File and choose a name. We have used TagsApp as the name of the archive.
[ 194 ]
Chapter 8
Deploying the application to the Integrated WebLogic Server Right-click on the ViewController and from the context menu select Deploy | TagsApp | to | IntegratedWLSConnection. This completes the deployment of the application. We can now view the page using a browser.
Viewing the application Using a browser open the URL for test_page.jspx. In our case, the URL is http://127.0.0.1:7101/TagsApp-ViewController-context-root/faces/ test_page.jspx. An authentication prompt will be presented. Enter any valid user
conigured on the Integrated WebLogic Server. You could use the default admin account (weblogic/weblogic1).
Click on the Tags link to create a new tag for this page. Enter space-separated tags and click Save. This associates the tags entered with this page. Next, we will see how to search for this page using the tags.
[ 195 ]
Search Service
Using a browser open the URL for tag_view.jspx. In our case the URL is http://127.0.0.1:7101/TagsApp-ViewController-context-root/faces/tag_ view.jspx. Enter a tag that you used to tag the test_page.jspx in the search box. In the search results, we can see the tagged page test_page.jspx.
Integrating with the WebCenter Links Service We will see this in the following steps.
Modifying the test_page to include the Links Detail Button Open the test_page.jspx and from the Component Palette drag the Links Detail Button on to the page.
In the Insert Links Detail Button, ill in the details for the parameters. ServiceID and ObjectName should be unique across the application. It should be noted that links can be made between internal and external objects. They are not limited to linking to just URLs. You can link to and from various object types within WebCenter. [ 196 ]
Chapter 8
You can link from the following objects: Announcements, Discussions, Documents, Events, Lists, Pages, or any object that you bind the custom JSF components to, such as the Links Detail Button. You can link to the following existing objects: Announcements, Discussions, Documents, Events. You can link to the following new objects: Discussions, Documents, Events, Notes, URLs.
Next, from the Resource Palette | WebCenter Services Catalog select Links Dialog and drop it next to the Links Detail Button.
[ 197 ]
Search Service
The Links Detail Button and the Links Dialog should be siblings within the Panel Group Layout.
Deploying the application to the Integrated WebLogic Server Deploy the application to the Integrated WebLogic Server using the steps described earlier. Once deployment is complete, we can view the new test_page.jspx page using a browser. The URL in our case is http://127.0.0.1:7101/TagsAppViewController-context-root/faces/test_page.jspx.
We will create a new link to a URL, in this case to a site that provides currency conversion facility.
[ 198 ]
Chapter 8
Once the link is created we can refresh the page to view the links. Click on the Links link after refreshing the page. The Currency Converter link that we attached to the page is as shown:
This completes our sample application that integrates the Tags and Links Services.
Why to use the WebCenter RSS Service The RSS Service allows you to integrate content available via RSS feeds into your custom WebCenter application. RSS is an extremely popular means of disseminating changes to web pages. This is particularly popular with websites where the pages are updated frequently such as news sites. The WebCenter RSS View Task Flow makes it trivial to include RSS content in WebCenter applications. [ 199 ]
Search Service
Requirements for the WebCenter RSS Service The RSS Service doesn't require any other resource. All you need to do is to include the RSS View Task Flow in your custom WebCenter application. If there is an HTTP proxy in the environment then the proxy needs to be conigured using Tools | Preferences | Web Browser and Proxy.
Integrating the WebCenter RSS Service The steps are explained as follows:
Creating a new custom WebCenter application Start by creating a new custom WebCenter application. We have named the application RSSApp. Click Finish to create the application.
Creating a JSF page to host the RSS Viewer task low Right-click on the ViewController project and from the context menu select New to create a new JSF page. [ 200 ]
Chapter 8
Select a name for the page. We have used rss_news.jspx. Click OK to complete the page creation.
[ 201 ]
Search Service
Adding the RSS Viewer task low
On the newly created page, we will add the RSS Viewer task low. From the Resource Palette | WebCenter Services Catalog | Task Flows select RSS Viewer and drop it onto the page. If you are prompted to add rss-service-view.jar library to the ViewController project, select Add Library.
In the Edit Task Flow Binding, enter the URL for the RSS feed that you want to view. Leave the extAppId ield empty. It is only required if the RSS feed requires authentication.
Running the application Now we are ready to run the application. Right-click on rss_news.jspx and click Run from the context menu. [ 202 ]
Chapter 8
Viewing the application The application opens in a browser and shows the RSS news items.
[ 203 ]
Search Service
Summary In this chapter, we demonstrated the use of the Search Service provided by WebCenter. By using the Search task lows available in JDeveloper, we can quickly integrate the Search Service in any custom WebCenter application. We learned how to integrate with two key WebCenter services, the Tags Service and the Links Service. By integrating with the above mentioned services, custom WebCenter applications can beneit from the information organizing and discovery features provided by WebCenter. The ability to label information for easy discovery and linking to other resources allows enterprises to beneit from better organized knowledge. We demonstrated how to use the RSS Viewer task low as a means to display information obtained from RSS feeds. WebCenter RSS Service makes it very easy to integrate with sources of information that provide an RSS interface. This enables easy collection and display of information from RSS feeds in your application.
[ 204 ]
Personalization with Oracle Composer Traditionally, only the technology professionals were in charge of designing and maintaining the information for companies' sites. This was due to the high technical expertise that was needed to build web pages. The emergence of enterprise portals promoted the participation of users in the design and content of information. However, with the technologies available at that time (HTML and JavaScript), we couldn't develop rich user interfaces in content and presentation. The arrival of new technologies (AJAX, XML, Web 2.0, RSS ,and others) have helped to improve the maintenance and creation of portals. Oracle Composer, one of the keys components of WebCenter, takes advantage of these new technologies to enable end users to improve the design and content of their interfaces in friendly and intuitive ways. In this chapter, we will work with Oracle WebCenter in two parts: • •
In the irst part, as developers, we will prepare the environment for end users. Then, we will assume the role of end user to personalize the page deined in the previous step.
Oracle Composer for developers Oracle composer offers a highly functional design environment for end users. To achieve this, developers need to prepare an environment, which will be used by end users to design their content. What we will show next are just the Oracle composer components to be used by developers to prepare such an environment.
Personalization with Oracle Composer
The tool that we will use for the preparation of this environment is Oracle JDeveloper, which helps us to deine the regions that will subsequently be used by end users to personalize their content.
Types of Oracle Components Oracle Components can be classiied according to functionality in the following types: •
Common Components °
° ° ° •
Change Mode Link: This link has the same purpose as the previous component. Image Link: This component provides a link with an associated image. Page Customizable: With this component, we can create a region whose content can be changed dynamically by users.
Layout Components °
° ° •
Change Mode Button: This a button which permits users to switch from runtime mode to design mode.
Panel Customizable: This panel serves as a container for the components that the user chooses in runtime mode. Layout Customizable: This is another type of container that is characterized by allowing the user to divide it in several ways. Show Detail Frame: This container is characterized by providing a region similar to portlets. It can be used to include an item.
Operation Components. °
Custom Action: This component can invoke a tasklow.
Building an environment with Oracle Composer Before end users can customize its content, developers need to prepare the dynamic environment. In order for the developer to achieve this goal, execute the following steps:
[ 206 ]
Chapter 9
1. Execute JDeveloper, and in the Application Navigator choose Paracas.
2. Right-click on the ViewController project and choose New. Next, in the New Gallery window, select the category Web Tier | JSF, choose the option JSF Page, and click the OK button.
[ 207 ]
Personalization with Oracle Composer
3. For the next step, check the Create as XML Document option, deine the name customInformation.jspx for the page, choose the Page template option, select templateParacas, and click the OK button.
For pages that use Oracle Composer, components must be created with a .jspx extension.
4. Once the page is created, we will only use the region customRight. Therefore, in the component palette choose the category ADF Faces and drag the Panel Box control onto the region customRight in order to deine a container.
[ 208 ]
Chapter 9
5. Go to Property Inspector and change the Text property for Custom Information.
6. Next, we will include, in the panel box, a link that allows the user to activate the design mode on the page. Therefore, in the Component Palette, select the Oracle Composer category and drag the Change Mode Link.
[ 209 ]
Personalization with Oracle Composer
7. Now it is time to deine the region that can be customized by the user. This can be achieved by dragging the Page Customizable component to the area deined in the previous screenshot.
8. Go to the palette structure and notice that the Page Customizable component has been generated. Additionally, under this component a panelCustomizable container is generated.
9. The Panel Customizable container does not allow the user to divide the region in other ways. For that reason, we are removing that container and we are going to replace it with a Layout Customizable container which has that capability. So, irst remove the container, Customizable Panel by right-clicking on the container and choosing the Delete option. [ 210 ]
Chapter 9
10. Now, drag the Layout Customizable component within the control Page Customizable, as shown in the following screenshot:
[ 211 ]
Personalization with Oracle Composer
11. Test the page by right-clicking on the page and choosing the Run button.
Finally, it will display the next page. As you can see, we now have a basic page in runtime mode. When the user clicks on the edit link, the page will change to edit mode and so the user can customize its contents.
Oracle Composer for end users Once the environment has been prepared, it is time that the end user can customize their content. Before performing the customization, it is important to know the following technologies, which are behind the Oracle Composer. [ 212 ]
Chapter 9
Oracle Metadata Service and Oracle Composer allow each user to customize the content of the pages. In this way, each user will have a different version of a base page. You'll probably wonder: how does this act on Oracle Composer? The answer is thanks to Oracle Metadata Service. This technology allows us to store any user customizations in a repository based on XML. That is, at run time, any customizations made by users, do not change the application code but are stored in XML iles associated with each user of the application.
Resource catalog The resource catalog has the components that end users can use in design mode to customize his content. Generally, the tool provides a default set of components, but this can be conigured to expose portlets, task low, JSF components, and other types of components.
[ 213 ]
Personalization with Oracle Composer
Content customizing using Oracle Composer Using the previously developed example, we are going to customize page content. Notice that the page must be in runtime mode. 1. First, let's change the page to design mode. To do this, click the Edit link.
2. What is shown now is the design environment of the page. In this mode, the user can customize the content of the region that we have prepared in the irst part of this chapter.
3. In our case, we will customize the content of the page for reporting the impact of using natural ibers in garment making. So, initially we are going to change the title of the work area. To do this, click the Page Properties button. [ 214 ]
Chapter 9
4. You'll see a screen where you can change the title of our work area. Change the title to Natural Fibers - Cotton, Wool and press the OK button.
5. Now let's divide the work region, by clicking the Change Layout button and choosing Two columns, narrow right, as shown in the following screenshot:
[ 215 ]
Personalization with Oracle Composer
6. With the last change, two regions have been created. Now, we will populate the contents of the left region by clicking the Add Content button of that region.
7. The following window will display the catalog of components. Click on the category ADF Faces Components to display the available components.
8. From the list of components available, the HTML Markup component allows us to directly include HTML and JavaScript content on the page. To do this, click the Add button.
9. Finally click the Close button. 10. Note that a HTML Markup control was included in the page. Now we will change its properties; to do this, click on the Edit button.
[ 216 ]
Chapter 9
11. Now, we will include here a reference to a YouTube video related to the content of our page. To do this, open another browser window and locate the following video: http://www.youtube.com/watch?v=KuwBcycCM0w
12. Click the Embed button to see the code that allows us to include this video on our site.
13. Copy the code for the video.
14. Return to the designed page and paste the copied code into the value ield. After changing the value property, click the OK button.
[ 217 ]
Personalization with Oracle Composer
15. The designed page will be shown as follows:
16. We now proceed to populate the right region. To do this, click on the Add Content button of this zone.
17. Choose the Image component that allows us to expose a picture on the page. To do this, click the Add button and close the Catalog Window.
[ 218 ]
Chapter 9
18. With this last change, a picture is added on our website. Now, let's set that image. To do this, click on the Edit button.
19. Change the Image Source property to the following URL associated to a picture that shows the growth of natural iber production. http://www.fao.org/fi/figis/graphs/species/Aquaculture/2965.gif
20. Press the OK button to complete the change. 21. In order to write information about the meaning of the video and image, click the Add Content button in right zone.
[ 219 ]
Personalization with Oracle Composer
22. In the catalog window, select the Text control by clicking the Add button.
23. Close the Component catalog by pressing the Close button. 24. Note that a text component has been added on the page; click on the link Edit Text to customize it.
25. Next, an editing region will appear.
26. Write your custom comments and click the Done Editing link.
[ 220 ]
Chapter 9
27. Finally, to see all customizations in execution mode, press the Close button located at the top right of the page.
28. Our page should look like the following:
[ 221 ]
Personalization with Oracle Composer
29. From now on, every time you run the page again, you ind that the changes are maintained. You probably wonder, Where are these changes? The answer is simple, in the metadata of the project. That is, in an XML ile that has been generated in the application. You can ind this ile in the following path: C:\Paracas\mds\mdssys\cust\site\site\customInformation.jspx.xml
30. You can open the ile with Notepad and ind all the changes made by the user. 31. Let's delete the metadata ile using the Windows Explorer in order to drop the user customization. 32. Execute the page again and you should see the same page without any customizations.
Summary Oracle Composer opens a lot of possibilities for content personalization. This technology helps end users to create their content and combine it with external information. In this way, they can share and transfer their knowledge to all members of the company and therefore, improve the productivity of the organization. In the following chapters, we will use this technology in a product called Oracle Spaces, and we'll learn how end users can continue to generate their own content.
[ 222 ]
Oracle WebCenter Spaces Overview Recent improvements in communications technology have helped to facilitate interaction and collaboration between people. Tools such as e-mails and chats are tangible proof of this. Imagine the productivity that can achieved by consolidating these Web 2.0 tools in one solution focused on promoting collaboration and knowledge sharing of the working groups of our companies! Precisely, this is one of the beneits that Oracle WebCenter Spaces offers. In addition to improving the productivity of working groups, this solution also helps improve the working environments of every employee of the company. Unlike other technologies of the WebCenter suite (WebCenter Framework, WebCenter Composer), Oracle WebCenter Spaces is a prebuilt application. However, the IT team can help in the coniguration and personalization of this solution. It is important to note that Oracle Web Center Spaces is a solution that uses all the technologies that we have studied throughout the book. This chapter shows how to conigure and customize Oracle WebCenter Spaces. Additionally, we are going to create personal and working group environments with this technology.
Oracle WebCenter Spaces Overview
Oracle WebCenter Spaces As we indicated in the introduction, WebCenter Spaces boosts performance of users and groups. To do so, it offers two environments: •
•
Oracle WebCenter Personal Spaces: This is designed to give users a personalized environment and is highly productive. Using this feature, the users can customize their environment in order to add access for common applications, visualization of indicators (percentage of sales, meeting goals), and key documents among other features that offer Web 2.0 environments. Oracle WebCenter Group Spaces: This is used by working groups to boost their productivity thanks to the many communication tools and the collaborative environment that is offered. The working groups could be associated with areas of the company (purchasing, HR), projects (launch of new products, implementation of new systems) or any grouping required by the organization.
Oracle WebCenter Personal Spaces This feature of WebCenter enables the end user to personalize his or her work environment in order to be more productive. To achieve this, WebCenter Personal Spaces allows the user to construct an environment that gives access to their personal e-mail, their recent documents, their favorite forums, their worklist items coming from any BPEL server, and a list of applications to quickly access. In addition, it provides them with access to their personal social network of users and experts. Joining these tools in one context is what gives Oracle WebCenter Personal Spaces.
Oracle WebCenter Group Spaces Group Spaces aims to provide a collaborative environment for the working groups of the organization. For example, members of a project or employees of a business area of the company. Group Spaces allows customizing content, sharing resources, and provides an environment for workgroups.
[ 224 ]
Chapter 10
Oracle WebCenter Spaces installation Oracle WebCenter installation is detailed on the oficial website of Oracle: http://www.oracle.com/technology/products/webcenter/index.html
Consider the following points during installation: • •
It is necessary to have an Oracle database version 10.2.0.4 and higher or 11.1.0.7 and higher. However, with Patchset 1 it's possible use MS SQL Server and IBM DB2. You must run the Repository Creation Utility (RCU) to create the schemas required for WebCenter Spaces to work. Both products can be downloaded from: http://www.oracle.com/ technology/software/products/middleware/htdocs/fmw_11_ download.html.
We recommend following the steps found in the guide: Oracle
Fusion Middleware Quick Installation Guide for Oracle WebCenter.
Oracle Spaces coniguration Before initiating the creation of personal and group spaces, the administrator needs to conigure Repository Services Content, Discussions, Wikis, and so on. In this case, as administrators we will set up access from WebCenter Spaces to a folder that contains iles for each user. This folder will have the user name and will be in the ile system of the server. 1. Go to the Enterprise Manager console: http://localhost:7001/em. 2. Click on the WebCenter Spaces service.
[ 225 ]
Oracle WebCenter Spaces Overview
3. Choose the following option: Setting | Service Coniguration.
4. Choose the Content Repository category and click the Add button.
5. Enter the following values: °
°
°
°
Connection Name: paracas_fs Repository Type: File System Active Connection: Yes (Deine as a default connection) Base Path: /ParacasRepository/ (We need to create this directory on our server.) [ 226 ]
Chapter 10
6. Press OK.
It will be necessary to restart the Oracle Spaces Service to apply the changes. You can follow the same procedure to enable the use of discussions, wikis, and portlets with Oracle Spaces.
Development of staff working environments The development a personal working environment can be done in the following way: 1. Go to the browser and enter the Oracle Spaces URL. In our case : http://localhost:8888/webcenter. 2. To create a personal environment, press the Register button.
[ 227 ]
Oracle WebCenter Spaces Overview
3. In the next page, enter the following values. Then click Register. °
°
User Name: eduardo.pulido
°
Password: oracle
°
Last Name: Pulido
°
First Name: Eduardo Email: [email protected]
4. Click the Login link located in the upper left to re-enter the application.
[ 228 ]
Chapter 10
5. In the Login page, enter the username: eduardo.pulido and password: oracle. Click Login.
6. Next, you can see the Oracle Personal Spaces environment.
[ 229 ]
Oracle WebCenter Spaces Overview
7. On the left side, Oracle Personal Spaces shows a toolbar called Sidebar. This tool provides quick access to resources that Oracle WebCenter Spaces offers.
8. The elements of the Sidebar are as follows: ° ° ° °
° ° ° °
Application: Provides access to business applications used by the user. It includes Single Sign-On for saving passwords. Worklist: Often users participate in worklows, as approvals and reviews. This tasklow or portlet will provide access to the low pending user approval. Mail: Link to user e-mail or third-party e-mail like Yahoo and Google along with their corporate e-mail. Buddies: Access to a list of their instant messaging contacts. Notes: Allows the user to create brief notes. Recent Documents: The documents that the user has accessed recently are shown in this region. Discussions: Access to hot and favorite topics associated. Tags: Gives access to pages through their tags and provides direct access to Tag Center.
9. On the right side, Oracle Personal Spaces shows the pages belonging to the connected user. Note that there are two pages by default, Welcome and Documents, which are shown by tabs. 10. The irst page is an informative page, and the second allows us to access the document repository conigured in the previous step.
[ 230 ]
Chapter 10
11. To conigure their pages, the users can use the option Page Actions | Manage Pages….
Note that this window allows you to manage all user pages. In addition, users also can access the Role Based Pages in WebCenter Spaces. These are pages that get assigned to a role within a company. Thus, if the user belongs to the sales role, then he or she will have automatic access to pages exclusively for this role. 12. Let us use this to create a new page. Click on the Create Page button.
13. Enter the name of the page as Custom Information and the scheme as Dunes. Click on the Create button.
[ 231 ]
Oracle WebCenter Spaces Overview
14. Change the layout of the page by clicking on this link: Change Layout | Two columns above….
15. Note that we now have three regions to be used by the user, in order to place data associated with the purchase of natural ibers. To begin, in the upper left corner, click on the button Add Content.
16. In the catalog of window components, click on the Layout option.
[ 232 ]
Chapter 10
17. In the next window, click on the Add button associated with the Text control and then press the Close button to close the catalog of components.
18. Note that you have created a text component on this new page. Next, click on the Edit Text link and add information on the types of natural iber on the market. You can select and format any paragraph of text. Complete this change by clicking on the Done Editing link.
19. Now, in the upper right portion, we are going to put news on the availability of natural ibers in the world. To do this, we will use the RSS service. Next, click on the Add Content button in the upper right region.
20. Click on the Add link for the RSS control. Then, press the Close button to close the catalog.
[ 233 ]
Oracle WebCenter Spaces Overview
21. Once the RSS control is created, you must conigure it. To do this, click the Edit link (pencil icon).
22. Complete the RSS Feed URL ield, with an address that contains the desired information. In our case, we use the following URL: http://rss.globalsources.com/I/Cotton-fiber-manufacturers /r/2000000003844/3000000179301/21806/RSS.xml.
23. Press OK to apply the changes. 24. Finally, in the lower region of the page, the user will place iles used in the purchase process that users carry out. To do this, click on the Add Content button at the bottom.
25. Choose the category Documents.
26. Click on the Add link for Documents and press the Close button.
[ 234 ]
Chapter 10
27. Now customize this control to show only the user's directory. To do this, click on the Edit button associated with the Document control.
28. In Start Folder Path ield, click on the Edit button.
29. Choose the values in the next screen to deine, as the root of the repository, a directory with the username. Press OK in the open windows.
30. Finally, click on the Close button located on the top right of the page.
31. Accept the changes made on the page by clicking the Save button.
[ 235 ]
Oracle WebCenter Spaces Overview
32. Finally, you will appreciate the following changes in the user page.
Building a business role page As we have mentioned in the introduction, the business role pages are a kind of pages that have the capability to be included in the work environment of all users who have a speciic role. This way we can target information to a predetermined group of users, avoiding the need to allocate one by one. [ 236 ]
Chapter 10
In this example, we will deine the role Purchaser and assign users to this role. Then we will create a business role page that lists the best suppliers of the company, which will be available to all users of the Purchaser role.
Hands on 1. Go to the Oracle Spaces login page: http://localhost:8888/webcenter. 2. In the same way as you created the eduardo.pulido user, press the Register button and proceed to create users martin.alban and diego.munoz, both with password oracle.
3. After the registration, return to the initial page and log in as the admin user, in our case, the user weblogic.
[ 237 ]
Oracle WebCenter Spaces Overview
4. Once in the main environment, click the Administration link.
5. In the window displayed, choose the option Manage WebCenter Users and Roles.
6. Then, it will show the security tab for deining roles and users used by Oracle Spaces. Press the Create Role link.
[ 238 ]
Chapter 10
7. Next, enter Purchaser and choose the template Spaces-User. Press OK.
8. After creating the role, we will register the users who belong to that role. To do this, click on the Users tab.
9. This page deines the users who belong to a role. Enter eduardo.pulido, select the role Purchaser, and click Grant Access. In this way, the user is associated with the role.
10. Repeat for users martin.alban and diego.munoz. 11. After registering the users, it should display the following information at the bottom of the page.
[ 239 ]
Oracle WebCenter Spaces Overview
12. Click the link Welcome in the tab WebCenter Administration.
13. Now create a page that can be accessed by all members of the role. Just choose the option: Create Business Role Pages.
14. Press the Create New Business Role Page link.
15. Enter the following information: °
°
°
Page Name: Certiied Providers Scheme: Dunes Style: Text Page
[ 240 ]
Chapter 10
16. Press the Create button.
17. Once you have created the page, use the editor to write the list of certiied providers and then press the Done Editing link to complete the registration.
18. Then, to associate the page with the role, click the Page Properties option.
[ 241 ]
Oracle WebCenter Spaces Overview
19. In the pop-up window, choose the Security tab and click the Add Access button.
20. Find the Purchaser role and choose it by pressing the Select button.
21. Make sure all users can edit the information of the page. To do this, select the editing checkbox (pencil picture). Then click OK.
22. Click the Save and Close buttons to save the changes.
[ 242 ]
Chapter 10
23. Click the Logout link and enter using the user martin.alban. Note that this user can now see a link to the page of Certiied Providers.
24. Click on this option and you can view the information about certiied suppliers. Additionally, if you click the option to Page Actions | Edit Page you may amend this list.
Developing a Group Space Another feature offered by Oracle Space is the development of a working group space using the tool Oracle Group Spaces. This option allows the creation of a working environment that can be used to foster collaboration among members of a project, area, or work group. In this exercise, we will use it to create a working environment for the team involved in a new procurement system. 1. Enter Oracle Spaces as an administrator.
[ 243 ]
Oracle WebCenter Spaces Overview
2. In the menu bar, choose Group Spaces | Create Group Space….
3. Enter project data to manage this group and choose Group Project. Click the Create button.
4. Next, you may include members of the group. To do this, type the name of the member, choose the Participan role, and click the Add Members button to include members in the group.
[ 244 ]
Chapter 10
5. Repeat the procedure to include all previously registered users. 6. Again, enter the Oracle Spaces using martin.alban as the username.
7. From the main menu, choose Group Spaces | Procurement System Implementation.
8. Note that an environment has been automatically created for managing group's projects. The upper part deines activities to be undertaken by the group. Click the Create button to add a new activity.
[ 245 ]
Oracle WebCenter Spaces Overview
9. Enter the activity information and assign it to diego.munoz. Click the Save button.
10. In the bottom of the group enviroment, you have a schedule to deine the agenda of the team. Click the Create button.
12. Enter the data of the meeting and press the Create button.
[ 246 ]
Chapter 10
13. Note that you have created a new calendar event.
14. Enter now as the user diego.munoz.
15. Go to the Oracle Spaces environment and procurement group. 16. Click the option Group Spaces | Procurement System Implementation.
[ 247 ]
Oracle WebCenter Spaces Overview
17. Finally, you'll see that the activity and event entered previously are deined in the group enviroment of diego.munoz.
Summary Oracle Space allows members of the organization develop their own environment in an easy way in order to improve their eficiency. For groups, Oracle Spaces provides an environment that allows them to manage their activities and meetings. Additionally, as discussed in this chapter, you can create Business Roles Pages that allow targeting information to certain groups of the organization. Finally, as we have seen, it's not necessary to do any kind of development because the solution is ready for use.
[ 248 ]
Index A ADF used, for creating portlet 130 ADF application, portlet creating 131 ADF business components application module component 114 architecture 114 entity component 114 Fusion Developer's Guide, URL 114 view object component 114 ADF Faces Rich Client components about 101 types 102 ADF Faces Rich Client components, types input components 102 label and messages components 102 layout components 102 LOV components 102 menu and toolbar components 102 snavigations components 102 soutput components 102 pop-up components 102 table and tree components 102 ADF Security, WebCenter Tags service coniguring 191-193 Application Development Framework (ADF) 12 application module component, ADF Business Components 114 application settings, Hello World web service coniguring 60 application, WebCenter Links Service
deploying, to integrated WebLogic server 198, 199 application, WebCenter RSS Service running 202 viewing 203 application, WebCenter Tags service deploying, to integrated WebLogic server 195 viewing 195, 196
B BEA WebLogic server, Oracle JDeveloper 11g installation 51-55 Blog 153 business components, portlet developing 132-137 business role page building 236-243
C categoryId parameter 163 chart page, portlet creating 137-140 common components, Oracle Components Change Mode Button 206 Change Mode Link 206 Image Link 206 Page Customizable 206 connection, WebCenter Tags service creating, to WebCenter schema 186, 187 Content Presenter 130 Create as XML Document option, Oracle Composer 208
custom WebCenter application WebCenter Links Service, integrating 196 WebCenter RSS Service, integrating 200 WebCenter Search Service, integrating 178, 179 WebCenter Tags service, integrating 185
D deployment proile, Hello World Portlet creating 83, 84 deployment proile, Hello World WebCenter application creating 96 deployment proile, Hello World web service creating 66-68 deployment proile, WebCenter Tags service creating 194 developers Oracle Composer for 205, 206 Discussions group structure 156 integrating, with WebCenter 157 structure 155, 156 user structure 156 Discussions Forums 157 Discussions Forum task low, WebCenter Search Service adding, to JSF page 182-184 Discussions, integration with WebCenter connection, creating to Discussions Forum 160-162 deploying 165 Discussions Forums 157 Discussions - Popular Topics 157 Discussions - Recent Topics 157 Discussions Server status, ensuring 158 Discussions - Sidebar View 157 Discussions task low, embedding in JSF page 163, 164 Discussions - Watched Forums 157 Discussions - Watched Topics 157 JSF page, creating 159, 160 new WebCenter application, creating 158 running 165 testing 165
Discussions - Popular Topics 157 Discussions - Recent Topics 157 Discussions Server about 152, 153 URL, connecting to 153 Discussions Service, WebCenter Search Service connection, creating to 181, 182 Discussions - Sidebar View 157 Discussions task low embedding, in JSF page 163 Discussions - Watched Forums 157 Discussions - Watched Topics 157
E end users Oracle Composer for 212 Ensemble 130 Enterprise 2.0 beneits 10 concepts 10 entity component, ADF Business Components 114
F forumId parameter 163 Forums Admin Console home page 154
G Group Space developing 243-247
H Hello World Portlet basic view, creating to use data control 79, 80 creating 72 deployment proile, creating 83, 84 new Portlet, creating 73-75 new Portlet Producer Application, creating 72 portlet, deploying to integrated weblogic server 85, 86
[ 250 ]
testing 86, 87 web service Data Control created, using 80-82 web service Data Control, creating for Hello World web service 76-79 Hello World WebCenter application creating 88, 90 deploying, to integrated Weblogic server 97, 98 deployment proile, creating 96 JSF page, creating to host portlet 92-94 page layout, creating 94, 95 portlet producer, using 90, 91 testing 98, 99 Hello World web service application settings, coniguring 60 deployment proile, creating 66-68 Java class, creating 62, 63 new application, creating 59 Oracle JDeveloper 11g, starting 58 project settings, coniguring 61 testing 70, 71 Web Service, creating from Java class 64-66 Web Service, deploying to integrated Weblogic server 68-70 WSDL, viewing 71 high-level installation, Oracle WebCenter 11g Middleware Home, installing 25-30 steps 16, 18, 20-24 WebCenter Framework and Services, installing 31-37
I iFrame creating, to include Wiki-Blog server page 169, 170 new WebCenter Application, creating 166 used, for integrating Wiki-Blog 166, 167 input components, ADF Faces Rich Client components 102 installing Middleware Home 25-30 WebCenter Framework and Services 31-37 isCategoryView parameter 163
J Java class, Hello World web service coniguring 62, 63 JDeveloper. See Oracle JDeveloper 11g installation JSF page, Hello World WebCenter application creating, to host portlet 92-94 JSF page, WebCenter RSS Service creating, to host RSS Viewer task low 200, 201 JSF page, WebCenter Search Service creating 180 Discussions Forum task low, adding 182, 183 Search task low, adding 184 JSF page, WebCenter Tags service creating, to host search toolbar 191 creating, with tag button 188-190 JSF portlets 129 JSR-168 speciication for portlet 128
K knowledge exchange, Web 2.0 platform 9
L label and messages components, ADF Faces Rich Client components 102 layout components, ADF Faces Rich Client components 102 layout components, Oracle Components Layout Customizable 206 Panel Customizable 206 Show Detail Frame 206 libraries, WebCenter Tags service adding 186 LOV components, ADF Faces Rich Client components 102
M menu and toolbar components, ADF Faces Rich Client components 102
[ 251 ]
Middleware Home installing 25-30
N navigations components, ADF Faces Rich Client components 102
O OmniPortlet 130 operation components, Oracle Components Custom Action 206 Oracle Components, types common components 206 layout components 206 Oracle Composer about 205 Add Content button 218, 219 and Oracle Metadata Service 213 Change Mode Link, dragging 209 Close button 216 components, catalog displaying 216 content, customizing 214-218 Create as XML Document option 208 Delete option 210 Done Editing link 220 editing region 220 Embed button 217 environment, building with 206-208 for developers 205, 206 for end users 212 Image Source property, changing 219 Layout Customizable component 211 metadata ile, deleting 222 page, changing to design mode 214 page content, customizing 214 page, content customizing 214 Page Customizable component, dragging 210 page, design environment 214 Page Properties button 214 Page template option 208 page, testing 212 panelCustomizable container 210 picture, adding to website 219 Property Inspector 209 resource catalog 213
text component, customizing 220 Text control, selecting 220 work region, dividing 215 Oracle JDeveloper 12 Oracle JDeveloper 11g, Hello World web service starting 58 Oracle JDeveloper 11g installation about 40 BEA WebLogic server 51-55 extensions, installing 42-44 integration, with Subversion 50 Oracle WebCenter extension 42 system requirements 40 tool, downloading 40 tool, installing 41, 42 version control system, installation 45-49 WebCenter preconigured server, testing 51-55 Oracle Metadata Service and Oracle Composer 213 Oracle WebCenter application, creating 102, 103 business components, creating 117-121 database connection, creating in JDeveloper 115, 116 new application, creating 102, 103 page, creating 121-126 persistence layer, creating 114 Schema, creating for application 114 template, including 104-113 Oracle WebCenter 11g about 15 hardware requisites 16 high-level installation, steps 16-22 Installation Complete screen 30 Installation Summary screen 28 Middleware Home, installing 25-30 Run Quickstart option 30 software requisites 16 Typical install option 27 WebCenter Framework and Services, installing 31-37 Oracle WebCenter Anywhere 11 Oracle WebCenter Composer 11 Oracle WebCenter Discussions Service 151
[ 252 ]
Oracle WebCenter extension, Oracle JDeveloper 11g installation installing 42, 44 Oracle WebCenter Framework 11 Oracle WebCenter Group Spaces about 224 developing 243-247 Oracle WebCenter Personal Spaces 224 Oracle WebCenter Services about 11 Oracle WebCenter Spaces about 11, 224 business role page, building 236-243 coniguration 225-227 Group Space, developing 243,-247 installation 225 Oracle WebCenter Group Spaces 224 Oracle WebCenter Personal Spaces 224 staff working environment, developing 228 staff working environment, development 227-235 Oracle WebCenter Suite about 10 components 11 Oracle WebCenter Anywhere 11 Oracle WebCenter Composer 11 Oracle WebCenter Framework 11 Oracle WebCenter Services 11 Oracle WebCenter Spaces 11 output components, ADF Faces Rich Client components 102
P page building, with database interaction 114 used, for creating portlet 141 page content, Oracle Composer Add button 216 Add Content button 216, 218, 219 Change Layout button 215 changing, to design mode 214 customizing 214 design environment 214 Done Editing link 220 Edit button 216 editing region 220
Image Source property, changing 219 metadata ile, deleting 222 Option Two columns 215 Page Properties button 214 text component, customizing 220 Text control, selecting 220 page layout, Hello World WebCenter application creating 94, 95 pages, building with database interaction ADF Business Components 114 business components, creating 117-121 database connection, creating in JDeveloper 115, 116 page, creating 121-126 persistence layer, creating 114 Schema, creating 114 Page template option, Oracle Composer 208 persistence layer, creating business components, creating 117-121 database connection, creating in JDeveloper 115, 116 page, creating 121-126 Schema, creating for application 114 pop-up components, ADF Faces Rich Client components 102 portlet about 128 ADF application, creating 131, 132 business components, developing 132-137 chart page, creating 137-140 consuming 145-148 Content Presenter 130 creating, page used 141, 142 deploying 142-144 developing, ADF used 130 Ensemble 130 JSF portlets 129 JSR-168 speciication 128 OmniPortlet 130 programmatic portlets 130 Web Clipping 130 WSRP speciication 129 Portlet Producer Application, Hello World Portlet creating 72
[ 253 ]
modifying, to include Links Detail Button 196-198 tools, Oracle JDeveloper 11g installation downloading 40, 41 installing 41, 42
portlet producer, Hello World WebCenter application coniguring 92 using 90, 91 programmatic portlets 130 project settings, Hello World web service coniguring 61
V version control system, Oracle JDeveloper 11g installation installing 45-49 view object component, ADF Business Components 114
R Really Simple Syndication (RSS) 177 Repository Creation Utility (RCU) 225 resource catalog, Oracle Composer 213 RSS Viewer task low, WebCenter RSS Service adding 202 hosting, JSF page created 200, 201
W
S search preferences task low 178 search - saved searches task low 179 search task low 178 Search task low, WebCenter Search Service adding, to JSF page 184 search toolbar task low 179 search toolbar, WebCenter Tags service hosting, JSF page created 191 showRecursiveForums parameter 163 staff working environment Close button 235 Create Page button 231 development 227 Done Editing link 233 Login link 228 Oracle Personal Spaces environment 229 personal environment, creating 227 RSS Feed URL ield 234 Sidebar, elements 230 Subversion, Oracle JDeveloper 11g installation integration 50
T table and tree components, ADF Faces Rich Client components 102 test_page, WebCenter Links Service
WEB 2.0 about 7, 8 advantages 9 platform application, evolution 8 social impact 9 Web 2.0 platform collaboration and participation 9 communication 9 content management 10 knowledge exchange 9 social environments, creation 10 WebCenter Discussions, integrating 157 used, for integrating Wiki-Blog 165, 166 Wiki-Blog, integrating 165, 166 WebCenter Hello World application building 58 Hello World Portlet 72 Hello World web service 58 requisites 58 WebCenter Links Service, integrating with custom WebCenter application application, deploying to integrated WebLogic server 198, 199 test_page, modifying 196-198 WebCenter preconigured server, Oracle JDeveloper 11g installation testing 51-55 WebCenter RSS Service integrating 200 need for 199 requisites 200
[ 254 ]
WebCenter RSS Service, integrating with custom WebCenter application application, running 202 application, viewing 203 JSF page, creating to host RSS Viewer task low 200, 201 new custom WebCenter application, creating 200 RSS Viewer task low, adding 202 WebCenter Search Service, integrating with custom WebCenter application connection, creating to discussions service 181, 182 Discussions Forum task low, adding to JSF page 182-184 JSF page, creating 180 new WebCenter Application, creating 179, 180 search preferences task low 178 search - saved searches task low 179 search task low 178 Search task low, adding to JSF page 184 search toolbar task low 179 WebCenter Wiki and Blog Server 179 WebCenter Tags service integrating, with custom WebCenter application 185 requisites 185 WebCenter Tags service, integrating with custom WebCenter application ADF Security, coniguring 191-193 application, deploying to integrated WebLogic server 195 application, viewing 195, 196 connection, creating to WebCenter schema 186, 187 deployment proile, creating 194 JSF page, creating to host search toolbar 191 JSF page, creating with tag button 188-190 new custom WebCenter application, creating 185 required libraries, adding 186 Web Clipping 130 Web Clipping Portlet page, running 173-175 registering 171, 172
used, for integrating Wiki-Blog 170 weblog. See blog web service Data Control, Hello World Portlet creating, for Hello World web service 76-79 using 80-82 Wiki 152 Wiki-Blog integration, iFrame used iFrame, creating to include Wiki and Blog Server page 169, 170 JSF page, creating 167, 168 new WebCenter Application, creating 166, 167 Wiki-Blog integration, Web Clipping Portlet used about 170 new JSF page, adding to application 171 portlet page, running 173-175 Web Clipping Portlet, adding to JSF page 172 Web Clipping Portlet, registering 171, 172 Wiki-Blog integration, with WebCenter about 165, 166 prerequisites 166 WSRP speciication about 129 ADF application, creating 131, 132 advantages 129 business components, developing 132-136 chart page, creating 137-140 portlet, consuming 145-148 portlet creating, page used 141, 142 portlet, deploying 142-144 portlet developing, ADF used 130 WebCenter portlets 129
[ 255 ]
Thank you for buying
Web 2.0 Solutions with Oracle WebCenter 11g About Packt Publishing
Packt, pronounced 'packed', published its irst book "Mastering phpMyAdmin for Effective MySQL Management" in April 2004 and subsequently continued to specialize in publishing highly focused books on speciic technologies and solutions. Our books and publications share the experiences of your fellow IT professionals in adapting and customizing today's systems, applications, and frameworks. Our solution based books give you the knowledge and power to customize the software and technologies you're using to get the job done. Packt books are more speciic and less general than the IT books you have seen in the past. Our unique business model allows us to bring you more focused information, giving you more of what you need to know, and less of what you don't. Packt is a modern, yet unique publishing company, which focuses on producing quality, cutting-edge books for communities of developers, administrators, and newbies alike. For more information, please visit our website: www.packtpub.com.
About Packt Enterprise In 2010, Packt launched two new brands, Packt Enterprise and Packt Open Source, in order to continue its focus on specialization. This book is part of the Packt Enterprise brand, home to books published on enterprise software – software created by major vendors, including (but not limited to) IBM, Microsoft and Oracle, often for use in other corporations. Its titles will offer information relevant to a range of users of this software, including administrators, developers, architects, and end users.
Writing for Packt We welcome all inquiries from people who are interested in authoring. Book proposals should be sent to [email protected]. If your book idea is still at an early stage and you would like to discuss it irst before writing a formal book proposal, contact us; one of our commissioning editors will get in touch with you. We're not just looking for published authors; if you have strong technical skills but no writing experience, our experienced editors can help you develop a writing career, or simply get some additional reward for your expertise.
Oracle SOA Suite Developer's Guide ISBN: 978-1-847193-55-1
Paperback: 652 pages
Design and build Service-Oriented Architecture Solutions with the Oracle SOA Suite 10gR3 1.
A hands-on guide to using and applying the Oracle SOA Suite in the delivery of real-world SOA applications.
2.
Detailed coverage of the Oracle Service Bus, BPEL Process Manager, Web Service Manager, Rules, Human Worklow, and Business Activity Monitoring.
3.
Master the best way to combine / use each of these different components in the implementation of a SOA solution.
Oracle Application Express 3.2 The Essentials and More ISBN: 978-1-847194-52-7
Paperback: 644 pages
Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX 1.
Grasp the principles behind APEX to develop eficient and optimized data-centric native web applications, for the Oracle environment
2.
Gain a better understanding of the major principles and building blocks of APEX, like the IDE and its modules
3.
Review APEX-related technologies like HTML and the DOM, CSS, and JavaScript, which will help you to develop better, richer, and more eficient APEX applications
Please check www.PacktPub.com for information on our titles