ebook img

Cheat Sheets – Apache Ant PDF

6 Pages·2016·1.319 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Cheat Sheets – Apache Ant

#104 m o CONTENTS INCLUDE: Getting Started with c z. n About Apache Ant d ar n Anatomy of an Ant Script Apache Ant c n Core Java Related Tasks ef n Infrastructure Tasks r n SCM Related Tasks t si n Hot Tips and more... By James Sugrue i V ! z d Attribute Description Required r ABOUT APACHE ANT a c name The name and identifier of this target Yes f e Apache Ant is an XML based tool for automating software depends Comma separated list of other targets that this No R build processes. Starting out as part of the Apache Tomcat target depends on e r codebase, Ant got its first standalone release in July 2000. if The name of a property which must be set for No o Today it is the most widely used build tool for Java projects, this target to run M enabling developers to adopt agile principles: most unless The name of a property which must not be set No et importantly test-driven development. for this target to run G Download Instructions description Description of this target No You can download the latest Ant distribution (1.8.1) extensionOf Add the target to the depends list of the No Hot as a standalone tool from http://Ant.apache.org/. Ant named extension point Tip is also built into most Java development IDEs, such Table 2: Target element attributes as Eclipse, and NetBeans which uses it as its internal build system. Extension Points m Introduced in Ant 1.8.0 <extension-point> is similar o The Anatomy of an Ant Script Hot to a <target> with its name and depends attributes. .c A typical Ant script consists of a single build.xml file. The Tip However, it does not contain any tasks and is used e n root element of the build script is the project tag. Within the to collect targets that contribute to a state in the o project element there are one or more targets specified. A dependency relationships of the script. z d target contains a set of tasks to be executed. w. The project element can specify a default target if no target is Properties w chosen during execution of the build script. Properties can be defined within the build script or in separate w property files to provide more customizable build scripts. Attribute Description Required name Name of the property No value The value of the property One of location Set value to absolute filename. If the value these when using name passed through is not an absolute path it will t be made relative to the project basedir attribute n A refId Reference to an object defined elsewhere e h c a Get over 90 DZone Refcardz p A Figure 1: The basic structure of an Ant build script. FREE from Refcardz.com! h The most important concept in Ant is that of dependencies.   t i Each target may depend on other targets. When running, Ant w resolves these dependencies so that your script gets executed d in the order you have specified. e t r Attribute Description Required a t name Name of the project. No S basedir Base directory from which all path calculations No g are done n default The default target to run when no other target No i t has been specified t e Table 1: Project element attributes G DZone, Inc. | www.dzone.com 2 Getting Started with Apache Ant Core Java Related Tasks file Location of the properties file When not using This section gives a complete reference of all tasks and their resource Location in the classpath of the properties file the name attributes that are most commonly used by Java Developers. attribute (i.e. loading Compiling Java Code url URL pointing to properties file external Compilation is achieved with the <javac> task. properties) basedir The basedir to calculate the relative path from No. Default Attribute Description is project srcdir Location of java files to compile basedir classpath / The classpath to use when looking up a No bootclasspath/ Location of bootstrap class files or reference to a classpathref resource boothclasspathref predefined path environment Prefix to use when accessing environment No classpath/ classpathref Classpath to use for compilation or reference to a variables predefined path prefix Prefix to apply to properties loaded using file, No compiler Compiler implementation to use. Default is current VM resource or url debug Whether source should be compiled with debug Table 3: Property element attributes information (-g parameter). Defaults to off All system properties that can be accessed from the System. debuglevel Can be lines, var or source. Used in the –g parameter for the compiler getProperties() methods in Java can be used in Ant. Additionally, the following built-in properties are available: depend Enables dependency tracking on jikes and classic compilers Property Name Description deprecation Whether source should compile with deprecation basedir Absolute path of projects basedir information ant.core.lib Absolute path of the ant.jar file destdir Destination for compiled .class files ant.file Absolute path of buildfile encoding Encoding of source files ant.home Home directory of Ant errorProperty Property to set to true if compilation fails ant.java.version Java version detected excludes Comma separated list of files that must be excluded ant.project.default-target Name of the default target from compilation. Wildcard patterns can be used ant.project.invoked-targets List of targets specified in the command line when excludesFile File that contains the exclusion list invoking this project executable Path to javac executable to use when fork set to yes ant.project.name Name of the project that is running extdirs Location of installed extensions ant.version Version of Ant fork Whether to execute javac using the JDK compiler externally. Default no Table 4: Built-in properties failonerror Whether compilation error fails the build. Default true Path Structures includes Comma separated list of files that must be included in Path structures can be created using a series of <pathelement> compilation. Wildcard patterns can be used tags. For example, a classpath can be created using: includeAntRuntime Whether to include ANT runtime libraries in the classpath. Default yes <classpath> <pathelement location=”/path/jarfile.jar”/> includeDestClasses Whether classes compiled to the dest directory are <pathelement path=”/path/lib/jar1.jar;/path/lib/jar2.jar”/> included in the classpath. Default true. When false, </classpath> causes recompilation of dependent classes File Sets includesFile File containing the exclusion list In order to bundle files together, Ant provides the <fileset> tag: includeJavaRuntime Whether to include default libraries from VM. Default no Property Name Description listfiles Whether source files to be compiled will be listed. casesensitive Whether include/excludes patterns must be treated with Default no case sensitivity. Default true memoryInitialSize / Initial and maximum memory sizes for VM if run dir Root of the directory tree of this fileset memoryMaximumSize externally defaultexcludes If default excludes should be used (set of definitions that nowarn Whether –nowarn should be used with the compiler. are always excluded) Defaults to off erroronmissingdir If true causes a build error, if false the fileset is ignored optimize Whether to compile with optimization, ignored since JDK1.3 excludes List of patterns of files to exclude source Value of the –source command line switch excludesfile Name of a file to exclude sourcepath/ Defaults to value of srcdir or reference to a file Shortcut for specifying a fileset containing a single file sourcepathref predefined path followssymlinks Whether symbolic links should be followed. Default true target Generate class files for a particular VM version Table 5: Fileset attributes tempdir Temporary file location if fork set to yes updatedProperty Property to set for successful compilation Built-in Tasks The following sections list out the most commonly used tasks verbose Use verbose output on the compiler in Ant build scripts. Required attributes are marked in bold. Table 6: javac tasks properties DZone, Inc. | www.dzone.com 3 Getting Started with Apache Ant Additional command line arguments can be passed through to indexMetaInf Whether to include META-INF in the index. the compiler using the <compilerarg> nested element. Default false Compiler Choice level Compression level for files from 0 (none) to 9 (maximum) Hot To use different compilers set the build.compiler manifest Location of manifest for jar property to classic (1.1, 1.2) modern (1.3-1.6) or Tip choose a separate compiler such as jikes, jvc, kjc, manifestencoding Encoding to use for manifest. Default is platform encoding gcj or sj. mergeClassPathAttributes Merge classpath attributes of different manifests when merging Class file dependencies can be managed using the preserve0permissions If a file has permissions value of 0, it will preserve <depend> task. this instead of applying default values Attribute Description roundup Whether to round up file modification time to the next even number of seconds srcdir Location of Java files to compile. Will be examined to determine which files are out of date strict How to handle breaks of packaging version specification Fail, warn or ignore (default) cache Directory where dependency information is stored and retrieved. No cache if not used update Whether to overwrite files that already exist. Default false classpath Classpath from which dependencies also need to be checked useLanguageEncodingFlag Whether to set language encoding if encoding set closure If true, all classes depending on an out-of-date class are to UTF8 only deleted whenmanifestonly Behavior when no files match – fail, skip or create destdir Location of class file to be analyzed (default) dump If true dependency info is written to the debug level log Table 8: Jar task properties warnOnRmiStubs Disables warnings about files that look like rmic generated stubs but no .java source War and Ear Archive Tasks Table 7: Depend task properties Hot Both <war> and <ear> tasks have similar attributes Tip to the <jar> task, adding in attributes for web.xml or Hot Ivy For Dependency Management application.xml respectively. Tip Ivy (http://ant.apache.org/ivy), a sub project of Ant, can also be used to manage dependencies. Additionally, you can sign jar archives using the <signjar> task. Attribute Description Distributing Compiled Code alias The alias to sign under Jar files can be created using the <jar> task. jar The jar file to sign Attribute Description storepass The password for keystore integrity destfile JAR file to create executable Specific jarsigner executable to use in place of default in JDK basedir The directory to build from force Force signing if already signed or not out of date compress Compress data in jar. Defaults true internals Whether to include the .SF file inside signature block. createUnicodeExtraFields Whether to create unicode extra fields to store file Default false names a second time inside the entry’s metadata keypass The password for the private key defaultexcludes Whether default excludes should be used. Default true keystore Keystore location duplicate Behavior when a duplicate file is found – add lazy Whether a signature file being present means the jar is (default), preserve, fail signed keepcompression For entries coming from other archives, keep its maxmemory Maximum memory the VM will use when signing compression, overriding compress preservelastmodified Signed files keep the same modification time as original encoding Character encoding for filenames. Default UTF8 jar files excludes List of patterns of files to exclude sectionsonly Whether to compute the hash of entire manifest excludesfile The name of a file that defines an exclude pattern sigfile The name of the .SF or .DSA file fallbacktoUTF8 If the specified encoding cannot be used, whether signedjar The name of the signed jar file to fallback to UTF8 storetype The keystore type filesonly Store only file entries. Default false tsacert Alias in keystore for timestamp authority filesetmanifest Behavior for when a manifest is found in a tsaurl URL for timestamp authority zipfilesset. Can merge, mergewithoutmain or skip (default) verbose Whether to use verbose output. Default false flattenAttributes Merge attributes occurring more than once in a Table 9: Signjar task properties section into one single attribute includes List of patterns of files to include Manifests can be included using the <manifest> task. includesfile The name of a file that defines an include pattern Attribute Description file Manifest file to create or update index Whether to create an index list to speed up classloading. Default false encoding Encoding to read existing manifest DZone, Inc. | www.dzone.com 4 Getting Started with Apache Ant flattenAttributes Merge attributes occurring more than once in a public Show only public classes and members section into one single attribute protected Show only protected/public classes and members mergeClassPathAttributes Merge classpath attributes of different manifests package Show only package/protected/public classes and when merging members mode Either update or replace (default) private Show all classes and members Table 10: Manifest task properties serialwarn Warn about @serial tag Generating Documentation source Source level used for compilation JavaDoc generation is done through the <javadoc> task. splitindex Split index into one file per letter stylesheetfile Specifies CSS stylesheet Attribute Description use Create class and package usage pages sourcepath Location of the source files for the task. At least one sourcepathref of these attributes required for this specification verbose Output all messages of javadoc process sourcefiles version Include @version parts destdir Destination directory required unless a doclet is windowtitle Browser window title for documentation specified Table 11: JavaDoc task properties access Access mode (public, private, protected, package) additionalparam Additional parameters to pass through Executing Java Classes author Include @author parts Java classes can be executed from Ant using the <java> task. bootclasspath / Location of class files loaded by bootstrap class Attribute Description bootclasspathref loader classname The jar file or classname to execute. If using jar, fork must be bottom Bottom text for each page jar set to true breakiterator Use new breakiterator algorithm append Whether output/error files should be appended or overwritten charset Charset for cross platform viewing args Arguments for class. Better to use nested <arg> elements classpath/classpathref Location of classpath classpath / Classpath to use for execution defaultexcludes Whether default excludes should be used classpathref docencoding Encoding of output file clonevm Clones system properties and bootclasspath of forked VM to be the same as the Ant VM docfilessubdirs Deep copy of doc-file subdirectories dir Directory to invoke VM in doclet/docletpathref Classfile that starts to doclet used error File to write error (System.err) output to doctitle Title for the package index page errorproperty Property to store error output from command encoding Source file encoding failonerror Stops Ant build process if failure occurs excludepackagenames Packages to exclude from javadoc fork Executes the class in another VM executable Specify a javadoc executable instead of VM default input File where standard input is taken from extdirs Location of installed extensions inputstring String where standard input is taken from failonerror Stops build process if command fails jvm Command used to invoke JVM. Default is java footer Footer text for each page javmargs Arguments for forked JVM. Better to use nested <jvmarg> group Group specified packages together in overview page logError Shows error output in Ant log header Header text for each page maxmemory Maximum memory to allocate to the forked VM helpfile Specifies help file to include newenvironment When fork=true, do not propogate current environment variables includenosourcepackages When true includes packages with no source output File to write output to link Create links to javadoc output at given url outputproperty Property to store output of the command linksource Generate links to source files locale Locale to be used resultproperty Property where return code of command is stored maxmemory Maximum amount of memory to allocate in VM spawn Need fork set to true. Will spawn a process independent of calling Ant process nodeprecated Do not include @deprecated information timeout Timeout for the command to execute within before being nodeprecatedlist Do not generate deprecated list stopped notree Do not generate class hierarchy Table 12: Java task properties noindex Do not generate index Running Unit Tests nohelp Do not generate help link JUnit tests are executed from Ant through the <junit> task nonavbar Do not generate naviation bar noqualifier Enables –noqualifier argument for a list of packages Attribute Description (or all) clonevm Clones system properties and bootclasspath of forked VM overview Read overview documentation from HTML file to be the same as the Ant VM packagenames List of package files to use dir Directory from which to invoke the VM packageList File containing packages to use errorproperty Property to set when errors occur DZone, Inc. | www.dzone.com 5 Getting Started with Apache Ant failureproperty Property to set when failure occurs unless Use formatter if property is not set filtertrace Filter out JUnit or Ant stack frames from stack traces in usefile If output should be sent to a file. Default true errors or failures Table 15: JUnit formatter definition fork Run JUnit in a separate VM forkmode How many VMs to create when forking tests. (preTest, Once tests are completed, reports can be generated for the perBatch or once) tests using the <junitreport> task. haltonerror Stop build process if an error happens Attribute Description haltonfailure Stops build process if a test fails todir The directory that will contain the results includeAntruntime Stops build process if a test fails tofile The name of the XML file that will aggregate all previously jvm Command used to invoke VM, default java generated results logfailedtests Log a FAILED message for each failed test to Ant’s logging Table 16: JUnitReport task properties system maxmemory Maximum memory to allocate to forked VM The <junitreport> task contains a fileset that collects all the newenvironment When fork=true, do not propogate current environment reports from previous Junit tests. variables To output to a report file, use the internal <report> tag. outputformatters Send output generated by tests to test formatters printsummary Print statistics for each test case. (on, off, withOutAndErr) Attribute Description reloading Whether a new classloader should be instAntiated for each format Format of report (frames or noframes) test styledir Directory containing stylesheets. Files must be junit-frames.xsl showoutput Send output to Ant log or junit-noframes.xsl tempdir Location for temporary files todir The directory that files are written to. By default this is the current directory timeout Cancel tests if not complete in specified time Table 17: Report tag for <junitreport> Table 13: JUnit task properties Infrastructure Tasks Tests are defined in nested elements within the <junit> task. There are a number of other core tasks related to file Batch tests are defined using the <batchtest> tag: operations. The following is an overview of these tasks: Attribute Description Task Description name Name of test class attrib /chmod Changes permission of a file (attrib for Windows, chmod for errorproperty Property to set when errors occur Unix) failureproperty Property to set when failure occurs checksum Generates a checksum for files filtertrace Filter out JUnit or Ant stack frames from stack traces in errors concat Concatenates multiple files into one single file, or to the console or failures copy Copies a file, or collection of files, to another location fork Run tests in a separate VM, overriding the value set in the <junit> task delete Deletes a file, directory or collection of files haltonerror Stop build process if an error happens exec Executes a system command haltonfailure Stops build process if a test fails ftp Provides basic FTP functionality if Property condition to run test against, if set get Gets a file from a URL todir Directory to write reports to import / Imports or includes another build file into the current Ant script unless Property condition to run test against, if not set include Table 14: JUnit batch test definition mail Sends mail over SMTP mkdir Creates a new directory Single Tests move Moves a file, or collection of files, to another location Hot If you just need to run a single test, the <test> tag record Listens to the build process and outputs to a file Tip can be used to specify the test. This contains similar replace Replaces occurances of a string in file or collection of files attributes to the <batchtest> tag. replaceregexp Replaces occurances of a string in file or collection of files using regular expressions Test results can be written to different formats, using the sql Executes SQL statements to a database using JDBC outputformatters attribute in the <junit> task. The following sync Synchronizes a target directory with a list of files table shows the options for formatter definition: zip / unzip Creates a zip file / unzips an existing zip. Also provides Attribute Description tar / untar functionality for tar files type A predefined formatter type of either xml, plain, brief or failure Table 18: Overview of basic infrastructure tasks classname If no type specified, use a customer formatter implementing SCM Related Tasks org.apache.tools.Ant.taskdefs.optional.junit .JUnitResultFormatter ANT provides a number of tasks for connecting with different source control management systems. The core support deals if Use formatter if property is set with CVS. DZone, Inc. | www.dzone.com 6 Getting Started with Apache Ant Task Description buildnumber Reads build number from a specified file cvs Handles commands to be run against CVS, defaulting with condition Set property if a condition is true checkout dirname Set property to the directory path of a specified file cvschangelog Generates a report of change logs recorded in CVS echoproperties Display all properties to file or console cvspass Adds entries to a .cvspass file loadfile Loads a file into a property cvstagdiff Generates a report of the changes between two tags/dates from CVS loadproperties Load a property file contents as Ant properties cvsversion Retrieves CVS client and server version makeurl Converts filenames into URLs patch Applies a diff file to originals pathconvert Converts a file list or path structure to a separated string for the target platform Table 19: CVS task properties property Set a property There are also tasks available for interfacing with ClearCase, propertyfile Creation and modification of property files Visual Source Safe, Pvcs, Perforce and Continuus. Additional uptodate Set property if specified target file is newer than source files tasks can be found online for DCVS systems such as Git and Mercurial. whichresource Find class or resource xmlproperty Loads properties from property file written in XML Property Tasks Ant provides some tasks that deal with managing properties Table 20: Ant Property Tasks throughout your build process. Writing Your Own Tasks Task Description Hot If Ant doesn’t provide you with the functionality that available Sets property if file, directory or class in classpath is available Tip you need, you can write your own Ant tasks in Java at runtime by extending org.apache.tools.ant.Task. basename Sets property to last element of specified path ABOUT THE AUTHOR RECOMMENDED BOOKS James Sugrue has been editor at both Javalobby A single application of increasing complexity, followed and EclipseZone for over two years, and loves every throughout the book, shows how an application evolves minute of it. By day, James is a software architect at and how to handle the problems of building and testing. Pilz Ireland, developing killer desktop software using Reviewers have praised the book’s coverage of large- Java and Eclipse all the way. While working on desktop projects, Ant’s advanced features, and the details and technologies such as Eclipse RCP and Swing, James also depth of the discussion-all unavailable elsewhere. likes meddling with up and coming technologies such as Eclipse e4. His current obsession is developing for the iPhone and iPad, having convinced himself that it’s a BUY NOW turning point for the software industry. books.dzone.com/books/ant-action Browse our collection of 100 Free Cheat Sheets #82 #84 moc.zdracfer tisiV !zdracfeR Cer■o ■MO ■ At e■BG N■Pb ■uV a oB T ie B tl uu dE rt useti Nl iiSrdClondoT noMs fSP C ntCaww artroInaoineiAaNCntncdinaprhuntaIteB Cgti aoA io rpc cneaaeOLoassuaenappuv smptUilsdstpntt eUoropi E rohDoe-vCI aarocuepnbWvTeryennarioEdyestaate a etr cde.c iphnr:utrsC t cIxhy gth eneeiatcmtuepl eOarixoteCd etrlnaeaseotnapn hNte utnbfuwgrrgisslfhaeora odneeorTicenne.intauics. mon .hgIn. btc tscNenoi etseeoo toeedt.nIhnUtm nenfnnTi eeemv txtvdOmh(rh iefitCepsa eee)ecgUin rIdtsyati p)orttaon Sn ieaiuaacrloos d,e dttstre nIthetitbes Nsioeahatoue dsunonrnell .nT tn t“ o tu tC,A saEpis obots-i nnrwp Gepu(fno“i t a. ihrCetifielocRo- thdecxeIp.tfjAo e, e ne”est aat aoTs rs hcetnctns ttIehsonodiae’sOnso edf m rrt n(c til vneNib,luepl. pyesruetutsa m hraidb.taisor,l”ret e irdaetniCoi eyn dccid c nn otueyt s oo pegctnilofcanfo nlr toleaesraciuP ndn icon,ceptmp tutiftttpirortrhioovpoocowatnie uslesbblupaes sslls Rrrmee t,teuoI hemnmb ecdafttuhcno )uet at tecga irwww.dzone.com Get More Refcardz! Visit refcardz.com c Cloud Computing nesdrPa a g P antr Rtruiit MevoeapnrCatnnoieonTsb adliWitLnsseroaAksoeolrib-nuryLMkeuete BC■■■■■■soli vnigpPB mDnAUUCDPeOiaomuTaalheWPWticHwTtkTeMaChtTb(acl lerisnboanCispalohhtSaeycNdmIontpmahhheaaalhltedoyoP ttostc iIaeeed aoDpoaanngnsmrtfceipentmITageuywui nsptldotnon vbbeB uarrmenwees dAUel ttacTer Eptrtu tovrgiehed ao Rdtee ln i reeoicihynmwteliaagyrli CaSN cnBSedsdavBneeiVts e arotciyadtBppndcrcoayu ceiengdlts r AdarOtftdiuTMitoeiunMre o loppstiiacofgielirido n ppTfilgDsSo,ttauy d gn fGcscmannmellD Uedu ban h.arethiiietCd rnoC a eo earBoecccs cnsh I y,EDwsopdgecpoaaTvru sact soNndaaeh. maArCeeiememicDo.r.nibnlta l oucl pdttnmt vn. g hoeow eimoS COotCoeii svdtne lsatwpdceoevoodwiheelszeuaiuonroLimieC fntLi e eg snLmloele adAchmnpnnele s tsadohblgomoltanboUsipi ul gEpnOermfsRcunpoels ssn edtai ageotsueeodFfiiwetinnoyc ael Du zrnp enrtbN s ltotsdh hreitnaaeamrvUCuc) gmaaehothmlaetl or uv Ar siyCCa cEet s aiptasernieneieampbe scBpeAinmsklo,scitnh orneDt toua Reaor v civacbe: adrersuan oitsyrcaetfltCPcg iuo garudo niptntreReeRa oh pn p hanonaiecwyna sntei’scP sreaacllele laes-Pvr oy vg euC ldfiiidt ay PSrue fp nIz :n(u eoraa lpaeo-gl ae ar oecall iet errUgOoiemcowwgerl kcimialntdfar .opuO.lcse PGPvnnynsgomr e ms ltagiweistirwdnnCaniistdi)romoos ros.hlnnavtee tlhees lSdtm ead gioo aWnii atta geMponodagt dadtaasamevi lu ngtruhrri-n ollc sle aueer PneyeeeclW aeAosnriyrdwu ei hbtiatnranm tesao prdnnt dedijaebuoR,eaeirtsPe ubqsp o nvoic te eat Tmnumnsm aeIptio.yu eaur eoon teslanc omem.tsgkdlrUswltorb te lti rssoaocdor.ebaoodsyesznhree sipoa pttdk at Eopyeesdleenlu euceesgesi e tr uoiBlTttm trLnAld anMnaais t lvr edeemrfl yobrllurei oendcotmtedatehtbe Rdalemoo.ip oIleo n yciev otfteli lpel)s nbCoenitsN oiyde e lk ybo toa rafirueidelotttesa a pnatgusloe do,eohlrm n bea noi.yfi edsyC h a efidstutdm atlwenG nf dekofioc w dBrbegserl sos tte cagi-ee ofeno hr AeoeehrudapowaDloemuceyace c nnay aods lcair wroharltnratwltpeancitemymsdki‘bonahr ese ncl teui tt ci a. u ed eesfs,zu nf aclti®eptnurtmr ralt enyh s old oolmrdtao,a cossa tebemge osetb cormm tahemra egeyzdo eeo yppvpm im aeuhr:ormcnm eta c ocagensodtuCs eafdutpeetuehtodaoegaslaaicnrfo kIpldnit enteopu t scntcdterteistlsnit mi’onive iaurpn-aieoe,enssobei .clnuiprvclr gurnlgonrpnglaearnoeolisy Gvcurpevgda l,r lyf oengnwog cnewuei ui cirwrrhnmtsyuo c oi oaoi imt dmcotmtamitcnothnuhpnsoeaotlunohrei moot elenn dbeikgcbidtelytwnnrnunntei gsueaemimehrhe uttt daoins,sgs mvlwavwltaud it ree tsfln pswmesss,los(leyooioi .e, eb ststru tw apiesbhrrhaas t .rmtte mnsighic v nnmei te.ndde .hndos a Cgit or. l tntnsaae.e.. c anromm l o AViui(ItDeHAAcfL(raAao nnene aei oasltt enimsaamsdduGc. .rlicsermgag ytlretov teg.aiiuit aMuaidagz vUCi.. ot nrd opSnes tuezmeaebpi uzdnbliRdtgeLo oNog eumlmdfcocrasrbseciaiixauE Oonmyttarz henocG scondydDnteiitzbaa !vadc’ neonamrihmesos n VeUd m iae tlewysEEti l dg aetonetn oti e mcbSnurwrmt oahseoaeDpnevCif, lsmwRyhfcl sdyzco apncanapo inreigd bl soedsmeoedAc2os#hh ozaaLlp dt.geulwee unctarCX tanl losraY net:ptpmaaaooelciwameiargovdt no ahf tHtk6.ela.tO ansIgaupto)edrIwesuflimp sfciht e,na rnhopsndo.N HlTt bdc r er prrd HelHrot4tetw zmiMAdrofedaw smla roMontChhai hTteoselo rsGerml(T hTwnt iiull c■msrigeigees H( oM sncnl Jr si n■PtmLydRMslaM co cKoni s ■e s mya reaatfeaPatTo s’c■pfoeCtsslDitsULaUetm gap ■ pntuvorzhtLn aLeVes maM yrwu■uutH uuo imeyeaHpraCs a OEeBanto lgioy auTdlsdHnp es sp isfitteaa arnsxt hcLoST &fT rcltCeO ee Mspednyi ya aI ivuilToypnfncNarssednhuc aogttdtyeM N, suMs nseluer o 2wuMrtt eo SidNdt oHmslgSoscascatisansoCl.ufisuiaC tr ortL tpoeenei G taraneo rral)tco yO,LLTcT nrccmXsssln u :Pidpmit sXm ddpgucrE nlgn vit tmobsahtM Earayo dlnHB aMpdmUtuslilscHeBeao e to dinP elPaolleaou Na tllpns usaireSsp tiiaTLi)kcrlh XoaarhpTt caAttaruntutnu Lsy ytsTvnsdlvtu yeerafgMwTt aalHhlosaebp rMi ai sl r )oaolA dio ctSS seeiditt ot eysSnEeS ratthi ncnvTh dsaeiLsolrthlilt wp fe cLRITl nocn mlv neleoa mbEbd pMuoesyr neC e setIie JmriaeerugethFeist oNlh-sam ee acn lmroespsi edha LgrSadX trsdhp tem sehiaoOmlcfi smgeBcctamtvpCeles.eaiigpeaareHtaleu .oilranzefe alp a’b met wlnl. Lmots rRnculfirhesarHcsTga Tmla wSyd h phe T et toTpUnb nhv tteeytttRh eaMMsrecTbeacoeesheiti fefehhec teoea u,anoDncrir rD xohrM saoe nuibDsae cdaeoiLcddewcudfvcwtrgSntmpenoarEl cotBe t nh v iia ms aL umwca aad eaeelntotpla:ulerstp noyMla Aalo.oabsoytlt m edbgao lm ernns niumolhrnoaw Sl dobdzsacr SNetg r entCaddttseieglseeeewsgeht eiovhtnaso sseXnbrauieSry fad urx dieDr,birssn eagvgomtdrv gtH opeeyrStopceaei eco u ico iveoiirs rrye ei.o.pllw.prngnpoTldnp R.esmt e u.ilro l v.wtq bcneao eg-oMesraatt sFmles nuaiuseeooeh,g uudesdgor irRo loilawsvAeLd u rtaye nydi ple yuiAcrpo ff eal,tmnoma tnij .hdats ei puruotaiilamlwPzuutl uctoichoy a poaxr.e dlsalgntIneeb eb a lv antses n ora ntv tdatnaisRey wtn,etfoanndieehrir ti o t igeonseeg,nlts etbecr o uar iu.gn ybgubhlncysnny saae t ln le tiedidargHceto,.d n a teaneHtlHTlltdohveuetsiMTTe-ogie ssnslMMel insiLiogked LoeLp se fm P HTernhwePBtese e.jru oxHobl lapbtw Tdt e biMesacsec>eTs daNtvL<aaHtrentme / gahwhmeldnTTlaansoieCae.osr>hMca d pasct b tekinEi m b aeesb Lt ouoassn hlrdea yfivftsrrf eVa,acglee nb ysc ctt nrneSeaea thaatlHda .la u tama tig(otXnapsT artrrae rde soinM,Hujbt ro asdutnsuuLTrorbn api tafbM hdevr< hdeuwaa aadfdLrqtid>iolseteeau< hr vedsbe bd secxc >enleomerrpl<tyiesm.bl/aa cyvlaenern iemai>sd ybrrt< eieiwewc/tm d)esobho n ed>meafre.a krl iHlptersWsaae t e rymnetrhothnodioiunealt ertg it enli eems i sts tugt ithahdepBaaTagaxenpln,etsy d o e b tadafir ahu tnrolcaA.etynh t b< Mce inaooas >i tndtddh<s yibbe s y>rep.< l f/aHToyauegandsLd r i,fr is D14Z0o nPere, sItnocn. Executive Dr. IISSBBNN--UAHSS11pu30papbr::daiv ncoceh91goore7- psS m89iAeo-3cnni14utn-2ri93gt38y 4-R27e358-f-9c7a5r-d2z Suite 100 50795 Cary, NC 27513 DZone communities deliver over 6 million pages each month to 888.678.0399 919.678.0300 more than 3.3 million software developers, architects and decision Refcardz Feedback Welcome 5 makers. DZone offers something for everyone, including news, 9 [email protected] 7. tutorials, cheatsheets, blogs, feature articles, source code and more. 9 781934 238752 $ Sponsorship Opportunities “DZone is a developer’s dream,” says PC Magazine. [email protected] Copyright © 2010 DZone, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, Version 1.0 photocopying, or otherwise, without prior written permission of the publisher.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.