SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
RAD Extensibility
                 for Development based Analytics

 Rajesh Kalyanaraman,                            S. Srilakshmi,
 Staff Software Engineer, RAD                  Architect – Technology
IBM Software Labs, Bangalore         Java Center of Excellence – GTO, Cognizant
Agenda

•   RAD Extensibility
     –   Project Metrics API using JDT & AST
     –   Custom Plug-in Development
     –   Reporting Infrastructures – BIRT & Crystal Reports
     –   Building Custom JSF Web Components
     –   Building Visual Custom Tags


•   JACP System Overview
•   JACP Demo
•   Q&A
Project Metrics from JDT

•   Java Development Tooling

     –   JDT Core    - the headless infrastructure for compiling and manipulating Java code.
     –   JDT UI      - the user interface extensions that provide the IDE.
     –   JDT Debug   - program launching and debug support specific to the Java programming language.

•   You can
     – Programmatically manipulate Java resources, such as creating projects, generating Java source
        code, performing builds, or detecting problems in code.
     – Programmatically launch a Java program from the platform
     – Provide a new type of VM launcher to support a new family of Java runtimes
     – Add new functions and extensions to the Java IDE itself
JDT Core APIs

•   org.eclipse.jdt.core - defines the classes that describe the Java model.
•   org.eclipse.jdt.core.compiler - defines an API for the compiler infrastructure.
•   org.eclipse.jdt.core.dom - supports Abstract Syntax Trees (AST) that can be used for examining the
    structure of a compilation unit down to the statement level.
•   org.eclipse.jdt.core.dom.rewrite - supports rewriting of Abstract Syntax Trees (AST) that can be used for
    manipulating the structure of a compilation unit down to the statement level.
•   org.eclipse.jdt.core.eval - supports the evaluation of code snippets in a scrapbook or inside the debugger.
•   org.eclipse.jdt.core.formatter - supports the formatting of compilation units, types, statements,
    expressions, etc.
•   org.eclipse.jdt.core.jdom - supports a Java Document Object Model (DOM) that can be used for walking
    the structure of a Java compilation unit. (deprecated – use org.eclipse.jdt.core.dom)
•   org.eclipse.jdt.core.search - supports searching the workspace's Java model for Java elements that
    match a particular description.
•   org.eclipse.jdt.core.util - provides utility classes for manipulating .class files and Java model elements.
Java Model
Java Compilation Unit
Code modification using the DOM/AST API

•   AST (Abstract Syntax Tree)
•   Ways to create a compilation unit
         • ASTParser
         • ICompilationUnit#reconcile(...)
              – start from scratch using the factory methods on AST (Abstract Syntax Tree).
•   Creating AST from Source code – ASTParser. createAST(IProgressMonitor)
         • setSource(char[]): to create the AST from source code
         • setSource(IClassFile): to create the AST from a classfile
         • setSource(ICompilationUnit): to create the AST from a compilation unit
Plug-in Development
Wizard
Context help with contexts.xml
Run Configuration for the plug-in
Our view in action !
Reporting Infrastructure
•   RAD supports 2 ways for building reports
         • BIRT
         • Crystal Reports

•   Designing Reports with BIRT
         • Report Layout
               – Colors, fonts and positioning
          • DataSources
               – Can be JDBC /XML/Scripted Data Source/Web Service
          • DataSets
               – Corresponds to data records used in the details added dynamically to the report

•   Caching Build Reports
         • Either Data or the built report can be cached
Data Source Types
Scripting Data Set -Steps
Scripting Data Set -Steps
Scripting Data Set -Steps
XML Data Source – Schema & Source
XML Data Set - Column Mapping
XML Data Set - Computed Columns
Building a chart
Getting Chart Data from the Data Set
Preview Report
Crystal Reports
CR Reporting Models

•   CR Embedded Reporting Model
     –   uses the Java Reporting Component (JRC) and Crystal Reports Viewers Java SDK
           • to enable users to view and export reports in a web browser
           • functionality required to create and customize a report viewer object, process the report, and
             then render the report in DHTML.
     –   The JRC (jars) keeps report processing completely internal to the Java application server to process Crystal Reports
         report (.rpt) files within the application itself, no external report servers


