Posts

Showing posts with the label Java EE

Creating Objects Design Situations

Image
  Understanding how to create an object goes beyond the new() syntax, a good designer will think about the current requirement and future requirements to ensure decoupling layers, build in flexibility and maintainability. For example, So you have an object that needs to create another class, however …it cannot anticipate the class of objects it must create …it wants only its subclass to specify the object it wants to create …it wants to localize knowledge of which helper subclass is the delegate How would you design for these quality attributes? How about the following: A client class needs a complex object, however it also … wants to vary the product’s internal representation …isolate code for construction and representation …gives you greater control over the construction process How would you design for these quality attributes?   What if you wanted to: … isolate the concrete class from the client that needs it, and … allow for exchanging classes of produ...

JMS Header Values, who sets what

JMS API defines headers for messages that are sent asynchronously to a message destination (Queue or Topic). A Client that sends a message has the ability to select 3 values: 1. JMSCorrelationID 2. JMSReplyTo 3. JMSType   These 3 values have meaning to the receiver of the message, and may have pre-defined semantics. These can be useful to Browse the messages, a QueueBrowser object can read and display messages that are sitting in the queue by reading its header messages. Note, that the API doesn’t support browsing topics. It is advisable to keep an internal xml database record of messages that are destined for a topic, and wrap the commit atomically using a 2 phased commit protocol.