23 Aralık 2009 Çarşamba

Linux Shell Programlama

Script'i hangi shell'in çalıştıracağının belirtilmesi


Script dosyasının başındaki #! ifadesi ile bu scriptin hangi shell tarafından çalıştırılacağı belirtilir. Örneğin script dosyasının ilk satırında #!/bin/sh yazmışsak bu script'in /bin'de yer alan sh yorumcusu tarafından çalıştırılıcağını belirtmiş oluyoruz. Kullanılabilecek diğer bazı yorumcular:
#!/bin/csh

#!/bin/bash
#!/usr/bin/perl


Dosya içeriğinde kelime arama

grep ntp messages
Messages dosyasında ntp geçen satırları listelemektedir.

ls -l | grep mysqld
ls -l ile listelenen dosyalardan mysqld ifadesine göre bir filtreleme yapılmaktadır.


Dosya arama

find . -name "*.log" -print
Bu komutla bulunduğumuz dizin ve tüm alt dizinlerdeki log uzantılı dosyalar listelenmektedir.

find /var/log -name "messages*" -exec grep samba {} \; -print
/var/log dizinindeki messages ile başlayan dosyalarda ntp ifadesinin geçtiği satırları bulmaktadır.


Sıkıştırılmış dosyalarla çalışma

zip backup.zip backup
Backup dizini backup.zip adıyla zip formatında sıkıştırılmıştır.

unzip backup.zip
Zip formatıyla sıkıştırılmış backup.zip isimli dosyayı açar.

gzip message.log
message.log dosyasını Lempel-Zip formatında sıkıştırır ve message.gz isimli dosya üretir


gunzip message.gz
Lempel-Zip formatında sıkıştırılmış message.gz isimli doyayı açar.


For döngüsü ile dizin içeriğinin listelenmesi

for i in {1..5}; do echo $i; ls; sleep 5; done

Aritmetik işlemler

set i = $(( $i + 1 ))







18 Aralık 2009 Cuma

Eclipse

Bu yazıda anlatılanlar Eclipse'in 3.5 versiyonunda tespit edilmiştir. Teorik olarak farklı versiyonlarda farklı yapılar olabilmekle beraber pratikte yaklaşık tüm versiyonlar için geçerli olduğu düşünülmektedir.


 

Workspace dizin ve dosyaları

Proje listesi ve dizinleri

org.eclipse.core.resources dizininde proje listesi ve bu projeler ile ilgili bazı ayarlar yer almakta. .projects/proje_adı/.location dosyasında projenin konum bilgisi yer almakta. .root ve .safetable dizinleri de yine projeler ile ilgili gerekli bazı referansları tutmak ve bu dizinler silinmemeli. Silinirse Eclipse tekrar açıldığında proje listesi boş gelmektedir.
Workspace'in encodingi
org.eclipse.core.runtime\.settings\org.eclipse.core.resources.prefs dosyasına encoding=UTF-8 kaydı eklenerek workspace'in varsayılan encoding'i UTF-8 yapılabilir.
Kullanıcı tanımlı kütüphaneler
Kullanıcı tarafından tanımlanan kütüphane tanımları org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs dosyasında tutulmaktadır.
Açılışta tanıtım ekranının görünmesi
org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs dosyasındaki showIntro değişteninin değeri false yapılarak tanıtım Eclipse açıldığında tanıtım ekranının açılması engellenebilir.
Perspective ve View'ler
Workspace'te hangi perspective ve view'lerin yer aldığı bilgisi org.eclipse.ui.workbench/workbench.xml dosyasında tutulmaktadır.
org.eclipse.core.resources/.span
Bu dosya workspace oluşturulurken geçici olarak üretilmekte ve workspace oluşturulduktan sonra silinmektedir.

17 Aralık 2009 Perşembe

MySQL

Bu kısımda mysql ile ilgili çeşitli bilgiler verilecektir.


Komut satırından veritabanına bağlantı

Veritabanı yeni oluşturulmuşsa ve/veya kullanıcının bir şifresi yoksa:
# mysql -ukullanici_adi
# mysql -uroot

Kullanıcının şifresi varsa:
# mysql -ukullanıcı_adı -pşifre
# mysql -uroot -proot


Kullanıcının şifresini değiştirme

Veritabanı yeni oluşturulmuşsa ve/veya kullanıcının bir şifresi yoksa:
# mysqladmin -u kullanıcı_adı password şifre
# mysqladmin -u root password root