•   CR Enterprise Reporting Model
     –   uses the Crystal Enterprise Java SDK to leverage an external Crystal Enterprise server
     –   additional functionality
           • runtime report creation
           • persisting runtime report modification back to the Crystal Reports report (.rpt) file
           • report management, security, and scheduling
           • The Crystal Enterprise server also improves scalability and increases performance to support
             extensive user concurrency demands.
Developing Custom JSF Web Components
•   RAD provides for
    –   Importing Custom component Libraries
    –   Building Custom JSF Component Library
    –   Adding new custom JSF widgets in the library
    –   Adding custom library widgets to the RAD palette
    –   Sharing and using custom widgets by drag and drop from the palette




              <h:outputText value=”Name:” / >
              <h:inputText value=”#{person.name}” />


    <my:inputLabel value=”#{person.name}” label=”Name:” />
New Faces Component Library wizard
New custom component
Creating component content




Component source
<jsfc:component>
Component properties




     Configured
     component
Library definition   Added to RAD Palette
Building Visual Custom Tags
•   Visualizing Custom Tags in the design view
     –   Building custom plug-in to visualize my tag
     –   Extend CustomTagVisualizer
     –   Provide the visualization information in doStart or doEnd Methods
     –   Building and importing new plug-in
     –   Add custom properties view for the custom tag

                      Sample plugin.xml extract
<requires>
  <samp><import plugin="org.apache.xerces"/>
  <samp><import plugin="com.ibm.etools.webedit.core"/>
</requires>
<extension point="com.ibm.etools.webedit.core.visualCustomTag">
  <samp><vtaglib uri="/WEB-INF/lib/sample.jar">
    <samp><vtag name="date"
      class="com.ibm.etools.webedit.vct.sample.DateTimeTagVisualizer"
      description="Dynamically outputs current date and time"/>
  <samp></vtaglib>
</extension>
Example Custom tag visualized
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML> <HEAD>


 <%@ taglib uri="/WEB-INF/lib/sample.jar" prefix="vct" %>
 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
 <TITLE>index.jsp</TITLE> </HEAD>
 <BODY>
         The current date and time is: <vct:date/>
 </BODY>
 </HTML>




import com.ibm.etools.webedit.vct.*;

public class DateTimeTagVisualizer extends CustomTagVisualizer {
  public VisualizerReturnCode doEnd(Context context) {
            Date now = new Date();
            context.putVisual(now.toString());
            return VisualizerReturnCode.OK;
  }
}
Resources
•   RAD
     –    http://publib.boulder.ibm.com/infocenter/radhelp/v7r5/index.jsp
•   JDT
     –    http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_int_model.htm
     –    http://publib.boulder.ibm.com/infocenter/rtnlhelp/v6r0m0/index.jsp?topic=/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/dom/AST.h
          tml
     –    http://www.jdg2e.com/ch27.jdt/doc/index.html
     –    http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_int_model.htm


•   BIRT
     –    http://www.eclipse.org/birt/phoenix/
     –    http://wiki.eclipse.org/Integration_Examples_%28BIRT%29
     –    http://www.vogella.de/articles/EclipseBIRT/article.html
     –    http://download.eclipse.org/birt/downloads/examples/scripting/scripteddatasource/scripteddatasource.html
     –    https://www6.software.ibm.com/developerworks/education/dw-r-umlbirtreport/index.html (UML Model reports in RSA)

•   Crystal Reports
     –    http://publib.boulder.ibm.com/infocenter/radhelp/v6r0m1/index.jsp?topic=/com.businessobjects.integration.eclipse.doc.devtools/developer/Ar
          chitectureOverview2.html

•   Plug-in development
     –    http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/firstplugin.htm

•   Web Tools Customization
     –    http://www.ibm.com/developerworks/websphere/library/techarticles/0304_hosokawa/hosokawa.html
     –    http://www.ibm.com/developerworks/rational/library/09/0106_kats/
A Case Study @ CTS


•   Extracting Quality metrics from Source code
         • Using available CTS project metric tools
•   Packaging the custom plug-ins and Integrating to existing QA systems
         • Modes of running the customized plug-ins
•   Usage tracking
•   Productivity tracking
Extending RAD @ CTS…
GTO structure




                © 2009, Cognizant Technology Solutions.   Confidential   40
