day to day stuff: Announcement: Version 99 Does Not Exist
a tricky way to remove an undesidered dependency
-
Version 99 Does Not Exist emulates a Maven 2 repository and serves empty jars for any valid package that has version number 99.0-does-not-exist. It also generates poms, metadata files and of course the appropriate hashes.
Logging Dependencies in Spring | SpringSource Team Blog
-
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency><dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.5.8</version>
</dependency>
InfoQ: Interview and Book Excerpt: Mark Richards' Java Message Service 2nd Edition
Spring, on the other hand, supports three types of asynchronous message listeners (MDPs). The first type of MDP matches closely with its MDB counterpart and implements the javax.jms.MessageListener interface and the corresponding onMessage() method, requiring you to process a message object of type javax.jms.Message. The second type is similar to the first, but implements a Spring framework SessionAwareMessageListener, allowing the javax.jms.Session object to be passed into the onMessage() method along with the message object, making it easy to send messages or responses after receiving them. The third type of MDP (my favorite) is a true POJO that uses a Spring MessageListenerContainer. With the third type of MDP, Spring will handle all of the message conversion automatically for you, allowing you to construct an asynchronous message listener (MDP) that has a method name like processTrade() that takes in a String argument containing some XML from the message payload rather than a non-descriptive method named onMessage() that takes a message object.
-
Spring, on the other hand, supports three types of asynchronous message listeners (MDPs). The first type of MDP matches closely with its MDB counterpart and implements the javax.jms.MessageListener interface and the corresponding onMessage() method, requiring you to process a message object of type javax.jms.Message. The second type is similar to the first, but implements a Spring framework SessionAwareMessageListener, allowing the javax.jms.Session object to be passed into the onMessage() method along with the message object, making it easy to send messages or responses after receiving them. The third type of MDP (my favorite) is a true POJO that uses a Spring MessageListenerContainer. With the third type of MDP, Spring will handle all of the message conversion automatically for you, allowing you to construct an asynchronous message listener (MDP) that has a method name like processTrade() that takes in a String argument containing some XML from the message payload rather than a non-descriptive method named onMessage() that takes a message object.
-
My favorite "gotcha" is setting the message expiration of a message. Because the JMS API exposes the message header properties in the javax.jms.Message object through standard getters and setters, developers are often tempted to invoke the message.setJMSExpiration() directly to set the message expiration. However, the JMS provider will overwrite every message header with the exception of the JMSReplyTo, JMSCorrelationID, and sometimes the JMSType. Therefore, when you set the message expiration using the header property setter method directly, the message will in fact never expire. Instead, you need to use the setTimeToLive() method on the MessageProducer interface. The same is true with setting the message priority; invoking message.setJMSPriority() will not set the priority of the message. Instead, you need to use the setPriority() method on the MessageProducer interface
GUI Architectures
Model-View-Presenter (MVP)
-
Model-View-Presenter (MVP)
-
packaging all the edits to the model in a command -
this provides a good foundation for providing undo/redo behavior - 1 more annotations...
InfoQ: The First Few Milliseconds of an HTTPS Connection
-
You pick two huge prime numbers "p" and "q." Multiply them to get "n = p*q." Next, you pick a small public exponent "e" which is the "encryption exponent" and a specially crafted inverse of "e" called "d" as the "decryption exponent." You then make "n" and "e" public and keep "d" as secret as you possibly can and then throw away "p" and "q" (or keep them as secret as "d"). It's really important to remember that "e" and "d" are inverses of each other.
Now, if you have some message, you just need to interpret its bytes as a number "M." If you want to "encrypt" a message to create a "ciphertext", you'd calculate:
C ≡ Me (mod n)
This means that you multiply "M" by itself "e" times. The "mod n" means that we only take the remainder (e.g. "modulus") when dividing by "n." For example, 11 AM + 3 hours ≡ 2 (PM) (mod 12 hours). The recipient knows "d" which allows them to invert the message to recover the original message:
Cd ≡ (Me)d ≡ Me*d ≡ M1 ≡ M (mod n)
Just as interesting is that the person with "d" can "sign" a document by raising a message "M" to the "d" exponent:
Md ≡ S (mod n)
This works because "signer" makes public "S", "M", "e", and "n." Anyone can verify the signature "S" with a simple calculation:
Se ≡ (Md)e ≡ Md*e ≡ Me*d ≡ M1 ≡ M (mod n)
Public key cryptography algorithms like RSA are often called "asymmetric" algorithms because the encryption key (in our case, "e") is not equal to (e.g. "symmetric" with) the decryption key "d". Reducing everything "mod n" makes it impossible to use the easy techniques that we're used to such as normal logarithms. The magic of RSA works because you can calculate/encrypt C ≡ Me (mod n) very quickly, but it is really hard to calculate/decrypt Cd ≡ M (mod n) without knowing "d." As we saw earlier, "d" is derived from factoring "n" back to its "p" and "q", which is a tough problem.
Graphical Business Process Monitoring - Java CAPS - wikis.sun.com
-
Graphical Business Process Monitoring
Virus scanning with ClamAV and OpenESB - Java CAPS - wikis.sun.com
-
Virus scanning with ClamAV and OpenESB
Open ESB Tip : Graphical BPEL Monitoring and Usage Statistics : The Crooked Stick
-
Open ESB Tip : Graphical BPEL Monitoring and Usage Statistics
Open ESB Tip : Developing the WLM SE Worklist Manager Interface using IceFaces : The Crooked Stick
-
Open ESB Tip : Developing the WLM SE Worklist Manager Interface using IceFaces
Open ESB Tip : Developing the WLM SE Worklist Manager Interface using Visual Web Pack : The Crooked Stick
-
Open ESB Tip : Developing the WLM SE Worklist Manager Interface using Visual Web Pack
Open ESB Tip : Implementing a Vendor Relationship Management Portal (Part 3) : The Crooked Stick
-
Open ESB Tip : Implementing a Vendor Relationship Management Portal (Part 3)
Top Tags
Sponsored Links
View All Recent Tags (49)
- 15restful,
- 15rest,
- 9glassfish,
- 9openesb,
- 8bpel,
- 7hibernate,
- 6spring,
- 6jms,
- 5jersey,
- 5jaxrs,
- 5extjs,
- 4logging,
- 4maven,
- 4bam,
- 4workflow,
- 4wlm,
- 4transaction,
- 4jta,
- 3jbi,
- 3reference,
- 3database,
- 3ddd,
- 3ejb3,
- 3design,
- 3continuous_integration,
- 3mom,
- 3jaxb,
- 3apache,
- 2bpel_monitor,
- 2soa,
- 2aws,
- 2amazon,
- 2cloud,
- 2aspectj,
- 2disk_size,
- 2virtualbox,
- 2xa,
- 2modelling,
- 2webservices,
- 2integration,
- 2testing,
- 2soapui,
- 2ioc,
- 2aop,
- 2graphics,
- 2grid,
- 2java,
- 2addressability,
- 2uri
Public Tags (488)
Domenico Maria Giffone's Public Lists (2)
Diigo is about better ways to research, share and collaborate on information. Learn more »
Join Diigo