Dec 26, 2015

JavaEE 7 blueprint example named cargo-tracker from Reza Rahman demoing the JavaEE 7 APIs


has setup an evolving application like the Pet store example for JavaEE 6 named
cargo-tracker.

This examples contains the JavaEE 7 API's in use. Here's the Video from the Devoxx Belgium ( on youtube ):



The homepage of cargo-tracker can be found here https://cargotracker.java.net/.

The Source-Code of the app is available in a subversion repository https://java.net/projects/cargotracker/sources/svn/show/tags/.

Since the project is managed by maven you can use any IDE you like with maven support like
Netbeans, Eclipse, IntelliJ, ...

Nov 17, 2015

nvidia updated the driver for Linux to be compatible with Xorg 1.18( which is ABI incompatible to the previous version )

Today I got a hint, that nvidia has updated the driver to version 340.96 for linux 64 bit, with
support for Xorg 1.18.

Xorg 1.18 had an ABI incompatibility to the previous version, so I can upgrade the Xorg packages  back to the repos of Fedora 23.
Installing the new nvidia driver and the Gnome Desktop is back again.

( http://www.nvidia.com/download/driverResults.aspx/95165/en-us )

Nov 6, 2015

Updated an old FUJITSU CELSIUS Mobile H270 from Fedora 22 to Fedora 23

Now I upgraded the Notebook FUJITSU CELSIUS Mobile  from Fedora 22 to Fedora 23.

The upgrade was no problem with dnf:

I used the infos from here.


sudo dnf upgrade
sudo dnf install dnf-plugin-syastem-upgrade
sudo dnf system-upgrade download --releasever=23 --best
sudo dnf system-upgrade 

After the reboot into the new system, the troubles started for me. The problem is the old
Quadro FX 770M graphic card in this laptop.

The current NVidia driver 340.93 does not support the new ABI-Version of the Xorg 1.18, although
the compilation of the driver works.

After some searching I found a site, with backported xorg drivers for FC22, but this was a little problem and further searching got me to here.

The solution was also to downgrade to the Xorg 1.17 from Fedora 22 with

sudo dnf --releasever=22 downgrade xorg-x11-server-Xorg
This didn't work, since the other xorg-x11-drv-* Packages requested the Xorg 1.18 from Fedora 23.

So I erased all the mentioned packages to let the Xorg-Server downgrade, but then I didn't have any keyboard and mouse after the reboot.

I logged in via ssh ( since the Gnome-Login-Screen was visble ) and installed all the xorg-x11-drv Packages also from Fedora 22

sudo dnf --releasever=22 install xorg-x11-drv- ... 

After a recompile of the NVidia driver 340.93 and a reboot I got back the graphics login with keyboard and mouse :-)



