11 Kasım 2009 Çarşamba
Intellij IDEA 9 Community Edition Çıktı
Intellij, version 9 ile beraber community edition ve ultimate edition olarak dagitilmaya başladi:
http://blogs.jetbrains.com/idea/2009/10/intellij-idea-open-sourced/
Community edition'ı asagidaki linkten ucretsiz olarak indirebilirsiniz:
http://www.jetbrains.com/idea/nextversion/free_java_ide.html?utm_source=IDEA_BLOG&utm_media=Anouncement&utm_campaign=IDEA9_CE
10 Haziran 2009 Çarşamba
Obtaining Information About The Current User In Spring Security
The details of the principal currently interacting with the application is stored inside
SecurityContextHolder
. Spring Security uses an Authentication
object to represent this information. Use the following code block -from anywhere in your application- to obtain the name and the password of the currently authenticated user:Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
UserDetails principal = (UserDetails) authentication.getPrincipal();
String username = principal.getUsername();
String password = principal.getPassword();
6 Nisan 2009 Pazartesi
Oracle XE'de HTTP Portu Nasıl Değiştirilir?
Oracle XE, standart olarak 8080 no'lu HTTP portu olarak kullanır. Bu portu JBoss ve Tomcat de HTTP portu olarak kullandığı için, Oracle ile beraber bir application server çalıştırmak için, ya application server'in ya da Oracle'in HTTP portunun değiştirilmesi gerekiyor.
Oracle'de bu portu değiştirmek icin dbms_xdb.sethttpport() fonksiyonunu kullanabilirsiniz. Database'e system kullanıcısıyla giriş yaptıktan sonra aşağıdaki şekilde çalıştırabilirsiniz:
EXEC dbms_xdb.sethttpport(8090);
Oracle'de bu portu değiştirmek icin dbms_xdb.sethttpport() fonksiyonunu kullanabilirsiniz. Database'e system kullanıcısıyla giriş yaptıktan sonra aşağıdaki şekilde çalıştırabilirsiniz:
EXEC dbms_xdb.sethttpport(8090);
31 Mart 2009 Salı
Intellij Knows How To "Extract Method"
Intellij has a great refactoring feature called "Extract Method". You can convert a code piece into a method using this feature. In this process, Intellij can handle all method parameters and return values. You can use this feature first by selecting the code piece you wish to convert to method, and press CTRL+ALT+M.
I will explain what impressed me most about this feature using following example. In the following code, I am not comfortable with the first try/catch block and I want to hide this dirty code inside a method.
Then, press CTRL+ALT+M. Notice that, the return type of the method is boolean. Click OK and see what we'll get:
Following is the refactored version of our code. Let's see what happened. Intellij put the code inside a method which returns boolean and wrapped the method call inside an if statement. This was the only possible solution which wouldn't violate the flow of program:).
I will explain what impressed me most about this feature using following example. In the following code, I am not comfortable with the first try/catch block and I want to hide this dirty code inside a method.
1 public static void main(String[] args) {To achieve this, position the cursor over 5th line and press CTRL+W. By the way, this is another nice Intellij feature called "Incremental Select" :).
2 Connection conn = null;
3
4 //I am not comfortable with following try/catch block
5 try {
6 Class.forName("com.mysql.jdbc.Driver");
7 } catch (ClassNotFoundException e) {
8 e.printStackTrace();
9 System.out.println("Driver not found");
10 return;
11 }
12
13 try {
14 conn = DriverManager.getConnection(
15 "jdbc:mysql://localhost/petshop", "root", "changeme");
16 Statement statement = conn.createStatement();
17 } catch (SQLException e) {
18 e.printStackTrace();
19 }
20 }
21
Then, press CTRL+ALT+M. Notice that, the return type of the method is boolean. Click OK and see what we'll get:
Following is the refactored version of our code. Let's see what happened. Intellij put the code inside a method which returns boolean and wrapped the method call inside an if statement. This was the only possible solution which wouldn't violate the flow of program:).
1 public static void main(String[] args) {
2 Connection conn = null;
3
4 //I am comfortable now
5 if (lookupClass()) return;
6
7 try {
8 conn = DriverManager.getConnection(
9 "jdbc:mysql://localhost/petshop", "root", "changeme");
10 Statement statement = conn.createStatement();
11 } catch (SQLException e) {
12 e.printStackTrace();
13 }
14 }
15
16 private static boolean lookupClass() {
17 try {
18 Class.forName("com.mysql.jdbc.Driver");
19 } catch (ClassNotFoundException e) {
20 e.printStackTrace();
21 System.out.println("Driver not found");
22 return true;
23 }
24 return false;
25 }
26
25 Ocak 2009 Pazar
The Easiest Java Tab Implementation With Close Button
Unfortunately, the current implementation of JTabbedPane class in Swing API does not contain a close button. You have to implement this feature by yourself. Here, I have a simple JTabbedPane implementation with a close button. I used MetalIconFactory.InternalFrameCloseIcon class in the close button. Because this is a private inner class, you need to use MetalIconFactory.getInternalFrameCloseIcon(int iconSize). Check the following screenshots to see how a JTabbedPane and a CloseButtonTabbedPane looks like:
A tabbed pane with default JTabbedPane implementation, shows up as below:
A tabbed pane with CloseButtonTabbedPane implementation, shows up as below:
A tabbed pane with default JTabbedPane implementation, shows up as below:
A tabbed pane with CloseButtonTabbedPane implementation, shows up as below:
Click here to download the source code of CloseButtonTabbedPane here.
The advantages of this implementation is:
The advantages of this implementation is:
- You don't need an image for close button. Instead you use an image provided by Java API.
- Everything you need is packaged inside just 1 class.
Kaydol:
Kayıtlar (Atom)