<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8_1%2F%D0%9B%D0%B0%D0%B1_1_2020</id>
	<title>Информациони системи 1/Лаб 1 2020 - Историја измена</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8_1%2F%D0%9B%D0%B0%D0%B1_1_2020"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8_1/%D0%9B%D0%B0%D0%B1_1_2020&amp;action=history"/>
	<updated>2026-06-04T02:40:42Z</updated>
	<subtitle>Историја измена ове странице на пројекту</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8_1/%D0%9B%D0%B0%D0%B1_1_2020&amp;diff=3202&amp;oldid=prev</id>
		<title>Ivan Pešić: Исправка</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8_1/%D0%9B%D0%B0%D0%B1_1_2020&amp;diff=3202&amp;oldid=prev"/>
		<updated>2021-11-29T18:40:55Z</updated>

		<summary type="html">&lt;p&gt;Исправка&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Старија измена&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Верзија на датум 29. новембар 2021. у 20:40&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l141&quot;&gt;Ред 141:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ред 141:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 producer.send(myQueue, objMsg);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 producer.send(myQueue, objMsg);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 System.out.println(&amp;quot;Sent &amp;quot; + obj);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 System.out.println(&amp;quot;Sent &amp;quot; + obj);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 int wait = (int)((Math.random() * &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3 &lt;/del&gt;+ 3) * 1000);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 int wait = (int)((Math.random() * &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4 &lt;/ins&gt;+ 3) * 1000);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 Thread.sleep(wait);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 Thread.sleep(wait);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             } catch (InterruptedException | JMSException ex) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             } catch (InterruptedException | JMSException ex) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ivan Pešić</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8_1/%D0%9B%D0%B0%D0%B1_1_2020&amp;diff=3152&amp;oldid=prev</id>
		<title>KockaAdmiralac: Postavka (od `&lt;@389896576987824139&gt;`) i rešenje</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8_1/%D0%9B%D0%B0%D0%B1_1_2020&amp;diff=3152&amp;oldid=prev"/>
		<updated>2021-11-16T17:38:59Z</updated>

		<summary type="html">&lt;p&gt;Postavka (od `&amp;lt;@389896576987824139&amp;gt;`) i rešenje&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{tocright}}&lt;br /&gt;
