1. core/ - Temel Arayüzler
AutomationTask.java- Tüm görevlerin temel arayüzüTaskExecutionResult.java- Görev sonuç izleme sınıfı
2. scheduler/ - Görev Zamanlama
AutomationScheduler.java- Merkezi scheduler ve yönetici- Hemen çalıştırma
- Bir kez zamanlanmış çalıştırma
- Periyodik çalıştırma
- Sabit gecikmeli çalıştırma
- Çalışma geçmişi takibi
3. tasks/ - Görev Implementasyonları
BaseAutomationTask.java- Temel görev sınıfıDataProcessingTask.java- Veri işleme (UPPERCASE, LOWERCASE, REVERSE, COUNT)FileOperationTask.java- Dosya işlemleri (COPY, MOVE, DELETE, BACKUP)ReportGenerationTask.java- Rapor oluşturmaSystemCommandTask.java- Sistem komutları çalıştırma
4. config/ - Konfigürasyon
ConfigurationLoader.java- JSON dosyasından yapılandırma yükleme
1. AutomationSystemDemo.java
- Temel sistem demo
- Hemen çalışan görevler
- Zamanlanmış görevler
- Çalışma geçmişi gösterimi
2. RealWorldAutomationExample.java
- Gerçek dünya senaryosu
- Sistem sağlık raporu
- Periyodik yedekleme
- Log temizleme
- Saatlik istatistikler
AutomationSystemTest.java
- Veri işleme testi
- Rapor oluşturma testi
- Scheduler test
- Geçmiş yönetimi testi
pom.xml- Maven proje yapılandırmasılogback.xml- Loglama konfigürasyonuautomation-config.json- JSON tabanlı görev konfigürasyonu
README.md- Detaylı proje açıklamasıQUICKSTART.md- Başlangıç rehberiFEATURES.md- Özellikler ve kullanım (bu dosya)install.sh- Otomatik kurulum scriptirun.sh- Çalıştırma scripti
-
Görev Zamanlama
- Hemen çalıştır
- Belirtilen gecikmeden sonra çalıştır
- Periyodik çalıştırma
- Sabit gecikmeli çalıştırma
-
Görev Türleri
- Veri işleme (dönüştürme, analiz)
- Dosya operasyonları
- Rapor oluşturma
- Sistem komutları
- Özel görevler (extension)
-
İzleme ve Raporlama
- Çalışma geçmişi
- Hata takibi
- Zaman ölçümü
- Detaylı loglama
-
Concurrency
- Thread pool tabanlı
- Eşzamanlı çalıştırma
- Thread güvenliği
# Derleme
mvn clean compile
# Test çalıştırma
mvn test
# Temel demo
mvn exec:java -Dexec.mainClass="com.otomasyon.AutomationSystemDemo"
# Gerçek dünya örneği
mvn exec:java -Dexec.mainClass="com.otomasyon.RealWorldAutomationExample"
# Veya script ile
bash run.sh- Sınıf Sayısı: 12+
- Arayüz Sayısı: 1
- Görev Türü: 5+ (genişletilebilir)
- Dil: Java 11+
- Build Tool: Maven
- Loglama: SLF4J + Logback
- Parallellik: Concurrent/Executors
| Teknik | Versiyon | Amaç |
|---|---|---|
| Java | 11+ | Ana dil |
| Maven | 3.6+ | Build tool |
| SLF4J | 2.0.7 | Loglama |
| Logback | 1.4.11 | Loglama implementasyonu |
| Quartz | 2.3.2 | İleri zamanlama (isteğe bağlı) |
| Gson | 2.10.1 | JSON işleme |
| JUnit | 4.13.2 | Test framework |
AutomationTask healthCheck = new AutomationTask() {
public void execute() {
// Sistem durumunu kontrol et
// Rapor oluştur
}
public String getName() { return "Sağlık Kontrol"; }
public String getDescription() { return "Sistem sağlığını kontrol et"; }
};
scheduler.scheduleRepeatedly(healthCheck, 0, 24, TimeUnit.HOURS);FileOperationTask backup = new FileOperationTask(
"Günlük Yedek",
"data/database.db",
"backups/database_" + LocalDate.now() + ".db",
FileOperationTask.OperationType.COPY
);
scheduler.scheduleRepeatedly(backup, 0, 1, TimeUnit.HOURS);ReportGenerationTask report = new ReportGenerationTask(
"Aylık Rapor",
"reports/" + LocalDate.now() + "_report.txt"
);
scheduler.scheduleRepeatedly(report, 0, 1, TimeUnit.DAYS);- Thread Safety: Concurrent collections kullanımı
- Exception Handling: Tüm görevler exception handling'e sahip
- Loglama: Tüm işlemler loglanır
- Graceful Shutdown: Sistem düzgün kapatılır
-
Yeni Görev Türü Ekleme
BaseAutomationTaskextend etexecute()implement et
-
Konfigürasyon Yükleme
ConfigurationLoaderkullan- JSON format destekliyor
-
Özel Loglama
logback.xmlözelleştir- Custom appender ekle
-
Veritabanı İntegrasyonu
- İzleme verilerini DB'ye kaydet
- Geçmişi persis et
AutomationSystemDemo.java- Temel örneklerRealWorldAutomationExample.java- Gerçek dünya uygulamasıAutomationSystemTest.java- Test yazma örnekleriREADME.md- Detaylı açıklamalarQUICKSTART.md- Adım adım rehber
- Kurulum:
bash install.shçalıştır - Test:
mvn testile testleri çalıştır - Demo:
bash run.shile sistemi gör - Özelleştir: Kendi görevlerini ekle
- Genişlet: Yeni özellikler implementa et
Sistem hazır!
Java otomasyon sistemi başarıyla oluşturuldu. Hemen başlayabilirsin!