setChageTypesToTrack((NSArray)NSPropertyListSerialization.propertyListFromString(
setChangeTypesToTrack((NSArray)NSPropertyListSerialization.propertyListFromString(
    public synchronized void initialize(NSNotification notification) {        if (_isInitialized)  return;        NSLog.out.appendln("Initializing ERChangeNotificationJMS Framework");        setEntitiesNotToSynchronize((NSArray)NSPropertyListSerialization.propertyListFromString(                System.getProperty("er.changenotification.entitiesNotToSynchronize")));        setChageTypesToTrack((NSArray)NSPropertyListSerialization.propertyListFromString(                System.getProperty("er.changenotification.changeTypesToTrack")));        _topicName = System.getProperty("er.changenotification.jms.topicName");        _isSubscriberDurable = "true".equals(System.getProperty("er.changenotification.jms.durableSubscribers"));                String host = System.getProperty("er.changenotification.jms.serverHostName");        if (host == null  ||  host.length() == 0)             host = "localhost";                // Uses OpenJMS embedded JNDI server to locate the TopicConnectionFactory         // and Destination objects. Of course, you can use your own JNDI servers         // if you want.         // Set RMI as the protocol. Note that OpenJMS also supports TCP, HTTP and SSL         // protocols as well.         String port = "1099";        String jndiName = "JndiServer";        String protocol = "rmi";        String protocolType = RmiJndiInitialContextFactory.class.getName();        Properties props = new Properties();        props.put(Context.PROVIDER_URL, protocol + "://" + host + ":" + port + "/" + jndiName);        props.put(Context.INITIAL_CONTEXT_FACTORY, protocolType);                NSLog.debug.appendln("props: " + props);                try {            // Open the connection to the JMS server.             _context = new InitialContext(props);            TopicConnectionFactory factory = (TopicConnectionFactory)_context.lookup("JmsTopicConnectionFactory");            if (factory == null)                 throw new RuntimeException("Failed to locate connection factory");                        _topic = (Topic)_context.lookup(_topicName);            if (_topic == null)                 throw new RuntimeException("Failed to locate topic \"" + _topic +"\"");            _connection = factory.createTopicConnection();                        // Set itself as the exception listener.             _connection.setExceptionListener(this);        } catch (Exception ex) {            NSLog.err.appendln("An exception occured: " + ex.getClass().getName() + " - " + ex.getMessage());            ex.printStackTrace();            return;        }            // Create the notification publisher object and register it as the observer for         // the EOObjectStoreCoordinator changes.         _publisher = new ERCNPublisher(this);        NSNotificationCenter.defaultCenter().addObserver(            _publisher,             new NSSelector("publishChange", new Class[] { NSNotification.class } ),             EOObjectStoreCoordinator.ObjectsChangedInStoreNotification,             EOObjectStoreCoordinator.defaultCoordinator());        // Create the notification subscriber object and register it as the observer for         // the distributed change notifications.          _subscriber = new ERCNSubscriber(this, _isSubscriberDurable);        try {            _subscriber.topicSubscriber().setMessageListener(_subscriber);        } catch (JMSException ex) {            NSLog.err.appendln("An exception occured: " + ex.getClass().getName() + " - " + ex.getMessage());            ex.printStackTrace();            return;        }        // Start to receive notifications from the connection.         try {            _connection.start();        } catch (JMSException ex) {            NSLog.err.appendln("An exception occured: " + ex.getClass().getName() + " - " + ex.getMessage());            ex.printStackTrace();            return;        }        NSLog.out.appendln("Finished initializing ERChangeNotificationJMS Framework");        _isInitialized = true;    }