Skip to content

Instantly share code, notes, and snippets.

@ricston-git
Last active November 2, 2015 15:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ricston-git/f48d0b471543160a3b26 to your computer and use it in GitHub Desktop.
Save ricston-git/f48d0b471543160a3b26 to your computer and use it in GitHub Desktop.
@Processor
public List<Serializable> allKeys() throws ObjectStoreException {
if (objectStore instanceof ListableObjectStore) {
return ((ListableObjectStore<?>) objectStore).allKeys();
} else {
throw new UnsupportedOperationException("The objectStore [" + objectStore.getClass().getName() + "] does not support the operation allKeys");
}
}
<spring:beans>
<spring:bean id="dataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" name="dataSource">
<spring:property name="url" value="jdbc:mysql://localhost:3306/objectstoreTest?user=objectstore3&amp;password=objectstore3" />
</spring:bean>
<spring:bean name="jdbcStore" class="org.mule.transport.jdbc.store.JdbcObjectStore">
<spring:property name="jdbcConnector" ref="jdbcConnector"></spring:property>
<spring:property name="insertQueryKey" value="insertQueryKey"></spring:property>
<spring:property name="selectQueryKey" value="selectQueryKey"></spring:property>
<spring:property name="deleteQueryKey" value="deleteQueryKey"></spring:property>
<spring:property name="clearQueryKey" value="clearQueryKey"></spring:property>
</spring:bean>
</spring:beans>
<jdbc-ee:connector name="jdbcConnector" pollingFrequency="1000" dataSource-ref="dataSource" transactionPerMessage="false" doc:name="Database">
<jdbc-ee:query key="insertQueryKey" value="insert into objectstoreTest.objectstore (k,v) values (?,?)"></jdbc-ee:query>
<jdbc-ee:query key="selectQueryKey" value="select k,v from objectstoreTest.objectstore where k = ?"></jdbc-ee:query>
<jdbc-ee:query key="deleteQueryKey" value="delete from objectstore where k = ?"></jdbc-ee:query>
<jdbc-ee:query key="clearQueryKey" value="delete from objectstore"></jdbc-ee:query>
</jdbc-ee:connector>
<objectstore:config name="ObjectStore" doc:name="ObjectStore" objectStore-ref="jdbcStore"></objectstore:config>
@SuppressWarnings("unchecked")
@Override
public List<Serializable> allKeys() throws ObjectStoreException {
String allKeysQuery = this.getAllKeysQuery();
List<String> result = (List<String>) this.query(allKeysQuery, this.listHandler);
return new ArrayList<Serializable>(result);
}
@Override
public Serializable retrieve(Serializable key) throws ObjectStoreException {
Serializable res = super.retrieve(key);
if (transformer == null) {
return res;
} else {
try {
return (Serializable) transformer.transform(res);
} catch (TransformerException e) {
e.printStackTrace();
LOG.warn("Failed to transform result of object store retrieval to a Serializable. Returning the Serializable retrieved from object store without any transformation");
return res;
}
}
}
CREATE TABLE IF NOT EXISTS `objectstoreTest`.`objectstore` (
`id` INT NOT NULL AUTO_INCREMENT,
`k` VARCHAR(60) NULL,
`v` BLOB NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `k_UNIQUE` (`k` ASC))
ENGINE = InnoDB;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment