<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" > <channel> <title>Java | Muharrem Tığdemir</title> <atom:link href="/category/java/feed/" rel="self" type="application/rss+xml" /> <link></link> <description>Carpe Diem!!</description> <lastBuildDate>Sun, 02 Nov 2014 13:34:35 +0000</lastBuildDate> <language>en-US</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <generator>https://wordpress.org/?v=6.2.2</generator> <site xmlns="com-wordpress:feed-additions:1">120145533</site> <item> <title>Google AppEngine Java Channel API Basic Example</title> <link>/google-appengine-java-channel-api-basic-example/</link> <comments>/google-appengine-java-channel-api-basic-example/#respond</comments> <dc:creator><![CDATA[Muharrem Tığdemir]]></dc:creator> <pubDate>Tue, 26 Aug 2014 11:18:26 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[channel api]]></category> <category><![CDATA[google app engine]]></category> <guid isPermaLink="false">https://muharremtigdemir.com/?p=510</guid> <description><![CDATA[<p>Hi all , Currently i’m working on Google App Engine with Channel API. I just needed basic socket example. I’ll show you how to create basic example. Steps.. Setup Eclipse Google App Engine Plugin Send Message From Servlet to Client Client Listener Deploy.. How to Install Google App Engine Eclipse Plugin Note : When you […]</p> <p>The post <a href="/google-appengine-java-channel-api-basic-example/">Google AppEngine Java Channel API Basic Example</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></description> <content:encoded><![CDATA[<p>Hi all ,</p> <p style="padding-left: 30px;">Currently i’m working on Google App Engine with Channel API. I just needed basic socket example. I’ll show you how to create basic example.</p> <p style="padding-left: 30px;">Steps..</p> <ol> <li>Setup Eclipse Google App Engine Plugin</li> <li>Send Message From Servlet to Client</li> <li>Client Listener</li> <li>Deploy..</li> </ol> <p><span id="more-510"></span></p> <h4>How to Install Google App Engine Eclipse Plugin</h4> <p>Note : When you downloading Eclipse choose the EE version. Check your Eclipse version under the eclipse directory in “.eclipseproduct”. If your version is under 3.8 you’ll be able to install from local archive. <span style="text-decoration: underline;"><span style="text-decoration: underline;">Please Check the plugin that corresponds to your version of Eclipse.</span></span> I’m using Kepler 4.3: https://dl.google.com/eclipse/plugin/4.3</p> <ul> <li>Help->Install New Software add your location and install SDK. (I only need this for socket example)</li> <li>Restart Eclipse</li> <li>File->New->Web Application Project</li> <li>Done!!</li> </ul> <h4>Basic Java Servlet</h4> <p style="text-align: center;">Message Sender Servlet</p> <pre class="lang:java decode:true" data-url="TestServlet">package com.mtigdemir; import java.io.IOException; import javax.servlet.http.*; import com.google.appengine.api.channel.ChannelMessage; import com.google.appengine.api.channel.ChannelService; import com.google.appengine.api.channel.ChannelServiceFactory; @SuppressWarnings("serial") public class ServletTest extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { ChannelService channelService = ChannelServiceFactory.getChannelService(); channelService.sendMessage(new ChannelMessage("logger", "Connection Testing.. ")); } } </pre> <p style="text-align: center;"> web.xml</p> <pre class="lang:default decode:true " data-url="web.xml"><?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet> <servlet-name>ServletTest</servlet-name> <servlet-class>com.bumin.ServletTest</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletTest</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>Logger.jsp</welcome-file> </welcome-file-list> </web-app> </pre> <p> </p> <h4>Basic Client</h4> <p style="text-align: center;">Channel API Javascript Socket Listener</p> <pre class="lang:default decode:true" data-url="Logger Page"><%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="java.util.List" %> <%@ page import="com.google.appengine.api.users.User" %> <%@ page import="com.google.appengine.api.users.UserService" %> <%@ page import="com.google.appengine.api.users.UserServiceFactory" %> <%@ page import="com.bumin.model.Todo" %> <%@ page import="com.bumin.dao.Dao" %> <%@ page import="com.google.appengine.api.channel.ChannelService" %> <%@ page import="com.google.appengine.api.channel.ChannelServiceFactory" %> <%@page import="java.util.ArrayList"%> <% ChannelService channelService = ChannelServiceFactory.getChannelService(); String token = channelService.createChannel("logger"); %> <!DOCTYPE html> <html> <head> <script src='//code.jquery.com/jquery-1.7.2.min.js'></script> <script src="/_ah/channel/jsapi"></script> </head> <body> <script> var token ="<%=token %>";// This will creaete unique identifier(some id created by google api + ur key) channel = new goog.appengine.Channel('<%=token%>'); socket = channel.open(); socket.onopen = function() {$('#messages').append('<p>Connected!</p>'); }; socket.onmessage = function(message) { console.log(message); console.log('message' + message); $('#messages').append('<p>' + message.data + '</p>'); }; socket.onerror = function() { $('#messages').append('<p>Connection Error!</p>'); }; socket.onclose = function() { $('#messages').append('<p>Connection Closed!</p>'); }; </script> LOG Messages <p id="messages"></p> </body> </html></pre> <p> </p> <h4>Sign In with your Google Account</h4> <p>Until you want to deploy your project to Google Server this step isn’t necesary. But live is better and also free until charge limits :))</p> <ul> <li>Before deploy your application check the 24 Hours <a title="Channel API Quata" href="https://developers.google.com/appengine/docs/quotas#Channel">App Engine Quotas</a> for Channel API</li> </ul> <p style="padding-left: 30px;">Daily Quata limits can be change day by day</p> <table width="75%"> <tbody> <tr> <th rowspan="2" width="30%">Resource</th> <th colspan="2" width="35%">Free Default Limit</th> <th colspan="2" width="35%">Billing Enabled Default Limit</th> </tr> <tr> <th width="17.5%">Daily Limit</th> <th width="17.5%">Maximum Rate</th> <th width="17.5%">Daily Limit</th> <th width="17.5%">Maximum Rate</th> </tr> <tr> <td width="30%">Channel API Calls</td> <td width="17.5%">657,000 calls</td> <td width="17.5%">3,000 calls/minute</td> <td width="17.5%">91,995,495 calls</td> <td width="17.5%">32,000 calls/minute</td> </tr> <tr> <td>Channels Created</td> <td>100 channels</td> <td>6 creations/minute</td> <td>Based on your budget</td> <td>60 creations/minute</td> </tr> <tr> <td>Channel Hours Requested</td> <td>200 hours</td> <td>12 hours requested/minute</td> <td>Based on your budget</td> <td>180 hours requested/minute</td> </tr> <tr> <td>Channel Data Sent</td> <td>Up to the Outgoing Bandwidth quota</td> <td>22 MB/minute</td> <td>1 TB</td> <td>740 MB/minute</td> </tr> </tbody> </table> <ul> <li>Right click your project Google-> Deploy to App Engine that’s it!!</li> </ul> <h4>Finally</h4> <p>Let’s run at local http://localhost:8888/Logger.jsp http://localhost:8888/test?message=mymessage open together.</p> <figure id="attachment_513" aria-describedby="caption-attachment-513" style="width: 1853px" class="wp-caption aligncenter"><a href="http://3.125.49.171/wp-content/uploads/2014/08/Adsız.jpg"><img data-attachment-id="513" data-permalink="/google-appengine-java-channel-api-basic-example/adsiz/" data-orig-file="/wp-content/uploads/2014/08/Ads%C4%B1z.jpg" data-orig-size="1853,443" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":""}" data-image-title="Adsız" data-image-description="" data-image-caption="<p>Channel API Final</p> " data-medium-file="/wp-content/uploads/2014/08/Ads%C4%B1z-300x71.jpg" data-large-file="/wp-content/uploads/2014/08/Ads%C4%B1z-1024x244.jpg" decoding="async" class="size-full wp-image-513" src="http://3.125.49.171/wp-content/uploads/2014/08/Adsız.jpg" alt="Channel API Final" width="1853" height="443" srcset="/wp-content/uploads/2014/08/Ads%C4%B1z.jpg 1853w, /wp-content/uploads/2014/08/Ads%C4%B1z-300x71.jpg 300w, /wp-content/uploads/2014/08/Ads%C4%B1z-1024x244.jpg 1024w" sizes="(max-width: 1853px) 100vw, 1853px" /></a><figcaption id="caption-attachment-513" class="wp-caption-text">Channel API Final</figcaption></figure> <p>You’ll see push notification when get the “/test” route. parameter is “message”There is my Live Application : <a href="http://1-dot-southern-branch-679.appspot.com/">http://1-dot-southern-branch-679.appspot.com/</a>Don’t Forget the open<a title="Logger" href="http://1-dot-southern-branch-679.appspot.com/Logger.jsp"> http://1-dot-southern-branch-679.appspot.com/Logger.jsp</a></p> <p>Muharrem Tığdemir</p><p>The post <a href="/google-appengine-java-channel-api-basic-example/">Google AppEngine Java Channel API Basic Example</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></content:encoded> <wfw:commentRss>/google-appengine-java-channel-api-basic-example/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id xmlns="com-wordpress:feed-additions:1">510</post-id> </item> <item> <title>Netbeans Java kullanılmayan import temizlemek</title> <link>/netbeans-java-kullanilmayan-import-temizlemek/</link> <comments>/netbeans-java-kullanilmayan-import-temizlemek/#respond</comments> <dc:creator><![CDATA[Muharrem Tığdemir]]></dc:creator> <pubDate>Fri, 07 Feb 2014 14:11:32 +0000</pubDate> <category><![CDATA[Java]]></category> <guid isPermaLink="false">https://muharremtigdemir.com/?p=372</guid> <description><![CDATA[<p>Merhaba Arkadaşlar , Bu yazımda Java Projelerimiz temizlemek ve gereksiz import’ları netbeans ile kolayca nasıl temizleyeceğimizi göstereceğim. Projeye sağ tıklayarak ‘Inspect and Transform’ sekmesini açalım Configuration ‘Organize Imports’ seçerek Insecpt diyoruz. Resimde gördüğünüz gibi bütün kullanılmayan import’lar listelendi. Do Refactoring diyerek işlemi tamamlayalım. Kullanılmayan import’lardan tamamen kurtulmuş olduk 😀 Muharrem Tığdemir</p> <p>The post <a href="/netbeans-java-kullanilmayan-import-temizlemek/">Netbeans Java kullanılmayan import temizlemek</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></description> <content:encoded><![CDATA[<p>Merhaba Arkadaşlar ,</p> <p style="padding-left: 30px;">Bu yazımda Java Projelerimiz temizlemek ve gereksiz import’ları netbeans ile kolayca nasıl temizleyeceğimizi göstereceğim.</p> <ol> <li>Projeye sağ tıklayarak ‘Inspect and Transform’ sekmesini açalım</li> </ol> <p style="padding-left: 30px;"><a href="http://3.125.49.171/wp-content/uploads/2014/02/Image.jpg"><img data-attachment-id="373" data-permalink="/netbeans-java-kullanilmayan-import-temizlemek/image/" data-orig-file="/wp-content/uploads/2014/02/Image.jpg" data-orig-size="541,285" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":""}" data-image-title="Image" data-image-description="" data-image-caption="" data-medium-file="/wp-content/uploads/2014/02/Image-300x158.jpg" data-large-file="/wp-content/uploads/2014/02/Image.jpg" decoding="async" loading="lazy" class="size-medium wp-image-373 aligncenter" alt="Image" src="http://3.125.49.171/wp-content/uploads/2014/02/Image-300x158.jpg" width="300" height="158" srcset="/wp-content/uploads/2014/02/Image-300x158.jpg 300w, /wp-content/uploads/2014/02/Image.jpg 541w" sizes="(max-width: 300px) 100vw, 300px" /></a></p> <ol> <li>Configuration ‘Organize Imports’ seçerek Insecpt diyoruz. <a href="http://3.125.49.171/wp-content/uploads/2014/02/Image2.jpg"><img data-attachment-id="374" data-permalink="/netbeans-java-kullanilmayan-import-temizlemek/image2/" data-orig-file="/wp-content/uploads/2014/02/Image2.jpg" data-orig-size="1299,289" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":""}" data-image-title="Image2" data-image-description="" data-image-caption="" data-medium-file="/wp-content/uploads/2014/02/Image2-300x66.jpg" data-large-file="/wp-content/uploads/2014/02/Image2-1024x227.jpg" decoding="async" loading="lazy" class="size-medium wp-image-374 aligncenter" alt="Image2" src="http://3.125.49.171/wp-content/uploads/2014/02/Image2-300x66.jpg" width="300" height="66" srcset="/wp-content/uploads/2014/02/Image2-300x66.jpg 300w, /wp-content/uploads/2014/02/Image2-1024x227.jpg 1024w, /wp-content/uploads/2014/02/Image2.jpg 1299w" sizes="(max-width: 300px) 100vw, 300px" /></a></li> </ol> <p>Resimde gördüğünüz gibi bütün kullanılmayan import’lar listelendi. Do Refactoring diyerek işlemi tamamlayalım. Kullanılmayan import’lardan tamamen kurtulmuş olduk <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p> <p>Muharrem Tığdemir</p><p>The post <a href="/netbeans-java-kullanilmayan-import-temizlemek/">Netbeans Java kullanılmayan import temizlemek</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></content:encoded> <wfw:commentRss>/netbeans-java-kullanilmayan-import-temizlemek/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id xmlns="com-wordpress:feed-additions:1">372</post-id> </item> <item> <title>javax/servlet/jsp/jstl/core/LoopTagStatus Hatası</title> <link>/javaxservletjspjstlcorelooptagstatus-hatasi/</link> <comments>/javaxservletjspjstlcorelooptagstatus-hatasi/#respond</comments> <dc:creator><![CDATA[Muharrem Tığdemir]]></dc:creator> <pubDate>Tue, 28 Jan 2014 15:27:41 +0000</pubDate> <category><![CDATA[Hatalar]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[JSF]]></category> <category><![CDATA[jsf]]></category> <category><![CDATA[jstl]]></category> <guid isPermaLink="false">https://muharremtigdemir.com/?p=362</guid> <description><![CDATA[<p>Merhaba Arkadaşlar , Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.LoopTagStatus Yukaridaki hatayı alıyor iseniz muhtemelen JSTL fonksiyonlarından foreach veya datatable gibi döngü içeren componentları kullanıyorsunuz. <c:forEach items="#{mainController.databases}" var="databases"> <h:outputText value="#{databases.name}" /> </c:forEach> JSF 1.2 ile bu sorun çözüldü. Aşağıdaki depency projenize ekleyin veya güncelleyin sorun çözülecek <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>   Muharrem Tığdemir  </p> <p>The post <a href="/javaxservletjspjstlcorelooptagstatus-hatasi/">javax/servlet/jsp/jstl/core/LoopTagStatus Hatası</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></description> <content:encoded><![CDATA[<p>Merhaba Arkadaşlar ,</p> <pre><code>Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.LoopTagStatus</code></pre> <p>Yukaridaki hatayı alıyor iseniz muhtemelen JSTL fonksiyonlarından foreach veya datatable gibi döngü içeren componentları kullanıyorsunuz.</p> <pre class="lang:default decode:true"> <c:forEach items="#{mainController.databases}" var="databases"> <h:outputText value="#{databases.name}" /> </c:forEach></pre> <p>JSF 1.2 ile bu sorun çözüldü. Aşağıdaki depency projenize ekleyin veya güncelleyin sorun çözülecek</p> <pre class="lang:xhtml decode:true"> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency></pre> <p> </p> <p>Muharrem Tığdemir</p> <p> </p><p>The post <a href="/javaxservletjspjstlcorelooptagstatus-hatasi/">javax/servlet/jsp/jstl/core/LoopTagStatus Hatası</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></content:encoded> <wfw:commentRss>/javaxservletjspjstlcorelooptagstatus-hatasi/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id xmlns="com-wordpress:feed-additions:1">362</post-id> </item> <item> <title>MongoDB-Java-5-Genel Örnek</title> <link>/mongodb-java-5-ornek/</link> <comments>/mongodb-java-5-ornek/#respond</comments> <dc:creator><![CDATA[Muharrem Tığdemir]]></dc:creator> <pubDate>Sat, 11 Jan 2014 11:48:08 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[MongoDB]]></category> <category><![CDATA[freemarker]]></category> <category><![CDATA[java]]></category> <category><![CDATA[mongodb]]></category> <category><![CDATA[mvc]]></category> <category><![CDATA[sparkframework]]></category> <guid isPermaLink="false">https://muharremtigdemir.com/?p=293</guid> <description><![CDATA[<p>Merhaba Arkadaşlar , MongoDB’ye bağlanmayı , veriçekmeyi , MVC Map object ile veri göndermeyi , Freemarker tempalate ve Spark Framework hakkında önceki yazılarda örnek verdik. Bunların hepsini bir örnekte toplayalım. import java.io.IOException; import java.io.StringWriter; import java.net.UnknownHostException; import spark.Request; import spark.Response; import spark.Route; import spark.Spark; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.mongodb.MongoClient; import freemarker.template.Configuration; import […]</p> <p>The post <a href="/mongodb-java-5-ornek/">MongoDB-Java-5-Genel Örnek</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></description> <content:encoded><![CDATA[<p>Merhaba Arkadaşlar ,</p> <p>MongoDB’ye bağlanmayı , veriçekmeyi , MVC Map object ile veri göndermeyi , Freemarker tempalate ve Spark Framework hakkında önceki yazılarda örnek verdik. Bunların hepsini bir örnekte toplayalım.</p> <p><span id="more-293"></span></p> <pre class="lang:java decode:true">import java.io.IOException; import java.io.StringWriter; import java.net.UnknownHostException; import spark.Request; import spark.Response; import spark.Route; import spark.Spark; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.mongodb.MongoClient; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class HelloMongoMVC { public static void main(String[] args) throws UnknownHostException { /*MongoDB Connection*/ MongoClient client = new MongoClient("localhost" , 27017); DB database =client.getDB("test"); final DBCollection collection = database.getCollection("course"); final Configuration conf = new Configuration(); conf.setClassForTemplateLoading(HelloWorldFreeMarker.class, "/"); /*Spark Routing*/ Spark.get(new Route("/") { @Override public Object handle(Request arg0, Response arg1) { DBObject obj = collection.findOne(); Template helloTemplate = null; try { helloTemplate = conf.getTemplate("hello.html"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } StringWriter writer = new StringWriter(); System.out.println(obj); try { helloTemplate.process(obj, writer); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return writer; } }); } }</pre> <p>Dikkat etmeniz gerekenler:</p> <ul> <li>Server Already In Use şeklinde bir hata alırsanız. İşlemlerden javaw.exe yi sonlandırıp tekrar deneyin.</li> <li>Eğer collection da “hello” isimli bir girdi yok ise yine hata alacaksınız bunuda collection da olan bir değeri yada db.course.insert({“hello” : “world”}) ekleyin.</li> <li>MongoDB MVC ile çok iyi geçiniyor gerçekten koda dikkat edersiniz. DBObject direkt process içine gönderdik çünkü bu nesne Hasmap’den extend Map’den implement edilmiş bir nesne yani direkt kullanılabiliyor.</li> </ul> <p>http://localhost:4567 ye girerseniz resimdeki sonucu alacaksınız.</p> <p><a href="http://3.125.49.171/wp-content/uploads/2014/01/mongoproject5.rar">mongoproject5</a> projemizin son hali indirebilrsiniz.</p> <p>Muharrem Tığdemir</p><p>The post <a href="/mongodb-java-5-ornek/">MongoDB-Java-5-Genel Örnek</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></content:encoded> <wfw:commentRss>/mongodb-java-5-ornek/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id xmlns="com-wordpress:feed-additions:1">293</post-id> </item> <item> <title>MongoDB-Java-4-FreeMarker</title> <link>/mongodb-java-4-freemarker/</link> <comments>/mongodb-java-4-freemarker/#respond</comments> <dc:creator><![CDATA[Muharrem Tığdemir]]></dc:creator> <pubDate>Sat, 11 Jan 2014 11:12:19 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[MongoDB]]></category> <category><![CDATA[freemarker]]></category> <category><![CDATA[java]]></category> <category><![CDATA[mongodb]]></category> <guid isPermaLink="false">https://muharremtigdemir.com/?p=281</guid> <description><![CDATA[<p>Merhaba Arkadaşlar , Bİr önceki yazımda Spark Framework’ü Projemize eklemiş ve test etmiştik. Ancak web projesi geliştirirken mutlaka HTML çıktılara ihtiyacımız var. Bunun için Lightweight bir Java Template Engine olan Freemarker kullanıcaz. Ayrıntılı bilgi http://freemarker.org/ bu linkten alabilirsiniz. Yine pom.xml dosyamıza aşağıdaki depency i ekliyoruz. <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.20</version> </dependency> Freemarker MVC template mimarisi ile çalışıyor. […]</p> <p>The post <a href="/mongodb-java-4-freemarker/">MongoDB-Java-4-FreeMarker</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></description> <content:encoded><![CDATA[<p>Merhaba Arkadaşlar ,</p> <p>Bİr önceki yazımda Spark Framework’ü Projemize eklemiş ve test etmiştik. Ancak web projesi geliştirirken mutlaka HTML çıktılara ihtiyacımız var. Bunun için Lightweight bir Java Template Engine olan Freemarker kullanıcaz. Ayrıntılı bilgi <a href="http://freemarker.org/">http://freemarker.org/</a> bu linkten alabilirsiniz.</p> <p><span id="more-281"></span></p> <p>Yine pom.xml dosyamıza aşağıdaki depency i ekliyoruz.</p> <pre class="lang:default decode:true"><dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.20</version> </dependency></pre> <p>Freemarker MVC template mimarisi ile çalışıyor. Aşağıdaki tanımdan göreceğiniz gibi Java Objelerine yüklenen nesneleri Template içinde basıyor. MVC hakkında ayrıntılıyı bilgiyi internetten bulabilirsiniz.</p> <p><img decoding="async" loading="lazy" class="alignnone" alt="" src="http://freemarker.org/images/overview.png" width="416" height="191" /></p> <p>Eclipse’in ve Maven’in versiyonuna göre değişiklik gösterebildiği için src/main dizini altına “resources” isimli bir klasör eğer yoksa oluşutun ve içine templatemizi koyalım. Benim kullandığım template;</p> <pre class="lang:xhtml decode:true"><html> <head> <title>Welcome</title> </head> <body> <h1>Welcome!! ${name}</h1> </body> </html></pre> <p>Basit şekilde bu bilgileri vermemin sebebi ilerideki yazılarda boşluk bırakmamak.</p> <pre class="lang:java decode:true">import java.io.IOException; import java.io.StringWriter; import java.util.HashMap; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class HelloWorldFreeMarker { public static void main(String[] args) { Configuration conf = new Configuration(); conf.setClassForTemplateLoading(HelloWorldFreeMarker.class, "/"); try { Template helloTemplate = conf.getTemplate("hello.html"); // İlişkili Template StringWriter writer = new StringWriter(); //Template üzerine değerleri yerleştirir Map<String, Object> map = new HashMap<String, Object>(); Nesnelerimizi tutar map.put("name", "Muharrem Tığdemir");// name değişkenine bir değer atadık helloTemplate.process(map, writer); // Yüklenen Template'e map deki değişkenleri yerleştirir. System.out.println(writer); // Sonucu ekrana basar. } catch (IOException e) { e.printStackTrace(); } catch (TemplateException e) { e.printStackTrace(); } } }</pre> <p>Evet temel MVC bilgimizide aldık <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Kodların yanındaki açıklamaların yeterli olduğuna inanıyorum. Sorularınız olursa cevaplamaya çalışacağım. Bu Java Class’ında ${name} yazan bölüme “Muharrem Tığdemir” yazısı ile eşleştirdik.</p> <p> </p> <p>Projenin Son hali <a href="http://3.125.49.171/wp-content/uploads/2014/01/mongoproject4.rar">mongoproject4</a></p> <p>Muharrem Tığdemir</p><p>The post <a href="/mongodb-java-4-freemarker/">MongoDB-Java-4-FreeMarker</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></content:encoded> <wfw:commentRss>/mongodb-java-4-freemarker/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id xmlns="com-wordpress:feed-additions:1">281</post-id> </item> <item> <title>MongoDB-Java-2-Maven</title> <link>/mongodb-java-2-maven/</link> <comments>/mongodb-java-2-maven/#respond</comments> <dc:creator><![CDATA[Muharrem Tığdemir]]></dc:creator> <pubDate>Sat, 11 Jan 2014 10:42:02 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[MongoDB]]></category> <category><![CDATA[java]]></category> <category><![CDATA[mongodb]]></category> <guid isPermaLink="false">https://muharremtigdemir.com/?p=273</guid> <description><![CDATA[<p>Merhaba Arkadaşlar , Henüz MongoDb hakkında bilginiz yok ise ilk yazımı okumanızı tavsiye ederim Nelere İhtiyacımız var ? Bir adet Eclipse Eclipse Maven Plugin’i (m2Eclipse tavsiyedir) Çalışmayı bekleyen bir MongoDB (İlk yazıdan faydalanabilrsiniz.) Eclipse’den yeni bir maven projesi oluşturalım File->New->Other (Maven Project)   pom.xml dosyasına gerekli olan mongodb kütüphanesini ekliyoruz. Örnek pom.xml şu şekilde olmalı. […]</p> <p>The post <a href="/mongodb-java-2-maven/">MongoDB-Java-2-Maven</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></description> <content:encoded><![CDATA[<p>Merhaba Arkadaşlar ,</p> <p style="padding-left: 30px;">Henüz MongoDb hakkında bilginiz yok ise ilk yazımı okumanızı tavsiye ederim</p> <p>Nelere İhtiyacımız var ?</p> <ul> <li>Bir adet Eclipse</li> <li>Eclipse Maven Plugin’i (m2Eclipse tavsiyedir)</li> <li>Çalışmayı bekleyen bir MongoDB (İlk yazıdan faydalanabilrsiniz.)</li> </ul> <p>Eclipse’den yeni bir maven projesi oluşturalım</p> <p>File->New->Other (Maven Project)</p> <p> </p> <p>pom.xml dosyasına gerekli olan mongodb kütüphanesini ekliyoruz. Örnek pom.xml şu şekilde olmalı.</p> <pre class="lang:default decode:true"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>mongo</groupId> <artifactId>mongoproject</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.11.3</version> </dependency> </dependencies> </project></pre> <p> </p> <p><span id="more-273"></span></p> <pre class="lang:java decode:true">import java.net.UnknownHostException; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.mongodb.MongoClient; public class HelloWorldMongoDB { public static void main(String[] args) throws UnknownHostException { MongoClient client = new MongoClient("localhost" , 27017); /*Yeni bir client oluşturur*/ DB database =client.getDB("test"); /*Bağlanılacak database*/ DBCollection collection = database.getCollection("course"); /*Getirilecek collection*/ DBObject obj = collection.findOne();/*Nesne getir*/ System.out.println(obj);/*Print Nesne*/ } }</pre> <p>Maven projemizi açtıktan sonra yukarıdaki class’ı ekleyerek çalıştırabilirsiniz. Ben önceki yazımda mongo localhost/test yazarak bağlanmıştım o yüzden bu database’i kullandım. Sonuç null gelmemesi için de “course” collection’a değer eklemenizi tavsiye ederim. Önceki yazımda ayrıntılı bilgiyi bulabilirsiniz. Bu örnek için;</p> <pre class="lang:default decode:true">db.course.insert({hello:"world"})</pre> <p>şeklinde kayıt ekleyebilirsiniz.</p> <p>Projenin Son hali <a href="http://3.125.49.171/wp-content/uploads/2014/01/mongoproject2.rar">mongoproject2</a></p> <p>Muharrem Tığdemir</p><p>The post <a href="/mongodb-java-2-maven/">MongoDB-Java-2-Maven</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></content:encoded> <wfw:commentRss>/mongodb-java-2-maven/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id xmlns="com-wordpress:feed-additions:1">273</post-id> </item> <item> <title>MongoDB-Java-3-SparkFramework</title> <link>/mongodb-java-3-sparkframework/</link> <comments>/mongodb-java-3-sparkframework/#respond</comments> <dc:creator><![CDATA[Muharrem Tığdemir]]></dc:creator> <pubDate>Sat, 11 Jan 2014 10:41:00 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[MongoDB]]></category> <category><![CDATA[java]]></category> <category><![CDATA[mongodb]]></category> <guid isPermaLink="false">https://muharremtigdemir.com/?p=278</guid> <description><![CDATA[<p>Merhaba Arkadaşlar, Yazı dizime MongoDB education daki dersleri takip ederek oluşturduğumu söylemiştim. Dersler Spark Framework kullanarak devam ediyor. Basit olması sebebi ile projenizi Maven ile başladığımız için rahatlıkla başka bir Framework’e göç ettirebilirsiniz. İlk olarak pom.xml ‘e Spark Framework Maven Depency ekleyelim. Ayrıntılı Spark Framework için http://www.sparkjava.com/download.html burayı inceleyebilirsiniz. <dependency> <groupId>com.sparkjava</groupId> <artifactId>spark-core</artifactId> <version>1.1.1</version> </dependency> Spring , Struts […]</p> <p>The post <a href="/mongodb-java-3-sparkframework/">MongoDB-Java-3-SparkFramework</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></description> <content:encoded><![CDATA[<p>Merhaba Arkadaşlar,</p> <p>Yazı dizime MongoDB education daki dersleri takip ederek oluşturduğumu söylemiştim. Dersler Spark Framework kullanarak devam ediyor. Basit olması sebebi ile projenizi Maven ile başladığımız için rahatlıkla başka bir Framework’e göç ettirebilirsiniz.</p> <p>İlk olarak pom.xml ‘e Spark Framework Maven Depency ekleyelim. Ayrıntılı Spark Framework için <a href="http://www.sparkjava.com/download.html">http://www.sparkjava.com/download.html</a> burayı inceleyebilirsiniz.</p> <pre class="lang:default decode:true"><dependency> <groupId>com.sparkjava</groupId> <artifactId>spark-core</artifactId> <version>1.1.1</version> </dependency></pre> <p>Spring , Struts , JSF veya Servlet Frameworkleri kullandıysanız Spark gerçekten iddasını gerçekleştiriyor. Tam bir Micro Framework.</p> <p><span id="more-278"></span></p> <pre class="lang:java decode:true" title="Hello World Spark FrameWork">import spark.Request; import spark.Response; import spark.Route; import spark.Spark; public class HelloWorldSpark { public static void main(String[] args) { Spark.get(new Route("/") { @Override public Object handle(Request request, Response response) { return "Hello World From Spark FrameWork Muharrem Tığdemir"; } }); Spark.get(new Route("/echo/:test") { @Override public Object handle(Request request, Response response) { return request.params(":test"); } }); Spark.post(new Route("/post") { @Override public Object handle(Request request, Response response) { return request.params("name"); } }); } }</pre> <p>Yukarıdaki class’ı projenize ekleyin. Default portunuz 4567. http://localhost:4567 ye girince ekranda aşağıdaki yazıyı göreceksiniz.</p> <pre title="Hello World Spark FrameWork">Hello World From Spark FrameWork Muharrem Tığdemir</pre> <p> </p> <p>http://localhost:4567/echo/deneme => get kullanımı</p> <p>http://localhost:4567/post => post kullanımı</p> <p>Projenin Son hali <a href="http://3.125.49.171/wp-content/uploads/2014/01/mongoproject3.rar">mongoproject3</a></p> <p>Muharrem Tığdemir</p><p>The post <a href="/mongodb-java-3-sparkframework/">MongoDB-Java-3-SparkFramework</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></content:encoded> <wfw:commentRss>/mongodb-java-3-sparkframework/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id xmlns="com-wordpress:feed-additions:1">278</post-id> </item> <item> <title>MongoDB-Java-1-Windows Kurulum</title> <link>/mongodb-java-windows-kurulum/</link> <comments>/mongodb-java-windows-kurulum/#respond</comments> <dc:creator><![CDATA[Muharrem Tığdemir]]></dc:creator> <pubDate>Fri, 10 Jan 2014 21:21:45 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[MongoDB]]></category> <category><![CDATA[java]]></category> <category><![CDATA[mongodb]]></category> <guid isPermaLink="false">https://muharremtigdemir.com/?p=269</guid> <description><![CDATA[<p>Merhaba Arkadaşlar , MongoDB Education başlattığı eğitimlerden takip ederek bende öğrendiklerimi kaçıranlar için paylaşmak istiyorum. Vaktiniz varsa tamamen ücretsiz ve sertifikalı eğitimleri mutlaka izleminizi tavsiye ederim. Ben MongoDB Java Developer için olan eğitime başladım. Düzenli takip ederseniz sizde bir eğitim kolayca yakalayabilirsiniz. MongoDB Windows Kurulum için http://www.mongodb.org/downloads sitesinden işletim sisteminize uygun versiyonu indirin. İndirelen dosyaları C:\mongodb isimli […]</p> <p>The post <a href="/mongodb-java-windows-kurulum/">MongoDB-Java-1-Windows Kurulum</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></description> <content:encoded><![CDATA[<p>Merhaba Arkadaşlar ,</p> <p style="padding-left: 30px;"><a title="MongoDB Education" href="https://education.mongodb.com">MongoDB Education</a> başlattığı eğitimlerden takip ederek bende öğrendiklerimi kaçıranlar için paylaşmak istiyorum. Vaktiniz varsa tamamen ücretsiz ve sertifikalı eğitimleri mutlaka izleminizi tavsiye ederim. Ben MongoDB Java Developer için olan eğitime başladım. Düzenli takip ederseniz sizde bir eğitim kolayca yakalayabilirsiniz.</p> <p style="padding-left: 30px;"> <p style="padding-left: 30px;">MongoDB Windows Kurulum için <a href="http://www.mongodb.org/downloads">http://www.mongodb.org/downloads</a> sitesinden işletim sisteminize uygun versiyonu indirin.</p> <p style="padding-left: 30px;"><span id="more-269"></span>İndirelen dosyaları C:\mongodb isimli klasöre çıkartın.</p> <pre class="lang:default decode:true">cd mongodb mkdir \data mkdir \data\db</pre> <p>klasörleri oluşturun.</p> <pre class="lang:default decode:true">mongod --version mongod --help</pre> <p>komutu ile versiyonunuzu kontrol edin. Verisyon kontrolünden sonuç aldıysanız Artık çalışabiliriz.</p> <pre class="lang:default decode:true">mongod</pre> <p>Şimdi İkinci bir console açın.</p> <pre class="lang:default decode:true">mongo localhost/test mongo</pre> <p>komutlarını yeni açtığınız console yazın evet artık mongoya bağlandık. Önceki console da 1 new connection now open yazısını göreceksiniz.</p> <pre class="lang:default decode:true">db</pre> <p>Hangi db ye bağlı olduğunuzu görmek için yukaridaki komutu yazın sonuç “test” olacak.</p> <p>Evet şimdi bir insert ve select yaparak devam edelim.</p> <pre class="lang:default decode:true">db.mycollections.insert({hello:"world"})</pre> <p>komutu ile insert yapıyoruz.</p> <pre class="lang:default decode:true">db.mycollections.find()</pre> <p>komutu ile de eklediğiniz sonucu görebilirsiniz.</p> <pre class="lang:default decode:true">dir \data\db</pre> <p>bakarsanız dosyaların yaratıldığını göreceksiniz.</p> <p> </p> <p>MongoDB indirdiğiniz console olarak gelecek ek olarak eğer ihtiyaç duyarsanız. MongoDB GUI olarak <a href="http://robomongo.org/">http://robomongo.org/</a> yu deneyebilirsiniz. Bütün platformlar için yayını var.</p> <p><a href="http://docs.mongodb.org/ecosystem/tools/administration-interfaces/">http://docs.mongodb.org/ecosystem/tools/administration-interfaces/</a> Bu linktende diğer Administration GUI’leri görebilirsiniz.</p> <p> </p> <p>Muharrem Tığdemir</p><p>The post <a href="/mongodb-java-windows-kurulum/">MongoDB-Java-1-Windows Kurulum</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></content:encoded> <wfw:commentRss>/mongodb-java-windows-kurulum/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id xmlns="com-wordpress:feed-additions:1">269</post-id> </item> <item> <title>JSF, SEO ve PrettyFaces Hakkında</title> <link>/jsf-seo-ve-prettyfaces-hakkinda/</link> <comments>/jsf-seo-ve-prettyfaces-hakkinda/#respond</comments> <dc:creator><![CDATA[Muharrem Tığdemir]]></dc:creator> <pubDate>Wed, 18 Sep 2013 18:21:10 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[JSF]]></category> <category><![CDATA[jsf]]></category> <category><![CDATA[pretty faces]]></category> <category><![CDATA[seo]]></category> <guid isPermaLink="false">https://muharremtigdemir.com/wordpress/?p=53</guid> <description><![CDATA[<p>Merhaba Arkadaşlar ,   Bu yazımda size web sitelerinin en önemli ihtiyaçlarından SEO yu JSF üzerinde kullanmayı anlatacağım. Bunun için PrettyFaces isimli url-rewrite JSF kütüphanesini kullanacağız.   Öncelikle gerekli dosyaları ekleyelim. Kurulum için <dependency> <groupId>org.ocpsoft.rewrite</groupId> <artifactId>rewrite-servlet</artifactId> <version>2.0.7.Final</version> </dependency> <dependency> <groupId>org.ocpsoft.rewrite</groupId> <artifactId>rewrite-config-prettyfaces</artifactId> <version>2.0.7.Final</version> </dependency> pom.xml dosyamıza gerekli kütüphaneleri ekleyelim. Maven kullanımı hakkında daha ayrıntılı bilgi için Maven […]</p> <p>The post <a href="/jsf-seo-ve-prettyfaces-hakkinda/">JSF, SEO ve PrettyFaces Hakkında</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></description> <content:encoded><![CDATA[<p>Merhaba Arkadaşlar ,</p> <p> </p> <p>Bu yazımda size web sitelerinin en önemli ihtiyaçlarından SEO yu JSF üzerinde kullanmayı anlatacağım. Bunun için <a title="PrettyFaces" href="http://ocpsoft.org/prettyfaces/" target="_blank">PrettyFaces</a> isimli url-rewrite JSF kütüphanesini kullanacağız.</p> <p> </p> <p>Öncelikle gerekli dosyaları ekleyelim. Kurulum için</p> <ol> <li> <pre class="lang:xhtml decode:true crayon-selected"><dependency> <groupId>org.ocpsoft.rewrite</groupId> <artifactId>rewrite-servlet</artifactId> <version>2.0.7.Final</version> </dependency> <dependency> <groupId>org.ocpsoft.rewrite</groupId> <artifactId>rewrite-config-prettyfaces</artifactId> <version>2.0.7.Final</version> </dependency></pre> <p>pom.xml dosyamıza gerekli kütüphaneleri ekleyelim. Maven kullanımı hakkında daha ayrıntılı bilgi için <a title="Maven WEb Site" href="http://maven.apache.org/guides/mini/guide-central-repository-upload.html" target="_blank">Maven Web Site</a> buraya bakabilirsiniz. <span id="more-53"></span></li> <li> <pre class="lang:default decode:true"><pretty-config xmlns="http://ocpsoft.org/schema/rewrite-config-prettyfaces" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ocpsoft.org/schema/rewrite-config-prettyfaces http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd"> <url-mapping id="watch"> <pattern value="/watch" /> <view-id value="site/show_video.xhtml" /> </url-mapping> <url-mapping id="home"> <pattern value="/home" /> <view-id value="site/index.xhtml" /> </url-mapping> <url-mapping id="profile"> <pattern value="/Profile" /> <view-id value="site/profile.xhtml" /> </url-mapping> </pretty-config></pre> </li> </ol> <p>WEB-INF/pretty-config.xml isimli bir dosya oluşturarak içine yukarıdaki kod bloğunu ekleyin.</p> <p> </p> <p>Peki Kod bloğu ne iş yapıyor.</p> <pre class="lang:xhtml decode:true crayon-selected"><url-mapping id="profile"> </url-mapping></pre> <p>Yukarıdaki bölüm yönelendirmeniz için isim tanımlamanıza yarıyor. Örneğin ben Profil Sayfası için “profile” tagını belirledim.</p> <pre class="lang:xhtml decode:true"> <pattern value="/Profile" /> <view-id value="site/profile.xhtml" /></pre> <p>Yukarıdaki Kod bloğunda ise pattern ana dizin linkinizden sonra gelecek kısım ;</p> <p>Örnek Link : localhost/Profile olarak gelirse bu link : localhost/site/profile.xhtml olarak işlem görecek.</p> <p> </p> <p> </p> <p>Muharrem Tığdemir</p><p>The post <a href="/jsf-seo-ve-prettyfaces-hakkinda/">JSF, SEO ve PrettyFaces Hakkında</a> first appeared on <a href="">Muharrem Tığdemir</a>.</p>]]></content:encoded> <wfw:commentRss>/jsf-seo-ve-prettyfaces-hakkinda/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id xmlns="com-wordpress:feed-additions:1">53</post-id> </item> </channel> </rss>