Kullanıcının şifresi varsa:
# mysqladmin -u kullanıcı_adı -p eski_şifre password yeni şifre

# mysqladmin -u root -p root password 123456

SQL ile şifre değiştirme:
mysql# use mysql;
mysql# update user set password=PASSWORD("yeni_şifre") where User='root';
mysql# flush privileges;


Root şifresini sıfırlama

1. MySQL servisi kapatılır.
2. MySQL servisi --skip-grant-tables seçeneği ile başlatılır.
         Eğer bu şekilde başlatılmasında problem oluyorsa my.cnf/my.ini dosyasının mysqld kısmına skip-grant-tables yazan bir satır eklenip, servis yeniden başlatılır.
3. MySQL sunucusuna root olarak bağlanılır.
4. Yeni şifre SQL yöntemi ile belirlenir.
5. Komut satırından çıkılıp MySQL servisi yeniden başlatılır.

LINUX'te kullanım örneği
1. # /etc/init.d/mysql stop
2. # mysqld_safe --skip-grant-tables
3. # mysql -u root
4. mysql# use mysql;
    mysql# update user set password=PASSWORD("yeni_şifre") where User='root';
    mysql# flush privileges;
    mysql# quit
5. # /etc/init.d/mysql restart


Shell script'ten sql kullanmak

--execute parametresi ile istenilen sql komutu çalıştırılabilir.

mysql --user=root --password=degistir --execute="show databases"

mysql --user=root --password=degistir --execute="CREATE DATABASE DENEMEVT CHARACTER SET utf8 COLLATE utf8_turkish_ci"


Sunucuya başka bilgisayarlardan erişim

MySQL artık ağ erişimi açık olarak gelmektedir. Varsayılan olarak sadece yerel bilgisayardan erişime izin vermektedir. my.cnf/my.ini dosyasında bind-address değişkeninin değerini 0.0.0.0 ya da sunucunun IP adresi olarak değiştirirseniz MySQL servisine başka bilgisayarlardan da erişebilirsiniz. Gerektiği durumlarda aşağıdaki 2 maddeyi de uygulamalısınız.


Kullanıcı yetkisi vermek

Aşağıdaki komut root kullanıcısına tüm bilgisayarlardan DENEMEVT şeması üzerinde her tür işlem yapma yetkisi verir.
GRANT ALL ON DENEMEVT.* TO 'root'@'%'
 

Linux sunucularda uzaktan erişim

Linux sunucularda uzaktan erişim için yukarıdaki başlıkta yapılan işlem yeterli olmayabilir.
Bu durumda /etc/hosts.allowed dosyasına "mysqld: ALL" yazan bir satır eklemeniz gerekecektir.


2 Eylül 2009 Çarşamba

CMMI

CMMI; süreç iyileştirme yaklaşımıdır.

Kısaltmalar

SEISoftware Engineering Institute
CMMICapability Maturity Model Integration
SCAMPIStandart CMMI Appraisal Method for Process Improvement
GGGeneric Goal
GPGeneric Practice
SGSpecific Goal
SPSpecific Practice


CMMI Seviyelerinin Anlamları

1Başlangıç
2Yönetilen
3Tanımlı
4Sayılarla Yönetilen
5Sürekli İyileşen


Süreç Alanları
2Requirements ManagementREQMEngineering
2Project PlanningPPProject Management
2Project Monitoring and ControlPMCProject Management
2Supplier Agreement ManagementSAMProject Management
2Measurement and AnalysisMASupport
2Process and Product Quality AssurancePPQASupport
2Configuration ManagementCMSupport
3Requirements DevelopmentRDEngineering
3Technical SolutionTSEngineering
3Product IntegrationPIEngineering
3VerificationVEREngineering
3ValidationVALEngineering
3Organizational Process FocusOPFProcess Management
3Organizational Process Definition+IPPDOPD+IPPDProcess Management
3Organizational TrainingOTProcess Management
3Integrated Project Management+IPPDIPM+IPPDProject Management
3Risk ManagementRSKMProject Management
3Decision Analysis and ResolutionDARSupport
4Organizational Process PerformanceOPPProcess Management
4Quantitative Project ManagementQPMProject Management
5Organizational Innovation and DeploymentOIDProcess Management
5Causal Analysis and ResolutionCARSupport

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.