Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
base repository: wildfly/wildfly
Choose a Base Repository
wildfly/wildfly
2002simon01/jboss-as
ALRubinger/wildfly
ErikWRasmussen/jboss-as
KurtStam/jboss-as
Lerm/jboss-as
LinuxEvangelist/jboss-as
Mogztter/wildfly
OndraZizka/jboss-as
PayU-EMEA/jboss-as
aaronwalker/jboss-as
agibsonccc/jboss-as
akalachm/jboss-as
alesj/jboss-as
alns/jboss-as
aloubyansky/wildfly
aminorex/jboss-as
andersnorgaard/jboss-as
andredemathe/jboss-as
andytaylor/wildfly
aprilhu0/jboss-as
ashields/jboss-as
aslakknutsen/jboss-as
asoldano/wildfly
awirayaksa/jboss-as
bershath/jboss-as
bgeorges/jboss-as
blue61/jboss-as
bosschaert/jboss-as
bstansberry/wildfly
btison/jboss-as
cbue/jboss-as
charleswmiller/jboss-as
chikin/jboss-as
chriskriel/jboss-as
coberle/jboss-as
colmsean/jboss-as
ctomc/wildfly
dandreadis/wildfly
darranl/wildfly
dcaillia/jboss-as
denuno/jboss-as
deruelle/jboss-as
dhollandAtWex/dh-old-forks-jboss-as
dmlloyd/wildfly
dobozysaurus/jboss-as
dpospisil/wildfly
edbean/jboss-as
emannuel/jboss-as
emerile1/jboss-as
emuckenhuber/wildfly
esantana/jboss-as
fbricon/jboss-as
fedora-jboss-as/wildfly
fei-yin/jboss-as
fharms/wildfly
fregaham/jboss-as
fxlambda-twickly5/wildfly
garcimouche/jboss-as
goldmann/jboss-as
gonne/jboss-as
gvagenas/jboss-as
hamanju/jboss-as
hamming229/jboss-as
heiko-braun/wildfly
hgkmiracle/jboss-as
hunter-thom/jboss-as
ikaro/jboss-as
istudens/wildfly
jaikiran/wildfly
jamezp/wildfly
janpiel/jboss-as
java-coder/jboss-as
jayhowell/jboss-as
jbossejb3/jboss-as
jdmr/jboss-as
jdpgrailsdev/jboss-as
jeenapeter/jboss-as
jeffzhang/jboss-as
jeremiahshirk/jboss-as
jiwils/jboss-as
jlindesmith/jboss-as
jmartisk/wildfly
jocstar/jboss-as
joseph2000/jboss-as
jrwhitley/jboss-as
jswordfish/jboss-as
jtoerber/jboss-as
julianzhu/jboss-as
jwulf/jboss-as
kabir/wildfly
kbys/jboss-as
koledzhikov/jboss-as
kpiwko/wildfly
kylape/wildfly
ldevrie/jboss-as
lingling788/jboss-as
liweinan/jboss-as
luksa/wildfly
lydonchandra/jboss-as
maasvdberg/wildfly
madhumita/jboss-as
madhumita12/jboss-as
maerqiang/jboss-as
maeste/jboss-as
mageshbk/jboss-as
markmc/jboss-as
markyour/jboss-as
maschmid/jboss-as
matejonnet/jboss-as
mathieuancelin/jboss-as
mathieufortin01/jboss-as
mattdrees/jboss-as
maxandersen/jboss-as
maximilienw/jboss-as
mbogoevici/jboss-as
mbrasier/jboss-as
mdemerath/jboss-as
mgencur/jboss-as
michaelschuetz/jboss-as
miclark/jboss-as
migue/wildfly
mikebrock/jboss-as
mkiman/jboss-as
mlinhard/jboss-as
mmoyses/jboss-as
mojavelinux/jboss-as
mschwartzman/jboss-as
mstruk/jboss-as
nikkack/jboss-as
nookala/jboss-as
npfr/jboss-as
nscavell/jboss-as
ochaloup/wildfly
patmcdonough/jboss-as
pbielicki/jboss-as
pentarou/jboss-as
pepite/jboss-as
petbac/jboss-as
pferraro/wildfly
pmf8/jboss-as
pmuir/jboss-as
porobd/jboss-as
prabugp/jboss-as
pragnesh/jboss-as
prasad-deshpande/jboss-as
prcg66/jboss-as
pskopek/wildfly
pslegr/jboss-as
rachmatowicz/wildfly
rachmatowicz2/jboss-as
randythomas/jboss-as
rhusar/wildfly
richmidwinter/jboss-as
richsharples/jboss-as
ringerc/jboss-as
robertpanzer/jboss-as
robstryker/jboss-as
rsvoboda/wildfly
rzimmermann/jboss-as
sacdroid/jboss-as
samuelo/jboss-as
sasgww/jboss-as
scottmarlow/wildfly
sebersole/jboss-as
seeburger-ag/jboss-as
seko2000/jboss-as
sgilda/wildfly
shadangi/jboss-as
shuawest/jboss-as
sjancke/jboss-as
skoussou/jboss-as
smcgowan/wildfly
spreadline/jboss-as
ssilvert/wildfly
starksm64/jboss-as
starksmjboss/jboss-as
stliu/jboss-as
stuartwdouglas/wildfly
sujaybawaskar/jboss-as
tdiesler/wildfly
tfennelly/jboss-as
thammoud/jboss-as
thanhvc/jboss-as
thauser/jboss-as
thomasnymand/jboss-as
thunderlei/jboss-as
tomathome/jboss-as
tomwells/jboss-as
tristantarrant/wildfly
tyasuma/jboss-as
undertow-io/jboss-as
vladimirralev/jboss-as
vmariusvv/jboss-as
vratsel/jboss-as
weld/wildfly
wfink/wildfly
wolfc/jboss-as
zhigunovs/jboss-as
zhleonix/jboss-as
Nothing to show
base: 7b45b90
head repository: wildfly/wildfly
Choose a Head Repository
wildfly/wildfly
2002simon01/jboss-as
ALRubinger/wildfly
ErikWRasmussen/jboss-as
KurtStam/jboss-as
Lerm/jboss-as
LinuxEvangelist/jboss-as
Mogztter/wildfly
OndraZizka/jboss-as
PayU-EMEA/jboss-as
aaronwalker/jboss-as
agibsonccc/jboss-as
akalachm/jboss-as
alesj/jboss-as
alns/jboss-as
aloubyansky/wildfly
aminorex/jboss-as
andersnorgaard/jboss-as
andredemathe/jboss-as
andytaylor/wildfly
aprilhu0/jboss-as
ashields/jboss-as
aslakknutsen/jboss-as
asoldano/wildfly
awirayaksa/jboss-as
bershath/jboss-as
bgeorges/jboss-as
blue61/jboss-as
bosschaert/jboss-as
bstansberry/wildfly
btison/jboss-as
cbue/jboss-as
charleswmiller/jboss-as
chikin/jboss-as
chriskriel/jboss-as
coberle/jboss-as
colmsean/jboss-as
ctomc/wildfly
dandreadis/wildfly
darranl/wildfly
dcaillia/jboss-as
denuno/jboss-as
deruelle/jboss-as
dhollandAtWex/dh-old-forks-jboss-as
dmlloyd/wildfly
dobozysaurus/jboss-as
dpospisil/wildfly
edbean/jboss-as
emannuel/jboss-as
emerile1/jboss-as
emuckenhuber/wildfly
esantana/jboss-as
fbricon/jboss-as
fedora-jboss-as/wildfly
fei-yin/jboss-as
fharms/wildfly
fregaham/jboss-as
fxlambda-twickly5/wildfly
garcimouche/jboss-as
goldmann/jboss-as
gonne/jboss-as
gvagenas/jboss-as
hamanju/jboss-as
hamming229/jboss-as
heiko-braun/wildfly
hgkmiracle/jboss-as
hunter-thom/jboss-as
ikaro/jboss-as
istudens/wildfly
jaikiran/wildfly
jamezp/wildfly
janpiel/jboss-as
java-coder/jboss-as
jayhowell/jboss-as
jbossejb3/jboss-as
jdmr/jboss-as
jdpgrailsdev/jboss-as
jeenapeter/jboss-as
jeffzhang/jboss-as
jeremiahshirk/jboss-as
jiwils/jboss-as
jlindesmith/jboss-as
jmartisk/wildfly
jocstar/jboss-as
joseph2000/jboss-as
jrwhitley/jboss-as
jswordfish/jboss-as
jtoerber/jboss-as
julianzhu/jboss-as
jwulf/jboss-as
kabir/wildfly
kbys/jboss-as
koledzhikov/jboss-as
kpiwko/wildfly
kylape/wildfly
ldevrie/jboss-as
lingling788/jboss-as
liweinan/jboss-as
luksa/wildfly
lydonchandra/jboss-as
maasvdberg/wildfly
madhumita/jboss-as
madhumita12/jboss-as
maerqiang/jboss-as
maeste/jboss-as
mageshbk/jboss-as
markmc/jboss-as
markyour/jboss-as
maschmid/jboss-as
matejonnet/jboss-as
mathieuancelin/jboss-as
mathieufortin01/jboss-as
mattdrees/jboss-as
maxandersen/jboss-as
maximilienw/jboss-as
mbogoevici/jboss-as
mbrasier/jboss-as
mdemerath/jboss-as
mgencur/jboss-as
michaelschuetz/jboss-as
miclark/jboss-as
migue/wildfly
mikebrock/jboss-as
mkiman/jboss-as
mlinhard/jboss-as
mmoyses/jboss-as
mojavelinux/jboss-as
mschwartzman/jboss-as
mstruk/jboss-as
nikkack/jboss-as
nookala/jboss-as
npfr/jboss-as
nscavell/jboss-as
ochaloup/wildfly
patmcdonough/jboss-as
pbielicki/jboss-as
pentarou/jboss-as
pepite/jboss-as
petbac/jboss-as
pferraro/wildfly
pmf8/jboss-as
pmuir/jboss-as
porobd/jboss-as
prabugp/jboss-as
pragnesh/jboss-as
prasad-deshpande/jboss-as
prcg66/jboss-as
pskopek/wildfly
pslegr/jboss-as
rachmatowicz/wildfly
rachmatowicz2/jboss-as
randythomas/jboss-as
rhusar/wildfly
richmidwinter/jboss-as
richsharples/jboss-as
ringerc/jboss-as
robertpanzer/jboss-as
robstryker/jboss-as
rsvoboda/wildfly
rzimmermann/jboss-as
sacdroid/jboss-as
samuelo/jboss-as
sasgww/jboss-as
scottmarlow/wildfly
sebersole/jboss-as
seeburger-ag/jboss-as
seko2000/jboss-as
sgilda/wildfly
shadangi/jboss-as
shuawest/jboss-as
sjancke/jboss-as
skoussou/jboss-as
smcgowan/wildfly
spreadline/jboss-as
ssilvert/wildfly
starksm64/jboss-as
starksmjboss/jboss-as
stliu/jboss-as
stuartwdouglas/wildfly
sujaybawaskar/jboss-as
tdiesler/wildfly
tfennelly/jboss-as
thammoud/jboss-as
thanhvc/jboss-as
thauser/jboss-as
thomasnymand/jboss-as
thunderlei/jboss-as
tomathome/jboss-as
tomwells/jboss-as
tristantarrant/wildfly
tyasuma/jboss-as
undertow-io/jboss-as
vladimirralev/jboss-as
vmariusvv/jboss-as
vratsel/jboss-as
weld/wildfly
wfink/wildfly
wolfc/jboss-as
zhigunovs/jboss-as
zhleonix/jboss-as
Nothing to show
compare: ade505a
  • 8 commits
  • 43 files changed
  • 0 commit comments
  • 2 contributors
