BigVertiser Ads

Wednesday, March 27, 2013

JSONer

JSONer, is a one of my ART(Annotated Reflective Tool) projects. It extends a basic generic infrastructure, to allow JAVA instance custom serialization of any sort.

This project supports the serialization, and deserialization of Java instances to and from JSON text respectively.


  • JSONer is very simple to implement, it requires the jar in your project build path, and to annotate your JSON bean class with a JSON_Class annotation. Furthermore any member which needs to be serialized, or deserialized, MUST be annotated with a JSON_Field annotation.
  • Adding a new parser type is simpler then any other parser... you simply extend the JSON_TypeParser<YourType> specify your type, implement your serialization and deserialization, and specify the parser class type in the annotation of the specific field.
  • Adding support for generic type is also simpler then any other parser any List<?> or Map<?,?> first generation generic types, if to be more specific List<List<Item>> is not supported, while List<AnyItem> is supported, and in order to solve this sort of issue, wrap your List<Item> and turn it into AnyItem. (and don't forget to annotate the class type and member...)
    (I must extend that unlike my ReXML, this implementation only works for the specified type. if inherited type are stored in the list, they would be down parsed(casted) to the parent class type defined in the annotation!!)
  • Don't worry about nested JSON_Class types, if the class type of a members are annotated correctly, the parser would handle it.
  • You may also configure whether a member is optional, and use the same object for deserializing multiple different texts.
The only thing I didn't (want to get into) implement is a recursive handling... it will be a pain in the S!

Friday, June 1, 2012

Projects Hierarchy

Some input about projects hierarchy...

Most programmers I've talked to does not understand the positive effects a multi-project architecture can provide, I do not intend to get too much into details here, but lets just name some in short:

  • Eliminates dumb uses of Dual-Coupling.
  • Forces development in layers, thus enabling easy cross projects refactoring.
  • Forces modular coding.
  • Following the above, with proper syntax rules, redundant's bugs, spaghetti code, language abuse, code duplications, and more!  
So here is an abstract view of my entire projects hierarchy layers, I would not get into details, as there are nearly 200 projects involved, and it goes cross platforms, Android, J2ME, J2EE,J2SE...


You like this, +1 it!.

DBator

DBator is a generic instance to DataBase development infrastructure utility, something like hibernate only far simpler, which allows with a bit of code, to define classes as Database rows, and read and write objects instances from and to the Database respectively, it supports partial fields reading and writing for performance.

DBator can read and write from and to sub-tables, if it has been told to.

DBator is a part of what we call ART(Annotation Reflective Technology) projects.

Editall

Editall a generic instance editing development infrastructure utility, which allows with a bit of code, to define classes as Editing beans, where each field in the class may be edited according to its specification, thus allowing an auto-generated generic editing panel, which also to updates the values of the instance supplied for editing.

Editall is designed in such manner that developers may extend it, and change the editing models, panels, and dialogs, as they see fit.

Editall also supports external editors, so a developer may create external importers, to import specific types, which cannot be edited with the default models supported, for example: Image importer, File chooser, etc.. 

Editall is a part of what we call ART(Annotation Reflective Technology) projects

Thursday, May 31, 2012

ReXML

ReXML a generic instance to XML parsing infrastructure utilitywhich allows with a bit of code, to define classes as XML elements, and perform serialization and deserialization of Java objects to XML String.

ReXML allows a developer to create a specific type parser, to support new/unknown types.

ReXML is a part of what we call ART(Annotation Reflective Tool) projects

Trixter

An intelligent plugin-able framework, which allows a composition of any type of application(tested with Servlets and Desktop apps), with the goal to allow the end developer to write as least code as possible, and to allow a wide variety of implementations which may be developed from scratch, for any sort of application.

Trixter is based on Maven build mechanizem, it uses a smarter dependency resolution mechanizem which loads and analyzes the dependencies pom files with my little friend ReXML. Trixter also take advantage of Maven local repository concept to resolve Trixter plugins, and their dependencies while making sure there are no overlapping class imports.

Trixter applications does not require any installation, there is a main configuration file, in which the plugins are defined alongside the repository url, and the rest is history.