Recently we set up a Hudson continuous integration server at work. We are developing android apps and when I found out that Hudson had an Emma plugin I got excited. I found out about emma and android’s coverage reports. There was however one problem. Android’s <code>ant coverage</code> build will only output an html report. The hudson plugin requires an xml report.

To fix this I created a new build action in my build.xml. This is actually word for word what is in the coverage target with one minor change.

<target name="coverage-xml" depends="-set-coverage-classpath, -install-instrumented, install" description="Runs the tests against the instrumented code and generates code coverage report">
        <run-tests-helper emma.enabled="true">
        <extra-instrument-args>
            <arg value="-e" />
            <arg value="coverageFile" />
            <arg value="${emma.dump.file}" />
        </extra-instrument-args>
        </run-tests-helper>
        <echo>Downloading coverage file into project directory...</echo>
        <exec executable="${adb}" failonerror="true">
            <arg line="${adb.device.arg}" />
            <arg value="pull" />
            <arg value="${emma.dump.file}" />
            <arg value="coverage.ec" />
        </exec>
        <echo>Extracting coverage report...</echo>
        <emma>
            <report sourcepath="${tested.project.absolute.dir}/${source.dir}" verbosity="${verbosity}">
                <!-- TODO: report.dir or something like should be introduced if necessary -->
                <infileset dir=".">
                    <include name="coverage.ec" />
                    <include name="coverage.em" />
                </infileset>
                <!-- TODO: reports in other, indicated by user formats -->
                <xml outfile="coverage.xml" />
            </report>
        </emma>
        <echo>Cleaning up temporary files...</echo>
        <delete dir="${instrumentation.absolute.dir}" />
        <delete file="coverage.ec" />
        <delete file="coverage.em" />
        <echo>Saving the report file in ${basedir}/coverage/coverage.xml</echo>
    </target>

Here you can see the only real change to the target is this line:

<xml outfile="coverage.xml" />

as opposed to this

<html outfile="coverage.html" />

. Now we can output our coverage report to our workspace and feed it to the Hudson Emma plugin.

I know that its been a little while since Ive posted anything about anything on this site. Im hoping that this little tidbit of information can help some of you overcome obstacles when attempting to use kerberos login with AD 2008 and BO 3.1.

We recently upgraded our two domain controllers to Windows Server 2008 R2. The actual server upgrade went off with out a hitch (well, aside from some space issues). Where we ran into problems was logging into Business Objects. We received a cryptic error message that the “plugin could not log you in to Active Directory at this time”.

After digging around for a few hours on the web, trying just about every possible “fix” out there, we stumbled upon a simple fix that solved our problems in seconds. As it turns out Microsoft turned off encryption for use with kerberos. So the first step is to setup your SPN in active directory. To do this I followed these instructions: http://neverknewthat.wordpress.com/2009/05/14/kerberos/

I came up with this command on the domain controller
SETSPN.exe -A BOBJCentralMS/BOEServer CMSUser

After the SPN is setup, all that is left to do is go into Active Directory Users and Computers. Find the CMSUser account and go into Properties. Click the Account tab and scroll down in the scroll box to the checkbox “Use Kerberos DES encryption types for this account.” Un-check the checkbox and all your problems should be solved.

That should be it. Hopefully know all that you need to do is reset your Server Intelligence Agent and Tomcat server.