SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
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 for Development Analytics

Más contenido relacionado

La actualidad más candente

An Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkAn Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkPT.JUG
 
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...Chris Muir
 
Oracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlOracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlChris Muir
 
Oracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System TopologiesOracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System TopologiesChris Muir
 
Oracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingOracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingChris Muir
 
Copper: A high performance workflow engine
Copper: A high performance workflow engineCopper: A high performance workflow engine
Copper: A high performance workflow enginedmoebius
 
Java 9 Module System Introduction
Java 9 Module System IntroductionJava 9 Module System Introduction
Java 9 Module System IntroductionDan Stine
 
Oracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation OptionsOracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation OptionsChris Muir
 
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworksJSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworksDmitry Kornilov
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJosh Juneau
 
Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)Trisha Gee
 
Apache Harmony: An Open Innovation
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open InnovationTim Ellison
 
Apache Sling Generic Validation Framework
Apache Sling Generic Validation FrameworkApache Sling Generic Validation Framework
Apache Sling Generic Validation FrameworkRadu Cotescu
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book IIChuong Nguyen
 
Lecture 1: Introduction to JEE
Lecture 1:  Introduction to JEELecture 1:  Introduction to JEE
Lecture 1: Introduction to JEEFahad Golra
 

La actualidad más candente (19)

OData/SPARQL Interop
OData/SPARQL InteropOData/SPARQL Interop
OData/SPARQL Interop
 
An Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkAn Introduction to Play 2 Framework
An Introduction to Play 2 Framework
 
Sap java
Sap javaSap java
Sap java
 
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
 
Oracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlOracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version Control
 
Oracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System TopologiesOracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System Topologies
 
Oracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingOracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error Handling
 
Copper: A high performance workflow engine
Copper: A high performance workflow engineCopper: A high performance workflow engine
Copper: A high performance workflow engine
 
Java 9 Module System Introduction
Java 9 Module System IntroductionJava 9 Module System Introduction
Java 9 Module System Introduction
 
Oracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation OptionsOracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation Options
 
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworksJSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworks
 
Java EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVCJava EE 8 Web Frameworks: A Look at JSF vs MVC
Java EE 8 Web Frameworks: A Look at JSF vs MVC
 
Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)
 
Using sap bw in universe designer
Using sap bw in universe designerUsing sap bw in universe designer
Using sap bw in universe designer
 
Spring Framework Rohit
Spring Framework RohitSpring Framework Rohit
Spring Framework Rohit
 
Apache Harmony: An Open Innovation
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open Innovation
 
Apache Sling Generic Validation Framework
Apache Sling Generic Validation FrameworkApache Sling Generic Validation Framework
Apache Sling Generic Validation Framework
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book II
 
Lecture 1: Introduction to JEE
Lecture 1:  Introduction to JEELecture 1:  Introduction to JEE
Lecture 1: Introduction to JEE
 

Destacado

Main task evaluation
Main task evaluationMain task evaluation
Main task evaluationnanzbx
 
Systems research-socspi-2012-06-19
Systems research-socspi-2012-06-19Systems research-socspi-2012-06-19
Systems research-socspi-2012-06-19Stanford University
 
Bach cuoc tuong_ky_pho
Bach cuoc tuong_ky_phoBach cuoc tuong_ky_pho
Bach cuoc tuong_ky_phoGiang Nguyễn
 
ülkeler
ülkelerülkeler
ülkeleraybars
 
Thankful Journal 2014 Aniston
Thankful Journal 2014 AnistonThankful Journal 2014 Aniston
Thankful Journal 2014 Anistonmicklethwait
 
Protecting Your Children's Online Experience
Protecting Your Children's Online Experience  Protecting Your Children's Online Experience
Protecting Your Children's Online Experience Lisa McKenzie ★
 
предложение для It партнеров клуба magnat UCS
предложение для It партнеров клуба magnat UCSпредложение для It партнеров клуба magnat UCS
предложение для It партнеров клуба magnat UCSSokirianskiy&Lazerson School
 
1 jazz overview-karthik_k
1 jazz overview-karthik_k1 jazz overview-karthik_k
1 jazz overview-karthik_kIBM
 
No Business is Boring! How to Create Exciting Content for Unglamorous Industries
No Business is Boring! How to Create Exciting Content for Unglamorous IndustriesNo Business is Boring! How to Create Exciting Content for Unglamorous Industries
No Business is Boring! How to Create Exciting Content for Unglamorous IndustriesSPROUT Content
 
2.пирожки жареные с повидлом
2.пирожки жареные с повидлом2.пирожки жареные с повидлом
2.пирожки жареные с повидломSokirianskiy&Lazerson School
 
Digital Vision for CALP
Digital Vision for CALP Digital Vision for CALP
Digital Vision for CALP taipida
 
이화 Smart Learning 체제 구축 성과 및 방향
이화 Smart Learning 체제 구축 성과 및 방향이화 Smart Learning 체제 구축 성과 및 방향
이화 Smart Learning 체제 구축 성과 및 방향윤필 천
 
Bai ii khai quat ha tang co so
Bai ii   khai quat ha tang co soBai ii   khai quat ha tang co so
Bai ii khai quat ha tang co soGiang Nguyễn
 

Destacado (20)

Web Visions
Web VisionsWeb Visions
Web Visions
 
Main task evaluation
Main task evaluationMain task evaluation
Main task evaluation
 
Lincoln thankful
Lincoln thankfulLincoln thankful
Lincoln thankful
 
6 6-2011
6 6-20116 6-2011
6 6-2011
 
8 voduythanh
8 voduythanh8 voduythanh
8 voduythanh
 
Systems research-socspi-2012-06-19
Systems research-socspi-2012-06-19Systems research-socspi-2012-06-19
Systems research-socspi-2012-06-19
 
Bach cuoc tuong_ky_pho
Bach cuoc tuong_ky_phoBach cuoc tuong_ky_pho
Bach cuoc tuong_ky_pho
 
ülkeler
ülkelerülkeler
ülkeler
 
Thankful Journal 2014 Aniston
Thankful Journal 2014 AnistonThankful Journal 2014 Aniston
Thankful Journal 2014 Aniston
 
Protecting Your Children's Online Experience
Protecting Your Children's Online Experience  Protecting Your Children's Online Experience
Protecting Your Children's Online Experience
 
S2
S2S2
S2
 
предложение для It партнеров клуба magnat UCS
предложение для It партнеров клуба magnat UCSпредложение для It партнеров клуба magnat UCS
предложение для It партнеров клуба magnat UCS
 
Nonlinear
NonlinearNonlinear
Nonlinear
 
1 jazz overview-karthik_k
1 jazz overview-karthik_k1 jazz overview-karthik_k
1 jazz overview-karthik_k
 
No Business is Boring! How to Create Exciting Content for Unglamorous Industries
No Business is Boring! How to Create Exciting Content for Unglamorous IndustriesNo Business is Boring! How to Create Exciting Content for Unglamorous Industries
No Business is Boring! How to Create Exciting Content for Unglamorous Industries
 
2.пирожки жареные с повидлом
2.пирожки жареные с повидлом2.пирожки жареные с повидлом
2.пирожки жареные с повидлом
 
Digital Vision for CALP
Digital Vision for CALP Digital Vision for CALP
Digital Vision for CALP
 
이화 Smart Learning 체제 구축 성과 및 방향
이화 Smart Learning 체제 구축 성과 및 방향이화 Smart Learning 체제 구축 성과 및 방향
이화 Smart Learning 체제 구축 성과 및 방향
 
Bai ii khai quat ha tang co so
Bai ii   khai quat ha tang co soBai ii   khai quat ha tang co so
Bai ii khai quat ha tang co so
 