RAD Extension – JCAP Plug-in


                          Rational Application Developer



                          Eclipse Platform
         Java
         Development           Workbench                                         JCAP
         Tooling                                                   Help
         (JDT)                            JFace

                                    SWT
         Plug-in
         Developer                                                            New Tool
         Environment
         (PDE)                                                     Team
                                    Workspace



                                       Platform Runtime                       New Tool




                         © 2009, Cognizant Technology Solutions.          Confidential   41
JCAP – Java Code Assessment Platform


    Objective

  • To build extensions to Rational Products to:
        » Collect
        » Analyze
        » Integrate Code quality Metrics with Cognizant Delivery Platform



    Project Quality Management - Need of the Hour

  • Project Code Quality Metrics at development milestones, On demand
         » Overall Project health to be known at build time (entire project code base)
         » Also Get to know the application health from time to time On demand


  • Individual developer’s work quality - required for mentoring new recruits/trainees
  • Monitor in a continuous basis – decreasing trend or increasing trend




                                      © 2009, Cognizant Technology Solutions.            Confidential   42
JCAP – Features


   •   Java Code Assessment Platform (henceforth called as JCAP) – implemented as a RAD Extension RAD
       extensions provided as eclipse plug-ins; extensions to the Menu, Toolbar, Project Explorer and View


   •   Data Acquisition
          » Source Analysis & Metrics Capture
          » Violations against Coding standard rules
          » Size metrics [Lines of Code and Documentation Lines of Code]
          » Cyclomatic Complexity
          » Code duplication
          » Class coupling


   •   Data Integration and Reporting
          » IDE level dashboards
          » Web dashboards integrated with the Organization Governance dashboards




                                        © 2009, Cognizant Technology Solutions.              Confidential    43
JCAP Plug-in


IJavaProject

IPackageFragment




ICompilationUnit




                   © 2008, Cognizant Technology Solutions.   Confidential
JCAP – Functional view

                                           Project Definition


                                      PM creates Project                     PM modifies existing Project
                                      Profile in JCAP Web                    Profile in JCAP Web Interface
                                      Interface

                                                                                                 At any point
      PM downloads JCAP Profile XML file
      and distributes to team




     Each developer runs JCAP on those       PM / TL runs JCAP on entire project
     files that they have developed and      and data is captured in JCAP
     data is captured in JCAP repository
                                             repository




     Views JCAP Developer level       Views JCAP Project level                 Views JCAP Project & Developer
     dashboard (Summary, details      dashboard (Summary, details              level dashboards on JCAP Web
     and trend views in IDE)          and trend views in IDE)                  Interface




45
                                   © 2009, Cognizant Technology Solutions.                         Confidential   45
JCAP – Architectural View


        RAD

       Developer
                                     Browser
                             Web
                            Server
                                     Manager

        RAD

       Team Lead




                            Data
                            Base
Data Reporting - Project Quality Dashboard




                    © 2009, Cognizant Technology Solutions.   Confidential   47
48
49
Rad Extensibility - Srilakshmi S Rajesh K

Mais conteúdo relacionado

Mais procurados

M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineeringScott Althouse
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Prolifics
 
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Intland Software GmbH
 
Why there is no future for Model Driven Development
Why there is no future for Model Driven DevelopmentWhy there is no future for Model Driven Development
Why there is no future for Model Driven DevelopmentJohan den Haan
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App LifecycleMarc Hoppers
 
Visual Studio Application Lifecycle Managment end-to-end
Visual Studio Application Lifecycle Managment end-to-endVisual Studio Application Lifecycle Managment end-to-end
Visual Studio Application Lifecycle Managment end-to-endHosam Kamel
 
RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
 RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
RTC/CLM 5.0 Adoption Paths: Deploying in 16 StepsStéphane Leroy
 
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryLessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryJohan den Haan
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
Workflow Management Software with IBM Lotus Notes, Business Process Managemen...
Workflow Management Software with IBM Lotus Notes, Business Process Managemen...Workflow Management Software with IBM Lotus Notes, Business Process Managemen...
Workflow Management Software with IBM Lotus Notes, Business Process Managemen...GBS PAVONE Groupware GmbH
 
Heterogeneous Development With RTC - Sreerupa Sen
Heterogeneous Development With RTC -  Sreerupa SenHeterogeneous Development With RTC -  Sreerupa Sen
Heterogeneous Development With RTC - Sreerupa SenRoopa Nadkarni
 
Model-Driven Development, the end of the test profession?
Model-Driven Development, the end of the test profession?Model-Driven Development, the end of the test profession?
Model-Driven Development, the end of the test profession?Johan den Haan
 
RESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALMRESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALMoslc
 
2012 student track - vs2010
2012   student track - vs20102012   student track - vs2010
2012 student track - vs2010Tim Mahy
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDDJohan den Haan
 
01.egovFrame Training Book I
01.egovFrame Training Book I01.egovFrame Training Book I
01.egovFrame Training Book IChuong Nguyen
 

Mais procurados (20)

M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineering
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
 
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
 
Why there is no future for Model Driven Development
Why there is no future for Model Driven DevelopmentWhy there is no future for Model Driven Development
Why there is no future for Model Driven Development
 
1
11
1
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App Lifecycle
 
Building a SaaS Style Application
Building a SaaS Style ApplicationBuilding a SaaS Style Application
Building a SaaS Style Application
 
Visual Studio Application Lifecycle Managment end-to-end
Visual Studio Application Lifecycle Managment end-to-endVisual Studio Application Lifecycle Managment end-to-end
Visual Studio Application Lifecycle Managment end-to-end
 
RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
 RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
RTC/CLM 5.0 Adoption Paths: Deploying in 16 Steps
 
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryLessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
Workflow Management Software with IBM Lotus Notes, Business Process Managemen...
Workflow Management Software with IBM Lotus Notes, Business Process Managemen...Workflow Management Software with IBM Lotus Notes, Business Process Managemen...
Workflow Management Software with IBM Lotus Notes, Business Process Managemen...
 
Heterogeneous Development With RTC - Sreerupa Sen
Heterogeneous Development With RTC -  Sreerupa SenHeterogeneous Development With RTC -  Sreerupa Sen
Heterogeneous Development With RTC - Sreerupa Sen
 
Model-Driven Development, the end of the test profession?
Model-Driven Development, the end of the test profession?Model-Driven Development, the end of the test profession?
Model-Driven Development, the end of the test profession?
 
RESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALMRESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALM
 
2012 student track - vs2010
2012   student track - vs20102012   student track - vs2010
2012 student track - vs2010
 
Resume
ResumeResume
Resume
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
01.egovFrame Training Book I
01.egovFrame Training Book I01.egovFrame Training Book I
01.egovFrame Training Book I
 

Semelhante a Rad Extensibility - Srilakshmi S Rajesh K

Alberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.jsAlberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.jsScala Italy
 
Scala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJSScala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJSAlberto Paro
 
Essential Kit for Oracle JET Programming
Essential Kit for Oracle JET ProgrammingEssential Kit for Oracle JET Programming
Essential Kit for Oracle JET Programmingandrejusb
 
Bring the Spark To Your Eyes
Bring the Spark To Your EyesBring the Spark To Your Eyes
Bring the Spark To Your EyesDemi Ben-Ari
 
Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureJavaDayUA
 
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdfNET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdfTamir Dresher
 
dan_labrecque_web_resume
dan_labrecque_web_resumedan_labrecque_web_resume
dan_labrecque_web_resumeDan Labrecque
 
Eclipse plug in development
Eclipse plug in developmentEclipse plug in development
Eclipse plug in developmentMartin Toshev
 
Rich faces in_the_cloud_mini_booth
Rich faces in_the_cloud_mini_boothRich faces in_the_cloud_mini_booth
Rich faces in_the_cloud_mini_boothbalunasj
 
Spring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsSpring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsmichaelaaron25322
 
How to train the jdt dragon
How to train the jdt dragonHow to train the jdt dragon
How to train the jdt dragonAyushman Jain
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introductionvstorm83
 
Challenges of angular in production (Tasos Bekos) - GreeceJS #17
Challenges of angular in production (Tasos Bekos) - GreeceJS #17Challenges of angular in production (Tasos Bekos) - GreeceJS #17
Challenges of angular in production (Tasos Bekos) - GreeceJS #17GreeceJS
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repositorynobby
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingThorsten Kamann
 

Semelhante a Rad Extensibility - Srilakshmi S Rajesh K (20)

Ow
OwOw
Ow
 
Alberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.jsAlberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.js
 
Scala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJSScala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJS
 
Essential Kit for Oracle JET Programming
Essential Kit for Oracle JET ProgrammingEssential Kit for Oracle JET Programming
Essential Kit for Oracle JET Programming
 