[ewer@lxewer proc]$ cat /etc/*release*

Fedora release 23 (Twenty Three)

cat: /etc/lsb-release.d: Is a directory

NAME=Fedora

VERSION="23 (Workstation Edition)"

ID=fedora

VERSION_ID=23

PRETTY_NAME="Fedora 23 (Workstation Edition)"

ANSI_COLOR="0;34"

CPE_NAME="cpe:/o:fedoraproject:fedora:23"

HOME_URL="https://fedoraproject.org/"

BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Fedora"

REDHAT_BUGZILLA_PRODUCT_VERSION=23

REDHAT_SUPPORT_PRODUCT="Fedora"

REDHAT_SUPPORT_PRODUCT_VERSION=23

PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy

VARIANT="Workstation Edition"

VARIANT_ID=workstation

Fedora release 23 (Twenty Three)

Fedora release 23 (Twenty Three)

cpe:/o:fedoraproject:fedora:23




Nov 4, 2015

Oracle 12 client fails to compile Sources on Solaris 10 x86 with a dump

After installing the Oracle 12 client on a Solaris 10 x86 box and starting the compilation with
proc, proc immediately dumps a core during parse:

Pro*C/C++: Release 12.1.0.2.0 - Production on Wed Nov 4 10:25:09 2015

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

System default option values taken from: /export/home/oracle/product/12.1.0/client_2/precomp/admin/pcscfg.cfg

dbgc_init_all failed with ORA-48141
ORA-00600: internal error code, arguments: [17998], [2], [], [], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [17998], [2], [], [], [], [], [], [], [], [], [], []


----- Call Stack Trace -----
calling              call     entry                argument values in hex      
location             type     point                (? means dubious value)     
-------------------- -------- -------------------- ----------------------------
skgudmp()+106        call     FC7AB9C4             8042FB0 1 60 FCC277AC
kgeasi()+309         call     skgudmp()            87283C8 3 1 FD815EFE
pcgini()+680         call     kgeasi()             87283C8 8755D70 464E 2 1 0 2
                                                   0
pc2main()+1690       call     pcgini()             8044380 8044880 80444A0
                                                   80445D0 8043520 865FD20 0
                                                   80445F0
pcmain()+42          call     pc2main()            870DB48 0 0 A 870DE48
                                                   FEFC2BF4 FEF90690 80959EC
lpmcall()+977        call     pcmain()             870DB48 0 0 A 870DE48 86EA298
                                                   86E65E8 8045AA0
lpmpmai()+369        call     FC2284CC             8045B10 804612C 0 A 8045DC0
main()+296           call     lpmpmai()            8045B8C 8045BB0 A 8045D98
_start()+103         call     main()               A 8045D98 8045DC4 8045D8C

Call stack signature: 0xbae219e83bd8097a



call stack performance statistics:
total                  : 0.006000 sec
setup                  : 0.000000 sec
stack unwind           : 0.000000 sec
symbol translation     : 0.004000 sec
printing the call stack: 0.001000 sec
printing frame data    : 0.000000 sec
printing argument data : 0.000000 sec


After installing the before mentioned missing package SUNWeu8os the problem still occurred.

On a community-Page I got the hint for the problem:

There is a problem in using the diag-Directory:
First setting the access-mode to 777 on the diag  and after the first compile run setting it to
775 and the proc-Compiler from the Oracle 12 Client works again.


Oct 28, 2015

How to list the profiles of a maven project?

A maven project allows the cascading of projects by using dependencies and modules.


If the profiles are defined somewhere in the chain you can use maven itself to get the list:

$ mvn help:all-profiles
...
[INFO] --- maven-help-plugin:2.2:all-profiles (default-cli) @ aggregation ---
[INFO] Listing Profiles for Project: c.h.b:war:1.0.0-SNAPSHOT
  Profile Id: nexus (Active: true , Source: settings.xml)
  Profile Id: minify (Active: false , Source: pom)
  Profile Id: debug (Active: false , Source: pom)
Listing Profiles for Project: c.h:aggregation:pom:1.0.0-SNAPSHOT
  Profile Id: nexus (Active: true , Source: settings.xml)



Oct 22, 2015

narrowing down methodcompletion in NetBeans when you have CamleCase method names.

Netbeans as a Java IDE has the default completion mode to show all matching methods starting with
the already typed letters.


If you've a lot of methods, you can narrow down the selection by using the uppercase letters of the
CamleCase notation of the method.



Oct 21, 2015

How to add a hostname - ip-address to /etc/hosts inside a docker container

Docker is a container virtualization. This lets you create a image which can be started as a
LXC-Container.

To let the container communicate, e.g. a appserver like wildfly/tomcat with a database, you can
use the option '--link' to give a local name in the appserver container and the name of the container,
which provides the database.

The locale name of the database container is inserted into the local /etc/hosts and is accessible by
name in the data-source definition of an appserver.

Now I have to access an external WebService with https. The certificate is inserted into a java
keystore and the keystore is configured for the JVM-process. ( appserver )

When using the IP-addresse, there is an exception, that the domainname does not match.
Using the domainname of the external server, then it must be resolveable.

In my case this system is not maintained in a DNS-server and therefore I can't use the
--dns and --dns-search of the docker run command.

The first attempt, to add the hostname/IP during building of the image fails, because docker
constructs the /etc/hosts during startup of the container.

After a little searching in the options of docker run, I found the option --add-host=<host:ip>

Supplying this option during the startup of the container with
docker run --add-host=a.b.com:1.1.1.1 ......
add's this host to the containers /etc/hosts and can be used in the configuration inside the container.

Sep 29, 2015

How to create MySQL/MariaDB tables which have column-names conflicting with reserved words?

Today I've running a MariaDB instance as a docker image. This image is linked to a
running Wildfly-Instance, which has a DataSource configured to connect to the linked
MariaDB-Instance.

But on the deployment of an JEE artefact, JPA tries to create the database, but the
create-Statement fails, because one column is named KEY,which is a reserved word.


To create the table manually, you can copy the create-Statement from the Wildfly-Log and
escape the keyword-column with a back-tick "`" character.

for example:
create table tt ( Col1 varchar(255), `KEY` varchar(255) );

When you restart the deployment the table must not be created.
$WILDFLY_HOME/bin/jboss-cli.sh -c --controller host:9990
Authenticating against security realm: ManagementRealm
Username: admin
Password:
[standalone@bpc:9990 /] /deployment=mydeployment.war:redeploy()





Sep 25, 2015

Making/postprocessing Screenshots on Fedora 22 system.

The repositories have more tools. One is the gnome-screenhot. 

This has some shortcuts to captures screenshots:



But here you can not process the data.

You get some more options, when you start gnome-screenshot -i: 



 Here you can select your option and after the capture you can save the screenshot.



But this doesn't let you process the picture. Here shutter ( is also in the Fedora repo ) has more advantages.

After taking the screenshot of context-menus, windows, screen or areas, you can start an editor.

There you can Crop a selection and just save the interesting area:




Here is the result. gnome-screenshot -i with a timer of 3 seconds was used to capture the Shutter editor with the menu.
When you select Crop, the screen is darkened and you can select the area. After pressing "Return/Enter" or pressing the "Crop" Button you get just the selected area  and can overwrite the image.

How to insert mutliple rows in a LibreOffice Calc-Document at once?

On my Feodra 22,I have LibreOffice 4.4.5.2 installed from the Default-Repositories.

To insert a new row in a Calc ( Excel ) Document, the INSERT-Menu has a Rows item, which
adds one row.

But when you have to add more data, it is tedious to insert row by row.

It is much easier, but I wouldn't have found this option. See here.

Just select the number of rows you like to insert in the spreadsheet and do a right-click on the
left side of the document, where the row numbers are shown.




In the context-menu click Insert Rows Above  and you get a bunch of new rows.


Sep 23, 2015

Can not access docker container with "docker exec -it /bin/bash" - Just returns the host prompt on Fedora 22

I built a new docker container as a database server with the last mariadb source on docker.io/fedora:latest.

After building and installing the software, I started the database-server.

When I wanted to access the container with the
docker exec -it <container> /bin/bash

I just fell back to the host prompt.

A
journalctl -r 

and a warning-Alert showed some SE-Linux problems.

$ docker version
Client:
 Version:      1.8.1.fc22
 API version:  1.20
 Package Version: docker-1.8.1-3.git32b8b25.fc22.x86_64
 Go version:   go1.4.2
 Git commit:   32b8b25/1.8.1
 Built:      
 OS/Arch:      linux/amd64
Server:
 Version:      1.8.1.fc22
 API version:  1.20
 Package Version:
 Go version:   go1.4.2
 Git commit:   32b8b25/1.8.1
 Built:      
 OS/Arch:      linux/amd64


After reading the Ticket 1232803, I did a

sudo dnf reinstall docker-selinux

and after the reinstallation, I could access the container again.

Sep 16, 2015

How to avoid providing user/password credentials, when updating multiple git repositories?

Git repositories are storage areas for source-code and other files to keep a history of the files.

To provide access to multiple people, these repositories are kept somewhere centrally accessible.

In my current case the SCM-Manager is used.

To get a repository you do

cd <TargetDirectory>git clone http://scm-manager.example.com/scm/git/<repo>

This is asking for credentials if the access is controlled.

Now, when you are working with multiple repositories, I often do:

for d in `ls -1`; do
cd $d
git fetch --all -t --prune
cd ..
done 

to update all repositories.
But this requests the credentials for every repository.

You can already supply the credentials during the cloning in the URL with
http://<user>:<password>@scm-manager.example.com....

But, when the password has some special characters you've got a problem.

Git has support to store the credentials:

First store a helper in the config of each repository:

for d in `ls -1`; do
cd $d;
git config credential.helper 'store --file=/<path>/.git_credentials';
git config credential.http://scm-manager.example.com.username  <username>;
cd ..;
done

The first call requests a password and the following one's use the cached credential.

$ for d in `ls -1`; do  cd $d; git fetch --all -t --prune; cd ..; done
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
Fetching origin
$




Sep 15, 2015

How to shutdown jenkins CI-Server in a clean state.

Jenkins is a CI-Server, which can check a multitude of SCM-Repositories like ( CVS, Subversion, git with a plugin and much more with plugins ).

The  server can be started standalone with the jar-call:

HTTP_PORT=8181
export PATH=/usr/local/bin:$PATH
export JAVA_HOME=/usr/java1.7/
export JENKINS_BASEDIR=/home/jenkins
export JENKINS_HOME=$JENKINS_BASEDIR/jenkins
export JENKINS_OPTS=--httpPort=$HTTP_PORT
$JAVA_HOME/bin/java -jar $JENKINS_BASEDIR/bin/jenkins.war $JENKINS_OPTS

In the running Jenkins-Server, the configured jobs are executed.

Now you can activate a shutdown in the WEB-GUI and wait until all jobs are finished.

The other way to shut down is via the jenkins-cli.jar

$JAVA_HOME/bin/java -jar $JENKINS_HOME/war/WEB-INF/jenkins-cli.jar -s http://localhost:$HTTP_PORT safe-shutdown --username user --password pw

This call waits until jenkins has finished all jobs and shuts the server down.

Other useful commands can be fetched with

 $JAVA_HOME/bin/java -jar $JENKINS_HOME/war/WEB-INF/jenkins-cli.jar -s http://localhost:$HTTP_PORT help





Sep 2, 2015

RedHat created an OpenSource Font named Overpass

Yesterday I got the news about a new font named Overpass which was developed by RedHat.

You can get this font from http://overpassfont.org/.

I extracted the font on my Fedora 22 system under /usr/share/fonts/Overpass


ls /usr/share/fonts/Overpass/Overpass Bold Italic.ttf  Overpass ExtraLight Italic.ttf  Overpass Italic.ttf        Overpass Light.ttfOverpass_Bold.ttf         Overpass Extra Light.ttf        Overpass Light Italic.ttf  Overpass_Regular.ttf


After this: 

sudo fc-cache -f -v 

Updated the font cache and the font can be used. 

Another font is the Source Code Pro from Adobe. 
This is a monospace font designed for developers. 

Update: Today another free font Hack for Developers is available: 

http://sourcefoundry.org/hack/



Aug 14, 2015

How to extract a @MatrixParam in a PathSegment of the URI ( http://localhsot:8080/names;age=10/maxi )

During reading of the book RESTful Java with JAX-RS 2.0 I found the matrix parameters in the middle of a URI.

http://localhost:8080/HelloWorld/resources/greeting/name;age=10/maxi;old=20

When using this on Glassfish 4.1 with Jersey as JAX RS Implementation, the simple resource method with
a @MatrixParam doesn't find the parameter.

@GET@Path( "names/{after}")@Produces(MediaType.TEXT_PLAIN)public String getMatrix(         @PathParam("after") String after,        @MatrixParam("age") @DefaultValue( "-1") String age,        @MatrixParam("old") int old        ) {    System.out.println("Matrix Param age " + age);    System.out.println("Matrix Param old " + old);    System.out.println("PathParam after : " + after );


With the call above, age is not found and a -1 is issued on the output. 
The age matrix parameter is only found, when it is on the last path segment. To get the matrix parameter on a segment inside of the path, you can use a PathSegment

@GET@Path( "{namePath: names}/{after}")@Produces(MediaType.TEXT_PLAIN)public String getMatrix(         @PathParam( "namePath") PathSegment namePath,        @PathParam("after") String after,        @MatrixParam("age")@DefaultValue( "-1") String age,        @MatrixParam("old") int old        ) {    MultivaluedMap<String, String> matrixParameters = namePath.getMatrixParameters();    System.out.println("matrixParameters = " + matrixParameters);    System.out.println("Matrix Param age " + age);    System.out.println("Matrix Param old " + old);    System.out.println("PathParam after : " + after );

The part for the "name" is a named path element as regular expression, but with the fixed text "name". 
In the parameter list of the JAX-RS Method, this segment is used as PathSegment, which allows to 
extract the matrix parameters. Here is the output: 

Information:   Grizzly Framework 2.3.15 started in: 32ms - bound to [/0.0.0.0:8181]Information:   matrixParameters = {age=[10]}Information:   Matrix Param age -1Information:   Matrix Param old 20Information:   PathParam after : maxi

For the PathSegment, I found the hint here

On Glassfish with Jersey this works, have to test it also with RestEASY

Aug 5, 2015

How to change the language of the whole document in LibreOffice

On my fedora 22 box, in libreoffice 4.4.4 a new document gets the German language for spell checking per default.

This is shown on the bottom status line:



By right clicking on this area the language can be changed from the current point of writing until it
is changed again.

But my whole document should be changed to English, also the already written part.

Here you open Tools/Options/ and search for Languages and select the Default Language for the
document but don't forget to check the "For the current document only" checkbox.



Now the whole document is in the different language.

The hint was found in the German LibreOffice-Help.


Jun 27, 2015

Creating a docker container with glassfish inside

Here is my recipe to create a docker container with a default glassfish and a little bit of configuration.

Here is the directory structure:


The content of the Dockerfile:

FROM ewer/javabase
MAINTAINER Ewald Ertl 

ENV JAVA_HOME=/usr/jdk/jdk8
ENV PATH=$PATH:$JAVA_HOME/bin

RUN  yum install -y unzip

ADD glassfish*.zip /

ADD glassfish.ini /etc/supervisord.d/



RUN cd /opt; unzip /glassfish*.zip; ln -s /opt/glassfish4 /opt/glassfish
ADD customization /customization
RUN cp /customization/mariadb*jar /opt/glassfish/glassfish/domains/domain1/lib/ext

RUN cd /opt/glassfish/glassfish/bin; ./asadmin --user admin --passwordfile /customization/pw1.txt change-admin-password --domain_name domain1
RUN cd /opt/glassfish/glassfish/bin; ./asadmin start-domain domain1 ; ./asadmin --user admin --passwordfile /customization/pw2.txt < /customization/customization.txt ; ./asadmin stop-domain domain1
EXPOSE 8080 4848 9009
VOLUME /opt/glassfish/glassfish/domains/domain1



The ewer/javabase Image just contains the JDK's and the ready configured supervisord. For this one,
the glassfish.ini is added. Here's the content:

[program:glassfish]
command=/opt/glassfish/glassfish/bin/startserv --debug

The pw1.txt contains the passwords to set for the admin user and to be able to active the
enable-secure-admin. Otherwise the admin-console is not accessible from remote ( the locahost to the docker conatiner ).


AS_ADMIN_PASSWORD=
AS_ADMIN_NEWPASSWORD=newAdminPW


The content of pw2.txt:

AS_ADMIN_PASSWORD=newAdminPW

The configuration is done in customization/customization.txt:

enable-secure-admin

create-jdbc-connection-pool --datasourceclassname=com.mysql.jdbc.jdbc2.optional.MysqlDataSource --restype=javax.sql.DataSource --property='user=hsf:password=hsf:url="jdbc:mysql://db:3306/hsf"' mysql
create-jdbc-connection-pool --datasourceclassname=org.mariadb.jdbc.MySQLDataSource --restype=javax.sql.DataSource --property='user=hsf:password=hsf:url="jdbc:mariadb://db:3306/hsf"' mariadb

create-jdbc-resource --connectionpoolid mariadb jdbc/hsf

create-custom-resource --restype=java.lang.String --factoryclass=org.glassfish.resources.custom.factory.PrimitivesAndStringFactory --property value="from jndi" resource/javahowto


This step is run during docker build with starting the domain, executing the configuration and stopping the domain. 

The building of the image is in buildDocker.sh

docker build --force-rm=true --rm=true -t ewer/glassfish .

and the image is started with runDocker.sh:

#!/usr/bin/bash

CONTAINER=glassfish

isContainerUp() {
CONT=$1
if [ -n `docker ps -q -f name=$CONT` ]; then 
return 1
else
return 0
fi
}

ret=`isContainerUp $CONTAINER`
if [ -n $ret ]; then 
docker stop $CONTAINER
fi

if [ -n `docker ps -a -q -f name=$CONTAINER` ]; then
docker rm glassfish
fi

if [ -d ./log ]; then 
chcon -t svirt_sandbox_file_t ./log 
fi

docker run --cpu-shares=200 --memory 1g -it  --dns=89.0.5.116 --dns-search=com.hartter -P --hostname=$CONTAINER --name=$CONTAINER  --link=mariadb:db -d ewer/$CONTAINER

if [ -n `isContainerUp $CONTAINER`  ]; then 
updateDockerIp.sh
fi

The chcon is necessary, to allow the container to write to the file, if the volume is mounted during the starting of the contianer. 

The Script updateDockerIp.sh is just used to update the IP-Adress in /etc/hosts, where an entry with the container name is stored. 

updateDockerIP.sh: 

#!/usr/bin/env bash

if [ -z "$1" ]; then 
    hosts=`docker ps -f status=running | awk '{print $NF}' | grep -v NAMES`  
else
    hosts=$1
fi

for h in $hosts; do 
dockerIP=`docker inspect --format="{{.NetworkSettings.IPAddress}}" $h`
 
sudo awk -vip=$dockerIP -vservice=$h '$0 ~ service { printf "%s\t%s\n", ip, service } $0 !~ service {print $0}' /etc/hosts  > /tmp/hosts 
sudo cp /tmp/hosts /etc/hosts
done

After this the container can be reached over the local browser. You see the configured resources marked: 


Jun 23, 2015

ssh login from Solaris 10 -> fedroa 22 fails with no common kex alg: Client 'diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1', Server 'curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1'

When trying to login by ssh from an Solaris 10 system to my Fedora 22 Laptop I get the following
error message:

no common kex alg: client 'diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1', server 'curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1'


By adding the following line to /etc/ssh/sshd_config 

KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1


I can login via ssh again by using my ssh-key-file. 


Jun 1, 2015

Proxy switching in Gnome 3.16 on Fedora 22 is not visible anymore ? -> See screenshot.

On Fedora 21, the proxy switching extension was shown on the main bar.

With Fedora 22, I updated my local git repo of the Proxy Switcher extension.

A make; make install updated the extension in

<Home>/.local/share/gnome-shell/extensions/ProxySwitcher@flannaghan.com/

But after restarting the gnome-Desktop, the Proxy-Switcher didn't appear.

By accident, I found today, where the extension is hidden.

Opening the menu on the right side with the battery, and loudspeaker showed the proxy-switcher.


Here the proxy-switcher is opened.

May 28, 2015

wildfly configuration is not stored during docker image build with the help of the jboss-cli.sh

I attempted to automatically build a docker image containing a preconfigured wildfly.

The configuration is stored in a simple text-file,which contains JNDI-Names, datasoruces and so on.
This text-file is executed by the jboss-cli.sh over the command line duringthe image build process of docker.

But my problem was, that the build executed, the configuration was executed. ( On a local installed
and running wildfly-instance the configuration was available after stopping wildfly and looking into
the configuration-xml file ).

The used wildfly was from camunda with the preconfigured camunda BPMN engine.

For executing the configuration I used the shell script from here, which worked fine.

The reason, why the configuration was not available in the built docker image is the timing.

The starting wildfly was available, but needed some time to start up the camunda engine. During this
time the configuration was executed and wildfly stopped before camunda was ready.

When waiting some more time for the startup, also the configuration was stored in the docker image.


May 27, 2015

Fedora 22/Gnome 3.16: SkypeNotification was not visible anymore

I use the SkypeNotification for the Gnome Shell from https://github.com/chrisss404/gnome-shell-ext-SkypeNotification.

After starting skype, an Icon appears and notifies on some changes on chats.

This one I had to update to the last version from the git-Repo and after applying the update
to <homedir>/.local/share/gnome-shell/extensions and restarting the gnome-shell with
<alt>-<F2> and the command 'r', the icon appeared again.



Fedora 22/Gnome 3.16: Notification pane with "meta"-"m" key sequence doesn't show the runnig skype/dropbox icons

On Fedora 21 by pressing <meta>-<m>, I got a small pane on the bottom where the notifications
appeared and e.g skype and dropbox, which are running in the background.

On Fedora 22, the notification moved to the calendar display, but the icons for skype and dropbox are
not visible there.

I found a hint on the lower left corner of the screen.


by pressing on the arrow you get a pane coming in with the icons:



updated from Fedora 21 to the fresh release of Fedora 22

I updated from Fedora 21 to Fedora 22.
Everything worked fine, except my old graphics card on the laptop a NVidia Quadro FX.
On Fedora 21 I downloaded the driver from the http://nvidia.com site.
But the last version 340.76 didn't compile on the new Fedora 22 with Kernel 4.0.4.

After searching, I found the following link. Somebody already tried this and got a response on a
different version. I edited my NVidia-Source and the compilation worked.


The update was executed with

fedup --network 22
Currently I'm missing the coloring of the titlebar of the active window :-(



Apr 9, 2015

How to get h2console.war accessable from a remote server

RedHat offers a quickstart package, which contains a h2console.war. This allows via the
browser to access H2 databases on a jboss/wildfly instance.

Here I found a link on github for the h2console from the quickstart repo.

But after deploying the h2console.war, the console /h2console is only accessible by a localhost.
When you try to access the console from remote you get the hint, that webAllowothers   is not set.

Tto set this option and allow remote access to the console you have to edit WEB-INF/web.xml in the
h2console.war and set the webAllowOthers option:

<servlet>
    <servlet-name>H2Console</servlet-name>
    <servlet-class>org.h2.server.web.WebServlet</servlet-class>
 
    <init-param>
      <param-name>webAllowOthers</param-name>
      <param-value>true</param-value>
    </init-param>

for the servlet. 

I got this hint from a bug-entry for wildfly. 


Mar 9, 2015

Database Access in the SAP HANA Cloud failed with invalid username/password

In the SAP HANA Cloud you can select in the cockpit ( http://hanatrial.ondeman.com ) which database should be used.

The HANA Database doesn't support native sequences and the source I'm deploying is using JPA native
sequences.

In the cockpit you can create a MaxDB Instance and assign this db instance as the default to the deployment.

To access this database you have to install the Java EE WebProfile 6 SDK kit  ( https://tools.hana.ondemand.com/ ).

The neo-Tool from the SDK allows to open a db-tunnel to the HANA MaxDB-Instance:

./neo.sh  open-db-tunnel -a <account>trial -h hanatrial.ondemand.com -u <account> -i <DB-Schema- Instance>
SAP HANA Cloud Platform Console Client


Password for your user: 

Opening tunnel...

Tunnel opened.

Use these properties to connect to your schema:
  Host name        : localhost
  Database type    : MaxDB
  JDBC Url         : jdbc:sapdb://localhost:7200/J04
  User             : <User returned from the open-db-tunnel>
  Password         : <password for the returned user>

This tunnel will close automatically in 24 hours on Mar 10, 2015 at 1:46 PM or when you close the shell.
Press ENTER to close the tunnel now.



When this tunnel is established. ( In my case I have to restart more times, because there seems to be some ports blocked in the firewall )

In Eclipse Luna just open the db view and connect with the MaxDB driver and the data given in the 
neo.sh open-db-tunnel above. In my case a always got an error about an invalid username/password. 

The reason here is that I used an old JDBC-Driver. Now I downloaded the Version 7.8 of MaxDB and 
the contained JDBC-Driver now allows to access the database. 

Mar 6, 2015

switching between tabs in netbeans

On the regular base I switch between tabs with the Keyboard shortcut <Ctrl>-<TAB>,
which opens a small window like display where you can navigate.



But if there are a lot of files open, this is tedious. In Eclipse there is a selection mode, where you can
narrow down the list of files by type the name letters.

In Netbeans this is possible with <SHIFT>-<F4>, which opens the menu Window->Documents.
Here you can search by typing to the document.


Feb 24, 2015

last docker package ( docker-io-1.5.0-1.fc21.x86_64 ) on Fedora 21 doesn't allow to request data as "normal" user. -> PROXY-environment variables are respected now.

During the last updates of Fedora 21, the docker.io package was updated to docker-io-1.5.0-1.fc21.x86_64.

Today I tried to start some containers, but got an error:

FATA[0000] Error response from daemon: 404 page not found 


The docker-service is up and running 

[ewer@lxewer jboss-as-7.2.0.Final]$ systemctl status docker● docker.service - Docker Application Container Engine   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)   Active: active (running) since Di 2015-02-24 10:33:37 CET; 3min 50s ago     Docs: http://docs.docker.com Main PID: 20536 (docker)   CGroup: /system.slice/docker.service           └─20536 /usr/bin/docker -d --selinux-enabled


Switching to root allowed the execution of 'docker ps -a' and showed all containers. 

My problem, was the setting of the environment variables HTTP_PROXY, http_proxy  and so on. 

After removing the environment variables, I got the desired output: 

[ewer@lxewer JBOSS-Deployment ] docker ps -aCONTAINER ID        IMAGE                 COMMAND                CREATED             STATUS                     PORTS                     NAMES8d204953f2e2        ewer/hsf:latest       "/opt/jboss/bin/stan   3 days ago          Exited (137) 3 days ago                              hsf                 2f8865d42d82        1215b5384b4a          "/bin/sh -c /customi   3 days ago          Exited (0) 3 days ago                                focused_engelbart   22e56631890d        ewer/eaionba:latest   "/usr/bin/supervisor   4 days ago          Exited (0) 4 days ago                                eaionba   

It seems, as if the docker command respects the proxy environment variables now. 


Feb 5, 2015

Too many tabs open in chrome -> Manage the tabs with a cute little extension "TooManyTabs for Chrome"

Do you have a lot of tabs open in chrome? If so, you are using a lot of memory, which each tab uses.
You can bookmark the site's, but this was always a problem for me on firefox and chrome.
The frequently used sites are stored as tab in the chrome extension "TooManyTabs for Chrome". 

This extension allows to manage the tabs in different categories. Select the Icon and you can switch through the Categories. The yellow title bars on the right side are the saved tabs and the widows on the left are the open ones, which can be closed and moved to the category. 



When you are in a tab a right click to get the context menu, allows you to send the tab to a category of
the tab-manager.




Jan 27, 2015

Maven indexing in Netbeans filled up my /tmp and therefore the RAM/SWAP of my Linuxbox.

NetBeans can be configured to index maven repositories.



During the index phase the data is stored in a temp. directory, which was
on my Fedora box in /tmp/nexus...

This got very huge and used a whole lot of memory which increased the
SWAP usage.

To prevent the usage, I redirected the java tmp directory in
<netbeans>/etc/netbeans.conf by using the start parameter:

-J-Djava.io.tmpdir=/var/tmp
 
 
and set the tmpdir to /var/tmp and after this the memory pressure  is gone.

Jan 22, 2015

docker container could not start on Fedora 21 because of failing to write the memory limits

Today I restarted my Fedora 21 after updates. But the mariadb-Container
could  not be started.

I just did a docker start mariadb which faulted with:
FATA[0002] Error response from daemon: Cannot start container 93ae91947b95944769c43a7665e4158d7f2becf4a137427cff8fd17a61485bf6: write /sys/fs/cgroup/memory/system.slice/docker-93ae91947b95944769c43a7665e4158d7f2becf4a137427cff8fd17a61485bf6.scope/memory.memsw.limit_in_bytes: invalid argument

Because my container was already runnig since some time, I rebuilt the
container and started again, but the message appeared again. My start command was:


docker run --name="mariadb" --hostname="mariadb" --dns=X.X.X.X --dns-search=example.com -c 100 -m 1g -d -P -v /home/ewer/prod/docker/maria_db:/data/mysql ewer/mariadb

After removing the "-m 1g" option, the container could be started again.

There must have been some change during one of the last updates,
because the container could be started on Fedora 21 with the memory limit.


Jan 20, 2015

copy buffer from tmux/tmuxinator ( terminal multiplexer ) to the X-Clipboard

tmux ( tmuxinator for configuration and start of a configured session )
allows to open in one terminal multiple shells and split the window and so
on.

To copy data from the shell you must scroll up most of the time.

Scrolling is done by

<bind-key> - <screen up>.

In My case <Ctrl-A><screen up>

If you want to select enter selection mode with <bind-key><[>

Pressing <SPACE> sets the start mark and <RETURN> finishes the selection.

To get the buffer from tmux into the X-clipboard I found the following hint
here:

# Copy into clipboard
bind C-c choose-buffer "run \"tmux save-buffer -b '%%' - | xclip -i -selection clipboard\""
# Paste from clipboard
bind C-v run "xsel -o -b | tmux load-buffer - && tmux paste-buffer"
# Copy into primary
bind C-y choose-buffer "run \"tmux save-buffer -b '%%' - | xsel -i\""
# Paste from primary
bind C-p run "xsel -o | tmux load-buffer - && tmux paste-buffer"
 

After adding this commands you can copy the selected buffer with
<bind-key><C-c> and the X-clipboard has the data.


Update: 
 
 After doing a C-c to copy the chosen buffer to the clipboard, the bind key of tmux 
 doesn't work anymore. After reading through a bug-message here, I had to change the 
 binding a little bit by adding -b to the run command: 
bind C-c choose-buffer "run -b \"tmux save-buffer -b '%%' - | xclip -i -selection clipboard\""

otherwise xclip is running forever blocking further tmux commands. 

Jan 16, 2015

Upgrade from JBoss 7.0 to 7.2 and mariadb as database with mysql-JDBC driver caused exception during JPA Update

Now I had to upgrade the JBoss from 7.0 to 7.2 everything else was the same.
A Timer-EJB attempted to update data by JPA  in the database
which is a docker instance with MariaDB. This update caused Exceptions.

Now I've installed a new module with the JDBC-Driver from MariaDB.

After installating the module, adding a driver and changing the driver from
mysql to mariadb ( keeping the JDBC-URL on jdbc:mysql:.... ) , the
exceptions disappeared.

Jan 8, 2015

activate gedit plugins in Fedora 21 with Gnome 3.14

Fedora 21 has many plugins for GEdit, which must be installed as packages.

$ sudo dnf search gedit
===================================================================== N/S Matched: gedit =====================================================================
gedit.x86_64 : Text editor for the GNOME desktop
gedit-plugins.x86_64 : Plugins for gedit
gedit-plugin-git.x86_64 : gedit git plugin
gedit-plugin-charmap.x86_64 : gedit charmap plugin
gedit-plugin-synctex.x86_64 : gedit synctex plugin
gedit-plugin-terminal.x86_64 : gedit terminal plugin
gedit-plugin-textsize.x86_64 : gedit textsize plugin
gedit-plugin-bookmarks.x86_64 : gedit bookmarks plugin
gedit-plugin-commander.x86_64 : gedit commander plugin
gedit-plugin-dashboard.x86_64 : gedit dashboard plugin
gedit-plugin-joinlines.x86_64 : gedit joinlines plugin
gedit-plugin-multiedit.x86_64 : gedit multiedit plugin
gedit-plugin-zeitgeist.x86_64 : gedit zeitgeist plugin
rabbitvcs-gedit.x86_64 : Gedit extension for RabbitVCS
gedit-plugin-drawspaces.x86_64 : gedit drawspaces plugin
gedit-plugin-codecomment.x86_64 : gedit codecomment plugin
gedit-plugin-colorpicker.x86_64 : gedit colorpicker plugin
gedit-plugin-smartspaces.x86_64 : gedit smartspaces plugin
gedit-plugin-colorschemer.x86_64 : gedit colorschemer plugin
gedit-cossa.x86_64 : gedit plugin for GTK+ themes previewing
gedit-plugin-wordcompletion.x86_64 : gedit wordcompletion plugin
gedit-plugin-bracketcompletion.x86_64 : gedit bracketcompletion plugin
gedit-latex.x86_64 : gedit plugin for composing and compiling LaTeX documents
gedit-devel.x86_64 : Support for developing plugins for the gedit text editor
gedit-devel.i686 : Support for developing plugins for the gedit text editor
gedit-beesu-plugin.x86_64 : Allows normal users to open files in gedit as root
gedit-code-assistance-devel.i686 : Development files for gedit-code-assistance
gedit-code-assistance-devel.x86_64 : Development files for gedit-code-assistance
gedit-code-assistance.x86_64 : gedit plugin for code assistance for C, C++ and Objective-C
gedit-code-assistance.i686 : gedit plugin for code assistance for C, C++ and Objective-C
gedit-plugins-data.x86_64 : Common data required by plugins

After starting of GEdit in Gnome 3.14, I didn't find any menu-item to activate the plugins.

The "tricky" part is to get the preference menu from the top bar of the
gnome desktop as seen in the picture below:



Here you get the preferences window, in which you can activate the plugins.