© Blackboard, Inc. All rights reserved. Developing Blackboard Building Blocks: Getting Started John Knight Senior Engineer Blackboard Inc. July 18 th.

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

A Toolbox for Blackboard Tim Roberts
Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
Apache Struts Technology
ANT: Another Nice Tool Ali Beyad October 1, 2003.
ANT: Another Nice Tool Ali Beyad October 1, 2003.
My First Building Block Presented By Tracy Engwirda 28 September, 2005.
MC365 Ant. Today We Will Cover: Overview of Ant Installing Ant Using the Ant command line tool Various Ant commands available Using Ant in Eclipse.
NetBeans IDE Tal Maoz Na’ama Zahavi.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Developing the NSDL User Portal Dean Krafft, Cornell University
Apache Struts Technology A MVC Framework for Java Web Applications.
Java How to Program, 9/e Instructor: José M. Reyes Álamo © by Pearson Education, Inc. All Rights Reserved.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
CS 160: Software Engineering August 27 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Apache Jakarta Tomcat Suh, Junho. Road Map Tomcat Overview Tomcat Overview History History What is Tomcat? What is Tomcat? Servlet Container.
Automating the Build Process using ANT SE-2030 Dr. Mark L. Hornick 1.
NetBeans IDE Vishnuvardhan.M Dept. of Computer Science - SSBN.
Tomcat Celsina Bignoli History of Tomcat Tomcat is the result of the integration of two groups of developers. – JServ, an open source.
Using Ant to build J2EE Applications Kumar
UNIT-V The MVC architecture and Struts Framework.
JSP and Servlets Lecture notes by Theodoros Anagnostopoulos.
CSE 403 Lecture 11 Static Code Analysis Reading: IEEE Xplore, "Using Static Analysis to Find Bugs" slides created by Marty Stepp
Apache Tomcat Web Server SNU OOPSLA Lab. October 2005.
Maven and Stack Starter Michael Youngstrom. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to Java Stack.
.NET: Blackboard Collaborations with Microsoft Presented By Jan Poston Day Director, Standards and Interoperability Ramsey Chambers Manager, Business Development.
Servlets Environment Setup. Agenda:  Setting up Java Development Kit  Setting up Web Server: Tomcat  Setting up CLASSPATH.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Introduction to the Atlas Platform Mobile & Pervasive Computing Laboratory Department of Computer and Information Sciences and Engineering University of.
Automating the Build Process using Ant SE-2030 Dr. Rob Hasker 1 Based on material by Dr. Mark L. Hornick.
Java Servlets CS-422. Application Mapping Your servlet application will be mapped to a directory structure: –“myapp” maps to some directory C:/docs/apps/myapp.
Apache Ant Java-Based Build Tool. Making your builds boring… Building projects should be easy and standardized. You should not be spending a substantial.
Tomcat Spencer Uresk. Notes This is a training NOT a presentation Please ask questions This is being recorded
SITools Enhanced Use of Laboratory Services and Data Romain Conseil
AN OVERVIEW OF SERVLET TECHNOLOGY SERVER SETUP AND CONFIGURATION WEB APPLICATION STRUCTURE BASIC SERVLET EXAMPLE Java Servlets - Compiled By Nitin Pai.
Keys to Successful Beta Testing Presented by Ron Dinwiddie, Product Director, Blackboard Commerce Suite™ Jessica Finnefrock, Product Director, Blackboard.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
Designing and Developing WS B. Ramamurthy. Plans We will examine the resources available for development of JAX-WS based web services. We need an IDE,
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
July 2011CMSC 341 CVS/Ant 1 CMSC 341 Java Packages Ant CVS Project Submission.
© 2006 by WTP PMC; made available under the EPL v1.0 | Cambridge | September 6, 2006 Hakeem Shittu Software Consultant Customizing Eclipse Functionality.
Ant & Jar Ant – Java-based build tool Jar – pkzip archive, that contains metadata (a manifest file) that the JRE understands.
Presented by Jessica Finnefrock, Product Director, Blackboard Academic Suite™ April 12, 2005.
Blackboard and Content Types John Knight Blackboard Inc.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
Chapter 1 Introducing Ant. What is ant? Ant is a build tool  Automate the tasks of compiling code, running test, and packaging the results for redistribution.
Getting Started with.NET Getting Started with.NET/Lesson 1/Slide 1 of 31 Objectives In this lesson, you will learn to: *Identify the components of the.NET.
Troubleshooting Basics for the Blackboard Transaction System™ -Windows Edition Presented By Allan Sonkin Scott Ogden April 14, 2005.
Blackboard Building Blocks™: Data Integration and Administration Raymond Peterson, Blackboard, Inc.
Build Systems Presentation December 14, 2015 Noon-1pm Kathy Lee Simunich Bldg. 203/ D120 Brought to you by: Argonne Java.
1 G52IWS: Example Web-services Chris Greenhalgh. 2 Contents Software requirements AXIS web service run-time components Getting started with Jetty & AXIS.
Java How to Program, 9/e Presented by: José M. Reyes Álamo © by Pearson Education, Inc. All Rights Reserved.
10 Copyright © 2004, Oracle. All rights reserved. Building ADF View Components.
Apache Struts Technology A MVC Framework for Java Web Applications.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
Introduction ITEC 420.
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Maven 04 March
JSP (Java Server Page) JSP is server side technology which is used to create dynamic web pages just like Servlet technology. This is mainly used for implementing.
Advanced Integration and Deployment Techniques
J2EE Application Development
Aaron Zeckoski Tomcat Debugging Aaron Zeckoski
The Model Layer What is Model?
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
JENKINS TIPS Ideas for making your life with Jenkins easier
Presentation transcript:

© Blackboard, Inc. All rights reserved. Developing Blackboard Building Blocks: Getting Started John Knight Senior Engineer Blackboard Inc. July 18 th

Overview  Goals  Blackboard ® Building Blocks ® Technology  Java/JSP Development Tools  Blackboard Building Block Development – Tools and Techniques

Now a word from our lawyers…  Any statements in this presentation about future expectations, plans and prospects for Blackboard and other statements containing the words "believes," "anticipates," "plans," "expects," "will," and similar expressions, constitute forward-looking statements within the meaning of The Private Securities Litigation Reform Act of Actual results may differ materially from those indicated by such forward-looking statements as a result of various important factors, including the factors discussed in the "Risk Factors" section of our most recent 10-K filed with the SEC. In addition, the forward-looking statements included in this press release represent the Company's views as of July 18, The Company anticipates that subsequent events and developments will cause the Company's views to change. However, while the Company may elect to update these forward-looking statements at some point in the future, the Company specifically disclaims any obligation to do so. These forward- looking statements should not be relied upon as representing the Company's views as of any date subsequent to July 18, Blackboard, in its sole discretion, may delay or cancel the release of any product or functionality described in this presentation.

Audience  Basic to Intermediate Java developer  Java/JSP/Servlet development is assumed  Blackboard Building Block development is not assumed, but is helpful  Familiarity with, but not necessarily expertise in, current Java development tools

Goals  Focus on process and environment, rather than Blackboard Building Block technology  Cover a selection of tools that are available to build Blackboard Building Blocks  Describe techniques and practices that will make the development process easier

Blackboard Building Blocks Technology  Extensibility mechanism for Blackboard  Provide drop-in functionality, or...  Provide a bridge to an external system  Standards-based  Blackboard Building Blocks are Java webapps with additional metadata  Rely on/integrate with embedded Tomcat engine

Blackboard Building Blocks Architecture Core Services Data Objects Business Layer (JSP, Servlet, Struts) View Layer (JSP, Servlet, Tag Library) Log Security ConfigPersistence Session I18NVXI ContextPlug-ins

Anatomy of a Blackboard Building Block Package (.war/.zip file) Platform DescriptorBlackboard Manifest Web Resources Libraries web.xml (Servlets) Servlets, JSP (Java).class,.jar files (Java) bb-manifest.xml

The Process  Feature Planning  Defines what you’ll need in terms of entry points  Set up the build environment  Local Blackboard server works best  Perform an initial build  Get entry points defined  Install the Blackboard Building Block  Iterate  Build/rebuild  Redeploy

The Build Stages  Compile  Custom.java files compiled into.class files  Stage  Web app structure is created from other components  Package  Web app structure is zipped into the.war file  Deploy  An alternate to “package”, depending on the cycle