Commits on Apr 25, 2019
Commits on Apr 28, 2019
 WFLY-11854 Distributable session manager cannot detect immutable external classes
Showing with 1,350 additions and 306 deletions.
  1. +107 −0 clustering/ee/spi/src/main/java/org/wildfly/clustering/ee/CompositeIterable.java
  2. +69 −0 clustering/ee/spi/src/main/java/org/wildfly/clustering/ee/CompositeIterator.java
  3. +31 −172 clustering/ee/spi/src/main/java/org/wildfly/clustering/ee/Immutability.java
  4. +45 −0 clustering/ee/spi/src/main/java/org/wildfly/clustering/ee/immutable/AnnotationImmutability.java
  5. +34 −19 clustering/ee/spi/src/main/java/org/wildfly/clustering/ee/{ → immutable}/CollectionImmutability.java
  6. +56 −0 clustering/ee/spi/src/main/java/org/wildfly/clustering/ee/immutable/CompositeImmutability.java
  7. +155 −0 clustering/ee/spi/src/main/java/org/wildfly/clustering/ee/immutable/DefaultImmutability.java
  8. +51 −0 clustering/ee/spi/src/main/java/org/wildfly/clustering/ee/immutable/IdentityImmutability.java
  9. +46 −0 clustering/ee/spi/src/main/java/org/wildfly/clustering/ee/immutable/InstanceOfImmutability.java
  10. +73 −0 clustering/ee/spi/src/main/java/org/wildfly/clustering/ee/immutable/SimpleImmutability.java
  11. +61 −0 clustering/ee/spi/src/test/java/org/wildfly/clustering/ee/CompositeIterableTestCase.java
  12. +9 −5 clustering/ee/spi/src/test/java/org/wildfly/clustering/ee/{ → immutable}/ImmutabilityTestCase.java
  13. +8 −0 ...java/org/wildfly/extension/clustering/web/deployment/DistributableWebDeploymentConfiguration.java
  14. +7 −0 ...rg/wildfly/extension/clustering/web/deployment/DistributableWebDeploymentDependencyProcessor.java
  15. +53 −7 ...ain/java/org/wildfly/extension/clustering/web/deployment/DistributableWebDeploymentXMLReader.java
  16. +16 −1 .../org/wildfly/extension/clustering/web/deployment/MutableDistributableDeploymentConfiguration.java
  17. +47 −26 clustering/web/extension/src/main/resources/schema/distributable-web_1_0.xsd
  18. +9 −0 .../org/wildfly/extension/clustering/web/deployment/DistributableWebDeploymentXMLReaderTestCase.java
  19. +4 −1 ...sion/src/test/resources/org/wildfly/extension/clustering/web/deployment/distributable-web-1.0.xml
  20. +2 −0 ...st/resources/org/wildfly/extension/clustering/web/deployment/distributable-web-infinispan-1.0.xml
  21. +4 −2 .../src/main/java/org/wildfly/clustering/web/infinispan/session/InfinispanSessionManagerFactory.java
  22. +6 −0 ...wildfly/clustering/web/infinispan/session/InfinispanSessionManagerFactoryServiceConfigurator.java
  23. +5 −3 ...n/src/main/java/org/wildfly/clustering/web/infinispan/session/coarse/CoarseSessionAttributes.java
  24. +5 −2 ...ain/java/org/wildfly/clustering/web/infinispan/session/coarse/CoarseSessionAttributesFactory.java
  25. +6 −4 ...ispan/src/main/java/org/wildfly/clustering/web/infinispan/session/fine/FineSessionAttributes.java
  26. +5 −2 ...rc/main/java/org/wildfly/clustering/web/infinispan/session/fine/FineSessionAttributesFactory.java
  27. +2 −0 .../spi/src/main/java/org/wildfly/clustering/web/session/DistributableSessionManagementProvider.java
  28. +13 −34 ...tering/web/spi/src/main/java/org/wildfly/clustering/web/session/SessionAttributeImmutability.java
  29. +3 −0 .../web/spi/src/main/java/org/wildfly/clustering/web/session/SessionManagerFactoryConfiguration.java
  30. +14 −8 ...eb/spi/src/test/java/org/wildfly/clustering/web/session/SessionAttributeImmutabilityTestCase.java
  31. +4 −1 .../web/undertow/src/main/java/org/wildfly/clustering/web/undertow/session/DistributableSession.java
  32. +3 −2 ...ildfly/clustering/web/undertow/session/DistributableSessionManagerFactoryServiceConfigurator.java
  33. +18 −1 ...n/java/org/wildfly/clustering/web/undertow/session/SessionManagerFactoryConfigurationAdapter.java
  34. +5 −2 ...a/org/wildfly/clustering/web/undertow/session/UndertowDistributableSessionManagementProvider.java
  35. +17 −8 ...undertow/session/{ImmutableAuthenticatedSession.java → UndertowSessionAttributeImmutability.java}
  36. +7 −1 ...in/java/org/wildfly/clustering/web/undertow/session/UndertowSessionManagementProviderFactory.java
  37. +17 −4 docs/src/main/asciidoc/_high-availability/subsystem-support/Distributable_Web_Applications.adoc
  38. +169 −0 .../src/test/java/org/jboss/as/test/clustering/cluster/web/AbstractImmutableWebFailoverTestCase.java
  39. +74 −0 ...ng/src/test/java/org/jboss/as/test/clustering/cluster/web/CoarseImmutableWebFailoverTestCase.java
  40. +74 −0 ...ring/src/test/java/org/jboss/as/test/clustering/cluster/web/FineImmutableWebFailoverTestCase.java
  41. +7 −0 ...ing/src/test/java/org/jboss/as/test/clustering/cluster/web/distributable-web_immutable_coarse.xml
  42. +7 −0 ...ering/src/test/java/org/jboss/as/test/clustering/cluster/web/distributable-web_immutable_fine.xml
  43. +2 −1 ...e/integration/clustering/src/test/java/org/jboss/as/test/clustering/single/web/SimpleServlet.java
