Tuesday, September 16, 2014

How To Create A Web Application Project With Maven In ECLiPSE

I've written "Maven Tutorial: How to install Maven and how to configure Maven on eclipse?" document and now we are continuing with creating a web app with Maven in Eclipse. You can also watch online video tutorial: http://www.youtube.com/watch?v=o-Y15VPw5KA

Create a Maven Web Project

One way to create a web app is using command prompt. Open cmd, navigate into your workspace and use this command:

mvn archetype:generate -DgroupId=com.seval -DartifactId=myapp2 -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

Change the application name(DartifactId) and group id (DgroupId) if you want. I give the name myapp2 because I have a console application which name is myapp. This time I give the name myapp2.

This command will create a web app in your workspace. For me it is C:\workspace\myapp2

Import Maven Web Project into Eclipse

You need an Eclipse for JavaEE developers. Go to https://www.eclipse.org/downloads/ and download  "Eclipse IDE for Java EE Developers". I've downloaded:

Eclipse Java EE IDE for Web Developers.
Version: Luna Release (4.4.0)
Build id: 20140612-0600
  1. Unzip Eclipse and run eclipse.exe file.
  2. From Eclipse menu, File->Import->Maven->Existing Maven Projects. 
  3. Click Next. 
  4. Choose C:\workspace\myapp2 as Root Directory. 
  5. Make selected pom.xml.
  6. Click Finish.

In second way, you can create a Maven Web App project from Eclipse Luna 4.4. Here are the steps.
  1. Go to File->New->Other->Maven->Maven Project. 
  2. Click Next
  3. Unselect "Use Default Workspace" and choose C:\workspace as a workspace.
  4. Click Next.
  5. Select maven-archetype-webapp from the list. It will be Artifact Id.
  6. Click Next.
  7. Fill the blanks with your project details. Mine is:
    1. Group Id: com.seval
    2. Artifact Id: myapp2
  8. Click Finish.
Run Maven Web App in Eclipse

Be sure you selected JDK7 for your project. Because selecting JRE7 cause error. Therefore check it out from Eclipse Package Explorer. Right Click to JRE, then you can change it with JDK7.

To run Eclipse in Tomcat7, be sure you installed Tomcat7 correctly. I downloaded Tomcat-7.0.42 and unziped into C:\apache-tomcat-7.0.42 folder. Open <TOMCAT_HOME>\conf\server.xml and add this line between <Host> tags.

<Context docBase="C:\workspace\myapp2\src\main\webapp" path="/myapp2" reloadable="true"/>

After that go to Eclipse and right click to Project name, select Run As -> Run Configurations...

Right click to Maven Build from left menu, click "New". So create a new configuration by using the following information. In Main tab:
  • Name: mavenRunOnTomcat
  • Base Directory: ${workspace_loc:/myapp2}
  • Goals: tomcat:run
You can click Browse Workspace and select your project. Click Apply and Click Run.

Open your browser, go to http://localhost:8080/myapp2/ web address, you will see "Hello World" message.


Maven Tutorial: How to install Maven and how to configure Maven on eclipse?

Apache Maven, is a software project management tool. The most powerful feature is able to download the project dependency libraries automatically.

Step 1: Install JDK7

As a prerequiste, you have to install JDK7. You can download from http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html under the title "Java SE Development Kit 7u67". I downloaded jdk-7u67-windows-i586.exe because my computer has Windows 32 bit.

I recommend you to install JDK7 in a simple directory. Because space character in path can cause some problems in Windows later.

Therefore I installed JDK7 in C:\apps\jdk7 and I installed JRE in C:\apps\jre7 directory.

Open System Properties->Advanced->Environment Variables. Add JAVA_HOME environment variable. It will be C:\apps\jdk.

Add Java into Path variable. It will be C:\apps\jdk7\bin.

Open a new command prompt (cmd) and run  java -version to verify that it is correctly installed.

Step 2: Install Maven

Download latest package from http://maven.apache.org/download.cgi web address. I downloaded apache-maven-3.2.3-bin.zip file, because I am using Windows XP x86 right now.

Unzip the distribution archive, i.e. apache-maven-3.2.3-bin.zip to the directory you wish to install Maven 3.2.3. I unziped into C:\apps\apache-maven-3.2.3 directory.

Add the M2_HOME environment variable with the value C:\apps\apache-maven-3.2.3.

Add Maven into PAth variable. It will be %M2_HOME%\bin.

Your repository will be C:\Documents and Settings\<UserName>\.m2 directory (;For Windows XP only).

