You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jcs-dev@jakarta.apache.org by tv...@apache.org on 2007/05/10 18:04:27 UTC
svn commit: r536904 [17/38] - in /jakarta/jcs/trunk: ./
auxiliary-builds/javagroups/
auxiliary-builds/javagroups/src/java/org/apache/jcs/auxiliary/javagroups/
auxiliary-builds/javagroups/src/test/org/apache/jcs/auxiliary/javagroups/
auxiliary-builds/jd...
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheRestore.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheRestore.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheRestore.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheRestore.java Thu May 10 09:03:42 2007
@@ -1,19 +1,22 @@
package org.apache.jcs.auxiliary.lateral;
/*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * Licensed under the Apache License, Version 2.0 (the "License")
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import org.apache.commons.logging.Log;
@@ -26,7 +29,7 @@
/**
* Used to repair the lateral caches managed by the associated instance of
* LateralCacheManager.
- *
+ *
*/
public class LateralCacheRestore
implements ICacheRestore
@@ -41,7 +44,7 @@
/**
* Constructs with the given instance of LateralCacheManager.
- *
+ *
* @param lcm
*/
public LateralCacheRestore( ILateralCacheManager lcm )
@@ -52,7 +55,7 @@
/**
* Returns true iff the connection to the lateral host for the corresponding
* cache manager can be successfully re-established.
- *
+ *
* @return whether or not the cache can be fixed.
*/
public boolean canFix()
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheWatchRepairable.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheWatchRepairable.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheWatchRepairable.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralCacheWatchRepairable.java Thu May 10 09:03:42 2007
@@ -1,19 +1,22 @@
package org.apache.jcs.auxiliary.lateral;
/*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * Licensed under the Apache License, Version 2.0 (the "License")
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheObserver;
@@ -22,7 +25,7 @@
/**
* Same as CacheWatcherWrapper but implements the IRemoteCacheWatch interface.
- *
+ *
*/
public class LateralCacheWatchRepairable
extends CacheWatchRepairable
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralElementDescriptor.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralElementDescriptor.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralElementDescriptor.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/LateralElementDescriptor.java Thu May 10 09:03:42 2007
@@ -1,14 +1,22 @@
package org.apache.jcs.auxiliary.lateral;
/*
- * Copyright 2001-2004 The Apache Software Foundation. Licensed under the Apache
- * License, Version 2.0 (the "License") you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
- * or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import java.io.Serializable;
@@ -72,7 +80,7 @@
{
this.ce = ce;
}
-
+
/**
* @return String, all the important values that can be configured
*/
@@ -84,5 +92,5 @@
buf.append( "\n valHashCode = [" + this.valHashCode + "]" );
buf.append( "\n ICacheElement = [" + this.ce + "]" );
return buf.toString();
- }
+ }
}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/ZombieLateralCacheService.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/ZombieLateralCacheService.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/ZombieLateralCacheService.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/ZombieLateralCacheService.java Thu May 10 09:03:42 2007
@@ -1,19 +1,22 @@
package org.apache.jcs.auxiliary.lateral;
/*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * Licensed under the Apache License, Version 2.0 (the "License")
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import java.io.Serializable;
@@ -28,7 +31,7 @@
* The ZombieLateralCacheService is used as a facade when the lateral is not
* available. It balks when the lateral is in error. When lateral service is
* restored, this is replaced by a live facade.
- *
+ *
*/
public class ZombieLateralCacheService
extends ZombieCacheService
@@ -37,7 +40,7 @@
/*
* (non-Javadoc)
- *
+ *
* @see org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheService#update(org.apache.jcs.engine.behavior.ICacheElement,
* long)
*/
@@ -48,7 +51,7 @@
/*
* (non-Javadoc)
- *
+ *
* @see org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheService#remove(java.lang.String,
* java.io.Serializable, long)
*/
@@ -59,7 +62,7 @@
/*
* (non-Javadoc)
- *
+ *
* @see org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheService#removeAll(java.lang.String,
* long)
*/
@@ -70,7 +73,7 @@
/*
* (non-Javadoc)
- *
+ *
* @see org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheService#getGroupKeys(java.lang.String,
* java.lang.String)
*/
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/ZombieLateralCacheWatch.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/ZombieLateralCacheWatch.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/ZombieLateralCacheWatch.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/ZombieLateralCacheWatch.java Thu May 10 09:03:42 2007
@@ -1,19 +1,22 @@
package org.apache.jcs.auxiliary.lateral;
/*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * Licensed under the Apache License, Version 2.0 (the "License")
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheObserver;
@@ -22,7 +25,7 @@
/**
* Description of the Class
- *
+ *
*/
public class ZombieLateralCacheWatch
extends ZombieCacheWatch
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheAttributes.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheAttributes.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheAttributes.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheAttributes.java Thu May 10 09:03:42 2007
@@ -1,19 +1,22 @@
package org.apache.jcs.auxiliary.lateral.behavior;
/*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
*
- * Licensed under the Apache License, Version 2.0 (the "License")
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import java.io.Serializable;
@@ -22,12 +25,12 @@
/**
* This interface defines configuration options common to lateral cache
- * plugins.
+ * plugins.
* <p>
* TODO it needs to be trimmed down. The old version had features for
* every lateral. Now, the individual laterals have their own specific
* attributes interfaces.
- *
+ *
*/
public interface ILateralCacheAttributes
extends Serializable, AuxiliaryCacheAttributes
@@ -73,7 +76,7 @@
*/
public String getHttpServer();
-
+
/**
* Sets the httpListenerPort attribute of the ILateralCacheAttributes object
* <p>
@@ -182,15 +185,15 @@
public boolean getPutOnlyMode();
/**
- *
+ *
* @return String The Javagroups channel propeties.
*/
public String getJGChannelProperties();
/**
- *
+ *
* Sets the Javagroups channel propeties.
- *
+ *
* @param channelProperties
* String
*/
@@ -212,10 +215,10 @@
* a region R1 that is not configured for the lateral but another is. And if
* cache B has region R1 configured for lateral distribution, A will get
* messages for R1 but not send them.
- *
+ *
* @return true if we should have a listener conenction
*/
public boolean isReceive();
-
+
}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheListener.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheListener.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheListener.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheListener.java Thu May 10 09:03:42 2007
@@ -1,14 +1,22 @@
package org.apache.jcs.auxiliary.lateral.behavior;
/*
- * Copyright 2001-2004 The Apache Software Foundation. Licensed under the Apache
- * License, Version 2.0 (the "License") you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
- * or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import org.apache.jcs.engine.behavior.ICacheListener;
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheManager.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheManager.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheManager.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheManager.java Thu May 10 09:03:42 2007
@@ -1,59 +1,67 @@
-package org.apache.jcs.auxiliary.lateral.behavior;
-
-/*
- * Copyright 2001-2004 The Apache Software Foundation. Licensed under the Apache
- * License, Version 2.0 (the "License") you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
- * or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- */
-
-import java.io.IOException;
-import java.util.Map;
-
-import org.apache.jcs.auxiliary.AuxiliaryCacheManager;
-
-/**
- * This helps ensure some common behvior among LateraLCacheManagers for things
- * such as montiors.
- * <p>
- * @author Aaron Smuts
- */
-public interface ILateralCacheManager
- extends AuxiliaryCacheManager
-{
- /**
- * This is a temporary solution that allos the monitor to get the instances
- * of a manager.
- * @return
- */
- public abstract Map getInstances();
-
- /**
- * This is a temporary solution that allos the monitor to get caches from an
- * instance of a manager.
- * @return
- */
- public abstract Map getCaches();
-
- /**
- * The restore calls thsi on the manger if a cache if found to be in error.
- * @return Object is the service if it can be fixed.
- * @throws IOException
- * if the service cannot be fixed.
- */
- public abstract Object fixService()
- throws IOException;
-
- /**
- * Sets the corected service. The restore process will call this if it gets
- * a good service back from fixService.
- * @param lateralService
- * @param lateralWatch
- */
- public void fixCaches( ILateralCacheService lateralService, ILateralCacheObserver lateralWatch );
-
-}
+package org.apache.jcs.auxiliary.lateral.behavior;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.IOException;
+import java.util.Map;
+
+import org.apache.jcs.auxiliary.AuxiliaryCacheManager;
+
+/**
+ * This helps ensure some common behvior among LateraLCacheManagers for things
+ * such as montiors.
+ * <p>
+ * @author Aaron Smuts
+ */
+public interface ILateralCacheManager
+ extends AuxiliaryCacheManager
+{
+ /**
+ * This is a temporary solution that allos the monitor to get the instances
+ * of a manager.
+ * @return
+ */
+ public abstract Map getInstances();
+
+ /**
+ * This is a temporary solution that allos the monitor to get caches from an
+ * instance of a manager.
+ * @return
+ */
+ public abstract Map getCaches();
+
+ /**
+ * The restore calls thsi on the manger if a cache if found to be in error.
+ * @return Object is the service if it can be fixed.
+ * @throws IOException
+ * if the service cannot be fixed.
+ */
+ public abstract Object fixService()
+ throws IOException;
+
+ /**
+ * Sets the corected service. The restore process will call this if it gets
+ * a good service back from fixService.
+ * @param lateralService
+ * @param lateralWatch
+ */
+ public void fixCaches( ILateralCacheService lateralService, ILateralCacheObserver lateralWatch );
+
+}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheObserver.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheObserver.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheObserver.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheObserver.java Thu May 10 09:03:42 2007
@@ -1,14 +1,22 @@
package org.apache.jcs.auxiliary.lateral.behavior;
/*
- * Copyright 2001-2004 The Apache Software Foundation. Licensed under the Apache
- * License, Version 2.0 (the "License") you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
- * or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import org.apache.jcs.engine.behavior.ICacheObserver;
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheService.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheService.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheService.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/behavior/ILateralCacheService.java Thu May 10 09:03:42 2007
@@ -1,14 +1,22 @@
package org.apache.jcs.auxiliary.lateral.behavior;
/*
- * Copyright 2001-2004 The Apache Software Foundation. Licensed under the Apache
- * License, Version 2.0 (the "License") you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
- * or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import java.io.IOException;
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/package.html
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/package.html?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/package.html (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/package.html Thu May 10 09:03:42 2007
@@ -1,8 +1,26 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
<html>
<head>
</head>
<body>
- Root package for the lateral cache family. Lateral caches broadcast puts
+ Root package for the lateral cache family. Lateral caches broadcast puts
and removals to other local caches.
</body>
</html>
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheFactory.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheFactory.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheFactory.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheFactory.java Thu May 10 09:03:42 2007
@@ -1,176 +1,179 @@
-package org.apache.jcs.auxiliary.lateral.socket.tcp;
-
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License")
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.jcs.auxiliary.AuxiliaryCache;
-import org.apache.jcs.auxiliary.AuxiliaryCacheAttributes;
-import org.apache.jcs.auxiliary.lateral.LateralCacheAbstractFactory;
-import org.apache.jcs.auxiliary.lateral.LateralCacheNoWait;
-import org.apache.jcs.auxiliary.lateral.LateralCacheNoWaitFacade;
-import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheAttributes;
-import org.apache.jcs.auxiliary.lateral.socket.tcp.behavior.ITCPLateralCacheAttributes;
-import org.apache.jcs.auxiliary.lateral.socket.tcp.discovery.UDPDiscoveryManager;
-import org.apache.jcs.auxiliary.lateral.socket.tcp.discovery.UDPDiscoveryService;
-import org.apache.jcs.engine.behavior.ICache;
-import org.apache.jcs.engine.behavior.ICompositeCacheManager;
-
-/**
- * Constructs a LateralCacheNoWaitFacade for the given configuration. Each
- * lateral service / local relationship is managed by one manager. This manager
- * can have multiple caches. The remote relationships are consolidated and
- * restored via these managers.
- * <p>
- * The facade provides a front to the composite cache so the implementation is
- * transparent.
- *
- */
-public class LateralTCPCacheFactory
- extends LateralCacheAbstractFactory
-{
- private final static Log log = LogFactory.getLog( LateralTCPCacheFactory.class );
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.jcs.auxiliary.AuxiliaryCacheFactory#createCache(org.apache.jcs.auxiliary.AuxiliaryCacheAttributes,
- * org.apache.jcs.engine.behavior.ICompositeCacheManager)
- */
- public AuxiliaryCache createCache( AuxiliaryCacheAttributes iaca, ICompositeCacheManager cacheMgr )
- {
- ITCPLateralCacheAttributes lac = (ITCPLateralCacheAttributes) iaca;
- ArrayList noWaits = new ArrayList();
-
- // pars up the tcp servers and set the tcpServer value and
- // get the manager and then get the cache
- // no servers are required.
- if ( lac.getTcpServers() != null )
- {
- StringTokenizer it = new StringTokenizer( lac.getTcpServers(), "," );
- if ( log.isDebugEnabled() )
- {
- log.debug( "Configured for [" + it.countTokens() + "] servers." );
- }
- while ( it.hasMoreElements() )
- {
- String server = (String) it.nextElement();
- if ( log.isDebugEnabled() )
- {
- log.debug( "tcp server = " + server );
- }
- ITCPLateralCacheAttributes lacC = (ITCPLateralCacheAttributes) lac.copy();
- lacC.setTcpServer( server );
- LateralTCPCacheManager lcm = LateralTCPCacheManager.getInstance( lacC, cacheMgr );
- ICache ic = lcm.getCache( lacC.getCacheName() );
- if ( ic != null )
- {
- noWaits.add( ic );
- }
- else
- {
- if ( log.isDebugEnabled() )
- {
- log.debug( "noWait is null, no lateral connection made" );
- }
- }
- }
- }
-
- createListener( (ILateralCacheAttributes) iaca, cacheMgr );
-
- // create the no wait facade.
- LateralCacheNoWaitFacade lcnwf = new LateralCacheNoWaitFacade( (LateralCacheNoWait[]) noWaits
- .toArray( new LateralCacheNoWait[0] ), (ILateralCacheAttributes)iaca );
-
- // create udp discovery if available.
- createDiscoveryService( lac, lcnwf, cacheMgr );
-
- return lcnwf;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.jcs.auxiliary.lateral.LateralCacheAbstractFactory#createListener(org.apache.jcs.auxiliary.lateral.LateralCacheAttributes,
- * org.apache.jcs.engine.behavior.ICompositeCacheManager)
- */
- public void createListener( ILateralCacheAttributes lac, ICompositeCacheManager cacheMgr )
- {
- ITCPLateralCacheAttributes attr = (ITCPLateralCacheAttributes) lac;
- // don't create a listener if we are not receiving.
- if ( attr.isReceive() )
- {
- if ( log.isInfoEnabled() )
- {
- log.info( "Creating listener for " + lac );
- }
-
- try
- {
- // make a listener. if one doesn't exist
- LateralTCPListener.getInstance( attr, cacheMgr );
- }
- catch ( Exception e )
- {
- log.error( "Problem creating lateral listener", e );
- }
- }
- else
- {
- if ( log.isDebugEnabled() )
- {
- log.debug( "Not creating a listener since we are not receiving." );
- }
- }
- }
-
- /**
- * Creates the discovery service. Only creates this for tcp laterals right
- * now.
- *
- * @param lac
- * ITCPLateralCacheAttributes
- * @param lcnwf
- * @param cacheMgr
- * @return null if none is created.
- */
- private UDPDiscoveryService createDiscoveryService( ITCPLateralCacheAttributes lac, LateralCacheNoWaitFacade lcnwf,
- ICompositeCacheManager cacheMgr )
- {
- UDPDiscoveryService discovery = null;
-
- // create the UDP discovery for the TCP lateral
- if ( lac.isUdpDiscoveryEnabled() )
- {
- // need a factory for this so it doesn't
- // get dereferenced, also we don't want one for every region.
- discovery = UDPDiscoveryManager.getInstance().getService( lac, cacheMgr );
-
- discovery.addNoWaitFacade( lcnwf, lac.getCacheName() );
-
- if ( log.isInfoEnabled() )
- {
- log.info( "Created UDPDiscoveryService for TCP lateral cache." );
- }
- }
- return discovery;
- }
-}
+package org.apache.jcs.auxiliary.lateral.socket.tcp;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jcs.auxiliary.AuxiliaryCache;
+import org.apache.jcs.auxiliary.AuxiliaryCacheAttributes;
+import org.apache.jcs.auxiliary.lateral.LateralCacheAbstractFactory;
+import org.apache.jcs.auxiliary.lateral.LateralCacheNoWait;
+import org.apache.jcs.auxiliary.lateral.LateralCacheNoWaitFacade;
+import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheAttributes;
+import org.apache.jcs.auxiliary.lateral.socket.tcp.behavior.ITCPLateralCacheAttributes;
+import org.apache.jcs.auxiliary.lateral.socket.tcp.discovery.UDPDiscoveryManager;
+import org.apache.jcs.auxiliary.lateral.socket.tcp.discovery.UDPDiscoveryService;
+import org.apache.jcs.engine.behavior.ICache;
+import org.apache.jcs.engine.behavior.ICompositeCacheManager;
+
+/**
+ * Constructs a LateralCacheNoWaitFacade for the given configuration. Each
+ * lateral service / local relationship is managed by one manager. This manager
+ * can have multiple caches. The remote relationships are consolidated and
+ * restored via these managers.
+ * <p>
+ * The facade provides a front to the composite cache so the implementation is
+ * transparent.
+ *
+ */
+public class LateralTCPCacheFactory
+ extends LateralCacheAbstractFactory
+{
+ private final static Log log = LogFactory.getLog( LateralTCPCacheFactory.class );
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.jcs.auxiliary.AuxiliaryCacheFactory#createCache(org.apache.jcs.auxiliary.AuxiliaryCacheAttributes,
+ * org.apache.jcs.engine.behavior.ICompositeCacheManager)
+ */
+ public AuxiliaryCache createCache( AuxiliaryCacheAttributes iaca, ICompositeCacheManager cacheMgr )
+ {
+ ITCPLateralCacheAttributes lac = (ITCPLateralCacheAttributes) iaca;
+ ArrayList noWaits = new ArrayList();
+
+ // pars up the tcp servers and set the tcpServer value and
+ // get the manager and then get the cache
+ // no servers are required.
+ if ( lac.getTcpServers() != null )
+ {
+ StringTokenizer it = new StringTokenizer( lac.getTcpServers(), "," );
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "Configured for [" + it.countTokens() + "] servers." );
+ }
+ while ( it.hasMoreElements() )
+ {
+ String server = (String) it.nextElement();
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "tcp server = " + server );
+ }
+ ITCPLateralCacheAttributes lacC = (ITCPLateralCacheAttributes) lac.copy();
+ lacC.setTcpServer( server );
+ LateralTCPCacheManager lcm = LateralTCPCacheManager.getInstance( lacC, cacheMgr );
+ ICache ic = lcm.getCache( lacC.getCacheName() );
+ if ( ic != null )
+ {
+ noWaits.add( ic );
+ }
+ else
+ {
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "noWait is null, no lateral connection made" );
+ }
+ }
+ }
+ }
+
+ createListener( (ILateralCacheAttributes) iaca, cacheMgr );
+
+ // create the no wait facade.
+ LateralCacheNoWaitFacade lcnwf = new LateralCacheNoWaitFacade( (LateralCacheNoWait[]) noWaits
+ .toArray( new LateralCacheNoWait[0] ), (ILateralCacheAttributes)iaca );
+
+ // create udp discovery if available.
+ createDiscoveryService( lac, lcnwf, cacheMgr );
+
+ return lcnwf;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.jcs.auxiliary.lateral.LateralCacheAbstractFactory#createListener(org.apache.jcs.auxiliary.lateral.LateralCacheAttributes,
+ * org.apache.jcs.engine.behavior.ICompositeCacheManager)
+ */
+ public void createListener( ILateralCacheAttributes lac, ICompositeCacheManager cacheMgr )
+ {
+ ITCPLateralCacheAttributes attr = (ITCPLateralCacheAttributes) lac;
+ // don't create a listener if we are not receiving.
+ if ( attr.isReceive() )
+ {
+ if ( log.isInfoEnabled() )
+ {
+ log.info( "Creating listener for " + lac );
+ }
+
+ try
+ {
+ // make a listener. if one doesn't exist
+ LateralTCPListener.getInstance( attr, cacheMgr );
+ }
+ catch ( Exception e )
+ {
+ log.error( "Problem creating lateral listener", e );
+ }
+ }
+ else
+ {
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "Not creating a listener since we are not receiving." );
+ }
+ }
+ }
+
+ /**
+ * Creates the discovery service. Only creates this for tcp laterals right
+ * now.
+ *
+ * @param lac
+ * ITCPLateralCacheAttributes
+ * @param lcnwf
+ * @param cacheMgr
+ * @return null if none is created.
+ */
+ private UDPDiscoveryService createDiscoveryService( ITCPLateralCacheAttributes lac, LateralCacheNoWaitFacade lcnwf,
+ ICompositeCacheManager cacheMgr )
+ {
+ UDPDiscoveryService discovery = null;
+
+ // create the UDP discovery for the TCP lateral
+ if ( lac.isUdpDiscoveryEnabled() )
+ {
+ // need a factory for this so it doesn't
+ // get dereferenced, also we don't want one for every region.
+ discovery = UDPDiscoveryManager.getInstance().getService( lac, cacheMgr );
+
+ discovery.addNoWaitFacade( lcnwf, lac.getCacheName() );
+
+ if ( log.isInfoEnabled() )
+ {
+ log.info( "Created UDPDiscoveryService for TCP lateral cache." );
+ }
+ }
+ return discovery;
+ }
+}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheManager.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheManager.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheManager.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPCacheManager.java Thu May 10 09:03:42 2007
@@ -1,310 +1,313 @@
-package org.apache.jcs.auxiliary.lateral.socket.tcp;
-
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License")
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.jcs.auxiliary.AuxiliaryCache;
-import org.apache.jcs.auxiliary.lateral.LateralCache;
-import org.apache.jcs.auxiliary.lateral.LateralCacheAbstractManager;
-import org.apache.jcs.auxiliary.lateral.LateralCacheAttributes;
-import org.apache.jcs.auxiliary.lateral.LateralCacheMonitor;
-import org.apache.jcs.auxiliary.lateral.LateralCacheNoWait;
-import org.apache.jcs.auxiliary.lateral.LateralCacheWatchRepairable;
-import org.apache.jcs.auxiliary.lateral.ZombieLateralCacheService;
-import org.apache.jcs.auxiliary.lateral.ZombieLateralCacheWatch;
-import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheListener;
-import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheManager;
-import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheService;
-import org.apache.jcs.auxiliary.lateral.socket.tcp.behavior.ITCPLateralCacheAttributes;
-import org.apache.jcs.engine.behavior.ICompositeCacheManager;
-
-/**
- * Creates lateral caches. Lateral caches are primarily used for removing non
- * laterally configured caches. Non laterally configured cache regions should
- * still be able to participate in removal. But if there is a non laterally
- * configured cache hub, then lateral removals may be necessary. For flat
- * webserver production environments, without a strong machine at the app server
- * level, distribution and search may need to occur at the lateral cache level.
- * This is currently not implemented in the lateral cache.
- * <p>
- *
- * @TODO: - need freeCache, release, getStats - need to find an interface
- * acceptable for all - cache managers or a manager within a type
- */
-public class LateralTCPCacheManager
- extends LateralCacheAbstractManager
-{
- private static final long serialVersionUID = -9213011856644392480L;
-
- private final static Log log = LogFactory.getLog( LateralTCPCacheManager.class );
-
- private static LateralCacheMonitor monitor;
-
- /** Address to instance map. */
- protected static Map instances = new HashMap();
-
- /** ITCPLateralCacheAttributes */
- protected ITCPLateralCacheAttributes lca;
-
- private int clients;
-
- /**
- * Handle to the lateral cache service; or a zombie handle if failed to
- * connect.
- */
- private ILateralCacheService lateralService;
-
- /**
- * Wrapper of the lateral cache watch service; or wrapper of a zombie
- * service if failed to connect.
- */
- private LateralCacheWatchRepairable lateralWatch;
-
- /** This is set in the constructor. */
- private ICompositeCacheManager cacheMgr;
-
- /**
- * Returns an instance of the LateralCacheManager.
- * <p>
- * @param lca
- * @param cacheMgr
- * this allows the auxiliary to be passed a cache manager.
- * @return
- */
- public static LateralTCPCacheManager getInstance( ITCPLateralCacheAttributes lca, ICompositeCacheManager cacheMgr )
- {
- LateralTCPCacheManager ins = (LateralTCPCacheManager) instances.get( lca.toString() );
- synchronized ( instances )
- {
- if ( ins == null )
- {
- log.info( "Instance for [" + lca.toString() + "] is null, creating" );
-
- ins = (LateralTCPCacheManager) instances.get( lca.toString() );
- if ( ins == null )
- {
- ins = new LateralTCPCacheManager( lca, cacheMgr );
- instances.put( lca.toString(), ins );
- }
- }
- createMonitor( ins );
- }
- ins.clients++;
-
- return ins;
- }
-
- /**
- * The monitor needs reference to one instance, actually just a type.
- * <p>
- * TODO refactor this.
- * <p>
- * @param instance
- */
- private static synchronized void createMonitor( ILateralCacheManager instance )
- {
- // only want one monitor per lateral type
- // Fires up the monitoring daemon.
- if ( monitor == null )
- {
- monitor = new LateralCacheMonitor( instance );
- // Should never be null
- if ( monitor != null )
- {
- Thread t = new Thread( monitor );
- t.setDaemon( true );
- t.start();
- }
- }
- }
-
- /**
- * Constructor for the LateralCacheManager object.
- * <p>
- * @param lcaA
- * @param cacheMgr
- */
- private LateralTCPCacheManager( ITCPLateralCacheAttributes lcaA, ICompositeCacheManager cacheMgr )
- {
- this.lca = lcaA;
-
- this.cacheMgr = cacheMgr;
-
- if ( log.isDebugEnabled() )
- {
- log.debug( "Creating lateral cache service, lca = " + this.lca );
- }
-
- // Create the service
- try
- {
- if ( log.isInfoEnabled() )
- {
- log.info( "Creating TCP service, lca = " + this.lca );
- }
- this.lateralService = new LateralTCPService( this.lca );
-
- if ( this.lateralService == null )
- {
- log.error( "No service created, must zombie" );
- throw new Exception( "No service created for lateral cache." );
- }
-
- this.lateralWatch = new LateralCacheWatchRepairable();
- this.lateralWatch.setCacheWatch( new ZombieLateralCacheWatch() );
- }
- catch ( Exception ex )
- {
- // Failed to connect to the lateral server.
- // Configure this LateralCacheManager instance to use the
- // "zombie" services.
- log.error( "Failure, lateral instance will use zombie service", ex );
-
- this.lateralService = new ZombieLateralCacheService();
- this.lateralWatch = new LateralCacheWatchRepairable();
- this.lateralWatch.setCacheWatch( new ZombieLateralCacheWatch() );
-
- // Notify the cache monitor about the error, and kick off
- // the recovery process.
- createMonitor( this );
- monitor.notifyError();
- }
- }
-
- /**
- * Adds the lateral cache listener to the underlying cache-watch service.
- * <p>
- * @param cacheName
- * The feature to be added to the LateralCacheListener attribute
- * @param listener
- * The feature to be added to the LateralCacheListener attribute
- * @exception IOException
- */
- public void addLateralCacheListener( String cacheName, ILateralCacheListener listener )
- throws IOException
- {
- synchronized ( this.caches )
- {
- this.lateralWatch.addCacheListener( cacheName, listener );
- }
- }
-
- /**
- * Called to access a precreated region or construct one with defaults.
- * Since all aux cache access goes through the manager, this will never be
- * called.
- * <p>
- * After getting the manager instance for a server, the factory gets a cache
- * for the region name it is constructing.
- * <p>
- * There should be one manager per server and one cache per region per
- * manager.
- * <p>
- * @return AuxiliaryCache
- * @param cacheName
- */
- public AuxiliaryCache getCache( String cacheName )
- {
- LateralCacheNoWait lateralNoWait = null;
- synchronized ( this.caches )
- {
- lateralNoWait = (LateralCacheNoWait) this.caches.get( cacheName );
- if ( lateralNoWait == null )
- {
- LateralCacheAttributes attr = (LateralCacheAttributes) lca.copy();
- attr.setCacheName( cacheName );
-
- LateralCache cache = new LateralCache( attr, this.lateralService, monitor );
- if ( log.isDebugEnabled() )
- {
- log.debug( "Created cache for noWait, cache [" + cache + "]" );
- }
- lateralNoWait = new LateralCacheNoWait( cache );
- this.caches.put( cacheName, lateralNoWait );
-
- if ( log.isInfoEnabled() )
- {
- log.info( "Created LateralCacheNoWait for [" + this.lca + "] LateralCacheNoWait = ["
- + lateralNoWait + "]" );
- }
- }
- }
-
- // don't create a listener if we are not receiving.
- if ( lca.isReceive() )
- {
- try
- {
- addLateralCacheListener( cacheName, LateralTCPListener.getInstance( this.lca, cacheMgr ) );
- }
- catch ( IOException ioe )
- {
- log.error( "Problem creating lateral listener", ioe );
- }
- catch ( Exception e )
- {
- log.error( "Problem creating lateral listener", e );
- }
- }
- else
- {
- if ( log.isDebugEnabled() )
- {
- log.debug( "Not creating a listener since we are not receiving." );
- }
- }
- // TODO: need listener repair
-
- return lateralNoWait;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.jcs.auxiliary.lateral.LateralCacheAbstractManager#getInstances()
- */
- public Map getInstances()
- {
- return instances;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheManager#fixService()
- */
- public Object fixService()
- throws IOException
- {
- Object service = null;
- try
- {
- service = new LateralTCPService( lca );
- }
- catch ( Exception ex )
- {
- log.error( "Can't fix " + ex.getMessage() );
- throw new IOException( "Can't fix " + ex.getMessage() );
- }
- return service;
- }
-}
+package org.apache.jcs.auxiliary.lateral.socket.tcp;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jcs.auxiliary.AuxiliaryCache;
+import org.apache.jcs.auxiliary.lateral.LateralCache;
+import org.apache.jcs.auxiliary.lateral.LateralCacheAbstractManager;
+import org.apache.jcs.auxiliary.lateral.LateralCacheAttributes;
+import org.apache.jcs.auxiliary.lateral.LateralCacheMonitor;
+import org.apache.jcs.auxiliary.lateral.LateralCacheNoWait;
+import org.apache.jcs.auxiliary.lateral.LateralCacheWatchRepairable;
+import org.apache.jcs.auxiliary.lateral.ZombieLateralCacheService;
+import org.apache.jcs.auxiliary.lateral.ZombieLateralCacheWatch;
+import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheListener;
+import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheManager;
+import org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheService;
+import org.apache.jcs.auxiliary.lateral.socket.tcp.behavior.ITCPLateralCacheAttributes;
+import org.apache.jcs.engine.behavior.ICompositeCacheManager;
+
+/**
+ * Creates lateral caches. Lateral caches are primarily used for removing non
+ * laterally configured caches. Non laterally configured cache regions should
+ * still be able to participate in removal. But if there is a non laterally
+ * configured cache hub, then lateral removals may be necessary. For flat
+ * webserver production environments, without a strong machine at the app server
+ * level, distribution and search may need to occur at the lateral cache level.
+ * This is currently not implemented in the lateral cache.
+ * <p>
+ *
+ * @TODO: - need freeCache, release, getStats - need to find an interface
+ * acceptable for all - cache managers or a manager within a type
+ */
+public class LateralTCPCacheManager
+ extends LateralCacheAbstractManager
+{
+ private static final long serialVersionUID = -9213011856644392480L;
+
+ private final static Log log = LogFactory.getLog( LateralTCPCacheManager.class );
+
+ private static LateralCacheMonitor monitor;
+
+ /** Address to instance map. */
+ protected static Map instances = new HashMap();
+
+ /** ITCPLateralCacheAttributes */
+ protected ITCPLateralCacheAttributes lca;
+
+ private int clients;
+
+ /**
+ * Handle to the lateral cache service; or a zombie handle if failed to
+ * connect.
+ */
+ private ILateralCacheService lateralService;
+
+ /**
+ * Wrapper of the lateral cache watch service; or wrapper of a zombie
+ * service if failed to connect.
+ */
+ private LateralCacheWatchRepairable lateralWatch;
+
+ /** This is set in the constructor. */
+ private ICompositeCacheManager cacheMgr;
+
+ /**
+ * Returns an instance of the LateralCacheManager.
+ * <p>
+ * @param lca
+ * @param cacheMgr
+ * this allows the auxiliary to be passed a cache manager.
+ * @return
+ */
+ public static LateralTCPCacheManager getInstance( ITCPLateralCacheAttributes lca, ICompositeCacheManager cacheMgr )
+ {
+ LateralTCPCacheManager ins = (LateralTCPCacheManager) instances.get( lca.toString() );
+ synchronized ( instances )
+ {
+ if ( ins == null )
+ {
+ log.info( "Instance for [" + lca.toString() + "] is null, creating" );
+
+ ins = (LateralTCPCacheManager) instances.get( lca.toString() );
+ if ( ins == null )
+ {
+ ins = new LateralTCPCacheManager( lca, cacheMgr );
+ instances.put( lca.toString(), ins );
+ }
+ }
+ createMonitor( ins );
+ }
+ ins.clients++;
+
+ return ins;
+ }
+
+ /**
+ * The monitor needs reference to one instance, actually just a type.
+ * <p>
+ * TODO refactor this.
+ * <p>
+ * @param instance
+ */
+ private static synchronized void createMonitor( ILateralCacheManager instance )
+ {
+ // only want one monitor per lateral type
+ // Fires up the monitoring daemon.
+ if ( monitor == null )
+ {
+ monitor = new LateralCacheMonitor( instance );
+ // Should never be null
+ if ( monitor != null )
+ {
+ Thread t = new Thread( monitor );
+ t.setDaemon( true );
+ t.start();
+ }
+ }
+ }
+
+ /**
+ * Constructor for the LateralCacheManager object.
+ * <p>
+ * @param lcaA
+ * @param cacheMgr
+ */
+ private LateralTCPCacheManager( ITCPLateralCacheAttributes lcaA, ICompositeCacheManager cacheMgr )
+ {
+ this.lca = lcaA;
+
+ this.cacheMgr = cacheMgr;
+
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "Creating lateral cache service, lca = " + this.lca );
+ }
+
+ // Create the service
+ try
+ {
+ if ( log.isInfoEnabled() )
+ {
+ log.info( "Creating TCP service, lca = " + this.lca );
+ }
+ this.lateralService = new LateralTCPService( this.lca );
+
+ if ( this.lateralService == null )
+ {
+ log.error( "No service created, must zombie" );
+ throw new Exception( "No service created for lateral cache." );
+ }
+
+ this.lateralWatch = new LateralCacheWatchRepairable();
+ this.lateralWatch.setCacheWatch( new ZombieLateralCacheWatch() );
+ }
+ catch ( Exception ex )
+ {
+ // Failed to connect to the lateral server.
+ // Configure this LateralCacheManager instance to use the
+ // "zombie" services.
+ log.error( "Failure, lateral instance will use zombie service", ex );
+
+ this.lateralService = new ZombieLateralCacheService();
+ this.lateralWatch = new LateralCacheWatchRepairable();
+ this.lateralWatch.setCacheWatch( new ZombieLateralCacheWatch() );
+
+ // Notify the cache monitor about the error, and kick off
+ // the recovery process.
+ createMonitor( this );
+ monitor.notifyError();
+ }
+ }
+
+ /**
+ * Adds the lateral cache listener to the underlying cache-watch service.
+ * <p>
+ * @param cacheName
+ * The feature to be added to the LateralCacheListener attribute
+ * @param listener
+ * The feature to be added to the LateralCacheListener attribute
+ * @exception IOException
+ */
+ public void addLateralCacheListener( String cacheName, ILateralCacheListener listener )
+ throws IOException
+ {
+ synchronized ( this.caches )
+ {
+ this.lateralWatch.addCacheListener( cacheName, listener );
+ }
+ }
+
+ /**
+ * Called to access a precreated region or construct one with defaults.
+ * Since all aux cache access goes through the manager, this will never be
+ * called.
+ * <p>
+ * After getting the manager instance for a server, the factory gets a cache
+ * for the region name it is constructing.
+ * <p>
+ * There should be one manager per server and one cache per region per
+ * manager.
+ * <p>
+ * @return AuxiliaryCache
+ * @param cacheName
+ */
+ public AuxiliaryCache getCache( String cacheName )
+ {
+ LateralCacheNoWait lateralNoWait = null;
+ synchronized ( this.caches )
+ {
+ lateralNoWait = (LateralCacheNoWait) this.caches.get( cacheName );
+ if ( lateralNoWait == null )
+ {
+ LateralCacheAttributes attr = (LateralCacheAttributes) lca.copy();
+ attr.setCacheName( cacheName );
+
+ LateralCache cache = new LateralCache( attr, this.lateralService, monitor );
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "Created cache for noWait, cache [" + cache + "]" );
+ }
+ lateralNoWait = new LateralCacheNoWait( cache );
+ this.caches.put( cacheName, lateralNoWait );
+
+ if ( log.isInfoEnabled() )
+ {
+ log.info( "Created LateralCacheNoWait for [" + this.lca + "] LateralCacheNoWait = ["
+ + lateralNoWait + "]" );
+ }
+ }
+ }
+
+ // don't create a listener if we are not receiving.
+ if ( lca.isReceive() )
+ {
+ try
+ {
+ addLateralCacheListener( cacheName, LateralTCPListener.getInstance( this.lca, cacheMgr ) );
+ }
+ catch ( IOException ioe )
+ {
+ log.error( "Problem creating lateral listener", ioe );
+ }
+ catch ( Exception e )
+ {
+ log.error( "Problem creating lateral listener", e );
+ }
+ }
+ else
+ {
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "Not creating a listener since we are not receiving." );
+ }
+ }
+ // TODO: need listener repair
+
+ return lateralNoWait;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.jcs.auxiliary.lateral.LateralCacheAbstractManager#getInstances()
+ */
+ public Map getInstances()
+ {
+ return instances;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.jcs.auxiliary.lateral.behavior.ILateralCacheManager#fixService()
+ */
+ public Object fixService()
+ throws IOException
+ {
+ Object service = null;
+ try
+ {
+ service = new LateralTCPService( lca );
+ }
+ catch ( Exception ex )
+ {
+ log.error( "Can't fix " + ex.getMessage() );
+ throw new IOException( "Can't fix " + ex.getMessage() );
+ }
+ return service;
+ }
+}
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPListener.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPListener.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPListener.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPListener.java Thu May 10 09:03:42 2007
@@ -1,14 +1,22 @@
package org.apache.jcs.auxiliary.lateral.socket.tcp;
/*
- * Copyright 2001-2004 The Apache Software Foundation. Licensed under the Apache
- * License, Version 2.0 (the "License") you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
- * or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import java.io.IOException;
@@ -246,7 +254,7 @@
*/
public void handleRemoveAll( String cacheName )
throws IOException
- {
+ {
if ( log.isDebugEnabled() )
{
log.debug( "handleRemoveAll> cacheName=" + cacheName );
@@ -276,7 +284,7 @@
+ getGetCnt() );
}
}
-
+
if ( log.isDebugEnabled() )
{
log.debug( "handleGet> cacheName=" + cacheName + ", key = " + key );
@@ -353,7 +361,7 @@
{
return removeCnt;
}
-
+
/**
* @param cacheMgr
* The cacheMgr to set.
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPSender.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPSender.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPSender.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPSender.java Thu May 10 09:03:42 2007
@@ -1,12 +1,22 @@
package org.apache.jcs.auxiliary.lateral.socket.tcp;
/*
- * Copyright 2001-2004 The Apache Software Foundation. Licensed under the Apache License, Version
- * 2.0 (the "License") you may not use this file except in compliance with the License. You may
- * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
- * applicable law or agreed to in writing, software distributed under the License is distributed on
- * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
- * the License for the specific language governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import java.io.BufferedReader;
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPService.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPService.java?view=diff&rev=536904&r1=536903&r2=536904
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPService.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/lateral/socket/tcp/LateralTCPService.java Thu May 10 09:03:42 2007
@@ -1,12 +1,22 @@
package org.apache.jcs.auxiliary.lateral.socket.tcp;
/*
- * Copyright 2001-2004 The Apache Software Foundation. Licensed under the Apache License, Version
- * 2.0 (the "License") you may not use this file except in compliance with the License. You may
- * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
- * applicable law or agreed to in writing, software distributed under the License is distributed on
- * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
- * the License for the specific language governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
import java.io.BufferedReader;
---------------------------------------------------------------------
To unsubscribe, e-mail: jcs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jcs-dev-help@jakarta.apache.org