26 Ağustos 2009 Çarşamba

JIDE

JIDE, Swing bileşen kütüphanesidir.

JIDE'nin paketinde gerekli doküman ve örnek kodlar da mevcut.

doc dizininde tüm modüllerin geliştirici klavuzları mevcuttur.

javadoc dizininde API dokümanları mevcuttur.

Örnek uygulama jidesoft'un sitesinden Java Web Start ile çalıştırılabilir. Örnek uygulamadan ilgili ekran ve bileşenlerin kullanımı ile ilgili kodlara ulaşılabilir. Örnek uygulamaya ait kodlar aynı zamanda examples dizininde de mevcuttur.

Bazı Bileşenler

Common Layer

JideSplitButton: Ana fonksiyonalite için bir düğme ve yan fonksiyonalite için bir menüden oluşan bileşen.
JideTabbedPane: Başılığında ikon gösterilebilen sekme uyarlaması. Sekme sayısı belirlenen sayıyı geçerse sekmelere menü araçılığıyla ulaşılabilir. İstenirse farenin orta düğmesi ile sekme kapatılabilir.
CheckBoxList: JCheckBox desteği olan liste. İstenilen elemanlar disable edilebilir.
CheckBoxTree: JCheckBox desteği olan ağaç bileşeni. Dig In özelliği ile parent eleman seçildiği zaman child elemanların da seçilip seçilmeyeceği belirlenebilir.
Searchable: JTree, JTable, JList, JTextComponent, JComboBox ve bazı JIDE bileşenlerinde kullanıcı aradığı elemanın baş harflerini yazdığında eşleşen eleman seçili duruma gelir.
SearchableBar: Ctrl+f tuşları ile Firefox'un arama paneline benzer bir arama paneli açıp ilgili bileşende kayıt aranabilemsini sağlar.
JidePopup: JPopup'tan farklı olarak taşınabilmekte, yeniden boyutlandırılabilmekte ve belli bir zaman sonra otomatik olarak kapanabilmekte.
JideSplitPane: 2'den fazla bileşen eklenebilir.
RangeSlider: Tamsayı aralık seçmek için kullanılabilecek bileşen.
Overlayable: Bir bileşenin üstünde küçük, bilgilendirici başka bir bileşen göstermek için kullanılır. Örneğin bir bileşene veritabanından veriler yüklenirken progress bar gösterip işlem bittiğinde kaybolması.
ObjectConverter: Bileşenin, veri sınıfının toString fonksiyonu ile dönen değer yerine hesaplanan başka bir değeri göstermesini sağlar. Örneğin combobox'ta şehirler gösterildiği varsayılsın. Şehir nesnesinin toString'i yerine adı ile nüfusunun birleşimi gösterilebilir. Ortam yapılandırılırken ObjectConverterManager sınıfına veri tipi, converter nesnesi ve context kaydı yapılmalıdır. İlgili bileşende de setConverterContext fonksiyonu ile hangi context'e göre gösterim uygulanacağı belirlenmeli.
DateSpinner: Verilen formatta tarih yazmak için kullanılabilecek spinner bileşeni.

Docking Framework

DockableFrame: Dock özelliği olan panel desteği sağlar. DockableFrame'larin floating/docking, auto-hide on/off ve close desteği mevcuttur.

Action Framework

CommandBar: MS Ofis'in 2007'den önceki versiyonlarındaki araç çubukları gibi taşınabilen ve ayrı bir diyalog gibi kullanılabilen araç çubuğu özelliği sağlar.
CommandMenuBar: CommandBar'ın menü uyarlaması.

Components

CollapsiblePane: Windows Explorer'da ve birçok Microsoft uygulamasındaki açılır/kapanır panel görüntüsünü sağlayan bileşen.
FloorTabbedPane: Sekmelerin yukarıdan aşağıya listelendiği ve ilgili panelin sekmeler arasında görüntülendiği JTabbedPane uyarlaması.
OutlookTabbedPane: MS Outlook'daki gibi sekmelerin alt tarafta ve alt alta listelendiği, ilgili panelin yukarıda görüntülendiği JTabbedPane uyarlaması.
Alert: MS Outlook'daki mesaj ekranları gibi uyarı mesajlarının ekranın belirli bir kısmında kayarak gelmesini sağlayan bileşen. Mesaj diyaloğunun ekranın hangi kısmından gelip hangi kısmından çıkacağı, belli bir süre sonra kaybolacak mı yoksa kullanıcı kapatana kadar kalacak mı ve benzeri ayarlar verilebiliyor.
BalloonTip: Balon şeklinde görülen tooltip uyarlaması.

Grids

SortableTable, SortableList, SortableComboBox, SortableTree: Sıralama desteği olan bileşenler.
FilterableTableModel: MS Excel'de başık satırı sabitlendikten sonra istenilen sütun başlığından verilerin filtrelenmesi özelliğini sağlayan bileşen.
ShrinkSearchableSupport: JList, JComboBox ve JTable'da kullanıcı aramak istediği kaydın baş harflerini yazdıkça eşlenik olmayan kayıtları gizleyen, sadece eşlenik kayıtların gösterilmesini sağlan yardımcı sınıf.
TreeTable: Tablo'nun bir sütunu ağaç yapısı şeklinde görünür. Ağaç yapısının açma/kapama (expand/collaps) desteği vardır.
HierarchicalTable: Satır aralarında fazladan bileşen bulundurabilen JTable uyarlaması. Windows'un program ekle/kaldır ekranına benzer ekranlar yapılabilmekte.
GroupTable: Belli sütundaki değerlere göre verileri gruplayabilmekte.
GroupList: Gruplama özelliği olan liste uyarlaması.
JideTable: Çok katmanlı sütun gruplama, hücre güncellemede fazladan editingStarting, editingStarted ve editingStopping eventlerinin fırlatılması, hücre güncellemede kontrol gibi özelliklerin eklendiği JTable uyarlaması.
TableScrollPane: Satır başlığı, satır sonu, sütun sonu gibi ek alanlar (JScrollPane'ın sağladıklarına ek olarak), sütun sabitleme (sadece istenilen sütunların scroll edilmesi, diğer sütunların scroll edilmemesi) gibi özellikler sağlamaktadir.
TableSplitPane: Büyük bir tablonun sütunlarını jidenin split pane'inde birçok pane'e parçalayabilen, aynı zamanda da gezinme, sıralama, scroll etme gibi özellikleri de kaybetmeyen bileşen.
DualList: İkili liste vasıtasıyla kayıt seçme ve sıralama desteği sağlayan bileşen.
TableColumnAutoResizer, TableRowAutoResizer, TableColumnResizer, TableRowResizer: Kullanıcının tablonun satır ve sütunlarını yeniden boyutlandırabilmesine imkan sağlamaktadır.
TableUtils: Tablonun seçim, satır/sütun boyutu, sütunların sıralaması, scroll durumu gibi birçok ayarını kaydetme ve yeniden yüklemeye imkan sağlayan yardımcı sınıflar.
DateComboBox, ColorComboBox, TreeComboBox, ListComboBox, FileChooserComboBox: Tarih, renk, font ve benzeri tipte veri seçmek için kullanılan, popup'ında liste, tablo, ağaç, checkboxlist ve benzeri birçok bileşeni gösterebilen, popup'ı yeniden boyutlandırılabilen JComboBox uyarlamasıdır.
DateChooserPanel: Gün seçmek için kullanılan takvim görünümlü bileşen.
MonthChooserPanel: Ay seçmek için kullanılan bileşen.

Dialogs

WizardDialog: Wizard hazırlamak için hazır diyalog.
MultiplePageDialog: Bazı uygulamaların seçenekler ekranlarındaki gibi ikonlu tabbed pane uyarlaması.
AggregateTable: Satırları gruplamaya imkan sağlayan ağaç yapılı tablo uyarlaması.

Data Grids

PageNavigationBar: JList ve JTable'da çok fazla veri olduğunda verilerin sayfa sayfa gösterilmesi ve sayfalar arasında gezinmeye imkan sağlamaktadır.

Shortcut Editor

ShortcutEditor: Uygulamanın tüm kısayollarını yönetmeye yarayan bileşen. Şema desteği, xml olarak kaydetme ve yeniden yüklemek için yardımcı foksiyonları mevcuttur.

Dashboard

Dashboard: Portal benzeri arayüzler oluşturmaya imkan sağlayan bileşendir.

12 Ağustos 2009 Çarşamba

Subversion

Subversion (SVN) bir versiyon kontrol sistemidir/version control sistem (VCS).

Versiyon kontrol sistemleri aynı zamanda kaynak kod yönetimi/source code management (SCM) olarak da isimlendirilmektedir. Versiyon kontrol sistemleri kod, doküman veya diğer herhangi bir dosyanın değişimini tarihsel olarak tutmak için kullanılır. Günümüzde yazılım projelerinin vazgeçilmez bir parçasıdır.

Subversion'ın resmi sitesine burdan ulaşabilirsiniz.

Alternatif Versiyon Kontrol Sistemleri
  • Concurrent Versions System (CVS): Açık kaynak kodludur. Açık kanak kodlu projelerde SVN'den önce en yaygın şekilde kullanılan bir versiyon kontrol sistemidir.
  • Visual SourceSafe (VSS): Microsoft'un geliştirdiği versiyon kontrol sistemi.
  • ClearCase: IBM'in geliştirdiği versiyon kontrol sistemi.
  • Git: Açık kaynak kodlu, dağıtık mimarili olarak tasarlanmış bir versiyon kontrol sistemi.


SVN varsayılan dizin yapısı

SVN'de proje dizini altında trunk, branches ve tags dizinlerinin açılması tavsiye edilir. Trunk ana branch'tır ve asıl geliştirme bu branch üzerinde yürütülür. Branch'lar branches dizini altına açılan ilgili dizine, tag'ler ise tags dizini altına açılan ilgili dizine atılır.


SVN'de branch kavramı

SVN branch alma dosya kopyalama şeklindedir. Branches dizini altına açılan bir dizine trunk'ın kopyasının alınmasıyla branch alınmış olur.

Aşağıdaki komut ile branch alınmış olur.

svn copy -m "1.1 branchı oluşturuldu." http://svn_server/abc_projesi/trunk http://svn_server/abc_projesi/branches/ver_1_1

Bu komut işlemleri server tarafında çok hızlı bir şekilde gerçekleştirir. Client'ta branch çok yavaş olduğu için burada anlatılmadı.

SVN'den silinen bir dosya yada dizinin geri alınması

Projemizin SVN URL'inin http://svn_server/abc_projesi olduğunu ve bizim src dizinin altındaki com dizinini yanlışlıkla silip, commit ettiğimizi düşünelim. Repository'nin silinmeden önceli versiyonu'da 123 olsun. Aşağıdaki komutla com dizinimizi geri alabiliriz.

svn copy http://svn_server/abc_projesi/src/com@123 http://svn_server/abc_projesi/src --message "silinen src dizini kurtarıldı."

Spring

Enterprise uygulama geliştirmenin karmaşıklığını ortadan kaldırmak için Rod Johnson tarafından geliştirilen açık kaynak kodlu bir altyapıdır. Spring; daha önce EJB'lerle yapılabilen birçok fonksiyonaliteyi POJO'lar (Plain Old Java Object - Herhangi bir interface'i genişletmek zorunda olmadığınız, sadece sizin ihtiyaç duyduğunuz özellik ve metodları barındıran sınıflar) üzerinden yapabilmeye imkan sağlamaktadır. Spring sadece enterprise uygulamalarda değil, diğer pek çok türdeki uygulamada da kolaylıklar sağlamaktadır.

"Dependency Injection" Spring'in çıkış noktalarından biridir. Dependency Injection tasarım kalıbı yazılımın bileşenleri arasında bağımsızlığı sağlar. Bu durum aynı zamanda "Don't call me, I will call you" (Beni arama, ben seni arayacağım) Hollywood prensibi olarak da ifade edilir.

JIRA

1. Overview
JIRA lets you prioritise, assign, track, report and audit your 'issues,' whatever they may be — from software bugs and help-desk tickets to project tasks and change requests.
More than just an issue tracker, JIRA is an extensible platform that can be customised to match to any business processes.
2. Features
2.1. Issue Type Scheme:
Project specific issue types. Locatization of type names.
2.2. Notification Scheme:
Event type: Issue Created, Issue Updated, Issue Assigned, Issue Resolved, Issue Closed, Issue Commented, Issue Comment Edited, Issue Reopened, Issue Deleted, Issue Moved, Work Logged On Issue, Work Started On Issue, Work Stopped On Issue, Issue Worklog Updated, Issue Worklog Deleted, Generic Event.
Notified: Current Assignee, Reporter, Curent User, Project Leader, Component Leader, Single User (selected), Group, Project Role, Single Email Addess, All Watchers, User Custom Field Value, Group Custom Field Value.
2.3. Permission Scheme
Permissions: Administer Projects, Browse Projects, View Version Control, Create Issues, Edit Issues, Schedule Issues, Move Issues, Assign Issues, Assignable User, Resolve Issues, Close Issues, Modify Reporter, Delete Issues, Link Issues, Set Issue Security, View Voters and Watchers, Manage Watcher List, Add Comments, Edit All Comments, Edit Own Comments, Delete All Comments, Delete Own Comments, Create Attachments, Delete All Attachments, Delete Own Attachments, Work On Issues, Edit Own Worklogs, Edit All Worklogs, Delete Own Worklogs, Delete All Worklogs
Belonging: Reporter, Group, Single User, Project Leader, Current Assignee, User Custom Field Value, Project Role, Group Custom Field Value
2.4. Issue Security Scheme
Security Level: Reporter, Group, Single User, Project Leader, Current Assignee, User Custom Field Value, Project Role, Group Custom Field Value
2.5. Field Configuration Scheme
Holds the association between “Issue Type” and “Field Configuration”.
Field Configuration: List of Predefined or user defined fields. Defines association between specific field and screen. Other attributes; required, renderer, hidden.
Field Types:
Cascading Select: Choose multiple values using two select lists.
Date Time: A custom field that stores dates with a time component
GreenHopper Ranking: Field that will hold the rank of the issue.
Hidden Job Switch: Hidden switch programmatically set whether or not to create a Perforce job.
Job Checkbox: Checkbox to choose whether or not to create a Perforce job.
Multi Group Picker: Choose multiple user groups using a popup picker window.
Multi User Picker: Choose multiple users from the user base via a popup picker window.
Project Picker: Choose from projects that the user can view in the system.
Read-only Text Field: A read-only text label. Only possible to create values programatically (Used internally for imports from Mantis). Maximum of 255 characters.
Single Version Picker: Choose a single version from available versions in the project.
URL Field: Allow the user to input a single URL
Version Picker: Choose from available versions in the project.
Date Picker: A custom field that stores dates and uses a date picker to view them
Free Text Field (unlimited text): A multiline text area custom field to allow input of longer text strings.
Group Picker: Choose a user group using a popup picker window.
Import Id: A read-only custom field that points back to the previously imported bug id.
Multi Checkboxes: Choose multiple values using checkboxes.
Multi Select: Choose multiple values in a select list.
Number Field: A custom field that stores and validates numeric (floating point) input.
Radio Buttons: A list of radio buttons
Select List: A single select list with a configurable list of options.
Text Field (< 255 characters): A basic single line text box custom field to allow simple text input.
User Picker: Choose a user from the user base via a popup picker window.
2.6. Issue Type Screen Scheme
Defines association between “Issue Type” and “Screen Scheme”.
Screen Scheme: Defines association between “Issue Operation” and “Screen”
Screen: Visible fields, Order of Fields, Tab Selection, Tab Naming.
2.7. Workflow Scheme
Defines list of associations between “Issue Type” and “Workflow”.
Workflow: Step Name, Linked Status, Transition.
Transition: Conditions, Validators, Post Functions
Conditions:
Code Committed Condition: Transition to execute only if code has/has not (depending on configuration) been committed against this issue.
No Open Reviews Condition: Transition to execute only if there are no related open Crucible reviews.
Only Assignee Condition: Condition to allow only the assignee to execute a transition.
Only Reporter Condition: Condition to allow only the reporter to execute a transition.
Permission Condition: Condition to allow only users with a certain permission to execute a transition.
Sub-Task Blocking Condition: Condition to block parent issue transition depending on sub-task status.
User Is In Group: Condition to allow only users in a given group to execute a transition.
User Is In Group Custom Field: Condition to allow only users in a custom field-specified group to execute a transition.
User Is In Project Role: Condition to allow only users in a given project role to execute a transition.
Validator:
Permission Validator: Validates that the user has a permission.
User Permission Validator: Validates that the user has a permission, where the OSWorkflow variable holding the username is configurable. Obsolete.
Post Function:
Assign to Current User: Assigns the issue to the current user if the current user has the 'Assignable User' permission.
Assign to Lead Developer: Assigns the issue to the project/component lead developer
Assign to Reporter: Assigns the issue to the reporter
Create Perforce Job Function: Creates a Perforce Job (if required) after completing the workflow transition.
Update Issue Field: Updates a simple issue field to a given value.
2.8. CVS Module
2.9. Mail Configuration
POP3, IMAP, SMTP, JNDI support.
2.10. Project Category
Group project by category.
3. User Manager
Authentication only LDAP integartion.
Groups
Project Role
Privilege
4. Extract Information
XML, Word, Printable and other plug-ins.
Filter: Save filter.
Dashboard:
GreenHopper portlet - Displays the GreenHopper project dashboard
Recent Changesets - Show recent changesets for a particular subtree of your code repository.
Crucible Charting - Displays a chart generated from one of your Crucible instances.
Bamboo Plan Summary - Portlet to display a graphical summary of results for a specific build plan.
Project Table - Shows all project names in a table.
Project - Allows the user to choose a project to display.
Filter Statistics - Display statistics of issues returned from specified filter
Favorite Filters - Lists favorite filters for the current user.
Favorite Filters - Lists favorite filters for the current user.
Issues in progress - Shows the issues in progress.
Voted issues - Shows the issues voted by the current user.
Introduction - An introduction to this installation of JIRA.
Bugzilla ID Search - Search by Bugzilla ID
Release Notes - Release Notes Portlet for remote access only
FishEye Charting - Displays a chart generated from one of your FishEye instances.
Bamboo Status - Portlet to display the status of builds in Bamboo.
Projects - Displays multiple projects.
Admin - Shows functions for admin users.
Project Statistics - Displays statistics for a project
Two Dimensional Filter Statistics - Display statistics of a specified filter in a table
Assigned to me - Shows all unresolved issues assigned to the current user.
Watched issues - Shows the issues watched by the current user.
Show Saved Filter - Shows the issues/results for a saved filter.
Quick links - Shows quick links to user issues.
Road Map - Display upcoming versions for specified projects.
5. Plugins and extend
API, Admin, Agile, Custom Fields, Drawing, Export, External Tools, Issue Operation, Mail, Other, Portlets, Reports, Version Control Integration, Workflow Extensions, Worklog and Time-Tracking.
6. Other
Issue Linking
7. Drawback
No scheme support for priority, resolution or status.
No static Issue Hierarchy

Hibernate

Hibernate nesne, veritabanı eşlemesi için bir altyapıdır. Başlangıçta Java ile geliştirilmesine rağmen NHibernate isminde .Net ile geliştirilen versiyonu da mevcuttur.

ORM: Object/Relational Mapping. Nesne veritabanı eşlemesi. Java nesnelerimiz ile relational veritabanı arasında ilişki kurmayı ifade eder.

Hibernate'de ORM, XML ile sağlanmakta. Hibernate'in son versiyonları bu eşlemeyi annotation ile de yapmaya imkan sağlamakta.