Step 3: Install Eclipse

Download Eclipse IDE for Java Developers from https://www.eclipse.org/downloads/ web address. I downloaded eclipse-java-luna-R-win32.zip.

Unzip Eclipse and click eclipse.exe file to run Eclipse. Create C:\workspace folder and give it to Eclipse as a default workspace.

From Eclipse menu, open Window->Preferences->Maven->Installation. Click "Add..." and click "Directory...", choose C:\apps\maven-3-2-3. Click Ok.
Click Finish. Select new Maven installation and click Apply. Then click Ok.


Step 4: Create a Project from Maven Template

I want to store my project into C:\workspace so open command prompt (cmd) and go to that folder. Here is the command:

cd C:\workspace

Run this command to create a Java project with Maven:

mvn archetype:generate -DgroupId=com.test.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
DartifactId is the project name. You can change it as desired.

After you run this command, the new project will be created in C:\workspace\myapp folder. This directory contains a file named pom.xml. Open pom.xml with Notepad++. This is Maven configuration file for this project.

Open cmd, navigate into new project. Then run this command to convert Maven project to support Eclipse IDE:

mvn eclipse:eclipse

Now import the new Maven project into Eclipse IDE as an Existing Maven Projects.


Step 5: Edit Your Project and Run

Open App.java and add some other functions. We will test our project.


Open cmd, navigate into your project folder. Now we can create Jar file by using Maven. Run this command:

mvn package

Open C:\workspace\myapp\target folder, you will see generated Jar file.

Open cmd and navigate into your project folder. Run this command to run your new project:

java -cp target\myapp-1.0-SNAPSHOT.jar com.test.app.App

You will see "hello world" message.

How to create jar file from Eclipse?

You can also create jar file by using Eclipse. You will see the pom.xml file from Eclipse package explorer window.
- Right click to that pom.xml.
- Run as -> Maven Build
- Write "clean install" into Goals field.
- Click Apply and Run

This process will create myapp-1.0-SNAPSHOT.jar file under target folder.

Step 6: Add Custom Library to Maven

For example, let's add kaptcha libray. Download zip file and unzip it: https://code.google.com/p/kaptcha/downloads/list

1. Copy kaptcha-2.3.2-jdk14.jar file under C drive. So it will be available like C:\kaptcha-2.3.2-jdk14.jar

2. Open cmd and run this command (Your kaptcha version can be different):

mvn install:install-file -Dfile=c:\kaptcha-2.3.2-jdk14.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion=2.3.2 -Dpackaging=jar

Now, the “kaptcha” jar is copied to your Maven local repository. The new library will be seen in (In Maven Repository) :  C:\Documents and Settings\<UserName>\.m2\repository\com\google\code\kaptcha

3. Declare the kaptcha coordinate in pom.xml:

<dependency>
      <groupId>com.google.code</groupId>
      <artifactId>kaptcha</artifactId>
      <version>2.3.2</version>
 </dependency>

4. Edit your project and build like in the Step 5:

mvn package
java -cp target\myapp-1.0-SNAPSHOT.jar com.test.app.App

***

Friday, September 5, 2014

How to install Apache TomEE on a server

To install Apache TomEE on a server:

1. Go to http://tomee.apache.org/download/tomee-1.6.0.html

2. Download Apache TomEE 1.6 webprofile (apache-tomee-webprofile.zip).

3. Extract the zip file to a temporary folder.

4. Copy the TomEE folder to a short path. Example: C:\apache-tomee-webprofile-1.6.0

5. Open \conf\server.xml in a text editor. Place a “3” in front of each port number. 

Example: “8080” becomes “38080”. Changing port numbers will enable you to use TomEE, Tomcat7 and Apache at the same time.

6. If you are installing Tomcat7 and TomEE in the same server, do not set CATALINA_HOME variable in Windows.

7. Check that TomEE installation. 

Run /bin/startup.bat. 

8. Open http://localhost:38080 in a browser. The default Apache TomEE home page will appear.

Wednesday, July 2, 2014

All Ebooks & Videos Are 10 Dollars in Packt Publishing

Packt Yayımcılık, 10. yıl şerefine 5 Temmuz'a kadar bütün kitapları $10'a indirmiş. Çok güzel yazılım kitapları var, acele edin: http://goo.gl/fgG41g

Packt Publishing has celebrating its 10th year, so all books are $10 until July 5th. Rush to buy good software engineering and programming ebooks online:) For details visit here: http://goo.gl/fgG41g


Dear my blog readers :) I'm pleased to inform you that Packt Publishing is celebrating its 10 glorious years of publishing books.

