SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Kommons: reusable objects for j2me


Antonio Terreno

Mobile Development
Fluidtime DataServices GmbH

info@java2me.org
http://kommons.java2me.org/
Long-term Goal
    To have a collection of J2ME classes
●

        Stable
    –
        Easy to use, to integrate
    –
        Tested (j2meunit)
    –
        Open
    –
        Well coded
    –
Kommons logging
    Logger “like” log4j
●

        Appenders
    –
             Console
         ●

             Bluetooth
         ●

             Http
         ●


        Debugging levels
    –
             Enabled/Disabled
         ●

             Debug level
         ●

             Info level
         ●


        Easy to use
    –
             Perfect integration with Log4E
         ●
Kommons logging
private final static Logger logger =
   Logger.getLogger(quot;LoggerExampleMIDletquot;);

  protected void startApp() {
    logger.addAppender(AppenderType.CONSOLE);
    logger.addAppender(AppenderType.PHONE);
    logger.setDebugEnabled(true);

    if (logger.isDebugEnabled()) {
        logger.debug(quot;startApp() - startquot;);
    }

    initDisplay();
Midp Worker
    Before/After pattern simple implementation
●



public abstract class MIDPWorker extends TimerTask

    public final void run() {
      before();

      try {
          doWork();
      } catch (LogicalException e) {
          doCatch(e);
      } finally {
          after();
ISO helpers
    IsoDate Helper
●

        IsoDate parser for ISO 8601 format
    –
        http://www.w3.org/TR/xmlschema-2/#date
    –
    –
    IsoDuration Helper
●

        IsoDuration parser for ISO 8601 format.
    –
        http://www.w3.org/TR/xmlschema-2/#duration
    –
        IsoDuration format is (-)PnYnMnDTnHnMnS
    –
ISO helpers
    IsoDate Helper
●

        IsoDate parser for ISO 8601 format
    –
        http://www.w3.org/TR/xmlschema-2/#date
    –
    –
    IsoDuration Helper
●

        IsoDuration parser for ISO 8601 format.
    –
        http://www.w3.org/TR/xmlschema-2/#duration
    –
        IsoDuration format is (-)PnYnMnDTnHnMnS
    –
I/O
    Bluetooth
●

        A simple send & receive client
    –
             Needs your help! :-)
         ●

             Integration with BtFree??? Federico Paparoni???
         ●


    HTTP
●

        A complete http client (post/get)
    –
        URL encoding
    –
        Cookie auth supported
    –
        Easy parameters use
    –
Http example
 try {
    String xml = XMLAdapter.getInstance().toXML(msg);
    logger.debug(quot;Postingquot;, xml);
    xml = HttpClient.URLencode(xml);

   HttpClient httpClient = new HttpClient();
   String[][] params = {
         { quot;sXmlMobileRequestquot;, xml },
         { quot;userNamequot;, UserPropertiesWrapper.currentUser() },
      };

    String response = httpClient.post(Fluidtime.ENDPOINT +
quot;TimeWindow/update.actionquot;, params);
    msg = (Message) XMLAdapter.getInstance().fromXML(response);
 } catch (LogicalException e) {
    logger.debug(e);
The cache
    A persistence cache for MIDP 2.0
●




        save(PersistentObject e)
    –
        delete(PersistentObject e)
    –
        PersistentObject find(String id)
    –
        reset()
    –
        boolean isEmpty()
    –
RMS-xml cache
    Runtime cache:
●

        An hash table containing objects
    –
    Shutting down?
●

        Storing objects in xml format
    –
    Starting up?
●

        Retrive of the objects from the rms
    –
Problems
    How to retrive the objects in cache?
●

        EntityRecordMapping idea
    –
        It contains the reference from an Entity id and
    –
        Its Record Store Id

    How to find an object?
●

             1. in the runtime cache
         ●

             2. in the rms
         ●

             3. if found it will be putted on the cache & used
         ●
RMS-xml cache


Model

           Cache




                    E.R.
                             RMS
                   mapping
Benefits
    Possibility to store any kind of object
●

    Possibility to store collection of objects
●
Next Steps of Action
    Involve developers
●

    Merge other interesting project into
●

    Javadoc
●

    Website
●

    Licence
●

    Junit testing
●

    Receive feedbacks
●

    ...
●
Credits to
    Alberto Lagna (CTO Fluidtime GmbH)
●

    Jean-Marie Dautelle (Javolution.org)
●

    Fluidtime GmbH
●

    Java2me.org forum :-)
●

    Jmdf of course!
●
Q&A
    Questions? Suggestions?
●

Más contenido relacionado

La actualidad más candente

WebTalk - Implementing Web Services with a dedicated Java daemon
WebTalk - Implementing Web Services with a dedicated Java daemonWebTalk - Implementing Web Services with a dedicated Java daemon
WebTalk - Implementing Web Services with a dedicated Java daemonGeert Van Pamel
 
Asynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with NettyAsynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with NettyErsin Er
 
Preparation for mit ose lab4
Preparation for mit ose lab4Preparation for mit ose lab4
Preparation for mit ose lab4Benux Wei
 
Netty from the trenches
Netty from the trenchesNetty from the trenches
Netty from the trenchesJordi Gerona
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Evel xf
 
I/O, You Own: Regaining Control of Your Disk in the Presence of Bootkits
I/O, You Own: Regaining Control of Your Disk in the Presence of BootkitsI/O, You Own: Regaining Control of Your Disk in the Presence of Bootkits
I/O, You Own: Regaining Control of Your Disk in the Presence of BootkitsCrowdStrike
 
Monitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachineMonitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachineWooga
 
Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programsBadoo Development
 
Kafka monitoring and metrics
Kafka monitoring and metricsKafka monitoring and metrics
Kafka monitoring and metricsTouraj Ebrahimi
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eveguest91855c
 
Adding replication protocol support for psycopg2
Adding replication protocol support for psycopg2Adding replication protocol support for psycopg2
Adding replication protocol support for psycopg2Alexander Shulgin
 
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...Docker, Inc.
 
Centralized + Unified Logging
Centralized + Unified LoggingCentralized + Unified Logging
Centralized + Unified LoggingGabor Kozma
 
Jersey framework
Jersey frameworkJersey framework
Jersey frameworkknight1128
 
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...Red Hat Developers
 

La actualidad más candente (20)

WebTalk - Implementing Web Services with a dedicated Java daemon
WebTalk - Implementing Web Services with a dedicated Java daemonWebTalk - Implementing Web Services with a dedicated Java daemon
WebTalk - Implementing Web Services with a dedicated Java daemon
 
Asynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with NettyAsynchronous, Event-driven Network Application Development with Netty
Asynchronous, Event-driven Network Application Development with Netty
 
The basics of fluentd
The basics of fluentdThe basics of fluentd
The basics of fluentd
 
Preparation for mit ose lab4
Preparation for mit ose lab4Preparation for mit ose lab4
Preparation for mit ose lab4
 
Netty from the trenches
Netty from the trenchesNetty from the trenches
Netty from the trenches
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
 
I/O, You Own: Regaining Control of Your Disk in the Presence of Bootkits
I/O, You Own: Regaining Control of Your Disk in the Presence of BootkitsI/O, You Own: Regaining Control of Your Disk in the Presence of Bootkits
I/O, You Own: Regaining Control of Your Disk in the Presence of Bootkits
 
Monitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachineMonitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachine
 
Fluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log ManagementFluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log Management
 
Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programs
 
Loom and concurrency latest
Loom and concurrency latestLoom and concurrency latest
Loom and concurrency latest
 
Prometheus Storage
Prometheus StoragePrometheus Storage
Prometheus Storage
 
Kafka monitoring and metrics
Kafka monitoring and metricsKafka monitoring and metrics
Kafka monitoring and metrics
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
 
Adding replication protocol support for psycopg2
Adding replication protocol support for psycopg2Adding replication protocol support for psycopg2
Adding replication protocol support for psycopg2
 
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
How and Why Prometheus' New Storage Engine Pushes the Limits of Time Series D...
 
Centralized + Unified Logging
Centralized + Unified LoggingCentralized + Unified Logging
Centralized + Unified Logging
 
Jersey framework
Jersey frameworkJersey framework
Jersey framework
 
Fluentd meetup
Fluentd meetupFluentd meetup
Fluentd meetup
 
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
How To Get The Most Out Of Your Hibernate, JBoss EAP 7 Application (Ståle Ped...
 

Destacado

心安平安
心安平安心安平安
心安平安Cola Cat
 
Interactions 12 Redux - Beyond the screen
Interactions 12 Redux - Beyond the screenInteractions 12 Redux - Beyond the screen
Interactions 12 Redux - Beyond the screenJason Mesut
 
Mobile learning in formal education or: How to train a trojan horse
Mobile learning in formal education or: How to train a trojan horseMobile learning in formal education or: How to train a trojan horse
Mobile learning in formal education or: How to train a trojan horseBenjamin Jörissen
 
SASPAC 2011 and beyond - BURISA Conference 13.05.11
SASPAC 2011 and beyond - BURISA Conference 13.05.11SASPAC 2011 and beyond - BURISA Conference 13.05.11
SASPAC 2011 and beyond - BURISA Conference 13.05.11alewis
 
10min mobile-app
10min mobile-app10min mobile-app
10min mobile-appeasychen
 
Presentation to CIPR local public services conference - October 2009
Presentation to CIPR local public services conference - October 2009Presentation to CIPR local public services conference - October 2009
Presentation to CIPR local public services conference - October 2009simonwakeman
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Ivo Jansch
 
Open Cultuur Data Masterclass #3 - Open State - Lex Slaghuis
Open Cultuur Data Masterclass #3 - Open State - Lex SlaghuisOpen Cultuur Data Masterclass #3 - Open State - Lex Slaghuis
Open Cultuur Data Masterclass #3 - Open State - Lex SlaghuisKennisland
 
Baliospena 1. gaia
Baliospena 1. gaiaBaliospena 1. gaia
Baliospena 1. gaiakatixa
 
PHP and the Cloud
PHP and the CloudPHP and the Cloud
PHP and the CloudIvo Jansch
 
Publizitate&HHPPSarrera1
Publizitate&HHPPSarrera1Publizitate&HHPPSarrera1
Publizitate&HHPPSarrera1katixa
 
Merkatu Ikerkuntza 2. Gaia
Merkatu Ikerkuntza 2. GaiaMerkatu Ikerkuntza 2. Gaia
Merkatu Ikerkuntza 2. Gaiakatixa
 
Android应用开发简介
Android应用开发简介Android应用开发简介
Android应用开发简介easychen
 

Destacado (20)

心安平安
心安平安心安平安
心安平安
 
Pp úvod do 1 kor
Pp   úvod do 1 korPp   úvod do 1 kor
Pp úvod do 1 kor
 
Icon in iphone itouch
Icon in iphone itouchIcon in iphone itouch
Icon in iphone itouch
 
Interactions 12 Redux - Beyond the screen
Interactions 12 Redux - Beyond the screenInteractions 12 Redux - Beyond the screen
Interactions 12 Redux - Beyond the screen
 
Visual communication
Visual communicationVisual communication
Visual communication
 
Gno
GnoGno
Gno
 
Mobile learning in formal education or: How to train a trojan horse
Mobile learning in formal education or: How to train a trojan horseMobile learning in formal education or: How to train a trojan horse
Mobile learning in formal education or: How to train a trojan horse
 
SASPAC 2011 and beyond - BURISA Conference 13.05.11
SASPAC 2011 and beyond - BURISA Conference 13.05.11SASPAC 2011 and beyond - BURISA Conference 13.05.11
SASPAC 2011 and beyond - BURISA Conference 13.05.11
 
10min mobile-app
10min mobile-app10min mobile-app
10min mobile-app
 
Presentation to CIPR local public services conference - October 2009
Presentation to CIPR local public services conference - October 2009Presentation to CIPR local public services conference - October 2009
Presentation to CIPR local public services conference - October 2009
 
Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)Dynamic Languages In The Enterprise (4developers march 2009)
Dynamic Languages In The Enterprise (4developers march 2009)
 
Open Cultuur Data Masterclass #3 - Open State - Lex Slaghuis
Open Cultuur Data Masterclass #3 - Open State - Lex SlaghuisOpen Cultuur Data Masterclass #3 - Open State - Lex Slaghuis
Open Cultuur Data Masterclass #3 - Open State - Lex Slaghuis
 
Baliospena 1. gaia
Baliospena 1. gaiaBaliospena 1. gaia
Baliospena 1. gaia
 
Prezentacia
PrezentaciaPrezentacia
Prezentacia
 
PHP and the Cloud
PHP and the CloudPHP and the Cloud
PHP and the Cloud
 
Publizitate&HHPPSarrera1
Publizitate&HHPPSarrera1Publizitate&HHPPSarrera1
Publizitate&HHPPSarrera1
 
Merkatu Ikerkuntza 2. Gaia
Merkatu Ikerkuntza 2. GaiaMerkatu Ikerkuntza 2. Gaia
Merkatu Ikerkuntza 2. Gaia
 
Trojica
TrojicaTrojica
Trojica
 
Android应用开发简介
Android应用开发简介Android应用开发简介
Android应用开发简介
 
Herodesov chram
Herodesov chramHerodesov chram
Herodesov chram
 

Similar a Kommons

Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry PiGrâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry PiJérémy Derussé
 
Whoops! where did my architecture go?
Whoops! where did my architecture go?Whoops! where did my architecture go?
Whoops! where did my architecture go?Oliver Gierke
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operationsgrim_radical
 
Crash dump analysis - experience sharing
Crash dump analysis - experience sharingCrash dump analysis - experience sharing
Crash dump analysis - experience sharingJames Hsieh
 
Developing web apps using Erlang-Web
Developing web apps using Erlang-WebDeveloping web apps using Erlang-Web
Developing web apps using Erlang-Webfanqstefan
 
Taking Jenkins Pipeline to the Extreme
Taking Jenkins Pipeline to the ExtremeTaking Jenkins Pipeline to the Extreme
Taking Jenkins Pipeline to the Extremeyinonavraham
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingFelix Meschberger
 
.NET @ apache.org
 .NET @ apache.org .NET @ apache.org
.NET @ apache.orgTed Husted
 
Logging for Production Systems in The Container Era
Logging for Production Systems in The Container EraLogging for Production Systems in The Container Era
Logging for Production Systems in The Container EraSadayuki Furuhashi
 
Google Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and BeyondGoogle Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and Beyonddion
 
Terracotta Ch'ti Jug
Terracotta Ch'ti JugTerracotta Ch'ti Jug
Terracotta Ch'ti JugCh'ti JUG
 
A new execution model for Nashorn in Java 9
A new execution model for Nashorn in Java 9A new execution model for Nashorn in Java 9
A new execution model for Nashorn in Java 9Marcus Lagergren
 
Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)Itzik Kotler
 
Qtp92 Presentation
Qtp92 PresentationQtp92 Presentation
Qtp92 Presentationa34sharm
 
[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cool[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cooljavablend
 

Similar a Kommons (20)

Grizzly 20080925 V2
Grizzly 20080925 V2Grizzly 20080925 V2
Grizzly 20080925 V2
 
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry PiGrâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
 
Whoops! where did my architecture go?
Whoops! where did my architecture go?Whoops! where did my architecture go?
Whoops! where did my architecture go?
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operations
 
Crash dump analysis - experience sharing
Crash dump analysis - experience sharingCrash dump analysis - experience sharing
Crash dump analysis - experience sharing
 
MeteorJS Meetup
MeteorJS MeetupMeteorJS Meetup
MeteorJS Meetup
 
Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
 
Developing web apps using Erlang-Web
Developing web apps using Erlang-WebDeveloping web apps using Erlang-Web
Developing web apps using Erlang-Web
 
Taking Jenkins Pipeline to the Extreme
Taking Jenkins Pipeline to the ExtremeTaking Jenkins Pipeline to the Extreme
Taking Jenkins Pipeline to the Extreme
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with Sling
 
.NET @ apache.org
 .NET @ apache.org .NET @ apache.org
.NET @ apache.org
 
Introduction to Apache Beam
Introduction to Apache BeamIntroduction to Apache Beam
Introduction to Apache Beam
 
Logging for Production Systems in The Container Era
Logging for Production Systems in The Container EraLogging for Production Systems in The Container Era
Logging for Production Systems in The Container Era
 
Google Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and BeyondGoogle Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and Beyond
 
Terracotta Ch'ti Jug
Terracotta Ch'ti JugTerracotta Ch'ti Jug
Terracotta Ch'ti Jug
 
A new execution model for Nashorn in Java 9
A new execution model for Nashorn in Java 9A new execution model for Nashorn in Java 9
A new execution model for Nashorn in Java 9
 
Log4j2
Log4j2Log4j2
Log4j2
 
Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)
 
Qtp92 Presentation
Qtp92 PresentationQtp92 Presentation
Qtp92 Presentation
 
[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cool[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cool
 

Más de Antonio Terreno

Serverless conference-labrador-at-2018
Serverless conference-labrador-at-2018Serverless conference-labrador-at-2018
Serverless conference-labrador-at-2018Antonio Terreno
 
Blend it up - leancamp london presentation
Blend it up - leancamp london presentationBlend it up - leancamp london presentation
Blend it up - leancamp london presentationAntonio Terreno
 
Agiler without a schema @forward
Agiler without a schema @forwardAgiler without a schema @forward
Agiler without a schema @forwardAntonio Terreno
 
J2Me Il Micro Mondo Java
J2Me Il Micro Mondo JavaJ2Me Il Micro Mondo Java
J2Me Il Micro Mondo JavaAntonio Terreno
 
Domain Driven Design Javaday Roma2007
Domain Driven Design Javaday Roma2007Domain Driven Design Javaday Roma2007
Domain Driven Design Javaday Roma2007Antonio Terreno
 
Jc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno FluidtimeJc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno FluidtimeAntonio Terreno
 
From Amber To Green in Four Weeks
From Amber To Green in Four WeeksFrom Amber To Green in Four Weeks
From Amber To Green in Four WeeksAntonio Terreno
 
Importance Of Being Driven
Importance Of Being DrivenImportance Of Being Driven
Importance Of Being DrivenAntonio Terreno
 

Más de Antonio Terreno (12)

Serverless conference-labrador-at-2018
Serverless conference-labrador-at-2018Serverless conference-labrador-at-2018
Serverless conference-labrador-at-2018
 
Blend it up - leancamp london presentation
Blend it up - leancamp london presentationBlend it up - leancamp london presentation
Blend it up - leancamp london presentation
 
Programmer Anarchy
Programmer AnarchyProgrammer Anarchy
Programmer Anarchy
 
Socket.io
Socket.ioSocket.io
Socket.io
 
Agiler without a schema @forward
Agiler without a schema @forwardAgiler without a schema @forward
Agiler without a schema @forward
 
Mongo db
Mongo dbMongo db
Mongo db
 
J2Me Il Micro Mondo Java
J2Me Il Micro Mondo JavaJ2Me Il Micro Mondo Java
J2Me Il Micro Mondo Java
 
Domain Driven Design Javaday Roma2007
Domain Driven Design Javaday Roma2007Domain Driven Design Javaday Roma2007
Domain Driven Design Javaday Roma2007
 
Jc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno FluidtimeJc06 Antonio Terreno Fluidtime
Jc06 Antonio Terreno Fluidtime
 
From Amber To Green in Four Weeks
From Amber To Green in Four WeeksFrom Amber To Green in Four Weeks
From Amber To Green in Four Weeks
 
Time Boxing
Time BoxingTime Boxing
Time Boxing
 
Importance Of Being Driven
Importance Of Being DrivenImportance Of Being Driven
Importance Of Being Driven
 

Último

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Último (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

Kommons

  • 1. Kommons: reusable objects for j2me Antonio Terreno Mobile Development Fluidtime DataServices GmbH info@java2me.org http://kommons.java2me.org/
  • 2. Long-term Goal To have a collection of J2ME classes ● Stable – Easy to use, to integrate – Tested (j2meunit) – Open – Well coded –
  • 3. Kommons logging Logger “like” log4j ● Appenders – Console ● Bluetooth ● Http ● Debugging levels – Enabled/Disabled ● Debug level ● Info level ● Easy to use – Perfect integration with Log4E ●
  • 4. Kommons logging private final static Logger logger = Logger.getLogger(quot;LoggerExampleMIDletquot;); protected void startApp() { logger.addAppender(AppenderType.CONSOLE); logger.addAppender(AppenderType.PHONE); logger.setDebugEnabled(true); if (logger.isDebugEnabled()) { logger.debug(quot;startApp() - startquot;); } initDisplay();
  • 5. Midp Worker Before/After pattern simple implementation ● public abstract class MIDPWorker extends TimerTask public final void run() { before(); try { doWork(); } catch (LogicalException e) { doCatch(e); } finally { after();
  • 6. ISO helpers IsoDate Helper ● IsoDate parser for ISO 8601 format – http://www.w3.org/TR/xmlschema-2/#date – – IsoDuration Helper ● IsoDuration parser for ISO 8601 format. – http://www.w3.org/TR/xmlschema-2/#duration – IsoDuration format is (-)PnYnMnDTnHnMnS –
  • 7. ISO helpers IsoDate Helper ● IsoDate parser for ISO 8601 format – http://www.w3.org/TR/xmlschema-2/#date – – IsoDuration Helper ● IsoDuration parser for ISO 8601 format. – http://www.w3.org/TR/xmlschema-2/#duration – IsoDuration format is (-)PnYnMnDTnHnMnS –
  • 8. I/O Bluetooth ● A simple send & receive client – Needs your help! :-) ● Integration with BtFree??? Federico Paparoni??? ● HTTP ● A complete http client (post/get) – URL encoding – Cookie auth supported – Easy parameters use –
  • 9. Http example try { String xml = XMLAdapter.getInstance().toXML(msg); logger.debug(quot;Postingquot;, xml); xml = HttpClient.URLencode(xml); HttpClient httpClient = new HttpClient(); String[][] params = { { quot;sXmlMobileRequestquot;, xml }, { quot;userNamequot;, UserPropertiesWrapper.currentUser() }, }; String response = httpClient.post(Fluidtime.ENDPOINT + quot;TimeWindow/update.actionquot;, params); msg = (Message) XMLAdapter.getInstance().fromXML(response); } catch (LogicalException e) { logger.debug(e);
  • 10. The cache A persistence cache for MIDP 2.0 ● save(PersistentObject e) – delete(PersistentObject e) – PersistentObject find(String id) – reset() – boolean isEmpty() –
  • 11. RMS-xml cache Runtime cache: ● An hash table containing objects – Shutting down? ● Storing objects in xml format – Starting up? ● Retrive of the objects from the rms –
  • 12. Problems How to retrive the objects in cache? ● EntityRecordMapping idea – It contains the reference from an Entity id and – Its Record Store Id How to find an object? ● 1. in the runtime cache ● 2. in the rms ● 3. if found it will be putted on the cache & used ●
  • 13. RMS-xml cache Model Cache E.R. RMS mapping
  • 14. Benefits Possibility to store any kind of object ● Possibility to store collection of objects ●
  • 15. Next Steps of Action Involve developers ● Merge other interesting project into ● Javadoc ● Website ● Licence ● Junit testing ● Receive feedbacks ● ... ●
  • 16. Credits to Alberto Lagna (CTO Fluidtime GmbH) ● Jean-Marie Dautelle (Javolution.org) ● Fluidtime GmbH ● Java2me.org forum :-) ● Jmdf of course! ●
  • 17. Q&A Questions? Suggestions? ●