[ANNOUNCE] Apache Commons IO 2.15.0

2023-10-26 Thread Gary Gregory
The Apache Commons team announces Apache Commons IO Version 2.15.0

Commons IO is a package of Java utility classes like java.io. Classes
in this package are considered so standard and of such high reuse as
to justify their existence in java.io.

The Apache Commons IO library contains utility classes, stream
implementations, file filters,
file comparators, endian transformation classes, and much more.

Java 8 is required.

Historical list of changes:
https://commons.apache.org/proper/commons-io/changes-report.html

For complete information on Apache Commons IO, including instructions
on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/

Download page: https://commons.apache.org/proper/commons-io/download_io.cgi

Have fun!
Gary Gregory
- Apache Commons Team

-
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org



[JCS] Remote cache not updated and not broadcasting removes from clients

2023-10-26 Thread Greg Parmiter
Hi, we're experiencing some difficulty getting JCS (3.2) remote RMI cache to 
work properly. I'm having trouble finding a full working example of the remote 
RMI cache setup. I'd appreciate it if someone could point me in the right 
direction. Thank you! -Greg


  1.  Our clients are initiating 2 PUTs in quick succession. The server 
recognizes both, but only stores the first. I'm seeing the following in the 
remote server log, for the second PUT (note the "remove node" statement which 
does not occur during the first PUT)-

DEBUG | [RMI TCP Connection(138)-192.168.2.100] log.Log4j2LogAdapter 
(Log4j2LogAdapter.java:57) - In update, put [key1] in [cache2]

DEBUG | [RMI TCP Connection(138)-192.168.2.100] log.Log4j2LogAdapter 
(Log4j2LogAdapter.java:112) - In update, requesterId = [7] fromCluster = false

DEBUG | [RMI TCP Connection(138)-192.168.2.100] log.Log4j2LogAdapter 
(Log4j2LogAdapter.java:112) - Put NOT from cluster, updating other auxiliaries 
for region.  requesterId [7]

DEBUG | [RMI TCP Connection(138)-192.168.2.100] log.Log4j2LogAdapter 
(Log4j2LogAdapter.java:55) - Updating memory cache key1

DEBUG | [RMI TCP Connection(138)-192.168.2.100] log.Log4j2LogAdapter 
(Log4j2LogAdapter.java:89) - removing node

  1.  When a client initiates a REMOVE, the remote server recognizes and 
removes its own inmem entry, but that event does not appear to be broadcast to 
the OTHER clients. This results in the other clients being out of sync with the 
remote server.

Setup/Config details-
The cache server is running within the same app server (Wildfly) as the 
clients. There are 2 cache regions configured in the clients.

In our code, we're using CacheAccess, where CustomValue 
class is fully serializable.

The client config is as follows-
# # CLIENT CONFIG  #
jcs.default=RC
jcs.default.cacheattributes=org.apache.commons.jcs3.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=1000
jcs.default.cacheattributes.MemoryCacheName=org.apache.commons.jcs3.engine.memory.lru.LRUMemoryCache
jcs.default.cacheattributes.UseMemoryShrinker=true
jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.default.cacheattributes.ShrinkerIntervalSeconds=60
jcs.default.elementattributes=org.apache.commons.jcs3.engine.ElementAttributes
jcs.default.elementattributes.IsEternal=false
jcs.default.elementattributes.MaxLife=700
jcs.default.elementattributes.IdleTime=1800
jcs.default.elementattributes.IsSpool=true
jcs.default.elementattributes.IsRemote=true
jcs.default.elementattributes.IsLateral=true

jcs.region.cache1=RC
jcs.region.cache2=RC

jcs.auxiliary.RC=org.apache.commons.jcs3.auxiliary.remote.RemoteCacheFactory
jcs.auxiliary.RC.attributes=org.apache.commons.jcs3.auxiliary.remote.RemoteCacheAttributes
jcs.auxiliary.RC.attributes.FailoverServers=localhost:1101
jcs.auxiliary.RC.attributes.LocalPort=1102
jcs.auxiliary.RC.attributes.RemoveUponRemotePut=false
jcs.auxiliary.RC.attributes.GetTimeoutMillis=-1
jcs.auxiliary.RC.attributes.GetOnly=false
jcs.auxillary.RC.cacheeventlogger=org.apache.commons.jcs3.engine.logging.CacheEventLoggerDebugLogger
jcs.auxillary.RC.cacheeventlogger.attributes.logCategoryName=RCEventLogCategory

The remote server config is as follows-
# # REMOTE SERVER CONFIG  #
# Registry used to register and provide the IRmiCacheService service.
registry.host=localhost
registry.port=1101
# call back port to local caches.
jcs.remotecache.serverattributes.servicePort=1102
# cluster setting
jcs.remotecache.serverattributes.LocalClusterConsistency=true
jcs.remotecache.serverattributes.RemoveUponRemotePut=false
jcs.remotecache.cacheeventlogger=org.apache.commons.jcs3.engine.logging.CacheEventLoggerDebugLogger
jcs.remotecache.cacheeventlogger.attributes.logCategoryName=RCEventLogCategory

# #
# # DEFAULT CACHE REGION  #
# sets the default aux value for any non configured caches
jcs.default=
jcs.default.cacheattributes=org.apache.commons.jcs3.engine.CompositeCacheAttributes
jcs.default.cacheattributes.MaxObjects=20
jcs.default.cacheattributes.MemoryCacheName=org.apache.commons.jcs3.engine.memory.lru.LRUMemoryCache
jcs.default.cacheattributes.UseMemoryShrinker=true
jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.default.cacheattributes.ShrinkerIntervalSeconds=60
jcs.default.cacheattributes.ShrinkerIntervalSeconds=60
jcs.default.elementattributes=org.apache.commons.jcs3.engine.ElementAttributes
jcs.default.elementattributes.IsEternal=false
jcs.default.elementattributes.MaxLife=7000
jcs.default.elementattributes.IdleTime=1800
jcs.default.elementattributes.IsSpool=true
jcs.default.elementattributes.IsRemote=true
jcs.default.elementattributes.IsLateral=true

jcs.region.cache1=
jcs.region.cache2=