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

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
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
 
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
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Último (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
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
 
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
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

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? ●