@@ -0,0 +1,107 @@
/*
* JBoss, Home of Professional Open Source.
* Copyright 2019, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/

package org.wildfly.clustering.ee;

import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;

/**
* Used for iterating over an series of iterables, thus avoiding the need to allocate/populate a new list containing all elements.
* More efficient than the alternative when the number of iterables is arbitrary and small relative to the size of each iterable.
* @author Paul Ferraro
*/
public class CompositeIterable<T> implements Iterable<T> {

private final List<? extends Iterable<? extends T>> iterables;

/**
* Constructs a new composite iterable.
* @param iterables a series of iterables
*/
@SafeVarargs
public CompositeIterable(Iterable<? extends T>... iterables) {
this(Arrays.asList(iterables));
}

/**
* Constructs a new composite iterable.
* @param iterables a series of iterables
*/
public CompositeIterable(List<? extends Iterable<? extends T>> iterables) {
this.iterables = iterables;
}

@Override
public Iterator<T> iterator() {
List<Iterator<? extends T>> iterators = new ArrayList<>(this.iterables.size());
for (Iterable<? extends T> elements : this.iterables) {
iterators.add(elements.iterator());
}
return new CompositeIterator<>(iterators);
}

@Override
public int hashCode() {
int result = 1;
for (Iterable<? extends T> elements : this.iterables) {
for (T element : elements) {
result = 31 * result + ((element != null) ? element.hashCode() : 0);
}
}
return result;
}

@Override
public boolean equals(Object object) {
if (!(object instanceof Iterable)) return false;
@SuppressWarnings("unchecked")
Iterator<Object> otherElements = ((Iterable<Object>) object).iterator();
for (Iterable<? extends T> iterable : this.iterables) {
Iterator<? extends T> elements = iterable.iterator();
while (elements.hasNext() && otherElements.hasNext()) {
elements.next().equals(otherElements.next());
}
if (elements.hasNext()) return false;
}
return !otherElements.hasNext();
}

@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append('[');
Iterator<? extends Iterable<? extends T>> iterables = this.iterables.iterator();
while (iterables.hasNext()) {
Iterator<? extends T> elements = iterables.next().iterator();
while (elements.hasNext()) {
if (builder.length() > 1) {
builder.append(',').append(' ');
}
builder.append(elements.next());
}
}
return builder.append(']').toString();
}
}
@@ -0,0 +1,69 @@
/*
* JBoss, Home of Professional Open Source.
* Copyright 2019, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/

package org.wildfly.clustering.ee;

import java.util.Arrays;
import java.util.Iterator;
import java.util.NoSuchElementException;

/**
* Iterator that iterates over a series of iterators.
* @author Paul Ferraro
*/
public class CompositeIterator<E> implements Iterator<E> {

private final Iterable<? extends Iterator<? extends E>> iterators;

/**
* Constructs a new composite iterator.
* @param iterables a series of iterators
*/
@SafeVarargs
public CompositeIterator(Iterator<? extends E>... iterators) {
this(Arrays.asList(iterators));
}

/**
* Constructs a new composite iterator.
* @param iterables a series of iterators
*/
public CompositeIterator(Iterable<? extends Iterator<? extends E>> iterators) {
this.iterators = iterators;
}

@Override
public boolean hasNext() {
for (Iterator<? extends E> iterator : this.iterators) {
if (iterator.hasNext()) return true;
}
return false;
}

@Override
public E next() {
for (Iterator<? extends E> iterator : this.iterators) {
if (iterator.hasNext()) return iterator.next();
}
throw new NoSuchElementException();
}
}

No commit comments for this range

You can’t perform that action at this time.