An overview of changes.  Rice 1.1 is now Rice 2.0 ◦ communicates the level of changes being made in the rice codebase.

Slides:



Advertisements
Similar presentations
Total Resource Management RulesManager New Features August 21, 2012 Al Johnson, VP RulesManager Architecht.
Advertisements

Kuali Rice Bootcamp: Hands-On Exercises Colorado State University, January , 2008 Aaron Godert - Cornell University Rice Development Manager.
Web Toolkit Julie George & Ronald Lopez 1. Requirements  Java SDK version 1.5 or later  Apache Ant is also necessary to run command line arguments 
Apache Struts Technology
A Blackboard Building Block™ Crash Course for Web Developers
Introduction to Kuali Rice ITANA Screen2Screen: Kuali on Campus May 2009 Eric Westfall – Kuali Rice Project Manager.
Open source administration software for education software development simplified RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0 Eric Westfall.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Multiple Tiers in Action
Pragmatic Application Building: Step by Step Jay Sissom Principal Systems Analyst Indiana University
Apache Struts Technology A MVC Framework for Java Web Applications.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
© Internna Technologies 1 IWebMvc Features, Possibilities & Goals.
Open source administration software for education research administration Lin-Long Shyu System Analyst Kuali Coeus Technical Team Indiana University
Open source administration software for education 2012 User Conference April 22-24, 2012 – Atlanta, Georgia “Together Toward Tomorrow” Chris Denne, Colorado.
UNIT-V The MVC architecture and Struts Framework.
Spring Roo CS476 Aleksey Bukin Peter Lew. What is Roo? Productivity tool Allows for easy creation of Enterprise Java applications Runs alongside existing.
Open source administration software for education software development simplified KRAD Kuali Application Development Framework.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Pittsburgh Java User Group– Dec Java PureFaces: A JSF Framework Extension.
RUG Australia meeting 2012 Feb 6, V Tiers & sequencing suppliers Tiers and sequencing and load balancing  Tiers = groups of suppliers.
Kuali Rice at Indiana University Rice Setup Options July 29-30, 2008 Eric Westfall.
What’s new in Stack 3.2 Michael Youngstrom. Disclaimer This IS a presentation – So sit back and relax Please ask questions.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
Rice Status Update University of California July 20, 2009 Eric Westfall – Kuali Rice Project Manager.
Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.
Tomcat Spencer Uresk. Notes This is a training NOT a presentation Please ask questions This is being recorded
RAD, RULES, AND COMPATIBILITY: WHAT'S COMING IN KUALI RICE 2.0 Eric Westfall – Indiana University Travis Schneeberger – Dechen Consulting Group Peter Giles.
© 2005 by IBM; made available under the EPL v1.0 | May 19, 2005 Tim deBoer WTP Server Tools Open House.
Kuali Rice – ARC / TRC Update May 18, 2010 Eric Westfall – Kuali Rice Project Manager.
Running Kuali: A Technical Perspective Ailish Byrne - Indiana University Jay Sissom - Indiana University Foundation.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Building Applications with the KNS. The History of the KNS KFS spent a large amount of development time up front, using the best talent from each of the.
Introduction to Web Dimitar Nenchev Ivan Nakov
© 2004, The Trustees of Indiana University Kuali Project Development Methodology, Architecture, and Standards James Thomas, Kuali Project Manager Brian.
Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Kuali Enterprise Workflow Kuali Days – November 2008 Scott Gibson, University of Maryland Bryan Hutchinson, Cornell University James Smith, University.
1 Kuali Nervous System (KNS) Part 2 Presented by: Jerry Neal – KFS Development Manager Geoff McGregor – KC Lead Developer Brian McGough – KRice Project.
Kuali Rice at Indiana University From the System Owner Perspective July 29-30, 2008 Eric Westfall.
Introduction to the Java Stack Michael Youngstrom.
© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Kuali Nervous System Aaron Godert, Kuali Development Manager Brian.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
Sakai WebApp Structure
RAD, RULES, AND COMPATIBILITY: WHAT'S COMING IN KUALI RICE 2.0 Eric Westfall – Indiana University Travis Schneeberger – Dechen Consulting Group Peter Giles.
Katari Globant 2008 (update to 2010). Katari  Katari is a framework to use as a starting point to develop new web applications.  Incorporates architecture,
Spring and DWR Frameworks for Rich Web Enterprise Application Thomas Wiradikusuma Presentation to the 20 th.
WorldWide Telescope WWT HTML5 SDK WEB CONTROL WEB CLIENT DEVELOPMENT OVERVIEW RON GILCHRIST (WEB ON GITHUB NOV 7, 2015.
RAD, RULES, AND COMPATIBILITY: WHAT'S COMING IN KUALI RICE 2.0 Eric Westfall – Indiana University Travis Schneeberger – Dechen Consulting Group Peter Giles.
Presentation Title Subtitle DSpace UI Prototype 7 Spring, Angular.js, and the DSpace REST API.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Overview of the Spring Framework Introducing.
APACHE STRUTS ASHISH SINGH TOMAR ast2124. OUTLINE Introduction The Model-View-Controller Design Pattern Struts’ implementation of the MVC Pattern Additional.
LECTURE #4: JQUERY AND FORM VALIDATION Josh Kaine Josh Kaine 4/1/2016.
Apache Struts Technology A MVC Framework for Java Web Applications.
Wes Preston DEV 202. Audience: Info Workers, Dev A deeper dive into use-cases where client-side rendering (CSR) and SharePoint’s JS Link property can.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
Kuali Enterprise Notification Tell Me What I Want And Need To Know Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst,
Apache Geronimo Open Source J2EE Application Server Getting up to speed with Apache Geronimo - Copyright 2005 Tom McQueeney 1 Getting up to speed with.
Struts 2 Development. Topics  Roles in Struts Development  Control Flow  Actions  Struts 2 Views and Target  Struts 2 Custom Tags  Validation 
Google Web Toolkit - Gufran Mohammed
Haritha Dasari Josue Balandrano Coronel -
Sakai WebApp Structure
Top Reasons to Choose Angular. Angular is well known for developing robust and adaptable Single Page Applications (SPA). The Application structure is.
Design and Maintenance of Web Applications in J2EE
Modern web applications
Developing and testing enterprise Java applications
CS4961 Software Design Laboratory Understand Aquila Backend
Introduction to ASP.NET Parts 1 & 2
Nate Johnson Ryan Kirkendall Eric Westfall
Presentation transcript:

An overview of changes

 Rice 1.1 is now Rice 2.0 ◦ communicates the level of changes being made in the rice codebase

 all reusable unit testing components are in there own module (rice internal test tools) ◦ they are internal - don't use these! ◦ we don't want to make any guarantees about these APIs ◦ previously these classes were in the rice impl module and were used by client apps ◦ made unit testing frameworks dependencies of rice (which were automatically pushed on client apps) - htmlunit, junit, jetty ◦ polluted the main codebase with test code

 all of our existing tests are isolated in a place for integration tests - b/c that is what they mostly are ◦ located in a new test module ◦ using the failsafe plugin to execute unit tests ◦ some of this continues to change  ie. we might move these back to the modules under src/main/it after modularity work

 creating new real unit tests for each module ◦ runs fast, isolated (tries to only test the class being targeted) ◦ does not require spring, database, app server, etc.  trying to make it easier to unit test rice applications ◦ no more inline service locator calls ◦ more focus on DI - this is a tradeoff (slightly controversial and is a tradeoff)  kc is already doing this

 all libraries were updated to there latest version ◦ struts, spring, cxf, dwr, hibernate, ojb :-), commons libs, etc. ◦ possibly moving away from dead projects (xapool/jotm – peter?, oscache, displaytag) ◦ jee libs updated, minimum requirement is servlet 2.5 container

 each conceptual module of rice is broken up into multiple maven modules (jars, wars) ◦ kim, kew, ken, ksb, kcb, core, krad standalone, sampleapp, internal test tools, client contrib, development tools  standalone - the rice standalone server  sampleapp - the travel app  internal test tools - test code used across modules for unit/int testing  client contrib - code we are giving back to client apps  development tools - tools used during development/implementation of rice (encryption data loading)