010
010010
010
 

Similar a RAD Extensibility for Development Analytics

Alberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.jsAlberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.jsScala Italy
 
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
 
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»DataArt
 

Similar a RAD Extensibility for Development Analytics (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
 
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
 
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
 

Más de IBM

Rational
RationalRational
RationalIBM
 
Smarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraSmarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraIBM
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinsonIBM
 
Overcoming contradictions mike-o_rourke
Overcoming contradictions mike-o_rourkeOvercoming contradictions mike-o_rourke
Overcoming contradictions mike-o_rourkeIBM
 
Opportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonOpportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonIBM
 
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_lindseyIBM
 
Achieving agility at_scale-martin_nally
Achieving agility at_scale-martin_nallyAchieving agility at_scale-martin_nally
Achieving agility at_scale-martin_nallyIBM
 
6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthyIBM
 
6 develop web20_with_rad-tim_frnacis_sarika-s
6 develop web20_with_rad-tim_frnacis_sarika-s6 develop web20_with_rad-tim_frnacis_sarika-s
6 develop web20_with_rad-tim_frnacis_sarika-sIBM
 
5 rqm gdd-sharmila-ramesh
5 rqm gdd-sharmila-ramesh5 rqm gdd-sharmila-ramesh
5 rqm gdd-sharmila-rameshIBM
 
5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_bIBM
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-daniellerouxIBM
 
4 agile developement_using_ccrc-sujeet_mishra
4 agile developement_using_ccrc-sujeet_mishra4 agile developement_using_ccrc-sujeet_mishra
4 agile developement_using_ccrc-sujeet_mishraIBM
 
3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_kIBM
 
3 hang on_a_minute-ankur_goyal
3 hang on_a_minute-ankur_goyal3 hang on_a_minute-ankur_goyal
3 hang on_a_minute-ankur_goyalIBM
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katochIBM
 
2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_zIBM
 
2 jazz karthik-k
2 jazz karthik-k2 jazz karthik-k
2 jazz karthik-kIBM
 
1 rdm keynote-robin_bater
1 rdm keynote-robin_bater1 rdm keynote-robin_bater
1 rdm keynote-robin_baterIBM
 
1 qm keynote-kamala_p
1 qm keynote-kamala_p1 qm keynote-kamala_p
1 qm keynote-kamala_pIBM
 

Más de IBM (20)

Rational
RationalRational
Rational
 
Smarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraSmarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-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
 
6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy
 
6 develop web20_with_rad-tim_frnacis_sarika-s
6 develop web20_with_rad-tim_frnacis_sarika-s6 develop web20_with_rad-tim_frnacis_sarika-s
6 develop web20_with_rad-tim_frnacis_sarika-s
 
5 rqm gdd-sharmila-ramesh
5 rqm gdd-sharmila-ramesh5 rqm gdd-sharmila-ramesh
5 rqm gdd-sharmila-ramesh
 
5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux
 
4 agile developement_using_ccrc-sujeet_mishra
4 agile developement_using_ccrc-sujeet_mishra4 agile developement_using_ccrc-sujeet_mishra
4 agile developement_using_ccrc-sujeet_mishra
 
3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k
 
3 hang on_a_minute-ankur_goyal
3 hang on_a_minute-ankur_goyal3 hang on_a_minute-ankur_goyal
3 hang on_a_minute-ankur_goyal
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch
 
2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z
 
2 jazz karthik-k
2 jazz karthik-k2 jazz karthik-k
2 jazz karthik-k
 
1 rdm keynote-robin_bater
1 rdm keynote-robin_bater1 rdm keynote-robin_bater
1 rdm keynote-robin_bater
 
1 qm keynote-kamala_p
1 qm keynote-kamala_p1 qm keynote-kamala_p
1 qm keynote-kamala_p
 

Último

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Último (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

RAD Extensibility for Development Analytics

  • 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