मौजूदा जावा एप्लिकेशन में कैमुंडा को एम्बेड करना

Nov 17 2020

मैंने कैमकुंडा की नवीनतम छवि को खींच लिया है और कैमकुंडा को स्वयं के डॉकटर कंटेनर में चला रहा है। मेरे पास कैमुंडा कॉकपिट में एक dmn अपलोड है और मैं निर्णय तालिका से डेटा प्राप्त करने के लिए रेस्ट कॉल करने में सक्षम हूं जिसे मैंने कैमुंडा कॉकपिट में अपलोड किया है। हालांकि, मैं स्वतंत्र रूप से चलने वाले कैमुंडा पर निर्भर नहीं रहना चाहता। मेरे पास एक मौजूदा विशाल एप्लिकेशन है (इसमें एक माइक्रो-सेवा चल रही है जो खुद डॉकटर कंटेनर है) और मैं कैमुंडा को अपनी माइक्रो-सर्विस (जो ओस्गी, जावा, डोकर, मेवेन, आदि का उपयोग करता है) में एम्बेड करना चाहता हूं। क्या कोई मुझे इसका मार्गदर्शन दे सकता है?

जवाब

3 rob2universe Nov 18 2020 at 03:05

स्प्रिंग बूट माइक्रो सेवा के लिए आप अपनी तैनाती के लिए आवश्यक स्टार्टर और कॉन्फिग फाइलों को जोड़ सकते हैं और जाने के लिए अच्छा होना चाहिए। उदाहरण देखेंhttps://start.camunda.com/आप की जरूरत है सब कुछ पाने के लिए तब आप जावा एपीआई या आरईएसटी (यदि स्टार्टर शामिल किया गया था) के माध्यम से कैमुंडा तक पहुंच सकते हैं।

यदि आप स्प्रिंग बूट वातावरण में नहीं चलते हैं तो कैमकुंडा बूटस्ट्रैप करने का तरीका अलग हो सकता है। सादे जावा में, किसी भी कंटेनर के उपयोग के बिना यह उन पंक्तियों के साथ होगा:

    ProcessEngine processEngine = ProcessEngineConfiguration
        .createStandaloneProcessEngineConfiguration()
        .setJdbcUrl("jdbc:h2:./camunda-db/process-engine;DB_CLOSE_DELAY=1000")
        .setDatabaseSchemaUpdate("true")
        .setJobExecutorActivate(true)
        .buildProcessEngine();
    
    processEngine.getRepositoryService()
        .createDeployment()
        .addClasspathResource("myProcess.bpmn")
        .deploy();
        
    ProcessInstance pi = processEngine.getRuntimeService()
        .startProcessInstanceByKey("myProcess");

मानक स्प्रिंग परिवेश में आप संदर्भ को लोड करके इंजन को बूटस्ट्रैप करेंगे:

    ClassPathXmlApplicationContext applicationContext = 
        new ClassPathXmlApplicationContext("/spring-context.xml");
    ProcessEngine processEngine = (ProcessEngine) applicationContext.getBean("processEngine");
        
    processEngine.getRepositoryService()
        .createDeployment()
        .addClasspathResource("myProcess.bpmn")
        .deploy();

और देखें: https://docs.camunda.org/manual/latest/user-guide/process-engine/process-engine-bootstrapping/

https://docs.camunda.org/get-started/quick-start/install/

टिप्पणी के आधार पर अपडेट करें:

कैमुंडा OSGI समर्थन यहाँ वर्णित है: https://github.com/camunda/camunda-bpm-platform-osgi

आपको प्रोजेक्ट को अधिक हाल के संस्करण में अपग्रेड करने की आवश्यकता होगी, जो संभवतः एक बड़ा प्रयास नहीं है क्योंकि संस्करण संगत बना हुआ है।

(मैं आपको इसके बजाय स्प्रिंग बूट के लिए माइक्रो सेवा को स्थानांतरित करने पर विचार करने के लिए भी प्रोत्साहित करूंगा। जटिलता, बाजार में उपलब्ध ज्ञान, समर्थन, प्रेम ...)।