Etzel Art of Digital Manufacturing
Bize ulaşın
Lunex 1.6.0 kullanım kılavuzu

Bileşen, işlemci ve veri dönüşümü seçin

Component, EIP, JSON/XML dönüşümü ve özel Java davranışını seçin.

Akış geliştirmede üç tür yapı taşı kullanırsınız: sistemlerle bağlantı kuran component, mesajı işleyen processor ve bir işi parametrelerle tekrar kullanılır hâle getiren Kamelet. Önce yapılacak işi belirleyin; ardından uygun türü katalogdan seçin.

Processors, Components ve Kamelets farkı

Katalog türüSorduğunuz soruÖrnek ve ayarlayacağınız şey
ProcessorsMesaja ne yapılacak; akış nasıl ilerleyecek?Set Body’de dil/ifade, Choice’ta koşul ve dallar, Split’te bölme ifadesi ve iç adımlar.
ComponentsMesaj nereden alınacak veya hangi sisteme gönderilecek?Timer periyodu, HTTP hedefi, JMS kuyruğu, SQL sorgusu ve bağlantı bean’i. Component ile oluşturulan somut adres bir endpoint’tir.
KameletsHazır tanımlanmış bir işi parametre vererek nasıl kullanacağım?Kaynak, hedef veya dönüşüm olarak hazırlanmış route parçası; yalnız kendi tanımının sunduğu parametreler açılır.

Örneğin siparişi veritabanına yazmadan önce Set Body ile gereken veriyi hazırlayabilir, SQL component’i ile sorguyu ve veri kaynağını seçebilir veya bu işi uygun parametrelerle kapsayan hazır bir Kamelet kullanabilirsiniz. SQL daha ayrıntılı endpoint kontrolü sunar; Kamelet’in ayar yüzeyini kendi tanımı belirler. Kamelet kullanınca ağ, credential, sürücü ve hata yönetimi hazırlığı ortadan kalkmaz.

Katalogdaki Processors başlığı bütün öğelerin özel Java kodu gerektirdiği anlamına gelmez. Çoğunu alanlarını doldurarak kullanırsınız. Process ise özellikle bir Java Processor uygulamasını çağıran adımdır; Bean kayıtlı Java nesnesinin method’unu çağırır. Bean oluşturma ve EIP örnekleri bu iki ihtiyacı ayırır.

Katalogda arayın

  1. Yeni route için Architecture → Route, mevcut route için Add seçin.
  2. Select source veya Select step penceresinde Search catalog ile ad, açıklama veya etiket arayın.
  3. Components, Processors ve Kamelets filtrelerini ihtiyacınıza göre açın. Route başlangıcında yalnızca giriş olabilen öğeler sunulur.
  4. İlgili kartı seçip zorunlu parametreleri doldurun.
  5. Adımı seçerek özellik panelindeki açıklamaları, required alanları ve gelişmiş seçenekleri inceleyin.

Kategori adlarının yanındaki sayılar, seçim bağlamına ve aramaya göre listelenen katalog öğelerini ifade eder; projenizin çalışan bağlantı sayısı veya başarıyla denenmiş entegrasyon sayısı değildir. Birden fazla kategori açık kalabilir. Custom Kamelets only, Kamelet sonuçlarını özel tanımlara daraltır. Seçici üstündeki hızlı erişim öğelerinden birini kaldırmak proje route’undaki adımı silmez.

No matching steps görürseniz aramayı kısaltın ve filtreleri kontrol edin. Kurulum politikasıyla kapatılan veya ek hazırlık isteyen bileşenler görünmeyebilir. Bir katalog kartının görünmesi, ağ bağlantısının, lisanslı sürücünün veya credential’ın hazır olduğu anlamına gelmez.

Katalog teknik component seçeneklerini gösterir. Source → Files ise sizin projenizin gerçek dosyalarıdır. Katalogdan component seçmek, başka projedeki iş mantığını kopyalamaz; ortak iş mantığı için Kamelet, template veya uygun bir servis kullanın.

Hangi yapı taşı hangi problemi çözer?

İhtiyaçKullanılacak yapı
Belirli aralıkla iş başlatmakTimer veya zamanlama component’i
Bir HTTP servisini çağırmakHTTP component’i
Kendi HTTP API’nizi açmakAPI design ve Direct route
Dosya okumak/yazmak, dosya transferiFile, FTP/SFTP gibi ilgili component
Kuyruk veya olay sistemine bağlanmakJMS, AMQP, Kafka gibi uygun component
SQL sorgusu çalıştırmakSQL/JDBC component’i ve yapılandırılmış veri kaynağı
Aynı runtime içinde route çağırmakDirect
Bellek içi kuyruk üzerinden ayırmakSEDA; kalıcı broker kuyruğu yerine kullanmayın
Koşula göre farklı yol seçmekChoice / Filter
Listeyi veya büyük mesajı parçalara ayırmakSplit
Parçaları belirli kuralla birleştirmekAggregate
Birden çok hedefe göndermekMulticast veya uygun routing processor’ı
Body/header/property hazırlamakSet Body / Set Header / Set Property
Özel hesaplama veya bağlantı nesnesi kullanmakBean / Process ve Java kodu

Mesajlaşmada kuyruk adı kadar teslim, yeniden deneme ve kalıcılık davranışı da önemlidir. Artemis ve kuyruk yönetimi bunları birlikte açıklar. SAP bağlantısı kurulacaksa SAP bağlantı rehberindeki runtime ve destination hazırlığını tamamlayın.

Choice, Filter, Split, Aggregate, Multicast ve Loop’un hangi sırada ve hangi mesajla çalıştığını temel EIP rehberindeki örneklerle öğrenin. Katalog seçimi sonrasında açılan alanlar sağ panel rehberinde açıklanır.

Endpoint’i yapılandırın

Bir endpoint URI’si component’i, kaynağı ve seçeneklerini belirler. Aşağıdaki iki gösterim aynı Direct hedefini ifade eder:

- to:
    uri: direct:validateOrder
- to:
    uri: direct
    parameters:
      name: validateOrder

Görsel editör endpoint parçalarını ayrı alanlarda gösterir. Host, path, queue, timeout veya bağlantı bean’i gibi parametreler component’e göre değişir. Required filtresi zorunlu alanları, Sensitive credential alanlarını bulmanıza yardımcı olur. Ortama bağlı değerlerde Properties/Secret referansı kullanın.

Sabit bir hedef için to, çalışma anında hesaplanan hedef için toD kullanılır. Dinamik hedef kurarken hangi değerlerin adresi değiştirebildiğini açıkça sınırlayın; yanlış bir body/header değeri farklı hedefe yönlendirmemelidir.

JSON verisini dönüştürün

Veri eşleme, kaynak alanları hedef iş modeline taşımaktır. Lunex’te dönüşümü akış adımları, expression, data format veya bean ile tanımlarsınız. Schema veri biçimini tarif eder; alanları kendiliğinden yeniden adlandırmaz.

Aşağıdaki örnek JSON’u okur, nesne üzerinde alanları eşler ve yeniden JSON üretir. Projenizde Jackson ve Groovy bağımlılıkları bulunmalıdır; mevcut camel.jbang.dependencies listesine gerekli olanları ekleyin. Bağımlılık hazırlığı ayrıntıları açıklar.

- route:
    id: map-order
    from:
      uri: direct:mapOrder
      steps:
        - unmarshal:
            json:
              library: Jackson
        - setBody:
            groovy:
              expression: |
                [
                  orderNumber: body.orderId,
                  customerCode: body.customer.id,
                  units: body.quantity
                ]
        - marshal:
            json:
              library: Jackson

Örnek girdi:

{"orderId":"ORD-1001","customer":{"id":"C-100"},"quantity":2}

