poniedziałek, marca 31, 2014

Unit Tests in Tibco

  • Replace Global Variables in runtime using XML file crafted per test environment/project.
  • Read processes from Test folder of BW project repository
  • For each called process gather thrown errors/assertions
  • Return simple report containing process names and execution status: OK, ERROR (with stacktrace)
  • If you run this sequence on component startup and integrate with logging subsystem/framework, you will get unit tests run on every deployment


How to override Tibco BW Global Variables in runtime

com.tibco.xml.xdata.xpath.Variable v = com.tibco.pe.core.Engine.getDeployedVarsVariable("DEFAULT_PROJECT");
com.tibco.xml.datamodel.XiNode gvNode =
com.tibco.xml.datamodel.XiParserFactory.newInstance().parse(new org.xml.sax.InputSource( new StringReader(vars) ));
java.lang.reflect.Field f = v.getClass().getDeclaredField("mValue");
f.setAccessible(true);
f.set(v, gvNode);

środa, marca 26, 2014

Run Apache Kafka on Windows

Install Cygwin and modify Unix script kafka-run-class.sh:

export KAFKA_HOME="/cygdrive/c/infrastructure/kafka_2.9.2-0.8.1"
base_dir=$KAFKA_HOME
CLASSPATH="."

...

if [ -z "$SCALA_VERSION" ]; then
SC_JAR=$(realpath `find $KAFKA_HOME/libs -name scala-library*.jar` --relative-to $KAFKA_HOME/libs)
SCALA_VERSION=$(echo $SC_JAR | cut -d- -f3 | sed -e 's/\.jar//')
echo "SCALA_VERSION is $SCALA_VERSION"
fi

...

# Log4j settings
if [ -z "$KAFKA_LOG4J_OPTS" ]; then
  LOG4J_FILE=`cygpath -p -w $base_dir/config/tools-log4j.properties`
  KAFKA_LOG4J_OPTS="-Dlog4j.configuration=$LOG4J_FILE"
fi

...

CLASSPATH=`cygpath -w -p $CLASSPATH`
echo "CLASSPATH is $CLASSPATH"

# Which java to use
if [ -z "$JAVA_HOME" ]; then
  JAVA="java"
else
  JAVA="$JAVA_HOME/bin/java"
fi

...

else
  cmd /c $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
fi

wtorek, marca 11, 2014

Konserwacja blatu z kwarcogranitu

Czy blat Technistone może zmieniać kolor przy normalnym kuchennym użyciu ciepłych przedmiotów lub gorących z podkładkami? W przypadku zanieczyszczeń obecnych między polerowaną powierzchnią blatu a ściśle przylegającym ciepłym przedmiotem może nastąpić efekt wprasowania zanieczyszczeń (jak nadruk termiczny w drukarce laserowej). Co z tym zrobić? Wyczyścić blat wycieralną gąbką Jan Niezbędny albo zmywakiem z gąbką. Czysty blat najlepiej zaimpregnować preparatem Bellinzoni Idea Gold/Dark, powstanie polimerowa warstwa ochronna. Do zabezpieczenia zlewozmywaku z technicznego granitu można użyć Block D-70.






Fajna butelka do karmienia niemowlaka

Tommee Tippee: w kształcie cyca, z odpowietrzaniem mleka (zapobiega kolce), ze wskaźnikiem temperatury mleka (malinowy: OK, ciemny fiolet: za zimne, różowy: za gorące).