To celebrate this huge milestone, from June 26th, Packt is offering all of its eBooks and Videos at just $10 each for 10 days. This promotion covers every title and you and your friends can stock up on as many copies as they like until July 5th.

Go to the PACKT PUBLISHING CELEBRATING 10th YEAR and look up the software engineering and programming books, buy them just at a charge of $10 till the campaign ends. That's a very good opportunity for all of you :)

Seval U.

Monday, May 19, 2014

My Book Review: Extending Symfony2 Web Application Framework

I got the book "Extending Symfony2 Web Application Framework" which is written by Sébastien Armand. The first release of the book is in March 2014, so it is the latest published book about Symfony2 framework (PHP).

I am a PHP developer for 4 years. I am developing not only websites but also server side scripting in PHP. I used a few frameworks of PHP and I created my own MVC framework too. However Symfony2 is the best framework I've ever used.

First of all, I would like to express Symfony2 to new PHP5 developers. Symfony is a high performance PHP framework for developing MVC web applications. M is model, V is view and C is controller. This framework works in efficient way and allows you to develop a website faster, more secure and more scalable. If you understand the basics of Symfony2 before, then you can buy this book.

This book addresses the developers who already know Symfony2 and PHP5 because it helps you to understand the subject deeply. The books offers features for Symfony2.3 or higher and for PHP5.4 and higher. Examples in the book are based on MongoDB but you can convert it to MySQL and PostgreSQL.

It starts to telling about Services and Listeners which are very importand in Symfony2. As a PHP developer, I didn't know services and listeners that much until I read the book. There is a GEO location example. It shows codes and defines classes. If you want to extend the framework, you should know how to create a class and put it in the service and how to create a listener.

After these concepts, the book continues with commands and templates. It shows how to create a command for resizing user images step by step. For extending templates, it extends Twig which is the flexible, fast, and secure template language for PHP. You can create your own custom Twig tags or your own function by extending Twig. Most of developers who use Symfony2 do not extend Twig or they don't know how to do it. You can learn it in an example in this book, however it shows just one form of extending the template. There are a lot of way to extend the template.

In third chapter, there are useful tips about forms in Symfony2. This part is very comprehensive. In fourth chapter, it shows security tips by giving an example of "Simple OAuth with GitHub". I have been already using Firewall structure for Symfony2 but there are more advanced security options in the book.

Lastly "Extending Symfony2 Web Application Framework" gives examples on doctrine. Doctrine has Object Relational Mapper (ORM) for PHP that sits on top of a powerful database abstraction layer (DBAL). One of its key features is the option to write database queries in a proprietary object oriented SQL dialect called Doctrine Query Language (DQL), inspired by Hibernates HQL. This provides developers with a powerful alternative to SQL that maintains flexibility without requiring unnecessary code duplication. In the book, there are methods to extend doctrine and entities.

With all this, you will be fully equipped to create any type of extension in Symfony. In the last chapter, it shows how to reuse and share your custom extensions. The examples in the book are sufficient to learn. I benefitted from this book very much. I really recommend book of  "Extending Symfony2 Web Application Framework" to people wanting to learn and use Symfony2 deeply in their projects.

Seval U. / Software Engineer in Turkey

Book Details

Extending Symfony2 Web Application Framework
Publisher : Packt Publishing
Author : Sébastien Armand
Language : English
Paperback : 140 pages [ 235mm x 191mm ]
Release Date : March 2014
ISBN : 1783287195
ISBN 13 : 9781783287192
Topics and Technologies : All Books, Web Development, Open Source

***

Monday, May 12, 2014

Bilgisayar Mühendisliği Bir Uzmanlık Alanıdır.

Kaynak: http://www.harunozer.net/2011/10/bilgisayar-muhendisleri-odas-bu-sefer.html

Diyelim ki bilgisayar mühendisliğinden mezun oldun ve bir yerlere başvurdun. Sonra mülakata gidiyosun, sana kafan çalışıyor mu gerçekten diye saçma sapan sorular soruyolar. Mühendislikle hiç alakası olmayan sorular. Misal işi gerçekten yapmak istiyor musun, çalışma azmin var mı, umutların var mı, mutlu bir insan mısın vs. Çünkü seni işe alıp var olan mutluluğunu ve umudunu sömürecekler.

Çünkü bu sektörde sana ihtiyaçları yok. Senin bilgine kültürüne ihtiyaçları yok. Onlar sadece basit ve mutlu yazılımcılar arıyorlar.