Beklenen içerik:

{"orderNumber":"ORD-1001","customerCode":"C-100","units":2}

JSON alan sırası ve boşlukları farklı olabilir; alanların anlamını ve veri türlerini karşılaştırın. Önce Simulation ile bu girdiyi deneyin, sonra gerçek kaynaktan gelen örneklerle doğrulayın. Eksik customer gibi olasılıklar için doğrulama veya hata yönetimi ekleyin.

Basit bir alan seçimi için JSONPath, XML alanı için XPath, header/property ve metin ifadeleri için Simple kullanabilirsiniz. Seçtiğiniz expression dilinin ihtiyaç duyduğu runtime bağımlılığını hazırlayın. Karmaşık kuralları okunabilir bir script veya Java bean içinde tutun; ilgili dosyayı proje kaynaklarıyla birlikte sürümleyin.

Dil karşılaştırması, Simple başlangıcı ve Groovy ile script/dosya kullanımı dil seçimini, veri türlerini ve beklenen sonuçları birlikte açıklar.

XML ve farklı veri biçimleri

XML yapısını başka XML’e çevirmek için XSLT component’i kullanabilir, dönüşüm dosyasını projeye ekleyebilirsiniz. Örneğin order-to-target.xsl kaynağına gitmek için xslt:order-to-target.xsl endpoint’i kullanılabilir; XSLT bağımlılığının ve dosyanın runtime’da bulunması gerekir.

Unmarshal, metin/binary içeriği işlenebilir veri yapısına; Marshal, veri yapısını çıkış biçimine çevirir. Özellik panelindeki data format seçimi ile JSON, XML veya ilgili desteklenen formatın seçeneklerini ayarlayın. XML schema kontrolü istiyorsanız uygun validator adımı ve XSD kaynağı ekleyin.

İstek gövdesinin JSON veya XML olması tek başına iki model arasında dönüşüm sağlamaz. Hedef alan adları, sayı/tarih türleri, zorunlu alanlar ve hata davranışını eşleme tasarımında belirleyin.

Kamelet’i parametrelerle kullanın

Kamelet, sık kullanılan bir bağlantı veya dönüşüm işini daha küçük bir ayar yüzeyiyle sunar. Katalogdan seçtikten sonra Kamelet’in tanımladığı property’leri doldurun. Hangi parametrenin zorunlu olduğunu kendi tanımı belirler.

Kendi Kamelet’inizde Definition, Properties, Dependencies ve Routes birlikte çalışır. Örneğin ortak bir veri normalleştirme Kamelet’i, kaynak sistemin alan adını parametre alabilir. Projede kullanılan özel Kamelet’in dosyasını ve bağımlılıklarını runtime’a ulaştırın; yalnızca katalogda adını görmeniz başarılı çalıştırmayı garanti etmez.

Bağlantı çalışmıyorsa

BelirtiKontrol
Component veya class bulunamadıURI şeması, dependency, sürücü ve runtime paketini kontrol edin.
Placeholder çözülemediProperties anahtarı, Secret/ConfigMap adı ve key’i kontrol edin.
Bağlantı zaman aşımıRuntime’ın ağ erişimi, DNS, port ve timeout ayarını kontrol edin.
Kimlik doğrulama reddiİlgili sistemin credential’ını, Secret referansını ve izinlerini kontrol edin.
Dönüşümde tür hatasıBody’nin o adımda metin mi nesne mi olduğunu inceleyin; gerekli Unmarshal adımını ekleyin.
Simülasyon doğru, canlı çağrı farklıReceiver örneği yerine gerçek sistemin veri/yanıt biçimini ve etkilerini kontrol edin.

Hatanın akışı nasıl yönlendireceğini hata yönetiminde tanımlayın.

Lunex’i kendi entegrasyonunuzla görün

Kılavuzda okuduklarınızı kendi sistemlerinizle deneyelim. Demo için bize yazın.