Software Construction

Size: px
Start display at page:

Download "Software Construction"

Transcription

1 Software Construction Documentation and Logging Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target You can use Mock Objects as an efficient alternative for Unit Testing know how to setup log4j can use log4j Institut für Mobile und Verteilte Systeme J. Luthiger 2

2 Documentation IMPORTANT All documentation is a mirror of the code Build Documentation In, Don't Bolt It On Tip 68 (The Pragmatic Programmer) Institut für Mobile und Verteilte Systeme J. Luthiger 3 Internal Documentation Includes source code, comments, design and test documents, Documenting the source code Use Naming Convention Integrate comments into source code Use tool to generate appropriate docs out of the source code Try to keep source and code in sync! Institut für Mobile und Verteilte Systeme J. Luthiger 4

3 Java Naming Conventions Naming conventions make programs more understandable by making them easier to read easier to understand easier to improve easier to detect bugs Use coding guidelines e.g. from SUN "Code Conventions for the JavaTM Programming Language" (see Resources) Institut für Mobile und Verteilte Systeme J. Luthiger 5 Tool JavaDoc Purpose Instead of writing and maintaining separate documentation, the programmer writes speciallyformatted comments in the Java code itself. JavaDoc takes these comments and transforms them into documentation in HTML (web page) format. Institut für Mobile und Verteilte Systeme J. Luthiger 6

4 General Format Start with the normal beginning of comment delimiter (/*) followed by another (*). All following lines start with an asterisk lined up under the first asterisk in the first line. The last line contains just the normal end of comment delimiter (*/). /** * The number of students in the class. * This variable must not be negative or greater than 200. */ public int numstudents; Institut für Mobile und Verteilte Systeme J. Luthiger 7 JavaDoc Tags Tags for Tags @exception Tags for Variables needs no tags, just normal JavaDoc comment Institut für Mobile und Verteilte Systeme J. Luthiger 8