Bring the Spark To Your Eyes
Bring the Spark To Your EyesBring the Spark To Your Eyes
Bring the Spark To Your Eyes
 
Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and Architecture
 
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdfNET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
 
Creation&imitation
Creation&imitationCreation&imitation
Creation&imitation
 
Eclipse e4
Eclipse e4Eclipse e4
Eclipse e4
 
dan_labrecque_web_resume
dan_labrecque_web_resumedan_labrecque_web_resume
dan_labrecque_web_resume
 
Eclipse plug in development
Eclipse plug in developmentEclipse plug in development
Eclipse plug in development
 
Intro to sbt-web
Intro to sbt-webIntro to sbt-web
Intro to sbt-web
 
Rich faces in_the_cloud_mini_booth
Rich faces in_the_cloud_mini_boothRich faces in_the_cloud_mini_booth
Rich faces in_the_cloud_mini_booth
 
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion MiddlewareAMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
 
Spring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsSpring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applications
 
How to train the jdt dragon
How to train the jdt dragonHow to train the jdt dragon
How to train the jdt dragon
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
Challenges of angular in production (Tasos Bekos) - GreeceJS #17
Challenges of angular in production (Tasos Bekos) - GreeceJS #17Challenges of angular in production (Tasos Bekos) - GreeceJS #17
Challenges of angular in production (Tasos Bekos) - GreeceJS #17
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte Frühling
 

Mais de Roopa Nadkarni

New integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean InnesNew integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean InnesRoopa Nadkarni
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilRoopa Nadkarni
 
Accelerated test case - Anish bhanu
Accelerated test case - Anish bhanuAccelerated test case - Anish bhanu
Accelerated test case - Anish bhanuRoopa Nadkarni
 
web 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwickweb 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwickRoopa Nadkarni
 
Solving the enterprise security challenge - Derek holt
Solving the enterprise security challenge - Derek holtSolving the enterprise security challenge - Derek holt
Solving the enterprise security challenge - Derek holtRoopa Nadkarni
 
RQM in scrum agile testing - Raj kumar
RQM in scrum agile testing - Raj kumarRQM in scrum agile testing - Raj kumar
RQM in scrum agile testing - Raj kumarRoopa Nadkarni
 
Req Pro - Andreas gschwind
Req Pro - Andreas gschwindReq Pro - Andreas gschwind
Req Pro - Andreas gschwindRoopa Nadkarni
 
Extending Rhapsody -Rick boldt
Extending Rhapsody -Rick boldtExtending Rhapsody -Rick boldt
Extending Rhapsody -Rick boldtRoopa Nadkarni
 
EM overview- - Hayden lindsey
EM overview- - Hayden lindseyEM overview- - Hayden lindsey
EM overview- - Hayden lindseyRoopa Nadkarni
 
Application security vision - John b
Application security vision - John bApplication security vision - John b
Application security vision - John bRoopa Nadkarni
 
Smarter Products For A Smarter PLanet - Neeraj Chandra
Smarter Products For A Smarter PLanet - Neeraj ChandraSmarter Products For A Smarter PLanet - Neeraj Chandra
Smarter Products For A Smarter PLanet - Neeraj ChandraRoopa Nadkarni
 
Real Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonReal Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonRoopa Nadkarni
 
Overcoming Contradictions - Mike O Rourke
Overcoming Contradictions - Mike O RourkeOvercoming Contradictions - Mike O Rourke
Overcoming Contradictions - Mike O RourkeRoopa Nadkarni
 
Opportunities In Challenging Times - Steve Robinson
Opportunities In Challenging Times - Steve RobinsonOpportunities In Challenging Times - Steve Robinson
Opportunities In Challenging Times - Steve RobinsonRoopa Nadkarni
 
How To Make It Real - Hayden Lindsey
How To Make It Real - Hayden LindseyHow To Make It Real - Hayden Lindsey
How To Make It Real - Hayden LindseyRoopa Nadkarni
 
Achieving Agility At Scale - Martin Nally
Achieving Agility At Scale - Martin NallyAchieving Agility At Scale - Martin Nally
Achieving Agility At Scale - Martin NallyRoopa Nadkarni
 

Mais de Roopa Nadkarni (20)

Agile - Monojit basu
Agile - Monojit basuAgile - Monojit basu
Agile - Monojit basu
 
New integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean InnesNew integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean Innes
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini Patil
 