web impl framwork api

 why do this? ◦ decrease the complexity of rice ◦ isolate external dependencies ◦ reduce coupling in rice ◦ allow module of rice to be developed and tested in isolation ◦ improve the quality of the rice codebase ◦ make it explicit what code client apps can use  which helps rice make guarantees on releases  helps client apps ensure they make is easier to upgrade versions of rice

 almost all package names in rice are changing  packaging by feature rather than tier  ex: all Parameter related things are in a single package but is split across multiple modules ◦ org.kuali.core.api.parameter, org.kuali.core.impl.parameter  this is hard and still a WIP

 delete dead code ◦ ten versions of key/value pair  delete redundant code, code we don't want to support ◦ utility classes (rice StringUtils) ◦ RIA ◦ deprecated code ◦ unit/int test code that we no longer use - we had a ton of redundant code here

 rice is focusing on code quality/while balancing "just get it done"  taking a code first approach to service apis but delivering WSDLs at release time  apis will be defined and documented! ◦ if I pass null to this service it does.... ◦ this DTO must have field x, y, z set

 apis are being tested with unit tests  immutable objects are now passed/returned from remote service APIs ◦ helps guarantee service contracts ◦ helps build thread-safe code  important for caching  helps us add to service apis in a compatible manner

 using nested "builders" for complex objects  what's the point? ◦ to allow a rice standalone server to be upgraded independently of client apps ◦ to make sure our APIs are built such that implementers can "easily" create there own implementations ◦ how do you do this now when behavior is not documented? ◦ how do you know that your custom implementation will continue to work? ◦ how do you implement complex methods like "lookup"?

 Standardizing the way to do lookups ◦ Richer api (not, and, or, in like, etc) ◦ No longer just a map ◦ A more well defined api which hopefully means easier to ensure vc & alternative impls  Standardizing the way we do caching ◦ Maybe Spring ehcache ◦ Still a research topic

 only used for BOs, EBOs, immutable service objects, unit tests  helps reduce the verbosity of certain parts of rice (ie. "just get it done")  groovy is maintained by SpringSource and has good integration with spring  awesome of unit testing especially when mocking objects, testing private methods  we are being very conservative with our use of Groovy  only using in certain code so that code could be reverted back to java if necessary

 adding dependencies ◦ Spring MVC (3.0) ◦ Tiles 2.x ◦ JQuery (core, ui, datatables ( fancybox ( validation(client side validation), jstree ( watermarking, growl messages)  removing displaytag, dwr?, struts from maintenance framework)  most changes are happening in maintenance, lookup, multivalue lookup, inquiry framework ◦ avoid overriding jsps, tag files, controllers

 deprecating transdoc framework  removing the requirement that rice only works with BOs - rice can work with any POJO  service backed, DB backed, etc.  supporting a richer api ◦ javascript is now a requirement, although still accessibility compliant ◦ can embed javascript in maintenance pages ◦ some html 5 support - still a research item ◦ support more html wiget types ◦ lightboxes, client-side validation, more validation types (cross field), must occur, etc.

 will require changes to DD files - but migration scripts should be possible  the requirements are being driven partially by the kuali student project  KC's holding page enhancement - may want to work with the krad team on this

 using Maven 3 ◦ may need to update Hudson/Jenkins to build with Maven 3  rice is delivering multiple libraries  clients should only depend on api & framework modules at compile time  please tell us if you need something that is currently in impl/web  supporting Tomcat 6 & 7 - with a minimum requirement on tomcat 6 (servlet 2.5) ◦ would encourage you to have a mixed environment with tomcat 6 & 7 to ensure compatibility  java 6

 some rice devs are using intellij due to issues with eclipse (mainly m2eclipse)