1 / 16

Rozszerzenie standardowego API Javy

Rozszerzenie standardowego API Javy. Tematy. Wstęp Biblioteki Commons Sprawdzone w boju Przegląd wybranych bibliotek Docs. Commons. HttpClient IO Jelly Jexl JXPath Lang Latka Launcher Logging Math Modeler Net Pool Primitives Resources Transaction Validator VFS.

gypsy
Download Presentation

Rozszerzenie standardowego API Javy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rozszerzenie standardowego API Javy

  2. Tematy • Wstęp • Biblioteki Commons • Sprawdzone w boju • Przegląd wybranych bibliotek • Docs Marcin Stępień Seminarium SSR

  3. Commons • HttpClient • IO • Jelly • Jexl • JXPath • Lang • Latka • Launcher • Logging • Math • Modeler • Net • Pool • Primitives Resources • Transaction • Validator • VFS • Attributes • BeanUtils • Betwixt • Chain • CLI • Codec • Collections • Configuration • Daemon • DBCP • DbUtils • Digester • Discovery • EL • Email • FileUpload Marcin Stępień Seminarium SSR

  4. Sprawdzone w boju Struts Hibernate Velocity Cactus Expression Language (EL) ...Spring etc. Sprawdzona implementacja wielu wzorców projektowych Marcin Stępień Seminarium SSR

  5. Zakres zastosowań Marcin Stępień Seminarium SSR

  6. BeanUtils • Łatwa w użyciu kontrola nad JavaBeans przy użyciu mechanizmu refleksji i introspekcji • Dynamic Beans • Dynamiczne generowanie JavaBeans • Operacje na kolekcjach JavaBean PropertyUtils.getSimpleProperty(Object bean, String name) PropertyUtils.getIndexedProperty(Object bean, String name, int index) PropertyUtils.getMappedProperty(Object bean, String name, String key) DynaBean employee = ...; // Details depend on which // DynaBean implementation you use String firstName = (String) employee.get("firstName"); Address homeAddress = (Address) employee.get("address", "home"); Object subordinate = employee.get("subordinate", 2); BeanPropertyValueEqualsPredicate predicate = new BeanPropertyValueEqualsPredicate( "activeEmployee", Boolean.FALSE ); CollectionUtils.filter( peopleCollection, predicate ); Marcin Stępień Seminarium SSR

  7. BeanUtils - ResultSetDynaBean ResultSet wrapper dla DynaBean Connection conn = ...; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery ("select account_id, name from customers"); Iterator rows = (new ResultSetDynaClass(rs)).iterator(); while (rows.hasNext()) { DynaBean row = (DynaBean) rows.next(); System.out.println("Account number is " + row.get("account_id") + " and name is " + row.get("name")); } rs.close(); stmt.close(); User guide Marcin Stępień Seminarium SSR

  8. dbutils • Pomoc przy kodowaniu JDBC • BeanProcessor.toBean() • mapColumnsToProperties() Marcin Stępień Seminarium SSR

  9. email // Create the email message HtmlEmail email = new HtmlEmail(); email.setHostName("mail.myserver.com"); email.addTo("jdoe@somewhere.org", "John Doe"); email.setFrom("me@apache.org", "Me"); email.setSubject("Test email with inline image"); // embed the image and get the content id URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif"); String cid = email.embed(url, "Apache logo"); // set the html message email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>"); // set the alternative message email.setTextMsg("Your email client does not support HTML messages"); // send the email email.send(); • Nadbudowa Java Mail API Marcin Stępień Seminarium SSR

  10. Net • Niskopoziomowa implementacja protokołów internetowych do wykorzystania po stronie klienta • FTP • NNTP • SMTP • POP3 • Telnet • TFTP • Finger • Whois • rexec/rcmd/rlogin • Time (rdate) • Echo • Discard • NTP/SNTP client = new NNTPClient(); client.connect("aurelia.deine.net"); list = client.listNewsgroups(); if (client.isConnected()) client.disconnect(); Marcin Stępień Seminarium SSR

  11. IO InputStream in = new URL( "http://jakarta.apache.org" ).openStream(); try { InputStreamReader inR = new InputStreamReader( in ); BufferedReader buf = new BufferedReader( inR ); String line; while ( ( line = buf.readLine() ) != null ) { System.out.println( line ); } } finally { in.close(); } long freeSpace = FileSystemUtils.freeSpace("C:/"); InputStream in = new URL( "http://jakarta.apache.org" ).openStream(); try { System.out.println( IOUtils.toString( in ) ); } finally { IOUtils.closeQuietly(in); } Marcin Stępień Seminarium SSR

  12. Launcher Run.bat java –classpath ImprezaArtystyczna.jar;swt.jar;jface.jar;runtime.jar;boot.jar;osgi.jar -Djava.library.path=. marcin.imprezaart.OknoMain Run.sh Run ..... Ant task Generowanie ścieżek dostępu Dobór bibliotek Download bibliotek Uruchomienie aplikacji Marcin Stępień Seminarium SSR

  13. Math • Statystyka • Algebra liniowa, rozwiązywanie układów równań liniowych • Rozkład prawdopodobieństwa • Ułamki • Generowanie losowych ciągów, liczb, ciągów bezpiecznych kryptograficznie • Liczby zespolone • Analiza matematyczna, szukanie miejsc zerowych • Zbiory przydatnych funkcji Marcin Stępień Seminarium SSR

  14. Transactions • Implementacja Transakcji • Kolekcje z transakcjami • Transakcyjny dostęp do plików • Zamki wielopoziomowe • Wykrywanie zakleszczeń • Wraperry Map (transakcyjny dostęp do kolekcji implementujących java.util.Map) • TransactionalMapWrapper • OptimisticMapWrapper • PessimisticMapWrapper • Dobra dokumentacja : ) deadlocks wrappery Marcin Stępień Seminarium SSR

  15. Validator • Deklaratywna walidacja (xml) • Validujące metody obiektowe np. • CreditCardValidator • DateValidator • EmailValidator • Field • Form • Również Biblioteka JavaScriptu do ponownego użycia • validateCreditCard.js • validateDate.js • validateEmail.js • validateFloat.js • validateFloatRange.js • validateInteger.js itd... Marcin Stępień Seminarium SSR

  16. Docs • Jakarta Commons Online Bookshelf • Jakarta Commons Cookbook • http://www.javaworld.com/ • http://jakarta.apache.org/commons/ • http://www.devx.com/Java • http://wiki.apache.org/jakarta-commons/FrontPage Marcin Stępień Seminarium SSR

More Related