Agile - Monojit Basu
Agile - Monojit BasuAgile - Monojit Basu
Agile - Monojit Basu
 
Accelerated test case - Anish bhanu
Accelerated test case - Anish bhanuAccelerated test case - Anish bhanu
Accelerated test case - Anish bhanu
 
web 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwickweb 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwick
 
Solving the enterprise security challenge - Derek holt
Solving the enterprise security challenge - Derek holtSolving the enterprise security challenge - Derek holt
Solving the enterprise security challenge - Derek holt
 
RTF - Prasad bhatt
RTF - Prasad bhattRTF - Prasad bhatt
RTF - Prasad bhatt
 
RQM in scrum agile testing - Raj kumar
RQM in scrum agile testing - Raj kumarRQM in scrum agile testing - Raj kumar
RQM in scrum agile testing - Raj kumar
 
Req Pro - Andreas gschwind
Req Pro - Andreas gschwindReq Pro - Andreas gschwind
Req Pro - Andreas gschwind
 
RFT - Ashish Mathur
RFT - Ashish MathurRFT - Ashish Mathur
RFT - Ashish Mathur
 
Extending Rhapsody -Rick boldt
Extending Rhapsody -Rick boldtExtending Rhapsody -Rick boldt
Extending Rhapsody -Rick boldt
 
EM overview- - Hayden lindsey
EM overview- - Hayden lindseyEM overview- - Hayden lindsey
EM overview- - Hayden lindsey
 
Application security vision - John b
Application security vision - John bApplication security vision - John b
Application security vision - John b
 
Smarter Products For A Smarter PLanet - Neeraj Chandra
Smarter Products For A Smarter PLanet - Neeraj ChandraSmarter Products For A Smarter PLanet - Neeraj Chandra
Smarter Products For A Smarter PLanet - Neeraj Chandra
 
Real Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonReal Insights Real Results - Steve Robinson
Real Insights Real Results - Steve Robinson
 
Overcoming Contradictions - Mike O Rourke
Overcoming Contradictions - Mike O RourkeOvercoming Contradictions - Mike O Rourke
Overcoming Contradictions - Mike O Rourke
 
Opportunities In Challenging Times - Steve Robinson
Opportunities In Challenging Times - Steve RobinsonOpportunities In Challenging Times - Steve Robinson
Opportunities In Challenging Times - Steve Robinson
 
How To Make It Real - Hayden Lindsey
How To Make It Real - Hayden LindseyHow To Make It Real - Hayden Lindsey
How To Make It Real - Hayden Lindsey
 
Achieving Agility At Scale - Martin Nally
Achieving Agility At Scale - Martin NallyAchieving Agility At Scale - Martin Nally
Achieving Agility At Scale - Martin Nally
 