The Process Preliminary Feature Planning Environment Set-up Initial Build/ Install CompileStagePackage CompileStageDeploy Iterate

The Process  Initial Install vs. Re-deploy  Initial Install reads manifest and establishes the entry points  Re-deploy simply makes Blackboard Building Block inactive, then makes it Available again  Cycles webapp, reloads classes  Inactive/Available cycle unnecessary for JSP changes

Example – The Build Environment  JDK 1.4/5.x – The core Java library you’ll need  Eclipse 3.x – An IDE for editing/debugging/formatting  Ant – A tool to automate many of the tasks (within Eclipse and via shell automation) ... All Freely Available

The Tools – JDK  Version is dependent on which Blackboard install is targeted  and higher supports 1.4.x  6.3 and higher require 5.x  New language features are extremely nice

The Tools – Ant  An Apache Software Foundation project  Not bound to Blackboard release  Samples developed against 1.6.2, but should work against earlier versions

The Tools – Eclipse  Java IDE with substantial productivity features  Ant integration  Refactoring  JUnit integration  Plugins (e.g., SCM integration, JSP editing)  You’ll need 3.1 if you’re developing with JDK 5.x

The Strategy  Organize the workspace to separate the different types of files you’ll work on  Web Files (JSPs)  Logic Files (.java files, servlets, etc.)  Configuration Files (.tld,.xml)  Etc.  Use a tool that will automate the transformation of each artifact into the next  Build the configuration to support rapid iteration  Use the tools to support unit development, unit testing, and debugging  Better encapsulated, smaller units helps make the iteration easier

Organizing the workspace...

Example – The Directories Compiled Classes Config Files Library Files Java Source “Prep” Directory JSP/HTML/Image

Automating the environment...

An Ant Primer  Build utility to manage compile/build tasks and dependencies  Uses XML as the syntax (compare to make, etc).  Core data model: project  target  task  Targets define dependencies and contain tasks  Tasks are the units of work...  Many built-in tasks (javac, jar, copy, etc.)  Easy to customize

An Ant Primer  File typically named “build.xml”  Ant will automatically process that file if no file argument is provided  Arguments can include specific targets  Project default target is used if no target is provided. E.g.,  c:\projects\sample>ant  c:\projects\sample>ant compile  c:\projects\sample>ant -f alternate.xml compile

Example – A Simplified Build File Init properties, files Compile Java Files Copy files to staging Create.war file Copy to install

Example – Build File

Example – Eclipse Integration

Making It Easier  The Starting Block  Server Blackboard Building Block to Install, Cycle, and Uninstall  An Ant task to invoke the Starting Block from your build environment

Using the tools...

Test Driven Development  Write objects that can be used independently of the container  Re-use  Testability  Get used to writing methods (and tests) corresponding to user interface features

Example – JUnit Integration

Debugging  A valuable and under-used technique  Avoid System.out.println() like the plague  Limitations actually encourage better practices  If you’re used to stepping through code, and hate the lack of JSP  source correlation, you’ll build better business objects  Caveat: environment is slightly different, notably, the security manager is not enabled by default

Debugging – How To  Stop the Blackboard Tomcat instance  Open a command line, define the JPDA environment variables  Execute the shell launcher that brings Tomcat up in JPDA mode  Connect with debugger of choice

Debugging – How To (Windows) » c:\blackboard\apps\tomcat> net stop bb-tomcat » c:\blackboard\apps\tomcat> set JPDA_ADDRESS=2222 » c:\blackboard\apps\tomcat> set JPDA_TRANSPORT=dt_socket » c:\blackboard\apps\tomcat> bin\blackboard-tomcat.bat jpda start

Debugging – How To (Unix) » /usr/local/blackboard/>./tools/admin/ServiceController.sh services.appserver.stop » /usr/local/blackboard/> export JPDA_ADDRESS=2222 » /usr/local/blackboard/> export JPDA_TRANSPORT=dt_socket » c:\blackboard\apps\tomcat>./bin/blackboard-tomcat.sh jpda start

Debugging – Connecting

Debugging – Connected

Conclusion  Planning your build environment can help ease some of the headache of Blackboard Building Block development  Use tools that help automate the process

Resources  Ant:  Eclipse:  Java/JDK:  Blackboard Building Blocks:

Questions