czwartek, 2 czerwca 2016

F5 VPN Client under Linux

It looks like many places have outdated or plain wrong instructions about connecting to f5 VPN under Linux is a bit outdated so a quick reminder:
  1. Ignore web plugin/extension, it probably won't work anyway under 64 bit browser with disabled NPAPI support
  2. download and extract https://vpn.somehost.com/public/download/linux_sslvpn.tgz
  3. execute Install.sh
  4. f5fpc --start -t vpn.somehost.com

piątek, 29 maja 2015

Most common (anti-)pattern

I guess that by now everyone knows that Singleton is considered mostly harmful and definitely overused. Many people have said that it hinders testing but there is nothing more convincing that unit test that completes fine on its own but mysteriously fails when whole suite is launched. It looks strange when even after doing reset() and adding new when() rules the mock created by Mockito behaves in wrong way. It is a lot less mysterious when you find a singleton that was injected with mock object on class load and ignores the fact that whole Spring context was created and destroyed multiple times ever since.

czwartek, 26 marca 2015

ORA-00932: inconsistent datatypes: expected - got (N)CLOB

If you are modifying query and suddenly started getting ORA-00932 out of nowhere, remember that this error comes not only from comparing CLOB column with something else but also from using distinct on table that has CLOB columns.

czwartek, 29 stycznia 2015

Spammers hall of (f|sh)ame

I decided to reward  all spammers that are able to bypass gmail filters with place on this short list. It helps me remember which companies can't afford to pay for real marketing, have inferior product and think that best way to gain a customer is to waste their tame and annoy them.

  • Volkswagen Group Polska Sp. z o.o. 
  • TERG S.A. (Media Expert)
  • T-MOBILE POLSKA S. A. +1

piątek, 17 października 2014

Spring component-scan classpath pitfall

There is one non-intuitive behavior with Spring's component-scan - it works on _current_ classpath. For example:

Project A

context-a.xml:

    <component-scan package="x">


Project B

context-a.xml:

    <import resource="classpath:/a.xml" /> 

    <component-scan package="x.y">


This will load all components from  package "x.y" already at <import> tag.  It can lead to very strange errors in bigger projects (sudden appearance of "NoSuchBeanDefinitionException: No qualifying bean of type" errors) and  trying to cherry-pick used imports/components might be hard or even impossible.
There is similar issue with integration tests - Spring will scan all classes in package, including test files, for components. If you are using inner static classes to override context configuration spring will pick up all of them. And that problem might propagate if you are reusing test support code (<classifier>tests</classifier>). Lucky this one is easy to deal with: it is possible to filter it out:
<context:component-scan base-package="my.package" >
        <context:exclude-filter type="annotation" expression="org.springframework.context.annotation.Configuration" />
        <context:exclude-filter type="regex" expression=".*IT" />
        <context:exclude-filter type="regex" expression=".*Test" />
</context:component-scan>

piątek, 7 czerwca 2013

Unable to find a public constructor for class org.jboss.resteasy.core.AsynchronousDispatcher

Takim wspaniałym komunikatem wita nas próba zdeployowania prostej aplikacji używającej RestEasy na JBossa 7.1. Obejście jest proste ale mało wygodne. Trzeba wyłączyć automatyczne skanowanie w web.xml:
<context-param>
    <param-name>resteasy.scan</param-name>
    <param-value>false</param-value>
</context-param>
I ręcznie podać usługi np.:
<context-param>
    <param-name>resteasy.resources</param-name>
    <param-value>net.purevirtual.web.MyService</param-value>
</context-param>
Inne opcje konfiguracyjne są w dokumentacji . A skoro już jesteśmy przy temacie AS: http://stackoverflow.com/questions/12511192/replaced-with-quot-when-loading-page Tak, nie ma to jak wersja serwera aplikacji z dopiskiem Final, która od czasu do czasu kompletnie rozwala serwowany kod JavaScript

piątek, 22 lutego 2013

File extensions recognized by Drools

Just in case anybody else needs it. I didn't know why KieRepository didn't pick up one file, of course I had a typo in file extension.

typeextensions
Drools Rule Language.drl
Drools XML Rule Language.xdrl
Drools DSL.dsl
Drools DSL Rule.dslr
Drools Rule Flow Language.rf
jBPM BPMN2 Language.bpmn, .bpmn2
Decision Table.xls
Binary Package.pkg
Drools Business Rule Language.brl
Change Set.xcs
XSD.xsd
Predictive Model Markup Language.pmml
Knowledge Descriptor.descr
List is copied from org.drools.builder.ResourceType.