Último

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Último (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Rad Extensibility - Srilakshmi S Rajesh K

  • 1. RAD Extensibility for Development based Analytics Rajesh Kalyanaraman, S. Srilakshmi, Staff Software Engineer, RAD Architect – Technology IBM Software Labs, Bangalore Java Center of Excellence – GTO, Cognizant
  • 2.
  • 3. Agenda • RAD Extensibility – Project Metrics API using JDT & AST – Custom Plug-in Development – Reporting Infrastructures – BIRT & Crystal Reports – Building Custom JSF Web Components – Building Visual Custom Tags • JACP System Overview • JACP Demo • Q&A
  • 4. Project Metrics from JDT • Java Development Tooling – JDT Core - the headless infrastructure for compiling and manipulating Java code. – JDT UI - the user interface extensions that provide the IDE. – JDT Debug - program launching and debug support specific to the Java programming language. • You can – Programmatically manipulate Java resources, such as creating projects, generating Java source code, performing builds, or detecting problems in code. – Programmatically launch a Java program from the platform – Provide a new type of VM launcher to support a new family of Java runtimes – Add new functions and extensions to the Java IDE itself
  • 5. JDT Core APIs • org.eclipse.jdt.core - defines the classes that describe the Java model. • org.eclipse.jdt.core.compiler - defines an API for the compiler infrastructure. • org.eclipse.jdt.core.dom - supports Abstract Syntax Trees (AST) that can be used for examining the structure of a compilation unit down to the statement level. • org.eclipse.jdt.core.dom.rewrite - supports rewriting of Abstract Syntax Trees (AST) that can be used for manipulating the structure of a compilation unit down to the statement level. • org.eclipse.jdt.core.eval - supports the evaluation of code snippets in a scrapbook or inside the debugger. • org.eclipse.jdt.core.formatter - supports the formatting of compilation units, types, statements, expressions, etc. • org.eclipse.jdt.core.jdom - supports a Java Document Object Model (DOM) that can be used for walking the structure of a Java compilation unit. (deprecated – use org.eclipse.jdt.core.dom) • org.eclipse.jdt.core.search - supports searching the workspace's Java model for Java elements that match a particular description. • org.eclipse.jdt.core.util - provides utility classes for manipulating .class files and Java model elements.
  • 8. Code modification using the DOM/AST API • AST (Abstract Syntax Tree) • Ways to create a compilation unit • ASTParser • ICompilationUnit#reconcile(...) – start from scratch using the factory methods on AST (Abstract Syntax Tree). • Creating AST from Source code – ASTParser. createAST(IProgressMonitor) • setSource(char[]): to create the AST from source code • setSource(IClassFile): to create the AST from a classfile • setSource(ICompilationUnit): to create the AST from a compilation unit
  • 10.
  • 11.
  • 12.
  • 13. Context help with contexts.xml
  • 14. Run Configuration for the plug-in
  • 15. Our view in action !
  • 16. Reporting Infrastructure • RAD supports 2 ways for building reports • BIRT • Crystal Reports • Designing Reports with BIRT • Report Layout – Colors, fonts and positioning • DataSources – Can be JDBC /XML/Scripted Data Source/Web Service • DataSets – Corresponds to data records used in the details added dynamically to the report • Caching Build Reports • Either Data or the built report can be cached
  • 21. XML Data Source – Schema & Source
  • 22. XML Data Set - Column Mapping
  • 23. XML Data Set - Computed Columns
  • 25. Getting Chart Data from the Data Set
  • 28. CR Reporting Models • CR Embedded Reporting Model – uses the Java Reporting Component (JRC) and Crystal Reports Viewers Java SDK • to enable users to view and export reports in a web browser • functionality required to create and customize a report viewer object, process the report, and then render the report in DHTML. – The JRC (jars) keeps report processing completely internal to the Java application server to process Crystal Reports report (.rpt) files within the application itself, no external report servers • CR Enterprise Reporting Model – uses the Crystal Enterprise Java SDK to leverage an external Crystal Enterprise server – additional functionality • runtime report creation • persisting runtime report modification back to the Crystal Reports report (.rpt) file • report management, security, and scheduling • The Crystal Enterprise server also improves scalability and increases performance to support extensive user concurrency demands.
  • 29. Developing Custom JSF Web Components • RAD provides for – Importing Custom component Libraries – Building Custom JSF Component Library – Adding new custom JSF widgets in the library – Adding custom library widgets to the RAD palette – Sharing and using custom widgets by drag and drop from the palette <h:outputText value=”Name:” / > <h:inputText value=”#{person.name}” /> <my:inputLabel value=”#{person.name}” label=”Name:” />
  • 30. New Faces Component Library wizard
  • 34. Library definition Added to RAD Palette
  • 35. Building Visual Custom Tags • Visualizing Custom Tags in the design view – Building custom plug-in to visualize my tag – Extend CustomTagVisualizer – Provide the visualization information in doStart or doEnd Methods – Building and importing new plug-in – Add custom properties view for the custom tag Sample plugin.xml extract <requires> <samp><import plugin="org.apache.xerces"/> <samp><import plugin="com.ibm.etools.webedit.core"/> </requires> <extension point="com.ibm.etools.webedit.core.visualCustomTag"> <samp><vtaglib uri="/WEB-INF/lib/sample.jar"> <samp><vtag name="date" class="com.ibm.etools.webedit.vct.sample.DateTimeTagVisualizer" description="Dynamically outputs current date and time"/> <samp></vtaglib> </extension>
  • 36. Example Custom tag visualized <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <%@ taglib uri="/WEB-INF/lib/sample.jar" prefix="vct" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %> <TITLE>index.jsp</TITLE> </HEAD> <BODY> The current date and time is: <vct:date/> </BODY> </HTML> import com.ibm.etools.webedit.vct.*; public class DateTimeTagVisualizer extends CustomTagVisualizer { public VisualizerReturnCode doEnd(Context context) { Date now = new Date(); context.putVisual(now.toString()); return VisualizerReturnCode.OK; } }
  • 37. Resources • RAD – http://publib.boulder.ibm.com/infocenter/radhelp/v7r5/index.jsp • JDT – http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_int_model.htm – http://publib.boulder.ibm.com/infocenter/rtnlhelp/v6r0m0/index.jsp?topic=/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/dom/AST.h tml – http://www.jdg2e.com/ch27.jdt/doc/index.html – http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_int_model.htm • BIRT – http://www.eclipse.org/birt/phoenix/ – http://wiki.eclipse.org/Integration_Examples_%28BIRT%29 – http://www.vogella.de/articles/EclipseBIRT/article.html – http://download.eclipse.org/birt/downloads/examples/scripting/scripteddatasource/scripteddatasource.html – https://www6.software.ibm.com/developerworks/education/dw-r-umlbirtreport/index.html (UML Model reports in RSA) • Crystal Reports – http://publib.boulder.ibm.com/infocenter/radhelp/v6r0m1/index.jsp?topic=/com.businessobjects.integration.eclipse.doc.devtools/developer/Ar chitectureOverview2.html • Plug-in development – http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/firstplugin.htm • Web Tools Customization – http://www.ibm.com/developerworks/websphere/library/techarticles/0304_hosokawa/hosokawa.html – http://www.ibm.com/developerworks/rational/library/09/0106_kats/
  • 38. A Case Study @ CTS • Extracting Quality metrics from Source code • Using available CTS project metric tools • Packaging the custom plug-ins and Integrating to existing QA systems • Modes of running the customized plug-ins • Usage tracking • Productivity tracking
  • 39. Extending RAD @ CTS…
  • 40. GTO structure © 2009, Cognizant Technology Solutions. Confidential 40
  • 41. RAD Extension – JCAP Plug-in Rational Application Developer Eclipse Platform Java Development Workbench JCAP Tooling Help (JDT) JFace SWT Plug-in Developer New Tool Environment (PDE) Team Workspace Platform Runtime New Tool © 2009, Cognizant Technology Solutions. Confidential 41
  • 42. JCAP – Java Code Assessment Platform Objective • To build extensions to Rational Products to: » Collect » Analyze » Integrate Code quality Metrics with Cognizant Delivery Platform Project Quality Management - Need of the Hour • Project Code Quality Metrics at development milestones, On demand » Overall Project health to be known at build time (entire project code base) » Also Get to know the application health from time to time On demand • Individual developer’s work quality - required for mentoring new recruits/trainees • Monitor in a continuous basis – decreasing trend or increasing trend © 2009, Cognizant Technology Solutions. Confidential 42
  • 43. JCAP – Features • Java Code Assessment Platform (henceforth called as JCAP) – implemented as a RAD Extension RAD extensions provided as eclipse plug-ins; extensions to the Menu, Toolbar, Project Explorer and View • Data Acquisition » Source Analysis & Metrics Capture » Violations against Coding standard rules » Size metrics [Lines of Code and Documentation Lines of Code] » Cyclomatic Complexity » Code duplication » Class coupling • Data Integration and Reporting » IDE level dashboards » Web dashboards integrated with the Organization Governance dashboards © 2009, Cognizant Technology Solutions. Confidential 43
  • 44. JCAP Plug-in IJavaProject IPackageFragment ICompilationUnit © 2008, Cognizant Technology Solutions. Confidential
  • 45. JCAP – Functional view Project Definition PM creates Project PM modifies existing Project Profile in JCAP Web Profile in JCAP Web Interface Interface At any point PM downloads JCAP Profile XML file and distributes to team Each developer runs JCAP on those PM / TL runs JCAP on entire project files that they have developed and and data is captured in JCAP data is captured in JCAP repository repository Views JCAP Developer level Views JCAP Project level Views JCAP Project & Developer dashboard (Summary, details dashboard (Summary, details level dashboards on JCAP Web and trend views in IDE) and trend views in IDE) Interface 45 © 2009, Cognizant Technology Solutions. Confidential 45
  • 46. JCAP – Architectural View RAD Developer Browser Web Server Manager RAD Team Lead Data Base
  • 47. Data Reporting - Project Quality Dashboard © 2009, Cognizant Technology Solutions. Confidential 47
  • 48. 48
  • 49. 49