&lt;br /&gt;
== Zadatak 1b ==&lt;br /&gt;
Posmatra se proces za sklapanje automobila. Radnici RA, RB i RC prave delove A, B, C respektivno. Delovi su instance klasa A, B, C. Dakle, sklopljeni deo radnik šalje unutar objektne poruke u red za sklapanje koji je zajednički za sve radnike. Radnik kada napravi deo čeka između 3 i 6 sekundi (sa uniformnom raspodelom) i kreće sa pravljenjem novog dela. Sve delove iz reda za sklapanje prikuplja poseban radnik koji radi samo sklapanje automobila. Svaki automobil sastoji se iz tačno jednog dela A, jednog dela B i jednog dela C. Kada prikupi sva tri različita dela koja su prva pristigla (nije dozvoljeno da skladišti više delova istog tipa), radnik od njih pravi automobil koji je predstavljen klasom Automobil koja u sebi ima reference na svoja tri dela. Radniku je za sklapanje automobila potrebno 5 sekundi i sve sklopljene automobile šalje u posebnu temu za testiranje. Radnici za testiranje preuzimaju automobile sa te teme. Potrebno je omogućiti da radnici za testiranje primaju poruke koje su pristigle i u periodu kada niko nije bio aktivan i da svaki automobil preuzme samo jedan radnik. Slanje i prijem svake poruke je potrebno ispisati na glavnom izlazu.&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Pre pokretanja u Glassfish napraviti Queue sa nazivom &amp;lt;code&amp;gt;myQueue&amp;lt;/code&amp;gt; i Topic sa nazivom &amp;lt;code&amp;gt;MyTopic&amp;lt;/code&amp;gt;, dok takođe treba da postoji podrazumevani Connection Factory &amp;lt;code&amp;gt;jms/__defaultConnectionFactory&amp;lt;/code&amp;gt;. Radnici treba da se nalaze u odvojenim projektima kako bi mogli da se pokreću odvojeno, dok ostali paketi mogu da se nalaze u svim projektima.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;delovi&amp;lt;/code&amp;gt; paket ====&lt;br /&gt;
Ovaj paket mora biti u sva tri projekta kako bi procesi uspešno razmenjivali poruke.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;A.java&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package delovi;&lt;br /&gt;
&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
&lt;br /&gt;
public class A implements Serializable {&lt;br /&gt;
    private final int id;&lt;br /&gt;
    public A(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    @Override&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;A[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;B.java&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package delovi;&lt;br /&gt;
&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
&lt;br /&gt;
public class B implements Serializable {&lt;br /&gt;
    private final int id;&lt;br /&gt;
    public B(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    @Override&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;B[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;C.java&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package delovi;&lt;br /&gt;
&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
&lt;br /&gt;
public class C implements Serializable {&lt;br /&gt;
    private final int id;&lt;br /&gt;
    public C(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    @Override&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;C[&amp;quot; + id + &amp;quot;]&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;automobil&amp;lt;/code&amp;gt; paket ====&lt;br /&gt;
Ovaj paket mora da se nalazi i u projektu sa radnikom sklapačem i u projektu sa radnicima testerima.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;Automobil.java&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package automobil;&lt;br /&gt;
&lt;br /&gt;
import delovi.*;&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
&lt;br /&gt;
public class Automobil implements Serializable {&lt;br /&gt;
    private final A a;&lt;br /&gt;
    private final B b;&lt;br /&gt;
    private final C c;&lt;br /&gt;
    &lt;br /&gt;
    public Automobil(A a, B b, C c) {&lt;br /&gt;
        this.a = a;&lt;br /&gt;
        this.b = b;&lt;br /&gt;
        this.c = c;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    @Override&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Automobil[&amp;quot; + a + &amp;quot;, &amp;quot; + b + &amp;quot;,&amp;quot; + c + &amp;quot;]&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;radnikdelova&amp;lt;/code&amp;gt; paket ====&lt;br /&gt;
===== &amp;lt;code&amp;gt;RadnikDelova.java&amp;lt;/code&amp;gt; =====&lt;br /&gt;
Predstavlja radnike RA, RB i RC. Pokrenuti tri puta menjajući &amp;lt;code&amp;gt;PART_NAME&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package radnikdelova;&lt;br /&gt;
&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.annotation.Resource;&lt;br /&gt;
import javax.jms.ConnectionFactory;&lt;br /&gt;
import javax.jms.JMSContext;&lt;br /&gt;
import javax.jms.JMSException;&lt;br /&gt;
import javax.jms.JMSProducer;&lt;br /&gt;
import javax.jms.Queue;&lt;br /&gt;
import javax.jms.ObjectMessage;&lt;br /&gt;
import delovi.*;&lt;br /&gt;
&lt;br /&gt;
public class Main {&lt;br /&gt;
    @Resource(lookup=&amp;quot;jms/__defaultConnectionFactory&amp;quot;)&lt;br /&gt;
    private static ConnectionFactory connectionFactory;&lt;br /&gt;
    &lt;br /&gt;
    @Resource(lookup=&amp;quot;myQueue&amp;quot;)&lt;br /&gt;
    private static Queue myQueue;&lt;br /&gt;
    &lt;br /&gt;
    private static final char PART_NAME = &amp;#039;A&amp;#039;;&lt;br /&gt;
    private static int staticId = 0;&lt;br /&gt;
    &lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        JMSContext context = connectionFactory.createContext();&lt;br /&gt;
        JMSProducer producer = context.createProducer();&lt;br /&gt;
        while (true) {&lt;br /&gt;
            try {&lt;br /&gt;
                Serializable obj = null;&lt;br /&gt;
                switch (PART_NAME) {&lt;br /&gt;
                    case &amp;#039;A&amp;#039;:&lt;br /&gt;
                        obj = new A(staticId++);&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;#039;B&amp;#039;:&lt;br /&gt;
                        obj = new B(staticId++);&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;#039;C&amp;#039;:&lt;br /&gt;
                        obj = new C(staticId++);&lt;br /&gt;
                        break;&lt;br /&gt;
                }&lt;br /&gt;
                ObjectMessage objMsg = context.createObjectMessage(obj);&lt;br /&gt;
                objMsg.setStringProperty(&amp;quot;Type&amp;quot;, String.valueOf(PART_NAME));&lt;br /&gt;
                producer.send(myQueue, objMsg);&lt;br /&gt;
                System.out.println(&amp;quot;Sent &amp;quot; + obj);&lt;br /&gt;
                int wait = (int)((Math.random() * 3 + 3) * 1000);&lt;br /&gt;
                Thread.sleep(wait);&lt;br /&gt;
            } catch (InterruptedException | JMSException ex) {&lt;br /&gt;
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;radniksklapac&amp;lt;/code&amp;gt; paket ====&lt;br /&gt;
===== &amp;lt;code&amp;gt;RadnikSklapac.java&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package radniksklapac;&lt;br /&gt;
&lt;br /&gt;
import automobil.Automobil;&lt;br /&gt;
import delovi.*;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.annotation.Resource;&lt;br /&gt;
import javax.jms.ConnectionFactory;&lt;br /&gt;
import javax.jms.JMSConsumer;&lt;br /&gt;
import javax.jms.JMSContext;&lt;br /&gt;
import javax.jms.JMSException;&lt;br /&gt;
import javax.jms.JMSProducer;&lt;br /&gt;
import javax.jms.Message;&lt;br /&gt;
import javax.jms.Queue;&lt;br /&gt;
import javax.jms.ObjectMessage;&lt;br /&gt;
import javax.jms.Topic;&lt;br /&gt;
&lt;br /&gt;
public class Main {&lt;br /&gt;
    @Resource(lookup=&amp;quot;jms/__defaultConnectionFactory&amp;quot;)&lt;br /&gt;
    private static ConnectionFactory connectionFactory;&lt;br /&gt;
    &lt;br /&gt;
    @Resource(lookup=&amp;quot;myQueue&amp;quot;)&lt;br /&gt;
    private static Queue myQueue;&lt;br /&gt;
    &lt;br /&gt;
    @Resource(lookup=&amp;quot;MyTopic&amp;quot;)&lt;br /&gt;
    private static Topic myTopic;&lt;br /&gt;
    &lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        JMSContext context = connectionFactory.createContext();&lt;br /&gt;
        JMSConsumer consumerA = context.createConsumer(myQueue, &amp;quot;Type = &amp;#039;A&amp;#039;&amp;quot;);&lt;br /&gt;
        JMSConsumer consumerB = context.createConsumer(myQueue, &amp;quot;Type = &amp;#039;B&amp;#039;&amp;quot;);&lt;br /&gt;
        JMSConsumer consumerC = context.createConsumer(myQueue, &amp;quot;Type = &amp;#039;C&amp;#039;&amp;quot;);&lt;br /&gt;
        JMSProducer producer = context.createProducer();&lt;br /&gt;
        while (true) {&lt;br /&gt;
            Message msgA = consumerA.receive();&lt;br /&gt;
            System.out.println(&amp;quot;Received A&amp;quot;);&lt;br /&gt;
            Message msgB = consumerB.receive();&lt;br /&gt;
            System.out.println(&amp;quot;Received B&amp;quot;);&lt;br /&gt;
            Message msgC = consumerC.receive();&lt;br /&gt;
            System.out.println(&amp;quot;Received C&amp;quot;);&lt;br /&gt;
            if (msgA instanceof ObjectMessage &amp;amp;&amp;amp; msgB instanceof ObjectMessage &amp;amp;&amp;amp; msgC instanceof ObjectMessage) {&lt;br /&gt;
                try {&lt;br /&gt;
                    ObjectMessage objMsgA = (ObjectMessage)msgA;&lt;br /&gt;
                    ObjectMessage objMsgB = (ObjectMessage)msgB;&lt;br /&gt;
                    ObjectMessage objMsgC = (ObjectMessage)msgC;&lt;br /&gt;
                    A a = (A)objMsgA.getObject();&lt;br /&gt;
                    B b = (B)objMsgB.getObject();&lt;br /&gt;
                    C c = (C)objMsgC.getObject();&lt;br /&gt;
                    Automobil auto = new Automobil(a, b, c);&lt;br /&gt;
                    Thread.sleep(5000);&lt;br /&gt;
                    System.out.println(&amp;quot;Produced &amp;quot; + auto);&lt;br /&gt;
                    ObjectMessage autoMsg = context.createObjectMessage(auto);&lt;br /&gt;
                    producer.send(myTopic, autoMsg);&lt;br /&gt;
                } catch (JMSException | InterruptedException ex) {&lt;br /&gt;
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;radniktester&amp;lt;/code&amp;gt; paket ====&lt;br /&gt;
===== &amp;lt;code&amp;gt;RadnikTester.java&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package radniktester;&lt;br /&gt;
&lt;br /&gt;
import automobil.Automobil;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.annotation.Resource;&lt;br /&gt;
import javax.jms.ConnectionFactory;&lt;br /&gt;
import javax.jms.JMSConsumer;&lt;br /&gt;
import javax.jms.JMSContext;&lt;br /&gt;
import javax.jms.JMSException;&lt;br /&gt;
import javax.jms.Message;&lt;br /&gt;
import javax.jms.ObjectMessage;&lt;br /&gt;
import javax.jms.Topic;&lt;br /&gt;
&lt;br /&gt;
public class Main {&lt;br /&gt;
    @Resource(lookup=&amp;quot;jms/__defaultConnectionFactory&amp;quot;)&lt;br /&gt;
    private static ConnectionFactory connectionFactory;&lt;br /&gt;
&lt;br /&gt;
    @Resource(lookup=&amp;quot;MyTopic&amp;quot;)&lt;br /&gt;
    private static Topic myTopic;&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        JMSContext context = connectionFactory.createContext();&lt;br /&gt;
        JMSConsumer consumer = context.createSharedDurableConsumer(myTopic, &amp;quot;sub1&amp;quot;);&lt;br /&gt;
        while (true) {&lt;br /&gt;
            try {&lt;br /&gt;
                Message msg = consumer.receive();&lt;br /&gt;
                System.out.println(&amp;quot;Received car&amp;quot;);&lt;br /&gt;
                if (msg instanceof ObjectMessage) {&lt;br /&gt;
                    Automobil auto = (Automobil)((ObjectMessage) msg).getObject();&lt;br /&gt;
                    System.out.println(&amp;quot;Received &amp;quot; + auto);&lt;br /&gt;
                }&lt;br /&gt;
            } catch (JMSException ex) {&lt;br /&gt;
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Информациони системи 1]]&lt;br /&gt;
[[Категорија:Лабораторијске вежбе]]&lt;/div&gt;</summary>
		<author><name>KockaAdmiralac</name></author>
	</entry>
</feed>