Neues Projekt ‚Bean Config‘

Also Spin-Off von beamer-tool (ja ich hoffe ich kann dort mal wieder etwas produktives tun) habe ich nun das Projekt Bean Configuration gestartet.

Es verbindet die einfache Benutzung von Java Beans mit der Mächtigkeit von Annotations.

Einfach ein Bean definieren, mit Annotations die einzelnen Felder versorgen ob es sich um optinale oder erforderliche Properties handelt und fertig.

Das ganze gecaste und Default-Value-Handling fällt weg und man kann sich auf seinen eigenen Code konzentrieren.
Ich hoffe der Code spricht für sich:

  1. package de.beanconfig.sample;
  2.  
  3. import de.beanconfig.BeanConfig;
  4.  
  5. public class SampleConfiguration implements BeanConfig {
  6.     @Required
  7.     public String myString;
  8.    
  9.     @Optional(defaultValue = "42")
  10.     private int myInt;
  11.  
  12.     @Optional(defaultValue = "42")
  13.     private Integer myInteger;
  14.    
  15.     public int getMyInt() {
  16.         return myInt;
  17.     }
  18.  
  19.     public Integer getMyInteger() {
  20.         return myInteger;
  21.     }
  22.  
  23.     public void setMyInteger(Integer myInteger) {
  24.         this.myInteger = myInteger;
  25.     }
  26. }
  1. package de.beanconfig.sample;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5.  
  6. import de.beanconfig.exceptions.PropertyNotFoundException;
  7. import de.beanconfig.factory.BeanConfigFactory;
  8.  
  9. public class SampleUsage {
  10.    
  11.     public static void main(String[] args) throws Exception{
  12.         SampleConfiguration aConfig = new SampleConfiguration();
  13.         File aFile = new File("sample.properties");
  14.    
  15.         BeanConfigFactory.getInstance().load(aFile, aConfig);
  16.        
  17.         System.out.println("MyString:\t" + aConfig.myString);
  18.         System.out.println("MyInt:\t\t" + aConfig.getMyInt());
  19.         System.out.println("MyInteger:\t" + aConfig.getMyInteger());
  20.        
  21.     }
  22. }

Jeder dürfte für eine J2SE-Anwendung sowas schonmal gebaut haben. Nur als fertige Bibliothek habe ich es nirgends gefunden. Daher fließt es als Teil von beamer-tool (und als Einstieg in die OSGi-Welt) als eigenständiges Projekt zurück an die Community.
Hoffentlich kann es jemand brauchen 😉

Schreibe einen Kommentar