ਤੁਹਾਡੇ ਕੋਲ ਪਹਿਲਾਂ ਹੀ ਆਪਣਾ ਸੌਫਟਵੇਅਰ ਮੌਜੂਦ ਹੈ, ਪਰ ਤੁਹਾਨੂੰ ਅਜੇ ਵੀ ਪਲੇਟਫਾਰਮ ਦਾ ਵਿਸਤਾਰ ਕਰਨ ਲਈ ਆਪਣੇ ਤਕਨੀਕੀ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣ ਲਈ ਇੱਕ ਵਧੇਰੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਵਿਧੀ ਦੀ ਲੋੜ ਹੈ।
ਹਾਲਾਂਕਿ OSGi ਜ਼ਿਆਦਾਤਰ ਜਾਵਾ ਡਿਵੈਲਪਰਾਂ ਲਈ ਚੰਗੀ ਤਰ੍ਹਾਂ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ, ਇਸ ਨੂੰ ਤੁਹਾਡੇ ਉਤਪਾਦ ਵਿੱਚ ਏਕੀਕ੍ਰਿਤ ਕਰਨਾ ਇੱਕ ਮੁਸ਼ਕਲ ਕੰਮ ਜਾਪਦਾ ਹੈ। OSGi ਦੇ ਸਹੀ ਕੰਮਕਾਜ ਬਾਰੇ ਸਪੱਸ਼ਟਤਾ ਦੀ ਘਾਟ ਅੱਗੇ ਦੀ ਸੜਕ ਨੂੰ ਹੋਰ ਉਲਝਾ ਦਿੰਦੀ ਹੈ।
ਕਿਸੇ ਵੀ ਚੀਜ਼ ਦੇ ਉਲਟ ਜਿਸ ਨਾਲ ਉਹ ਪ੍ਰਯੋਗ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਨ, OSGi ਬਹੁਤ ਸਾਰੇ ਜਾਵਾ ਡਿਵੈਲਪਰਾਂ ਲਈ ਵਿਸ਼ਾਲ ਸਮੁੰਦਰ ਨੂੰ ਸਮੁੰਦਰੀ ਸਫ਼ਰ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਵਾਂਗ ਮਹਿਸੂਸ ਕਰਦਾ ਹੈ।
ਇਹ ਲੇਖ ਤੁਹਾਨੂੰ ਇੱਕ ਸਿੱਧੇ ਪ੍ਰੋਗਰਾਮ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ OSGi ਫੇਲਿਕਸ ਸਪਰਿੰਗ ਟਿਊਟੋਰਿਅਲ ਨਾਲ ਜਾਣੂ ਕਰਵਾਏਗਾ ਅਤੇ ਇਸ ਦੇ ਫਾਇਦੇ, ਅਤੇ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਵੇਰਵਿਆਂ ਨੂੰ ਪੂਰਾ ਕਰੇਗਾ।
ਤਾਂ OSGi ਕੀ ਹੈ?
ਮੋਡੀਊਲ ਅਤੇ ਕੰਪੋਨੈਂਟ ਬਣਾਉਣਾ ਅਤੇ ਵੰਡਣਾ OSGi (ਓਪਨ ਸਰਵਿਸ ਗੇਟਵੇ ਇਨੀਸ਼ੀਏਟਿਵ) ਵਜੋਂ ਜਾਣੇ ਜਾਂਦੇ ਜਾਵਾ ਫਰੇਮਵਰਕ ਦੁਆਰਾ ਸੰਭਵ ਬਣਾਇਆ ਗਿਆ ਹੈ।
ਇਹ ਫੰਕਸ਼ਨ ਇਨਕੈਪਸੂਲੇਸ਼ਨ ਅਤੇ ਢਿੱਲੀ ਕਪਲਿੰਗ 'ਤੇ ਜ਼ੋਰ ਦਿੰਦਾ ਹੈ, ਜੋ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਕਈ ਫਾਇਦੇ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਮਾਡਯੂਲਰ ਕਾਰਜਕੁਸ਼ਲਤਾ ਵੀ ਸ਼ਾਮਲ ਹੈ ਜੋ ਸਰੋਤ ਕੋਡਾਂ ਅਤੇ ਟੈਸਟਿੰਗ ਦੇ ਵਿਚਕਾਰ ਆਸਾਨੀ ਨਾਲ ਟ੍ਰਾਂਸਫਰ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ ਜਿਸ ਲਈ ਬੇਅੰਤ ਨਿਰਭਰਤਾ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।
OSGi ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ?
ਜਾਵਾ ਲਈ ਇੱਕ ਡਾਇਨਾਮਿਕ ਕੰਪੋਨੈਂਟ ਸਿਸਟਮ ਨੂੰ OSGi ਨਾਮਕ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੇ ਇੱਕ ਸਮੂਹ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਚਸ਼ਮੇ ਇੱਕ ਵਿਕਾਸ ਪਹੁੰਚ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦੇ ਹਨ ਜਿੱਥੇ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਕਈ ਹਿੱਸਿਆਂ ਤੋਂ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਫਿਰ ਬੰਡਲਾਂ ਵਿੱਚ ਪੈਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਸਥਾਨਕ ਅਤੇ ਨੈੱਟਵਰਕ-ਅਧਾਰਿਤ ਸੇਵਾਵਾਂ ਇਹਨਾਂ ਹਿੱਸਿਆਂ ਦੁਆਰਾ ਸੰਚਾਰ ਕਰਨ ਲਈ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਪ੍ਰੋਗਰਾਮ ਦੇ ਕੋਰ ਕੋਡ ਨੂੰ ਸੰਭਵ ਤੌਰ 'ਤੇ ਸੰਖੇਪ ਬਣਾਉਣਾ ਉਦੇਸ਼ ਹੈ। ਇਸ ਕੋਡ ਅਤੇ ਕਈ ਹਿੱਸਿਆਂ ਵਿਚਕਾਰ ਉੱਚ ਜੋੜੀ ਸੰਭਵ ਹੈ।
ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਬਿਲਡਿੰਗ ਐਲੀਮੈਂਟਸ ਨੂੰ ਕੰਪੋਨੈਂਟ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਤੁਹਾਡੀ ਈ-ਕਾਮਰਸ ਵੈਬਸਾਈਟ ਲਈ ਇੱਕ ਸ਼ਾਪਿੰਗ ਕਾਰਟ ਜਾਂ ਤੁਹਾਡੇ ਸਟਾਫ ਪ੍ਰਬੰਧਨ ਸਿਸਟਮ ਲਈ ਇੱਕ ਪੇਰੋਲ ਐਪਲੀਕੇਸ਼ਨ ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬਾਰੇ ਸੋਚੋ।
ਕੰਪੋਨੈਂਟ OSGi ਦੀ ਵਰਤੋਂ ਦੂਜੇ ਹਿੱਸਿਆਂ ਤੋਂ ਉਹਨਾਂ ਦੇ ਲਾਗੂਕਰਨ ਨੂੰ ਲੁਕਾਉਣ ਲਈ ਕਰ ਸਕਦੇ ਹਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਸਿਰਫ਼ ਸੇਵਾਵਾਂ ਰਾਹੀਂ ਲੋੜੀਂਦਾ ਡਾਟਾ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦੇ ਹਨ।
ਇਹ ਕੰਪੋਨੈਂਟਾਂ ਨੂੰ ਅਣਜਾਣੇ ਵਿੱਚ ਡਾਟਾ ਬਦਲਣ ਤੋਂ ਰੋਕਦਾ ਹੈ ਜਿਸ ਤੱਕ ਉਹਨਾਂ ਦੀ ਪਹੁੰਚ ਨਹੀਂ ਹੋਣੀ ਚਾਹੀਦੀ ਅਤੇ ਨਿਰਭਰਤਾ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ।
ਇੱਕ OSGi ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਕੰਪੋਨੈਂਟਾਂ ਵਿਚਕਾਰ ਸਾਰੇ ਕਨੈਕਸ਼ਨ ਇੱਕ ਆਦਰਸ਼ ਸੰਸਾਰ ਵਿੱਚ ਸੇਵਾਵਾਂ ਦੁਆਰਾ ਬਣਾਏ ਜਾਂਦੇ ਹਨ। ਇੱਕ Java ਪੈਕੇਜ ਵਿੱਚ API ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ ਜੋ ਸੇਵਾਵਾਂ ਲਈ ਨਿਰਧਾਰਤ ਕੀਤਾ ਗਿਆ ਹੈ।
ਸੇਵਾ ਪ੍ਰਦਾਤਾਵਾਂ ਅਤੇ ਗਾਹਕਾਂ ਵਿਚਕਾਰ ਸਹਿਯੋਗ ਲਈ ਕਲਾਸਾਂ ਅਤੇ/ਜਾਂ ਇੰਟਰਫੇਸਾਂ ਦੀ ਵਰਤੋਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜੋ API ਬਣਾਉਂਦੇ ਹਨ।
OSGi ਦੇ ਸਾਰੇ ਹਿੱਸੇ ਬੰਡਲਾਂ ਵਿੱਚ ਇਕੱਠੇ ਪੈਕ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਜਿਨ੍ਹਾਂ ਵਿੱਚੋਂ ਹਰੇਕ ਵਿੱਚ ਉਹ ਸਰੋਤ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਦੀ ਉਹਨਾਂ ਨੂੰ ਕੰਮ ਕਰਨ ਲਈ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਬੰਡਲ ਇਸ ਬਾਰੇ ਬਿਲਕੁਲ ਸਪੱਸ਼ਟ ਹਨ ਕਿ ਉਹਨਾਂ ਨੂੰ ਵਾਤਾਵਰਣ ਤੋਂ ਕੀ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਉਹ ਕੀ ਕਰਨ ਦੇ ਯੋਗ ਹਨ।
ਲਾਭ
- OSGi ਐਪਲੀਕੇਸ਼ਨਾਂ ਕੋਲ ਬਾਹਰੀ ਬੰਡਲ ਰਿਪੋਜ਼ਟਰੀਆਂ ਤੱਕ ਪਹੁੰਚ ਹੁੰਦੀ ਹੈ।
- ਫਰੇਮਵਰਕ ਮੋਡੀਊਲ ਪੱਧਰ 'ਤੇ ਸੇਵਾ-ਮੁਖੀ ਡਿਜ਼ਾਈਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
- ਇਹ ਤੀਜੀ-ਧਿਰ ਦੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਮਾਨਕੀਕਰਨ ਅਤੇ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਦੇ ਨਾਲ-ਨਾਲ ਐਪਲੀਕੇਸ਼ਨ ਬੰਡਲਾਂ ਦੇ ਸੰਸਕਰਣਾਂ ਅਤੇ ਨਿਰਭਰਤਾਵਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਸੰਭਵ ਬਣਾਉਂਦਾ ਹੈ।
- ਐਪਲੀਕੇਸ਼ਨਾਂ ਬਦਲਦੀਆਂ ਮੰਗਾਂ ਲਈ ਵਧੇਰੇ ਅਨੁਕੂਲ ਹੁੰਦੀਆਂ ਹਨ, ਵਧੇਰੇ ਪੋਰਟੇਬਲ ਹੁੰਦੀਆਂ ਹਨ, ਅਤੇ ਦੁਬਾਰਾ ਇੰਜੀਨੀਅਰਿੰਗ ਕਰਨ ਲਈ ਤੇਜ਼ ਹੁੰਦੀਆਂ ਹਨ।
- A ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਜਾਵਾ EE ਪ੍ਰੋਗਰਾਮਿੰਗ ਮਾਡਲ ਦੇ ਨਾਲ ਫਰੇਮਵਰਕ ਦੇ ਏਕੀਕਰਣ ਲਈ ਇੱਕ ਗਤੀਸ਼ੀਲ ਜੀਵਨ ਕਾਲ ਦੇ ਨਾਲ ਸੰਸਕਰਣ ਵਾਲੇ OSGi ਬੰਡਲਾਂ ਦੇ ਇੱਕ ਸਮੂਹ ਵਜੋਂ ਤਾਇਨਾਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
- ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਤੀਜੀ-ਧਿਰ ਦੀ ਲਾਇਬ੍ਰੇਰੀ ਵਜੋਂ ਸਥਾਪਤ ਕੀਤੇ ਜਾਣ ਦੀ ਬਜਾਏ, ਫਰੇਮਵਰਕ ਇੱਕ ਪ੍ਰਮਾਣਿਤ ਰੂਪ ਵਿੱਚ ਸਪਰਿੰਗ ਫਰੇਮਵਰਕ ਦੀ ਘੋਸ਼ਣਾਤਮਕ ਅਸੈਂਬਲੀ ਅਤੇ ਸੁਚਾਰੂ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜੋ ਐਪਲੀਕੇਸ਼ਨ ਸਰਵਰ ਰਨਟਾਈਮ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਪ੍ਰਦਾਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
- ਗਤੀਸ਼ੀਲ ਜੀਵਨ-ਚੱਕਰ ਦੇ ਨਾਲ ਕਈ ਸੰਸਕਰਣਾਂ ਵਾਲੇ ਬੰਡਲਾਂ ਦੇ ਬਣੇ ਕਾਰਪੋਰੇਟ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ, ਫਰੇਮਵਰਕ ਅਲੱਗਤਾ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ।
- ਇਸ ਵਿੱਚ ਇੱਕ ਏਕੀਕ੍ਰਿਤ ਬੰਡਲ ਰਿਪੋਜ਼ਟਰੀ ਹੈ ਜੋ ਕਈ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਸਾਂਝੇ ਸਾਂਝੇ ਅਤੇ ਸੰਸਕਰਣ ਵਾਲੇ ਬੰਡਲਾਂ ਨੂੰ ਸਟੋਰ ਕਰ ਸਕਦੀ ਹੈ, ਹਰੇਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਹਰੇਕ ਸਾਂਝੀ ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਇੱਕ ਵੱਖਰੀ ਕਾਪੀ ਤੈਨਾਤ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ।
OSGi ਫੇਲਿਕਸ ਸਪਰਿੰਗ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰਨਾ
ਸਰੋਤ ਪ੍ਰਾਪਤ ਕਰਨਾ
ਤੋਂ ਅਪਾਚੇ ਕਰਾਫ ਦਾ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਸੰਸਕਰਣ ਡਾਊਨਲੋਡ ਕਰਕੇ ਇਹ ਸਾਈਟ, ਅਸੀਂ ਆਪਣਾ OSGi ਸਾਹਸ ਸ਼ੁਰੂ ਕਰ ਸਕਦੇ ਹਾਂ।
ਅਪਾਚੇ ਫੇਲਿਕਸ ਦੇ ਅਧਾਰ ਤੇ, OSGi ਨਿਰਧਾਰਨ ਦੇ ਅਪਾਚੇ ਲਾਗੂਕਰਨ, Apache Karaf OSGi-ਅਧਾਰਿਤ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਇੱਕ ਪਲੇਟਫਾਰਮ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
ਕਰਾਫ ਫੇਲਿਕਸ ਦੇ ਸਿਖਰ 'ਤੇ ਕਈ ਮਦਦਗਾਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜੋ ਸਾਨੂੰ OSGi ਨਾਲ ਜਾਣੂ ਕਰਵਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰੇਗਾ, ਜਿਵੇਂ ਕਿ ਕਮਾਂਡ ਲਾਈਨ ਇੰਟਰਫੇਸ ਜੋ ਸਾਨੂੰ ਪਲੇਟਫਾਰਮ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।
ਬੰਡਲਾਂ ਲਈ ਐਂਟਰੀ ਪੁਆਇੰਟ
ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ OSGi ਵਾਤਾਵਰਣ ਵਿੱਚ ਚਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ OSGi ਬੰਡਲ ਵਜੋਂ ਪੈਕ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਐਪਲੀਕੇਸ਼ਨ ਐਂਟਰੀ ਪੁਆਇੰਟ ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ; ਇਹ ਸਟੈਂਡਰਡ ਪਬਲਿਕ ਸਟੈਟਿਕ ਵਾਇਡ ਮੇਨ (ਸਟ੍ਰਿੰਗ[] ਆਰਗਸ) ਫੰਕਸ਼ਨ ਨਹੀਂ ਹੈ।
ਤਾਂ ਆਉ ਇੱਕ ਬਣਾ ਕੇ ਸ਼ੁਰੂ ਕਰੀਏ “ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ ਦੁਨਿਆOSGi 'ਤੇ ਆਧਾਰਿਤ ਐਪਲੀਕੇਸ਼ਨ।
ਅਸੀਂ ਇੱਕ ਬੁਨਿਆਦੀ OSGi API ਨਿਰਭਰਤਾ ਸਥਾਪਤ ਕਰਕੇ ਸ਼ੁਰੂਆਤ ਕਰਦੇ ਹਾਂ:
OSGi ਰਨਟਾਈਮ ਦੀ ਨਿਰਭਰਤਾ ਤੱਕ ਪਹੁੰਚ ਹੋਵੇਗੀ, ਇਸਲਈ ਬੰਡਲ ਵਿੱਚ ਇਸਨੂੰ ਰੱਖਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਇਸ ਲਈ, ਇਸ ਨੂੰ ਸਪਲਾਈ ਕੀਤੇ ਵਜੋਂ ਚਿੰਨ੍ਹਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।
ਆਉ ਹੁਣ ਸਿੱਧਾ HelloWorld ਕਲਾਸ ਬਣਾਉ:
ਉਹ ਕਲਾਸਾਂ ਜੋ ਬੰਡਲਾਂ ਲਈ ਐਂਟਰੀ ਪੁਆਇੰਟਾਂ ਵਜੋਂ ਕੰਮ ਕਰਦੀਆਂ ਹਨ, ਉਹਨਾਂ ਨੂੰ OSGi ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੇ BundleActivator ਇੰਟਰਫੇਸ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
ਜਦੋਂ ਇਸ ਕਲਾਸ ਵਾਲਾ ਬੰਡਲ ਲਾਂਚ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, OSGi ਪਲੇਟਫਾਰਮ ਸਟਾਰਟ() ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ। ਦੂਜੇ ਪਾਸੇ, ਬੰਡਲ ਦੇ ਰੁਕਣ ਤੋਂ ਥੋੜ੍ਹੀ ਦੇਰ ਪਹਿਲਾਂ, ਫੰਕਸ਼ਨ stop() ਕਿਹਾ ਜਾਂਦਾ ਹੈ।
ਚਲੋ ਇਹ ਨਾ ਭੁੱਲੋ ਕਿ ਹਰੇਕ ਬੰਡਲ ਵਿੱਚ ਸਿਰਫ਼ ਇੱਕ ਬੰਡਲ ਐਕਟੀਵੇਟਰ ਹੋ ਸਕਦਾ ਹੈ। ਦੋਵੇਂ ਤਰੀਕੇ ਦਿੱਤੇ ਗਏ BundleContext ਆਬਜੈਕਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ OSGi ਰਨਟਾਈਮ ਨਾਲ ਸੰਚਾਰ ਕਰ ਸਕਦੇ ਹਨ।
ਇੱਕ ਬੰਡਲ ਬਣਾਉਣਾ
ਲੋੜੀਂਦੇ ਬਦਲਾਅ ਕਰਕੇ pom.xml ਨੂੰ ਇੱਕ ਸੱਚਾ OSGi ਬੰਡਲ ਬਣਾਓ।
ਸਾਨੂੰ ਪਹਿਲਾਂ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਪ੍ਰਗਟ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਸਾਡਾ ਟੀਚਾ ਇੱਕ ਬੰਡਲ ਪੈਦਾ ਕਰਨਾ ਹੈ।
ਫਿਰ, ਅਸੀਂ ਹੈਲੋਵਰਲਡ ਕਲਾਸ ਨੂੰ ਇੱਕ OSGi ਬੰਡਲ ਦੇ ਤੌਰ 'ਤੇ ਪੈਕੇਜ ਕਰਨ ਲਈ maven-bundle-plugin ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ, Apache Felix ਕਮਿਊਨਿਟੀ ਦੇ ਸ਼ਿਸ਼ਟਾਚਾਰ ਨਾਲ:
OSGi ਸਿਰਲੇਖਾਂ ਦੇ ਮੁੱਲ ਜੋ ਅਸੀਂ ਬੰਡਲ ਦੀ MANIFEST ਫਾਈਲ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ, ਨਿਰਦੇਸ਼ ਭਾਗ ਵਿੱਚ ਦਰਸਾਏ ਗਏ ਹਨ।
ਬੰਡਲ-ਐਕਟੀਵੇਟਰ ਅਸਲ ਵਿੱਚ ਬੰਡਲ ਐਕਟੀਵੇਟਰ ਹੱਲ ਦਾ ਸਹੀ ਢੰਗ ਨਾਲ ਯੋਗ ਨਾਮ ਹੈ ਜੋ ਬੰਡਲ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਅਤੇ ਬੰਦ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਵੇਗਾ। ਇਹ ਹੁਣੇ-ਹੁਣੇ ਬਣਾਈ ਗਈ ਕਲਾਸ ਦੇ ਅਨੁਕੂਲ ਹੈ।
ਹਾਲਾਂਕਿ ਇਹ ਇੱਕ OSGi ਸਿਰਲੇਖ ਨਹੀਂ ਹੈ, ਪ੍ਰਾਈਵੇਟ-ਪੈਕੇਜ ਹੈਡਰ ਪਲੱਗਇਨ ਨੂੰ ਪੈਕੇਜ ਨੂੰ ਬੰਡਲ ਵਿੱਚ ਜੋੜਨ ਲਈ ਨਿਰਦੇਸ਼ ਦਿੰਦਾ ਹੈ ਪਰ ਇਸਨੂੰ ਹੋਰ ਪਲੱਗਇਨਾਂ ਲਈ ਪਹੁੰਚਯੋਗ ਨਹੀਂ ਬਣਾਉਂਦਾ। mvn install ਕਮਾਂਡ ਬੰਡਲ ਬਣਾਉਣ ਲਈ ਵਰਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ।
ਬੰਡਲ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨਾ ਅਤੇ ਚਲਾਉਣਾ
ਆਉ ਇਸ ਕਮਾਂਡ ਨੂੰ ਚਲਾ ਕੇ ਕਰਾਫ ਸ਼ੁਰੂ ਕਰੀਏ:
ਜਿੱਥੇ "ਕਰਾਫ ਹੋਮ" ਉਸ ਫੋਲਡਰ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜਿੱਥੇ ਕਰਾਫ ਸੈਟ ਅਪ ਕੀਤਾ ਗਿਆ ਸੀ। ਜਦੋਂ ਕਰਾਫ ਕੰਸੋਲ ਪ੍ਰੋਂਪਟ ਦਿਸਦਾ ਹੈ ਤਾਂ ਅਸੀਂ ਬੰਡਲ ਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਹੇਠ ਦਿੱਤੀ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ:
ਸਥਾਨਕ ਮਾਵੇਨ ਰਿਪੋਜ਼ਟਰੀ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਇਹ ਹੈ ਕਿ ਕਿਵੇਂ ਕਰਾਫ ਨੂੰ ਬੰਡਲ ਲੋਡ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਂਦਾ ਹੈ।
ਬੰਡਲ ਦੀ ਸੰਖਿਆਤਮਕ ID ਨੂੰ ਵਾਪਸ ਕਰਦੇ ਹੋਏ, ਕਰਾਫ ਇਸਨੂੰ ਲਿਖਦਾ ਹੈ। ਇਹ ਆਈਡੀ ਇਸ ਗੱਲ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ ਕਿ ਪਹਿਲਾਂ ਕਿੰਨੇ ਬੰਡਲ ਸਥਾਪਤ ਕੀਤੇ ਗਏ ਹਨ। ਬੰਡਲ ਹੁਣ ਸਫਲਤਾਪੂਰਵਕ ਸਥਾਪਿਤ ਹੋ ਗਿਆ ਹੈ, ਅਤੇ ਇਸਨੂੰ ਲਾਂਚ ਕਰਨ ਦੀ ਕਮਾਂਡ ਹੇਠਾਂ ਦਿੱਤੀ ਗਈ ਹੈ:
ਜਿਸ ਪਲ ਤੁਸੀਂ ਪੈਕੇਜ ਲਾਂਚ ਕਰਦੇ ਹੋ, "ਹੈਲੋ ਵਰਲਡ ਬਾਈ ਜੈ" ਡਿਸਪਲੇ ਕਰਦਾ ਹੈ। ਅਸੀਂ ਹੁਣ ਇਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬੰਡਲ ਨੂੰ ਰੋਕ ਅਤੇ ਹਟਾ ਸਕਦੇ ਹਾਂ:
ਕੰਸੋਲ "ਜੈ ਦੁਆਰਾ ਅਲਵਿਦਾ ਵਰਲਡ" ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ।
ਸਿੱਟਾ
ਵਿਕਾਸਕਾਰ ਇੱਕ ਮੌਜੂਦਾ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਆਸਾਨੀ ਨਾਲ ਨਵੀਂ ਕਾਰਜਸ਼ੀਲਤਾ ਜੋੜ ਸਕਦੇ ਹਨ ਜਦੋਂ ਕਿ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦੇ ਹੋਏ ਅਤੇ OSGi ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮੁੱਖ ਪ੍ਰੋਗਰਾਮ ਦੇ ਦੂਜੇ ਭਾਗਾਂ ਤੋਂ ਵੱਖ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਅਸੀਂ ਇਸ ਪੋਸਟ ਵਿੱਚ OSGi ਬਾਰੇ ਸਿੱਖਿਆ ਹੈ, ਜਿਸ ਵਿੱਚ ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ, ਇਸਦੇ ਫਾਇਦੇ, ਅਤੇ ਇੱਕ ਸਿੱਧਾ ਪ੍ਰੋਗਰਾਮ ਸ਼ਾਮਲ ਹੈ। OSGi ਨੂੰ ਤੁਹਾਡੀ ਆਪਣੀ ਅਰਜ਼ੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨਾ ਮੁਸ਼ਕਲ ਨਹੀਂ ਹੈ।
ਹੈਪੀ ਕੋਡਿੰਗ!
ਕੋਈ ਜਵਾਬ ਛੱਡਣਾ