Aylık arşivler: Ocak 2015

Oracle Linux altına Sun JDK yükleme

Java geliştirme yapabilmek için, oracle linux ile birlikte gelen OpenJDK yerine Sun JDK kurmak istedim.
Bunun için, öncelikle buradan Sun JDK’yı indiriyoruz.
Bu arada unutmadan, Oracle SOA 12c geliştirmeleri için, JDK 7 gerekiyor.

rpm dosyasını indirdikten sonra, aşağıdaki şekilde kurabiliriz

[koray@localhost Downloads]$ sudo rpm -ivh jdk-7u71-linux-x64.rpm 
[sudo] password for koray: 
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk-2000:1.7.0_71-fcs            ################################# [100%]
Unpacking JAR files...
	rt.jar...
	jsse.jar...
	charsets.jar...
	tools.jar...
	localedata.jar...
	jfxrt.jar...

Tabi bu sadece kurulumu yapıyor, yüklediğimiz javayı alternatif olarak tanıtıp default yapmamız gerekiyor. Bunu da aşağıdaki şekilde yapabiliriz.

[koray@localhost ~]$ sudo alternatives --install /usr/bin/java java /usr/java/default/bin/java 1
[sudo] password for koray: 
[koray@localhost ~]$ sudo alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 1
[koray@localhost ~]$ sudo alternatives --install /usr/bin/javaws javaws /usr/java/default/bin/javaws 1
[koray@localhost ~]$ sudo update-alternatives --config java
 
There are 2 programs which provide 'java'.
 
  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71-2.5.3.1.0.1.el7_0.x86_64/jre/bin/java
   2           /usr/java/default/bin/java
 
Enter to keep the current selection[+], or type selection number: 2

Bakalım kurulumu becerebilmiş miyiz?

[koray@localhost ~]$ java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

Evet, artık Open JDK yerine Sun JDK kullanıyoruz.

Oracle SOA 12c ve Maven

JDeveloper SOA uygulaması wizardı, maven pom.xml dosyasını da oluşturuyor. Bu dosyanın üzerine sağ tıklayıp, örneğin “clean” komutunu çalıştırdığımızda, aşağıdaki hatayı veriyor.

Failure to find com.oracle.soa:sar-common:pom:12.1.3-0-0

maven error

Maven Hatası

Bunun nedeni, pom.xml içerisinde tanımlanan parent pom’u bulamıyor olması. Sorunu çözmek için aşağıdaki adımları izlemek gerekiyor.
öncelikle /etc/profile.d altında bir dosyaya, gerekli ortam değişkenlerini tanımlıyoruz. Ben jdeveloper’ın çalışmasında soruna yol açan GNOME_DESKTOP_SESSION_ID’yi de burada kaldırdım. Oracle 12c ile birlikte gelen maven kurulumunu kullandım.

export M2_HOME=/oracle/Middleware/Oracle_Home/oracle_common/modules/org.apache.maven_3.0.5
export PATH=${M2_HOME}/bin:$PATH
export JAVA_HOME=/usr/java/default
unset GNOME_DESKTOP_SESSION_ID

12c yanında “Maven Synchronization plug-in” isminde bir de plugin geliyor. Bu plugin iki dosyadan oluşuyor. bunlar

ORACLE_HOME/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.3/oracle-maven-sync.12.1.3.pom

ve

ORACLE_HOME/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.3/oracle-maven-sync.12.1.3.jar

yerel (local) repositorymize bu plugini aşağıdaki komut ile kurabiliriz.

cd /oracle/Middleware/Oracle_Home/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.3
mvn install:install-file -DpomFile=oracle-maven-sync-12.1.3.pom -Dfile=oracle-maven-sync-12.1.3.jar

plugin kurulduktan sonra, aşağıdaki şekilde bu plugin ile ilgili bilgi alabiliriz.
mvn help:describe -Dplugin=com.oracle.maven:oracle-maven-sync -Ddetail

Aşağıdaki şekilde, local repositorymizi güncelliyoruz.
mvn com.oracle.maven:oracle-maven-sync:push -Doracle-maven-sync.oracleHome=/oracle/Middleware/Oracle_Home/ -DtestingOnly=false
Bu işlem biraz zaman alacaktır. Internet üzerinden gerekli bağımlılıkları (dependency) indirip kurulum bittikten sonra, jdeveloper açık ise kapatıp yeniden açmak gerekiyor.

Artık pom.xml’e sağ tıklayarak istediğimiz işlemi yapabiliriz.

goals

SOA Suite Maven

Oracle Linux 7 üzerinde JDeveloper 12c

Oracle linux kurup üzerine soa suite kurduğunuzda, “root” dışında bir kullanıcı ile jdeveloper’ın başlamadığını göreceksiniz. Bunun nedeni, oracle linux’de GNOME_DESKTOP_SESSION_ID adındaki ortam değişkeni. Bu değişkeni aşağıdaki gibi unset ederek sorun çözülüyor.


[koray@oracle bin]$ echo $GNOME_DESKTOP_SESSION_ID
this-is-deprecated
[koray@oracle bin]$ unset GNOME_DESKTOP_SESSION_ID
[koray@oracle bin]$ ./jdev

Klikleyen (Clicking) Lego NXT

Eğer firmware update’i yaparken, ya da benim gibi LejOS yüklemeye çalışırken başınıza gelirse, durmadan “klik” sesi çıkaran Lego Mindstorms NXT’nizi eski haline getirmek için, tersini çevirin, sol üst köşedeki yuvanın içerisinde -tam altında usb bağlantısı olan- bir buton var, ona bir ataç yardımıyla 20 saniye basın ve firmware’i yeniden yükleyin.

Eğer benim gibi aynı zamanda arduino ile uğraşıyorsanız, bunun o kadar kolay olmadığını göreceksiniz. Arduino kartlarından bir tanesi, NXT ile aynı device ID’lerini kullanmaya karar vermiş, dolayısı ile, aygıt yöneticisinden (device manager) “Bossa” sürücülerini bulup, “Driver” sekmesinden “Update Driver” butonuna tıklamalı, açılan pencereden “Browse my computer for driver software” seçeneğini seçtikten sonra, “Let me pick from a list of device drivers on my computer” seçeneğinden, “LEGO MINDSTORMS NXT Firmware Update Mode” donanımını seçmelisiniz (bkz. resim).

mindstorms_arduino