Türkiye'de gerçek bir bilgisayar mühendisi arayan firma yok mu? Bana Merkez Bankası gibi geldi. (Referans ve torpilleri saymazsak)

Merkez bankasının uzman yardımcılığı sınavında sorduğu soruları gördüm, çok hoşuma gitti. Adamlar bir yazılımcı değil gerçek bir mühendis arıyorlar. İşletim sistemlerini, ağ yapısını ve güvenliğini, algoritmaları, veri tabanını, yazılım mühendisliğini, testleri ve C programlama dilini sormuşlar. Soruların bir çoğuna mezuniyetimin üzerinden 3 yıl geçmesine rağmen cevap verebildiğim için mutluyum. Üzerinden bir kaç yıl daha geçerse hepsini unutacağıma da eminim. Soracaksınız şimdi neden başvurmuyorsun Merkez Bankasına diye. KPSS ve referans istedikleri için, kim gircek KPSS'ye. Hem babamın tek bir referansı var o da mahallenin muhtarı.

Demem o ki; Merkez Bankasının Bilgisayar Uzman Yardımcılığı soruları gerçekten seçiciydi. Yani bir uzmanlık gerektiriyordu. Nasıl ki ben bir ekonomi uzmanının sınavına bakınca tek bir cümle dahi anlamıyorsam, onlar da bizim sınavımıza bakınca hiçbir şey anlamayacaklar. Çünkü bu işin okulunu okuyanların yapabileceği türden bir sınavdı.

Üniversitede bize eşşek yüküyle ders veriyorlardı, ve bu derslerden çalışan da geçiyordu, çalışmayan da. İşte karşımıza özel sektörde bu tarz sınavlar çıkmadığı için, şimdi hem derslere çalışmayan adamlarla hem de mühendislik okumayanlarla aynı yerde aynı işi yaparak çalışıyoruz. Yani hiçbir farkımız kalmıyor diğerlerinden. Peki neden öğrendik onca şeyi? "Bilmemiz gerektiği için" mi? Peki bilmeyenler? Onlar da benimle aynı yerde çalışıyor, aynı maaşı (hatta bazen daha fazlasını) alıyor. Sorsan senden benden uzman olduklarını da iddia ederler.

Yani mürekkep yalayarak mühendislik okuduk ama kimseden bir farkımız kalmadı. Kendinize o kadar güveniyorsanız bir de siz çözün Merkez Bankasının Bilgisayar Uzman Yardımcılığı sınav sorularını.

Bizim bir odamız bile var:) Kapı gibi Bilgisayar Mühendisleri Odası. Facebook'ta sayfamız bile var:P İsmi de kapak olsun size "Mühendisiz olm biz."

***

Tuesday, May 6, 2014

Java EE Öğrenmeye Nasıl Başlanır?


Merhaba arkadaşlaaaar. Ben şimdi sizlere doğal java öğrenmek nasıl yapılır onu göstericem. Doğal bir şekilde. Doğal bir şekilde karşınızdayım :) Şööyle bir başlayalım isterseniz. Aypedden yazıyorum. Hd okumayı sakın ama sakın unutmayın. Hd güzel görünmek istiyorum. Ipad'den yazıyorum, o yüzden. (Espiriyi anlamayanlar için bkz: Doğal makyaj nasıl yapılır)

Önce bir blog açılır :) Bu önemli. Bence kurulum aşamasını yapmakla başlayın ve aşama aşama ekran görüntülerini alarak blogunuzda paylaşın.

Misal yeni bir mysql veritabanı yaratacaksınız, ve bunu konsoldan yapacaksınız. Blogunuzda bunun komutları var diyelim, açar ve oradan kopyala yapıştır yaparsınız.

O yüzden adım adım her yaptığınızı not edin derim. Çok faydasını göreceksiniz.

Diyelim ki Java öğrenmek istiyorsunuz. İlk kurulum için size kurmanızı söyleceğim şeyler: Ubuntu 13, jdk, Eclipse standart edition. (Kesinlikle Paris'ten 07 numara)

Önce konsol uygulaması yazarak başlayın. Mesela Bubble Sort yapan bir konsol uygulaması geliştirin. Kullanıcıdan 10 tane sayı alacaksınız ve bu sayıları Bubble Sort yaparak sıralayıp sonucu konsola basacaksınız. Bunu mutlaka deneyin, bu çok önemli :)

İkinci olarak bu uygulamayı masaüstünde çalışan bir uygulama olarak geliştirin. Bu konuda Eclipse ile arayüz nasıl geliştirilir araştırmanız lazım. Swing gibi bir arayüz kütüphanesi denersiniz. Kullanıcı ekrandaki 10 kutucuğa 10 tane sayı yazar ve "Sırala" isimli butona tıklayarak bu sayıların sıralanmasını ister. Kullanıcı gerçekten sayı girmiş mi kontrol edip hata mesajı attırmanız lazım. Eğer gerçekten 10 tane sayı girmiş ise bunları sıralayıp ekrana sonucu basarsınız.

Son aşamada ise aynı şeyi bir web sitesi olarak geliştirin. Bunun için JSF framework'ünü deneyin. Yine sayfada 10 tane input kutucuğu olur, bunların içine kullanıcı sayıları girer. Bir tane de "Sırala" butonu olur. Butona tıklayınca sonuç sayfası açılır ve bu sayfada sayılar sıralanmış bir şekilde listelenir.

Java EE'den önce HMTL, CSS ve PHP5 öğrenin.
İkinci aşamada bir sitede veritabanı işlemleri nasıl güvenilir yapılır, bir site nasıl daha hızlı geliştirilir ve nasıl daha hızlı çalışır onu öğrenin. Son aşamada ilk defa bir framework kullanmayı öğrenin. Mesela şimdi Symfony2 kullanabilirsiniz.

Web framework mantığını, web ile ilgili önceden hiçbir şey yapmamış olanlar bilemez. Mesela birçok bilgisayar mühendisi html ve css yazmayı bilmiyorlar. Bunu sadece Türkiye için söylemiyorum, yurtdışında da durum böyle. Çünkü bu kişiler web ile ilgili işler yapmıyorlar. Embedded olabilir, mobil uygulama olabilir, backend sistem olabilir, veya masaüstü uygulaması olabilir. Bazıları da işin temelini öğrenmeden web geliştiricisi olmuş, bu yüzden framework kullanmayı öğrenmiş ama en ufak bir kod değişikliği yapamıyorlar. Mesela ekranda otomatik liste oluşturan bir kütüphane kullanıyorlar, ama o listede bir satırın daha geniş olmasını veya text-wrap yapılmasını istediğimde kodlarda bunu bulup değiştiremiyorlar. İyi bir geliştirici olmak istiyorsanız bottom-to-up ilerlemeniz lazım, up-to-bottom yapmaya çalışırsanız böyle en ufak bir CSS değişikliğini yapamayacak kadar aciz kalırsınız. (Bu çok önemli.)

Bir internet uygulaması geliştiricisi olmak istiyorsanız bu işi sevmeniz lazım. Yani html ve css ile bir site nasıl yazılır bilmeniz lazım. Bir sitenin arkaplanını yazmadan önce ortaya görüntüsünü çıkarmalısınız. Frontend developer olun veya olmayın! Bunu bilmek zorundasınız. Daha önceden çalıştığım bir firmada kendisini iyi developer zanneden bir arkadaş, ben backend developer'ım diyordu ve yazdığı bir html'de bütün listeleri şu şekilde oluşturmuştu:

<li>
<ul>listedeki birinci item</ul>
<ul>test12</ul>
</li>

Bunu gördükten sonra kendisine "html dersleri" diye bir eposta yolladım. Tabii ki çok bozuldu. Çünkü ul'nin unordered list, li'nin ise list item demek olduğunu bilmiyordu. Olması gerekenden tam tersi yazmıştı. Böyle komik duruma düşmeyi kim ister ki?

Butonlarını, input kutucuklarını vs. doğru bir şekilde yazın. Nasıl doğru yazılır öğrenin. Bir form dahi oluşturamayacaksanız hiç internet işine girmeyin.

Youtube'dan da aşama aşama anlatan videolar izleyebilirsiniz. Video izlemek çok öğretici oluyor. Video'daki her bir adımı durdurup kendiniz de yapın.

Yaa bu arada kirpiklerim çok uzun olduğu için ben pek tercih etmiyorum bunu. 07 numara paris marka olmazsa kesinlikle olmaz. Ayyy ordan aynı takma kirpik takmışım gibi gözüküyor değil mi, kirpiklerim çok uzun olduğu için :))) Asla kullanmam takma kirpik. Asla. Sivilceleri de patlatmak yüzde iz bırakıyormuş. O yüzden şimdi biz küçükken patlatmayalım. Umarım eyç di izlemişsinizdir. Bir sonraki HD yazımda görüşmek üzere.

Umarım size ışık tutabilmişimdir :)

***
Related Posts Plugin for WordPress, Blogger...