5 Package Level Comments Each package can have its own package-level doc comment source file The Javadoc tool will merge them into the final documentation This file is named package.html This file is kept in the source directory Institut für Mobile und Verteilte Systeme J. Luthiger 9 Integrate JavaDoc into the Build Process Use the javadoc Ant Task Core Task (see Ant's Website) Institut für Mobile und Verteilte Systeme J. Luthiger 10

6 External Documentation Includes everything which is published to the outside world like user manual, Use a markup language to produce the final documentation e.g. DocBook, Latex, DocBook XML based text-oriented => easily to integrate into a VCS supports different output formats: HTML, PDF, Tex, supports automation => Ant integration Institut für Mobile und Verteilte Systeme J. Luthiger 11 Resources Sun Reference: "How to Write Doc Comments for the Javadoc Tool" Code Conventions for the Java Language DocBook Home Institut für Mobile und Verteilte Systeme J. Luthiger 12

7 Why Logging? Debuggers focus on the state of a program NOW A stack trace can you tell only how got here directly It is not possible to detect what was before this actual call Logging can provide information about the state of a program or a data structure over time Logging can reveal several classes of errors that debugger's can't Logging is invaluable in any system where time itself is a factor concurrent processes real-time systems event-based application distributed environment Institut für Mobile und Verteilte Systeme J. Luthiger 13 Brian W. Kernighan says... As personal choice, we tend not to use debuggers beyond getting a stack trace or the value of a variable or two. One reason is that it is easy to get lost in details of complicated data structures and control flow; we find stepping through a program less productive than thinking harder and adding output statements and self-checking code at critical places. Clicking over statements takes longer than scanning the output of judiciously-placed displays. It takes less time to decide where to put print statements than to single-step to the critical section of code, even assuming we know where that is. More important, debugging statements stay with the program; debugging sessions are transient. In "The Practice of Programming" Institut für Mobile und Verteilte Systeme J. Luthiger 14

8 Approaches to Logging System.out.println Poor performance All or none Example below Some people use a class like: Class foo{ public static final boolean debug = true; public void test(){ if (debug) System.out.println( I exist only in a test environmnet ); } } Custom log api More code to maintain Classic build vs. buy (or use) decision Open Source (like Log4j) Institut für Mobile und Verteilte Systeme J. Luthiger 15 Java Specification Request JSR 47 Enable/disable logging at runtime Control logging at a fairly fine granularity Disable logging for specific functionality Bridge services that connect the logging APIs to existing logging services (Operating System Logs, Third party logs) Institut für Mobile und Verteilte Systeme J. Luthiger 16

9 Requirements for a Logging Framework Configuration of the logging features should be externalized Log messages should have priorities Logging should support different message formats Logging should not slow down the program speed, it must support message caching Institut für Mobile und Verteilte Systeme J. Luthiger 17 Logging Frameworks Log4j: Apache Open Source Project Java1.4 Logging Logging API by SUN introduced with JDK1.4 Institut für Mobile und Verteilte Systeme J. Luthiger 18

10 log4j background Originally developed by IBM at their Zurich research lab. ( Currently maintained by Source Forge Open source Release 1.0+ documentation at Institut für Mobile und Verteilte Systeme J. Luthiger 19 Basic API As of 1.0, printing messages are of the form: debug(object message, Throwable t) debug(object message) If the 1 st argument is a String object, it will be written in its present form. Other objects rendered by a registered Object Renderer for its class or using the Object.toString method. Institut für Mobile und Verteilte Systeme J. Luthiger 20

11 Basic Usage Example Standard usage: class Foo { Logger logger = null; public Foo(){ logger = Logger.getLogger(Foo.class); logger.info( Constructing foo ); } public String dostuff(long x){ logger.debug( doing stuff ); } } Institut für Mobile und Verteilte Systeme J. Luthiger 21 Priorities Five recognized message priorities: DEBUG,INFO,WARN,ERROR,FATAL Priority specific log methods following the the form: debug(object message); debug(object message, Throwable throwable); General log methods for wrappers and custom priorities: log(priority level, Object message); log(priority level, Object message,throwable throwable); Localized log methods supporting ResourceBundles: L7dlog(Priority level, String message, Throwable throwable) L7dlog(Priority level, Object[] params, Throwable throwable) setresourcebundle(resourcebundle); Institut für Mobile und Verteilte Systeme J. Luthiger 22

12 Priorities Usage DEBUG Least Importance Level Log requests that are relevant while debugging the application. INFO Log requests that informs the user of the application about something (e.g., informs him about application progress) WARN Log requests to alert about harmful situations. ERROR When an error is encountered (but you application can still run). FATAL In case of very sever errors after which your application cannot continue any more. Institut für Mobile und Verteilte Systeme J. Luthiger 23 Loggers The notion of loggers lies at the heart of log4j. Loggers define a hierarchy and give the programmer run-time control on which statements are printed or not. Loggers are assigned priorities. A log statement is printed depending on its priority and its category. Used to support output to multiple logs (Appenders) at the same time. logger = Logger.getLogger(User.class); Institut für Mobile und Verteilte Systeme J. Luthiger 24

13 Logger Names Name loggers by locality. It turns out that instantiating a logger in each class, with the logger name equal to the fully-qualified name of the class, is a useful and straightforward approach of defining loggers. However, this is not the only way for naming loggers. A common alternative is to name loggers by functional areas. For example, the "database" category, "RMI" category, "security" category, or the "XML" category. Institut für Mobile und Verteilte Systeme J. Luthiger 25 Benefits of using fully qualified class names It is very simple to implement. It is very simple to explain to new developers. It automatically mirrors the application's own modular design. It can be further refined at will. Printing the logger automatically gives information on the locality of the log statement. Institut für Mobile und Verteilte Systeme J. Luthiger 26

14 Root Logger If no logger is defined via a configuration file or programmatically, then all messages will be sent to the root logger. All loggers define a priority level an appender # set log level of rental package to DEBUG log4j.logger.ch.fhnw.edu.rental=debug # configuration of stdout appender log4j.appender.stdout=org.apache.log4j.consoleappender Institut für Mobile und Verteilte Systeme J. Luthiger 27 Appenders An Appender is a object that sends log messages to their final destination. ConsoleAppender - Write log to System.out or System.err FileAppender Write to a log file SocketAppender Dumps log output to a socket SyslogAppender Write to the syslog. NTEventLogAppender Write the logs to the NT Event Log system. RollingFileAppender After a certain size is reached it will rename the old file and start with a new one. SocketAppender Dumps log output to a socket SMTPAppender Send Messages to JMSAppender Sends messages using Java Messaging Service or create your own! Institut für Mobile und Verteilte Systeme J. Luthiger 28

15 PatternLayout Customize your message Used to customize the layout of a log entry. The format is closely related to conversion pattern of the printf function in c see The following options are available: c - Used to output the Logger name of the logging event. C - Used to output the fully qualified class name of the caller issuing the logging request. d - Used to output the date of the logging event. The date conversion specifier may be followed by a date format specifier enclosed between braces. For example: %d{hh:mm:ss,sss} or %d{dd MMM yyyy HH:mm:ss,SSS}. If no date format specifier is given then ISO8601 format is assumed F - Used to output the file name where the logging request was issued. l - Used to output location information of the caller which generated the logging event. (C+M+L) L - Used to output the line number from where the logging request was issued. Performance penalty! Institut für Mobile und Verteilte Systeme J. Luthiger 29 PatternLayout Customize your message n - Outputs the platform dependent line separator character or characters. M - Used to output the method name where the logging request was issued. p - Used to output the priority of the logging event. t - Used to output the name of the thread that generated the logging event. x - Used to output the NDC (nested diagnostic context) associated with the thread that generated the logging event. Institut für Mobile und Verteilte Systeme J. Luthiger 30

16 Sample log4j.xml log4j.xml will be searched first <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > <log4j:configuration> <appender name="stdout" class="org.apache.log4j.consoleappender"> <layout class="org.apache.log4j.simplelayout"></layout> </appender> <root> <priority value="debug"></priority> <appender-ref ref="stdout"/> </root> </log4j:configuration> Institut für Mobile und Verteilte Systeme J. Luthiger 31 Sample log4j.properties log4j.rootlogger=info, stdout # set log level of rental package to DEBUG log4j.logger.ch.fhnw.edu.rental=debug # configuration of stdout appender log4j.appender.stdout=org.apache.log4j.consoleappender log4j.appender.stdout.layout=org.apache.log4j.simplelayout Institut für Mobile und Verteilte Systeme J. Luthiger 32

17 Logging performance Log4j claims to be fast and flexible: speed first flexibility second Although log4j has a many features, its first design goal was speed. Some log4j components have been rewritten many times to improve performance. Institut für Mobile und Verteilte Systeme J. Luthiger 33 Cost of logging When logging is turned off entirely or just for a set of priorities, the cost of a log request consists of a method invocation plus an integer comparison. The typical cost of actually logging is about 100 to 300 microseconds. This is the cost of formatting the log output and sending it to its target destination. logger.debug("entry number: " + i + " is " + String.valueOf(entry[i])); Example: constructing the message parameter, i.e. converting both integer i and entry[i] to a String, and concatenating intermediate strings, regardless of whether the message will be logged or not Institut für Mobile und Verteilte Systeme J. Luthiger 34

18 Hidden costs of logging Method invocation involves the "hidden" cost of parameter construction. To avoid the parameter construction cost write: if (logger.isdebugenabled() { logger.debug("entry number: " + i + " is " + String.valueOf(entry[i])); } Institut für Mobile und Verteilte Systeme J. Luthiger 35 Some best practices Don't use e.printstacktrace() use log.error("exception message", e) instead Don't log exception and throw it again Don't swallow the Stack Trace } catch(sqlexception e){ throw new RuntimeException("DB excpetion"+e.getmessage()); } Institut für Mobile und Verteilte Systeme J. Luthiger 36

19 Apache Commons Logging JCL The Logging package is an ultra-thin bridge between different logging implementations. Commons Logging will guess (discover) the preferred logging system and you won't need to do any configuration of JCL at all! There are two base abstractions used by JCL: Log (the basic logger) LogFactory (which knows how to create Log instances). Institut für Mobile und Verteilte Systeme J. Luthiger 37 Using JCL import org.apache.commons.logging.log; import org.apache.commons.logging.logfactory;... private Log log = LogFactory.getLog(this.getClass());... if (log.isdebugenabled()) { log.debug("song '" + song.gettitle() + "' added to playlist"); } Institut für Mobile und Verteilte Systeme J. Luthiger 38

Documentum Developer Program

Documentum Developer Program Program Enabling Logging in DFC Applications Using the com.documentum.fc.common.dflogger class April 2003 Program 1/5 The Documentum DFC class, DfLogger is available with DFC 5.1 or higher and can only

More information

Software Construction

Software Construction Software Construction Debugging and Exceptions Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target You know the proper usage

More information

How to Enable Quartz Job Execution Log Interception In Applications. J u n e 26, 2 0 1 5

How to Enable Quartz Job Execution Log Interception In Applications. J u n e 26, 2 0 1 5 How to Enable Quartz Job Execution Log Interception In Applications J u n e 26, 2 0 1 5 Table of Contents 1. PURPOSE. 3 2. DEFINITIONS.. 4 3. ENABLING LOG MESSAGE INTERCEPTION.. 5 3.1 LOGBACK 5 3.2 LOG4J

More information

Runtime Monitoring & Issue Tracking

Runtime Monitoring & Issue Tracking Runtime Monitoring & Issue Tracking http://d3s.mff.cuni.cz Pavel Parízek parizek@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Runtime monitoring Nástroje pro vývoj software

More information

Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219

Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Designing with Exceptions CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Testing vs. Debugging Testing Coding Does the code work properly YES NO 2 Debugging Testing

More information

The Java Logging API and Lumberjack

The Java Logging API and Lumberjack The Java Logging API and Lumberjack Please Turn off audible ringing of cell phones/pagers Take calls/pages outside About this talk Discusses the Java Logging API Discusses Lumberjack Does not discuss log4j

More information

Logging in Java Applications

Logging in Java Applications Logging in Java Applications Logging provides a way to capture information about the operation of an application. Once captured, the information can be used for many purposes, but it is particularly useful

More information

... Apache Log4j 2 v. 2.5 User's Guide.... The Apache Software Foundation 2015-12-06

... Apache Log4j 2 v. 2.5 User's Guide.... The Apache Software Foundation 2015-12-06 ... Apache Log4j 2 v. 2.5 User's Guide... The Apache Software Foundation 2015-12-06 T a b l e o f C o n t e n t s i Table of Contents... 1. Table of Contents...........................................................

More information

SAS 9.4 Logging. Configuration and Programming Reference Second Edition. SAS Documentation

SAS 9.4 Logging. Configuration and Programming Reference Second Edition. SAS Documentation SAS 9.4 Logging Configuration and Programming Reference Second Edition SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2014. SAS 9.4 Logging: Configuration

More information

Volta Log Library user manual

Volta Log Library user manual Volta Log Library user manual www.satellitevolta.com 1 ... 3... 3... 3... 3... 3 www.satellitevolta.com 2 [Ref.01] Volta Log distribution package (volta-log-x.y.z.* http://sourceforge.net/projects/voltalog/files/?source=navbar)

More information

SAS 9.3 Logging: Configuration and Programming Reference

SAS 9.3 Logging: Configuration and Programming Reference SAS 9.3 Logging: Configuration and Programming Reference SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2011. SAS 9.3 Logging: Configuration and

More information

Contents. Apache Log4j. What is logging. Disadvantages 15/01/2013. What are the advantages of logging? Enterprise Systems Log4j and Maven

Contents. Apache Log4j. What is logging. Disadvantages 15/01/2013. What are the advantages of logging? Enterprise Systems Log4j and Maven Enterprise Systems Log4j and Maven Behzad Bordbar Lecture 4 Log4j and slf4j What is logging Advantages Architecture Maven What is maven Terminology Demo Contents 1 2 Apache Log4j This will be a brief lecture:

More information

Effective logging practices ease enterprise

Effective logging practices ease enterprise 1 of 9 4/9/2008 9:56 AM Effective logging practices ease enterprise development Establish a logging plan up front and reap rewards later in the development process Level: Intermediate Charles Chan (chancharles@gmail.com),

More information

Overview. NetBorder Express Loggers Configuration Guide

Overview. NetBorder Express Loggers Configuration Guide Overview The Gateway service includes a powerful logging framework to enable you to control the logging of events. This document contains information about logging, including the following key topics:

More information

Software documentation systems

Software documentation systems Software documentation systems Basic introduction to various user-oriented and developer-oriented software documentation systems. Ondrej Holotnak Ondrej Jombik Software documentation systems: Basic introduction

More information

CA Aion Rule Manager. Rule Engine: JSR-94 Implementation Guide. r11

CA Aion Rule Manager. Rule Engine: JSR-94 Implementation Guide. r11 CA Aion Rule Manager Rule Engine: JSR-94 Implementation Guide r11 This documentation and any related computer software help programs (hereinafter referred to as the "Documentation") are for your informational

More information

Service Integration course. Cassandra

Service Integration course. Cassandra Budapest University of Technology and Economics Department of Measurement and Information Systems Fault Tolerant Systems Research Group Service Integration course Cassandra Oszkár Semeráth Gábor Szárnyas

More information

Announcement. SOFT1902 Software Development Tools. Today s Lecture. Version Control. Multiple iterations. What is Version Control

Announcement. SOFT1902 Software Development Tools. Today s Lecture. Version Control. Multiple iterations. What is Version Control SOFT1902 Software Development Tools Announcement SOFT1902 Quiz 1 in lecture NEXT WEEK School of Information Technologies 1 2 Today s Lecture Yes: we have evolved to the point of using tools Version Control

More information

Java Troubleshooting and Performance

Java Troubleshooting and Performance Java Troubleshooting and Performance Margus Pala Java Fundamentals 08.12.2014 Agenda Debugger Thread dumps Memory dumps Crash dumps Tools/profilers Rules of (performance) optimization 1. Don't optimize

More information

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca

More information

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd Coding in Industry David Berry Director of Engineering Qualcomm Cambridge Ltd Agenda Potted history Basic Tools of the Trade Test Driven Development Code Quality Performance Open Source 2 Potted History

More information

Determine the process of extracting monitoring information in Sun ONE Application Server

Determine the process of extracting monitoring information in Sun ONE Application Server Table of Contents AboutMonitoring1 Sun ONE Application Server 7 Statistics 2 What Can Be Monitored? 2 Extracting Monitored Information. 3 SNMPMonitoring..3 Quality of Service 4 Setting QoS Parameters..

More information

e ag u g an L g ter lvin v E ram Neal G g ro va P Ja

e ag u g an L g ter lvin v E ram Neal G g ro va P Ja Evolving the Java Programming Language Neal Gafter Overview The Challenge of Evolving a Language Design Principles Design Goals JDK7 and JDK8 Challenge: Evolving a Language What is it like trying to extend

More information

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

More information

Adding WebLogic Logging Services to Applications Deployed on Oracle WebLogic Server 12.1.3 12c (12.1.3)

Adding WebLogic Logging Services to Applications Deployed on Oracle WebLogic Server 12.1.3 12c (12.1.3) [1]Oracle Fusion Middleware Adding WebLogic Logging Services to Applications Deployed on Oracle WebLogic Server 12.1.3 12c (12.1.3) E41901-02 August 2015 Documentation for developers that describes how

More information

SAS 9.2 Enhanced Logging Facilities. Session 308-2008 Wednesday, March 19, 2008 9:00 9:50, Room 212

SAS 9.2 Enhanced Logging Facilities. Session 308-2008 Wednesday, March 19, 2008 9:00 9:50, Room 212 SAS 9.2 Enhanced Logging Facilities Session 308-2008 Wednesday, March 19, 2008 9:00 9:50, Room 212 SAS Global Forum 2008 Copyright Notice The correct bibliographic citation for this manual is as follows:

More information

vcenter Hyperic Configuration Guide

vcenter Hyperic Configuration Guide vcenter Hyperic 5.8 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for more recent editions of

More information

Oracle WebLogic Server

Oracle WebLogic Server Oracle WebLogic Server Using WebLogic Logging Services for Application Logging 10g Release 3 (10.3) July 2008 Oracle WebLogic Server Using WebLogic Logging Services for Application Logging, 10g Release

More information

HP Operations Orchestration Software

HP Operations Orchestration Software HP Operations Orchestration Software Software Version: 9.00 HP Service Desk Integration Guide Document Release Date: June 2010 Software Release Date: June 2010 Legal Notices Warranty The only warranties

More information

SyncTool for InterSystems Caché and Ensemble.

SyncTool for InterSystems Caché and Ensemble. SyncTool for InterSystems Caché and Ensemble. Table of contents Introduction...4 Definitions...4 System requirements...4 Installation...5 How to use SyncTool...5 Configuration...5 Example for Group objects

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

WebSphere Application Server V6: Diagnostic Data. It includes information about the following: JVM logs (SystemOut and SystemErr)

WebSphere Application Server V6: Diagnostic Data. It includes information about the following: JVM logs (SystemOut and SystemErr) Redbooks Paper WebSphere Application Server V6: Diagnostic Data Carla Sadtler David Titzler This paper contains information about the diagnostic data that is available in WebSphere Application Server V6.

More information

by LindaMay Patterson PartnerWorld for Developers, AS/400 January 2000

by LindaMay Patterson PartnerWorld for Developers, AS/400 January 2000 Home Products Consulting Industries News About IBM by LindaMay Patterson PartnerWorld for Developers, AS/400 January 2000 Copyright IBM Corporation, 1999. All Rights Reserved. All trademarks or registered

More information

Android WebKit Development: A cautionary tale. Joe Bowser Nitobi E-Mail: joe.bowser@nitobi.com

Android WebKit Development: A cautionary tale. Joe Bowser Nitobi E-Mail: joe.bowser@nitobi.com Android WebKit Development: A cautionary tale Joe Bowser Nitobi E-Mail: joe.bowser@nitobi.com About this talk This talk is not explicitly about PhoneGap This is a technical talk - It is expected that you

More information

Content. Development Tools 2(63)

Content. Development Tools 2(63) Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)

More information

Aspect Oriented Programming. with. Spring

Aspect Oriented Programming. with. Spring Aspect Oriented Programming with Spring Problem area How to modularize concerns that span multiple classes and layers? Examples of cross-cutting concerns: Transaction management Logging Profiling Security

More information

Performance Monitoring API for Java Enterprise Applications

Performance Monitoring API for Java Enterprise Applications Performance Monitoring API for Java Enterprise Applications Purpose Perfmon4j has been successfully deployed in hundreds of production java systems over the last 5 years. It has proven to be a highly successful

More information

PHP on IBM i: What s New with Zend Server 5 for IBM i

PHP on IBM i: What s New with Zend Server 5 for IBM i PHP on IBM i: What s New with Zend Server 5 for IBM i Mike Pavlak Solutions Consultant mike.p@zend.com (815) 722 3454 Function Junction Audience Used PHP in Zend Core/Platform New to Zend PHP Looking to

More information

GLOBAL CONSULTING SERVICES TOOLS FOR WEBMETHODS. 2015 Software AG. All rights reserved. For internal use only

GLOBAL CONSULTING SERVICES TOOLS FOR WEBMETHODS. 2015 Software AG. All rights reserved. For internal use only GLOBAL CONSULTING SERVICES TOOLS FOR WEBMETHODS CONSULTING TOOLS VALUE CREATING ADD-ONS REDUCE manual effort time effort risk 6 READY-TO- USE TOOLS MORE COMING SOON SIMPLE PRICING & INSTALLATION INCREASE

More information

Copyright 2013 Consona Corporation. All rights reserved www.compiere.com

Copyright 2013 Consona Corporation. All rights reserved www.compiere.com COMPIERE 3.8.1 SOAP FRAMEWORK Copyright 2013 Consona Corporation. All rights reserved www.compiere.com Table of Contents Compiere SOAP API... 3 Accessing Compiere SOAP... 3 Generate Java Compiere SOAP

More information

IBM Software Services for Lotus Consulting Education Accelerated Value Program. Log Files. 2009 IBM Corporation

IBM Software Services for Lotus Consulting Education Accelerated Value Program. Log Files. 2009 IBM Corporation Log Files 2009 IBM Corporation Goals Understand where to find log files Understand the purpose of various log files Components and log files Look at logs, starting with the most likely component Review

More information

Lecture 5: Java Fundamentals III

Lecture 5: Java Fundamentals III Lecture 5: Java Fundamentals III School of Science and Technology The University of New England Trimester 2 2015 Lecture 5: Java Fundamentals III - Operators Reading: Finish reading Chapter 2 of the 2nd

More information

RIFF Submission Service Technical and User Guide 21 December 2007

RIFF Submission Service Technical and User Guide 21 December 2007 RIFF Submission Service Technical and User Guide 21 December 2007 Table of Contents 1.Purpose......3 2.Overview......3 3.Services......3 4.Default Workflows......4 5.Job Configuration......6 6.Source Code

More information

JobScheduler and Script Languages

JobScheduler and Script Languages JobScheduler - Job Execution and Scheduling System JobScheduler and Script Languages scripting with the package javax.script March 2015 March 2015 JobScheduler and Script Languages page: 1 JobScheduler

More information

Syllabus for CS 134 Java Programming

Syllabus for CS 134 Java Programming - Java Programming Syllabus Page 1 Syllabus for CS 134 Java Programming Computer Science Course Catalog 2000-2001: This course is an introduction to objectoriented programming using the Java language.

More information

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2015 The third

More information

Debugging Java Applications

Debugging Java Applications Debugging Java Applications Table of Contents Starting a Debugging Session...2 Debugger Windows...4 Attaching the Debugger to a Running Application...5 Starting the Debugger Outside of the Project's Main

More information

Developing In Eclipse, with ADT

Developing In Eclipse, with ADT Developing In Eclipse, with ADT Android Developers file://v:\android-sdk-windows\docs\guide\developing\eclipse-adt.html Page 1 of 12 Developing In Eclipse, with ADT The Android Development Tools (ADT)

More information

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2014 Jill Seaman

More information

PHP Debugging. Draft: March 19, 2013 2013 Christopher Vickery

PHP Debugging. Draft: March 19, 2013 2013 Christopher Vickery PHP Debugging Draft: March 19, 2013 2013 Christopher Vickery Introduction Debugging is the art of locating errors in your code. There are three types of errors to deal with: 1. Syntax errors: When code

More information

Documentation and Project Organization

Documentation and Project Organization Documentation and Project Organization Software Engineering Workshop, December 5-6, 2005 Jan Beutel ETH Zürich, Institut TIK December 5, 2005 Overview Project Organization Specification Bug tracking/milestones

More information

JBoss Portlet Container. User Guide. Release 2.0

JBoss Portlet Container. User Guide. Release 2.0 JBoss Portlet Container User Guide Release 2.0 1. Introduction.. 1 1.1. Motivation.. 1 1.2. Audience 1 1.3. Simple Portal: showcasing JBoss Portlet Container.. 1 1.4. Resources. 1 2. Installation. 3 2.1.

More information

Software Engineering Techniques

Software Engineering Techniques Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary

More information

Cache Configuration Reference

Cache Configuration Reference Sitecore CMS 6.2 Cache Configuration Reference Rev: 2009-11-20 Sitecore CMS 6.2 Cache Configuration Reference Tips and Techniques for Administrators and Developers Table of Contents Chapter 1 Introduction...

More information

Aspects of using Hibernate with CaptainCasa Enterprise Client

Aspects of using Hibernate with CaptainCasa Enterprise Client Aspects of using Hibernate with CaptainCasa Enterprise Client We all know: there are a lot of frameworks that deal with persistence in the Java environment one of them being Hibernate. And there are a

More information

Java CPD (I) Frans Coenen Department of Computer Science

Java CPD (I) Frans Coenen Department of Computer Science Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials

More information

Version Control with. Ben Morgan

Version Control with. Ben Morgan Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove

More information

AP Computer Science Java Subset

AP Computer Science Java Subset APPENDIX A AP Computer Science Java Subset The AP Java subset is intended to outline the features of Java that may appear on the AP Computer Science A Exam. The AP Java subset is NOT intended as an overall

More information

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) i Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) ii Contents 1

More information

Install Java Development Kit (JDK) 1.8 http://www.oracle.com/technetwork/java/javase/downloads/index.html

Install Java Development Kit (JDK) 1.8 http://www.oracle.com/technetwork/java/javase/downloads/index.html CS 259: Data Structures with Java Hello World with the IntelliJ IDE Instructor: Joel Castellanos e-mail: joel.unm.edu Web: http://cs.unm.edu/~joel/ Office: Farris Engineering Center 319 8/19/2015 Install

More information

WHAT S NEW 4.5. FileAudit VERSION. www.isdecisions.com

WHAT S NEW 4.5. FileAudit VERSION. www.isdecisions.com WHAT S NEW FileAudit 4.5 VERSION www.isdecisions.com Table of Contents 1. FileAudit Version 4... 3 1.1. File and Folder Activity Real-Time Monitoring... 3 1.2. File and Folder Activity Alerts... 3 1.3.

More information

Hello World Portlet Rendered with JSP for WebSphere Portal Version 4.1

Hello World Portlet Rendered with JSP for WebSphere Portal Version 4.1 1 of 11 16.10.2002 11:41 Hello World Portlet Rendered with JSP for WebSphere Portal Version 4.1 Table of Contents Creating the directory structure Creating the Java code Compiling the code Creating the

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner 1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi

More information

Crash Course in Java

Crash Course in Java Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is

More information

Java Web Services SDK

Java Web Services SDK Java Web Services SDK Version 1.5.1 September 2005 This manual and accompanying electronic media are proprietary products of Optimal Payments Inc. They are to be used only by licensed users of the product.

More information

Tool Integration and Data Formats for Distributed Airplane Predesign

Tool Integration and Data Formats for Distributed Airplane Predesign Tool Integration and Data Formats for Distributed Airplane Predesign Arne Bachmann, Markus Kunde, Markus Litz Simulation and Software Technology German Aerospace Center (DLR) ModelCenter European Users

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Who am I? Lo Chi Wing, Peter Lecture 1: Introduction to Android Development Email: Peter@Peter-Lo.com Facebook: http://www.facebook.com/peterlo111

More information

Chapter 3. Input and output. 3.1 The System class

Chapter 3. Input and output. 3.1 The System class Chapter 3 Input and output The programs we ve looked at so far just display messages, which doesn t involve a lot of real computation. This chapter will show you how to read input from the keyboard, use

More information

CSE 403. Performance Profiling Marty Stepp

CSE 403. Performance Profiling Marty Stepp CSE 403 Performance Profiling Marty Stepp 1 How can we optimize it? public static String makestring() { String str = ""; for (int n = 0; n < REPS; n++) { str += "more"; } return str; } 2 How can we optimize

More information

Crawl Proxy Installation and Configuration Guide

Crawl Proxy Installation and Configuration Guide Crawl Proxy Installation and Configuration Guide Google Enterprise EMEA Google Search Appliance is able to natively crawl secure content coming from multiple sources using for instance the following main

More information

CS 111 Classes I 1. Software Organization View to this point:

CS 111 Classes I 1. Software Organization View to this point: CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects

More information

EMC Documentum Content Services for SAP iviews for Related Content

EMC Documentum Content Services for SAP iviews for Related Content EMC Documentum Content Services for SAP iviews for Related Content Version 6.0 Administration Guide P/N 300 005 446 Rev A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000

More information

VA Smalltalk Update. John O Keefe Principal Smalltalk Architect Instantiations, Inc. Copyright 2011, Instantiations, Inc.

VA Smalltalk Update. John O Keefe Principal Smalltalk Architect Instantiations, Inc. Copyright 2011, Instantiations, Inc. VA Smalltalk Update John O Keefe Principal Smalltalk Architect Instantiations, Inc. Recent Events Completed first year as pure Smalltalk company # of users and revenues continue to grow Growing Engineering

More information

PicketLink Federation User Guide 1.0.0

PicketLink Federation User Guide 1.0.0 PicketLink Federation User Guide 1.0.0 by Anil Saldhana What this Book Covers... v I. Getting Started... 1 1. Introduction... 3 2. Installation... 5 II. Simple Usage... 7 3. Web Single Sign On (SSO)...

More information

JDOM Overview. Application development with XML and Java. Application Development with XML and Java. JDOM Philosophy. JDOM and Sun

JDOM Overview. Application development with XML and Java. Application Development with XML and Java. JDOM Philosophy. JDOM and Sun JDOM Overview Application Development with XML and Java Lecture 7 XML Parsing JDOM JDOM: Java Package for easily reading and building XML documents. Created by two programmers: Brett McLaughlin and Jason

More information

Exception Handling In Web Development. 2003-2007 DevelopIntelligence LLC

Exception Handling In Web Development. 2003-2007 DevelopIntelligence LLC Exception Handling In Web Development 2003-2007 DevelopIntelligence LLC Presentation Topics What are Exceptions? How are they handled in Java development? JSP Exception Handling mechanisms What are Exceptions?

More information

Kaseya 2. User Guide. Version 7.0. English

Kaseya 2. User Guide. Version 7.0. English Kaseya 2 Log Parsers User Guide Version 7.0 English September 3, 2014 Agreement The purchase and use of all Software and Services is subject to the Agreement as defined in Kaseya s Click-Accept EULATOS

More information

This presentation explains how to integrate Microsoft Active Directory to enable LDAP authentication in the IBM InfoSphere Master Data Management

This presentation explains how to integrate Microsoft Active Directory to enable LDAP authentication in the IBM InfoSphere Master Data Management This presentation explains how to integrate Microsoft Active Directory to enable LDAP authentication in the IBM InfoSphere Master Data Management Collaboration Server. Before going into details, there

More information

SDK Code Examples Version 2.4.2

SDK Code Examples Version 2.4.2 Version 2.4.2 This edition of SDK Code Examples refers to version 2.4.2 of. This document created or updated on February 27, 2014. Please send your comments and suggestions to: Black Duck Software, Incorporated

More information

For Introduction to Java Programming, 5E By Y. Daniel Liang

For Introduction to Java Programming, 5E By Y. Daniel Liang Supplement H: NetBeans Tutorial For Introduction to Java Programming, 5E By Y. Daniel Liang This supplement covers the following topics: Getting Started with NetBeans Creating a Project Creating, Mounting,

More information

Communiqué 4. Standardized Global Content Management. Designed for World s Leading Enterprises. Industry Leading Products & Platform

Communiqué 4. Standardized Global Content Management. Designed for World s Leading Enterprises. Industry Leading Products & Platform Communiqué 4 Standardized Communiqué 4 - fully implementing the JCR (JSR 170) Content Repository Standard, managing digital business information, applications and processes through the web. Communiqué

More information

jmonitor: Java Runtime Event Specification and Monitoring Library

jmonitor: Java Runtime Event Specification and Monitoring Library RV 04 Preliminary Version jmonitor: Java Runtime Event Specification and Monitoring Library Murat Karaorman 1 Texas Instruments, Inc. 315 Bollay Drive, Santa Barbara, California USA 93117 Jay Freeman 2

More information

DocBook Framework (DBF)

DocBook Framework (DBF) DocBook Framework (DBF) The Apache Velocity Developers V 1.0 Copyright 2006-2007 The Apache Software Foundation Table of Contents 1. Preface... 1 1.1. About this Project... 1 1.2. License Information...

More information

Effective feedback from quality tools during development

Effective feedback from quality tools during development Effective feedback from quality tools during development EuroSTAR 2004 Daniel Grenner Enea Systems Current state Project summary of known code issues Individual list of known code issues Views targeted

More information

Zend Server 5.x Reference Manual

Zend Server 5.x Reference Manual Zend Server 5.x Reference Manual By Zend Technologies www.zend.com This is the Reference Manual for Zend Server Version 5.0. The information in this document is subject to change without notice and does

More information

Computing Concepts with Java Essentials

Computing Concepts with Java Essentials 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann

More information

How To Configure A Bmca Log File Adapter For Windows 2.5 (For Windows) For A Powerpoint 2.2 (For Microsoft) (For Ubuntu) (Powerpoint 2) (Windows) (Perl) (

How To Configure A Bmca Log File Adapter For Windows 2.5 (For Windows) For A Powerpoint 2.2 (For Microsoft) (For Ubuntu) (Powerpoint 2) (Windows) (Perl) ( BMC Impact Event Adapters User Guide Supporting BMC Event and Impact Management 2.0 BMC ProactiveNet Performance Manager 8.0 November 2009 www.bmc.com Contacting BMC Software You can access the BMC Software

More information

What s really under the hood? How I learned to stop worrying and love Magento

What s really under the hood? How I learned to stop worrying and love Magento What s really under the hood? How I learned to stop worrying and love Magento Who am I? Alan Storm http://alanstorm.com Got involved in The Internet/Web 1995 Work in the Agency/Startup Space 10 years php

More information

Model-View-Controller. and. Struts 2

Model-View-Controller. and. Struts 2 Model-View-Controller and Struts 2 Problem area Mixing application logic and markup is bad practise Harder to change and maintain Error prone Harder to re-use public void doget( HttpServletRequest request,

More information

Application Notes for Packaging and Deploying Avaya Communications Process Manager Sample SDK Web Application on a JBoss Application Server Issue 1.

Application Notes for Packaging and Deploying Avaya Communications Process Manager Sample SDK Web Application on a JBoss Application Server Issue 1. Avaya Solution & Interoperability Test Lab Application Notes for Packaging and Deploying Avaya Communications Process Manager Sample SDK Web Application on a JBoss Application Server Issue 1.0 Abstract

More information

Overview of Web Services API

Overview of Web Services API 1 CHAPTER The Cisco IP Interoperability and Collaboration System (IPICS) 4.5(x) application programming interface (API) provides a web services-based API that enables the management and control of various

More information

RTI Monitoring Library Getting Started Guide

RTI Monitoring Library Getting Started Guide RTI Monitoring Library Getting Started Guide Version 5.1.0 2011-2013 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. December 2013. Trademarks Real-Time Innovations,

More information

10 Java API, Exceptions, and Collections

10 Java API, Exceptions, and Collections 10 Java API, Exceptions, and Collections Activities 1. Familiarize yourself with the Java Application Programmers Interface (API) documentation. 2. Learn the basics of writing comments in Javadoc style.

More information

Configuring Log Files and Filtering Log Messages for Oracle WebLogic Server 12.1.3 12c (12.1.3)

Configuring Log Files and Filtering Log Messages for Oracle WebLogic Server 12.1.3 12c (12.1.3) [1]Oracle Fusion Middleware Configuring Log Files and Filtering Log Messages for Oracle WebLogic Server 12.1.3 12c (12.1.3) E41909-02 August 2015 Documentation for system administrators who configure WebLogic

More information

Object-Oriented Databases db4o: Part 2

Object-Oriented Databases db4o: Part 2 Object-Oriented Databases db4o: Part 2 Configuration and Tuning Distribution and Replication Callbacks and Translators 1 Summary: db4o Part 1 Managing databases with an object container Retrieving objects

More information

Extending XSLT with Java and C#

Extending XSLT with Java and C# Extending XSLT with Java and C# The world is not perfect. If it were, all data you have to process would be in XML and the only transformation language you would have to learn would XSLT. Because the world

More information

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)

More information