Produced by Araxis Merge on 11/20/2017 2:15:51 PM GMT Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
# | Location | File | Last Modified |
---|---|---|---|
1 | Mon Nov 20 14:15:51 2017 UTC | ||
2 | C:\Merge Test Files\8.5.23\java\org\apache\catalina\authenticator\jaspic | AuthConfigFactoryImpl.java | Thu Sep 28 11:32:16 2017 UTC |
3 | C:\Merge Test Files\9.0.1\java\org\apache\catalina\authenticator\jaspic | AuthConfigFactoryImpl.java | Wed Sep 27 18:33:40 2017 UTC |
Note: Merge considers the second file to be the common ancestor of the others. |
Description | Between Files 1 and 2 |
Between Files 2 and 3 |
Relative to Common Ancestor |
|||
---|---|---|---|---|---|---|
Text Blocks | Lines | Text Blocks | Lines | Text Blocks | Lines | |
Unchanged | 0 | 0 | 1 | 990 | ||
Changed | 0 | 0 | 0 | 0 | 0 | 0 |
Inserted | 1 | 495 | 0 | 0 | 0 | 0 |
Removed | 0 | 0 | 0 | 0 | 1 | 495 |
Note: An automatic merge would leave 0 conflict(s). |
Whitespace | Consecutive whitespace is treated as a single space |
---|---|
Character case | Differences in character case are significant |
Line endings | Differences in line endings (CR and LF characters) are ignored |
CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
1 | /** | 1 | /** | |||||||
2 | * Licens ed to the Apache Sof tware Foun dation (AS F) under o ne or more | 2 | * Licens ed to the Apache Sof tware Foun dation (AS F) under o ne or more | |||||||
3 | * contri butor lice nse agreem ents. See the NOTIC E file dis tributed w ith | 3 | * contri butor lice nse agreem ents. See the NOTIC E file dis tributed w ith | |||||||
4 | * this w ork for ad ditional i nformation regarding copyright ownership . | 4 | * this w ork for ad ditional i nformation regarding copyright ownership . | |||||||
5 | * The AS F licenses this file to You un der the Ap ache Licen se, Versio n 2.0 | 5 | * The AS F licenses this file to You un der the Ap ache Licen se, Versio n 2.0 | |||||||
6 | * (the " License"); you may n ot use thi s file exc ept in com pliance wi th | 6 | * (the " License"); you may n ot use thi s file exc ept in com pliance wi th | |||||||
7 | * the Li cense. Yo u may obta in a copy of the Lic ense at | 7 | * the Li cense. Yo u may obta in a copy of the Lic ense at | |||||||
8 | * | 8 | * | |||||||
9 | * htt p://www.ap ache.org/l icenses/LI CENSE-2.0 | 9 | * htt p://www.ap ache.org/l icenses/LI CENSE-2.0 | |||||||
10 | * | 10 | * | |||||||
11 | * Unless required by applica ble law or agreed to in writin g, softwar e | 11 | * Unless required by applica ble law or agreed to in writin g, softwar e | |||||||
12 | * distri buted unde r the Lice nse is dis tributed o n an "AS I S" BASIS, | 12 | * distri buted unde r the Lice nse is dis tributed o n an "AS I S" BASIS, | |||||||
13 | * WITHOU T WARRANTI ES OR COND ITIONS OF ANY KIND, either exp ress or im plied. | 13 | * WITHOU T WARRANTI ES OR COND ITIONS OF ANY KIND, either exp ress or im plied. | |||||||
14 | * See th e License for the sp ecific lan guage gove rning perm issions an d | 14 | * See th e License for the sp ecific lan guage gove rning perm issions an d | |||||||
15 | * limita tions unde r the Lice nse. | 15 | * limita tions unde r the Lice nse. | |||||||
16 | */ | 16 | */ | |||||||
17 | package or g.apache.c atalina.au thenticato r.jaspic; | 17 | package or g.apache.c atalina.au thenticato r.jaspic; | |||||||
18 | 18 | |||||||||
19 | import jav a.io.File; | 19 | import jav a.io.File; | |||||||
20 | import jav a.lang.ref lect.Const ructor; | 20 | import jav a.lang.ref lect.Const ructor; | |||||||
21 | import jav a.lang.ref lect.Invoc ationTarge tException ; | 21 | import jav a.lang.ref lect.Invoc ationTarge tException ; | |||||||
22 | import jav a.util.Arr ayList; | 22 | import jav a.util.Arr ayList; | |||||||
23 | import jav a.util.Col lections; | 23 | import jav a.util.Col lections; | |||||||
24 | import jav a.util.Has hMap; | 24 | import jav a.util.Has hMap; | |||||||
25 | import jav a.util.Lis t; | 25 | import jav a.util.Lis t; | |||||||
26 | import jav a.util.Map ; | 26 | import jav a.util.Map ; | |||||||
27 | import jav a.util.Map .Entry; | 27 | import jav a.util.Map .Entry; | |||||||
28 | import jav a.util.con current.Co ncurrentHa shMap; | 28 | import jav a.util.con current.Co ncurrentHa shMap; | |||||||
29 | import jav a.util.con current.Co pyOnWriteA rrayList; | 29 | import jav a.util.con current.Co pyOnWriteA rrayList; | |||||||
30 | 30 | |||||||||
31 | import jav ax.securit y.auth.mes sage.confi g.AuthConf igFactory; | 31 | import jav ax.securit y.auth.mes sage.confi g.AuthConf igFactory; | |||||||
32 | import jav ax.securit y.auth.mes sage.confi g.AuthConf igProvider ; | 32 | import jav ax.securit y.auth.mes sage.confi g.AuthConf igProvider ; | |||||||
33 | import jav ax.securit y.auth.mes sage.confi g.Registra tionListen er; | 33 | import jav ax.securit y.auth.mes sage.confi g.Registra tionListen er; | |||||||
34 | 34 | |||||||||
35 | import org .apache.ca talina.Glo bals; | 35 | import org .apache.ca talina.Glo bals; | |||||||
36 | import org .apache.ca talina.aut henticator .jaspic.Pe rsistentPr oviderRegi strations. Provider; | 36 | import org .apache.ca talina.aut henticator .jaspic.Pe rsistentPr oviderRegi strations. Provider; | |||||||
37 | import org .apache.ca talina.aut henticator .jaspic.Pe rsistentPr oviderRegi strations. Providers; | 37 | import org .apache.ca talina.aut henticator .jaspic.Pe rsistentPr oviderRegi strations. Providers; | |||||||
38 | import org .apache.ju li.logging .Log; | 38 | import org .apache.ju li.logging .Log; | |||||||
39 | import org .apache.ju li.logging .LogFactor y; | 39 | import org .apache.ju li.logging .LogFactor y; | |||||||
40 | import org .apache.to mcat.util. res.String Manager; | 40 | import org .apache.to mcat.util. res.String Manager; | |||||||
41 | 41 | |||||||||
42 | public cla ss AuthCon figFactory Impl exten ds AuthCon figFactory { | 42 | public cla ss AuthCon figFactory Impl exten ds AuthCon figFactory { | |||||||
43 | 43 | |||||||||
44 | privat e static f inal Log l og = LogFa ctory.getL og(AuthCon figFactory Impl.class ); | 44 | privat e static f inal Log l og = LogFa ctory.getL og(AuthCon figFactory Impl.class ); | |||||||
45 | privat e static f inal Strin gManager s m = String Manager.ge tManager(A uthConfigF actoryImpl .class); | 45 | privat e static f inal Strin gManager s m = String Manager.ge tManager(A uthConfigF actoryImpl .class); | |||||||
46 | 46 | |||||||||
47 | privat e static f inal Strin g CONFIG_P ATH = "con f/jaspic-p roviders.x ml"; | 47 | privat e static f inal Strin g CONFIG_P ATH = "con f/jaspic-p roviders.x ml"; | |||||||
48 | privat e static f inal File CONFIG_FIL E = | 48 | privat e static f inal File CONFIG_FIL E = | |||||||
49 | new File (System.ge tProperty( Globals.CA TALINA_BAS E_PROP), C ONFIG_PATH ); | 49 | new File (System.ge tProperty( Globals.CA TALINA_BAS E_PROP), C ONFIG_PATH ); | |||||||
50 | privat e static f inal Objec t CONFIG_F ILE_LOCK = new Objec t(); | 50 | privat e static f inal Objec t CONFIG_F ILE_LOCK = new Objec t(); | |||||||
51 | 51 | |||||||||
52 | privat e static f inal Strin g[] EMPTY_ STRING_ARR AY = new S tring[0]; | 52 | privat e static f inal Strin g[] EMPTY_ STRING_ARR AY = new S tring[0]; | |||||||
53 | 53 | |||||||||
54 | privat e static S tring DEFA ULT_REGIST RATION_ID = getRegis trationID( null, null ); | 54 | privat e static S tring DEFA ULT_REGIST RATION_ID = getRegis trationID( null, null ); | |||||||
55 | 55 | |||||||||
56 | privat e final Ma p<String,R egistratio nContextIm pl> layerA ppContextR egistratio ns = | 56 | privat e final Ma p<String,R egistratio nContextIm pl> layerA ppContextR egistratio ns = | |||||||
57 | new Conc urrentHash Map<>(); | 57 | new Conc urrentHash Map<>(); | |||||||
58 | privat e final Ma p<String,R egistratio nContextIm pl> appCon textRegist rations = | 58 | privat e final Ma p<String,R egistratio nContextIm pl> appCon textRegist rations = | |||||||
59 | new Conc urrentHash Map<>(); | 59 | new Conc urrentHash Map<>(); | |||||||
60 | privat e final Ma p<String,R egistratio nContextIm pl> layerR egistratio ns = | 60 | privat e final Ma p<String,R egistratio nContextIm pl> layerR egistratio ns = | |||||||
61 | new Conc urrentHash Map<>(); | 61 | new Conc urrentHash Map<>(); | |||||||
62 | // Not e: Althoug h there wi ll only ev er be a ma ximum of o ne entry i n this | 62 | // Not e: Althoug h there wi ll only ev er be a ma ximum of o ne entry i n this | |||||||
63 | // Map, us e a Concur rentHashMa p for cons istency | 63 | // Map, us e a Concur rentHashMa p for cons istency | |||||||
64 | privat e volatile Map<Strin g,Registra tionContex tImpl> def aultRegist ration = | 64 | privat e volatile Map<Strin g,Registra tionContex tImpl> def aultRegist ration = | |||||||
65 | new Conc urrentHash Map<>(1); | 65 | new Conc urrentHash Map<>(1); | |||||||
66 | 66 | |||||||||
67 | 67 | |||||||||
68 | public AuthConfi gFactoryIm pl() { | 68 | public AuthConfi gFactoryIm pl() { | |||||||
69 | lo adPersiste ntRegistra tions(); | 69 | lo adPersiste ntRegistra tions(); | |||||||
70 | } | 70 | } | |||||||
71 | 71 | |||||||||
72 | 72 | |||||||||
73 | @Overr ide | 73 | @Overr ide | |||||||
74 | public AuthConfi gProvider getConfigP rovider(St ring layer , String a ppContext, | 74 | public AuthConfi gProvider getConfigP rovider(St ring layer , String a ppContext, | |||||||
75 | Registra tionListen er listene r) { | 75 | Registra tionListen er listene r) { | |||||||
76 | Re gistration ContextImp l registra tionContex t = | 76 | Re gistration ContextImp l registra tionContex t = | |||||||
77 | find Registrati onContextI mpl(layer, appContex t); | 77 | find Registrati onContextI mpl(layer, appContex t); | |||||||
78 | if (registra tionContex t != null) { | 78 | if (registra tionContex t != null) { | |||||||
79 | Registra tionListen erWrapper wrapper = new Regist rationList enerWrappe r( | 79 | Registra tionListen erWrapper wrapper = new Regist rationList enerWrappe r( | |||||||
80 | layer, app Context, l istener); | 80 | layer, app Context, l istener); | |||||||
81 | registra tionContex t.addListe ner(wrappe r); | 81 | registra tionContex t.addListe ner(wrappe r); | |||||||
82 | return r egistratio nContext.g etProvider (); | 82 | return r egistratio nContext.g etProvider (); | |||||||
83 | } | 83 | } | |||||||
84 | re turn null; | 84 | re turn null; | |||||||
85 | } | 85 | } | |||||||
86 | 86 | |||||||||
87 | 87 | |||||||||
88 | @Overr ide | 88 | @Overr ide | |||||||
89 | public String re gisterConf igProvider (String cl assName, | 89 | public String re gisterConf igProvider (String cl assName, | |||||||
90 | @Suppres sWarnings( "rawtypes" ) Map prop erties, St ring layer , String a ppContext, | 90 | @Suppres sWarnings( "rawtypes" ) Map prop erties, St ring layer , String a ppContext, | |||||||
91 | String d escription ) { | 91 | String d escription ) { | |||||||
92 | St ring regis trationID = | 92 | St ring regis trationID = | |||||||
93 | doRe gisterConf igProvider (className , properti es, layer, appContex t, descrip tion); | 93 | doRe gisterConf igProvider (className , properti es, layer, appContex t, descrip tion); | |||||||
94 | sa vePersiste ntRegistra tions(); | 94 | sa vePersiste ntRegistra tions(); | |||||||
95 | re turn regis trationID; | 95 | re turn regis trationID; | |||||||
96 | } | 96 | } | |||||||
97 | 97 | |||||||||
98 | 98 | |||||||||
99 | @Suppr essWarning s("uncheck ed") | 99 | @Suppr essWarning s("uncheck ed") | |||||||
100 | privat e String d oRegisterC onfigProvi der(String className , | 100 | privat e String d oRegisterC onfigProvi der(String className , | |||||||
101 | @Suppres sWarnings( "rawtypes" ) Map prop erties, St ring layer , String a ppContext, | 101 | @Suppres sWarnings( "rawtypes" ) Map prop erties, St ring layer , String a ppContext, | |||||||
102 | String d escription ) { | 102 | String d escription ) { | |||||||
103 | if (log.isDe bugEnabled ()) { | 103 | if (log.isDe bugEnabled ()) { | |||||||
104 | log.debu g(sm.getSt ring("auth ConfigFact oryImpl.re gisterClas s", | 104 | log.debu g(sm.getSt ring("auth ConfigFact oryImpl.re gisterClas s", | |||||||
105 | className, layer, ap pContext)) ; | 105 | className, layer, ap pContext)) ; | |||||||
106 | } | 106 | } | |||||||
107 | Cl ass<?> cla zz; | 107 | Cl ass<?> cla zz; | |||||||
108 | Au thConfigPr ovider pro vider = nu ll; | 108 | Au thConfigPr ovider pro vider = nu ll; | |||||||
109 | tr y { | 109 | tr y { | |||||||
110 | clazz = Class.forN ame(classN ame, true, Thread.cu rrentThrea d().getCon textClassL oader()); | 110 | clazz = Class.forN ame(classN ame, true, Thread.cu rrentThrea d().getCon textClassL oader()); | |||||||
111 | } catch (Cla ssNotFound Exception e) { | 111 | } catch (Cla ssNotFound Exception e) { | |||||||
112 | // Ignor e so the r e-try belo w can proc eed | 112 | // Ignor e so the r e-try belo w can proc eed | |||||||
113 | } | 113 | } | |||||||
114 | tr y { | 114 | tr y { | |||||||
115 | clazz = Class.forN ame(classN ame); | 115 | clazz = Class.forN ame(classN ame); | |||||||
116 | Construc tor<?> con structor = clazz.get Constructo r(Map.clas s, AuthCon figFactory .class); | 116 | Construc tor<?> con structor = clazz.get Constructo r(Map.clas s, AuthCon figFactory .class); | |||||||
117 | provider = (AuthCo nfigProvid er) constr uctor.newI nstance(pr operties, null); | 117 | provider = (AuthCo nfigProvid er) constr uctor.newI nstance(pr operties, null); | |||||||
118 | } catch (Cla ssNotFound Exception | NoSuchMe thodExcept ion | Inst antiationE xception | | 118 | } catch (Cla ssNotFound Exception | NoSuchMe thodExcept ion | Inst antiationE xception | | |||||||
119 | Ille galAccessE xception | IllegalAr gumentExce ption | In vocationTa rgetExcept ion e) { | 119 | Ille galAccessE xception | IllegalAr gumentExce ption | In vocationTa rgetExcept ion e) { | |||||||
120 | throw ne w Security Exception( e); | 120 | throw ne w Security Exception( e); | |||||||
121 | } | 121 | } | |||||||
122 | 122 | |||||||||
123 | St ring regis trationID = getRegis trationID( layer, app Context); | 123 | St ring regis trationID = getRegis trationID( layer, app Context); | |||||||
124 | Re gistration ContextImp l registra tionContex tImpl = ne w Registra tionContex tImpl( | 124 | Re gistration ContextImp l registra tionContex tImpl = ne w Registra tionContex tImpl( | |||||||
125 | laye r, appCont ext, descr iption, tr ue, provid er, proper ties); | 125 | laye r, appCont ext, descr iption, tr ue, provid er, proper ties); | |||||||
126 | ad dRegistrat ionContext Impl(layer , appConte xt, regist rationID, registrati onContextI mpl); | 126 | ad dRegistrat ionContext Impl(layer , appConte xt, regist rationID, registrati onContextI mpl); | |||||||
127 | re turn regis trationID; | 127 | re turn regis trationID; | |||||||
128 | } | 128 | } | |||||||
129 | 129 | |||||||||
130 | 130 | |||||||||
131 | @Overr ide | 131 | @Overr ide | |||||||
132 | public String re gisterConf igProvider (AuthConfi gProvider provider, String lay er, | 132 | public String re gisterConf igProvider (AuthConfi gProvider provider, String lay er, | |||||||
133 | String a ppContext, String de scription) { | 133 | String a ppContext, String de scription) { | |||||||
134 | if (log.isDe bugEnabled ()) { | 134 | if (log.isDe bugEnabled ()) { | |||||||
135 | log.debu g(sm.getSt ring("auth ConfigFact oryImpl.re gisterInst ance", | 135 | log.debu g(sm.getSt ring("auth ConfigFact oryImpl.re gisterInst ance", | |||||||
136 | provider.g etClass(). getName(), layer, ap pContext)) ; | 136 | provider.g etClass(). getName(), layer, ap pContext)) ; | |||||||
137 | } | 137 | } | |||||||
138 | St ring regis trationID = getRegis trationID( layer, app Context); | 138 | St ring regis trationID = getRegis trationID( layer, app Context); | |||||||
139 | Re gistration ContextImp l registra tionContex tImpl = ne w Registra tionContex tImpl( | 139 | Re gistration ContextImp l registra tionContex tImpl = ne w Registra tionContex tImpl( | |||||||
140 | laye r, appCont ext, descr iption, fa lse, provi der, null) ; | 140 | laye r, appCont ext, descr iption, fa lse, provi der, null) ; | |||||||
141 | ad dRegistrat ionContext Impl(layer , appConte xt, regist rationID, registrati onContextI mpl); | 141 | ad dRegistrat ionContext Impl(layer , appConte xt, regist rationID, registrati onContextI mpl); | |||||||
142 | re turn regis trationID; | 142 | re turn regis trationID; | |||||||
143 | } | 143 | } | |||||||
144 | 144 | |||||||||
145 | 145 | |||||||||
146 | privat e void add Registrati onContextI mpl(String layer, St ring appCo ntext, | 146 | privat e void add Registrati onContextI mpl(String layer, St ring appCo ntext, | |||||||
147 | String r egistratio nID, Regis trationCon textImpl r egistratio nContextIm pl) { | 147 | String r egistratio nID, Regis trationCon textImpl r egistratio nContextIm pl) { | |||||||
148 | Re gistration ContextImp l previous = null; | 148 | Re gistration ContextImp l previous = null; | |||||||
149 | 149 | |||||||||
150 | // Add the r egistratio n, noting any regist ration it replaces | 150 | // Add the r egistratio n, noting any regist ration it replaces | |||||||
151 | if (layer != null && a ppContext != null) { | 151 | if (layer != null && a ppContext != null) { | |||||||
152 | previous = layerAp pContextRe gistration s.put(regi strationID , registra tionContex tImpl); | 152 | previous = layerAp pContextRe gistration s.put(regi strationID , registra tionContex tImpl); | |||||||
153 | } else if (l ayer == nu ll && appC ontext != null) { | 153 | } else if (l ayer == nu ll && appC ontext != null) { | |||||||
154 | previous = appCont extRegistr ations.put (registrat ionID, reg istrationC ontextImpl ); | 154 | previous = appCont extRegistr ations.put (registrat ionID, reg istrationC ontextImpl ); | |||||||
155 | } else if (l ayer != nu ll && appC ontext == null) { | 155 | } else if (l ayer != nu ll && appC ontext == null) { | |||||||
156 | previous = layerRe gistration s.put(regi strationID , registra tionContex tImpl); | 156 | previous = layerRe gistration s.put(regi strationID , registra tionContex tImpl); | |||||||
157 | } else { | 157 | } else { | |||||||
158 | previous = default Registrati on.put(reg istrationI D, registr ationConte xtImpl); | 158 | previous = default Registrati on.put(reg istrationI D, registr ationConte xtImpl); | |||||||
159 | } | 159 | } | |||||||
160 | 160 | |||||||||
161 | if (previous == null) { | 161 | if (previous == null) { | |||||||
162 | // No ma tch with p revious re gistration so need t o check li steners | 162 | // No ma tch with p revious re gistration so need t o check li steners | |||||||
163 | // for a ll less sp ecific reg istrations to see if they need to be | 163 | // for a ll less sp ecific reg istrations to see if they need to be | |||||||
164 | // notif ied of thi s new regi stration. That there is no exa ct match | 164 | // notif ied of thi s new regi stration. That there is no exa ct match | |||||||
165 | // with a previous registrat ion allows a few sho rt-cuts to be taken | 165 | // with a previous registrat ion allows a few sho rt-cuts to be taken | |||||||
166 | if (laye r != null && appCont ext != nul l) { | 166 | if (laye r != null && appCont ext != nul l) { | |||||||
167 | // N eed to che ck existin g appConte xt registr ations | 167 | // N eed to che ck existin g appConte xt registr ations | |||||||
168 | // ( and layer and defaul t) | 168 | // ( and layer and defaul t) | |||||||
169 | // a ppContext must match | 169 | // a ppContext must match | |||||||
170 | Regi strationCo ntextImpl registrati on = | 170 | Regi strationCo ntextImpl registrati on = | |||||||
171 | appCon textRegist rations.ge t(getRegis trationID( null, appC ontext)); | 171 | appCon textRegist rations.ge t(getRegis trationID( null, appC ontext)); | |||||||
172 | if ( registrati on != null ) { | 172 | if ( registrati on != null ) { | |||||||
173 | for (Regis trationLis tenerWrapp er wrapper : registr ation.list eners) { | 173 | for (Regis trationLis tenerWrapp er wrapper : registr ation.list eners) { | |||||||
174 | if (la yer.equals (wrapper.g etMessageL ayer()) && | 174 | if (la yer.equals (wrapper.g etMessageL ayer()) && | |||||||
175 | appConte xt.equals( wrapper.ge tAppContex t())) { | 175 | appConte xt.equals( wrapper.ge tAppContex t())) { | |||||||
176 | re gistration .listeners .remove(wr apper); | 176 | re gistration .listeners .remove(wr apper); | |||||||
177 | wr apper.list ener.notif y(wrapper. messageLay er, wrappe r.appConte xt); | 177 | wr apper.list ener.notif y(wrapper. messageLay er, wrappe r.appConte xt); | |||||||
178 | } | 178 | } | |||||||
179 | } | 179 | } | |||||||
180 | } | 180 | } | |||||||
181 | } | 181 | } | |||||||
182 | if (appC ontext != null) { | 182 | if (appC ontext != null) { | |||||||
183 | // N eed to che ck existin g layer re gistration s | 183 | // N eed to che ck existin g layer re gistration s | |||||||
184 | // ( and defaul t) | 184 | // ( and defaul t) | |||||||
185 | // N eed to che ck registr ations for all layer s | 185 | // N eed to che ck registr ations for all layer s | |||||||
186 | for (Registrat ionContext Impl regis tration : layerRegis trations.v alues()) { | 186 | for (Registrat ionContext Impl regis tration : layerRegis trations.v alues()) { | |||||||
187 | for (Regis trationLis tenerWrapp er wrapper : registr ation.list eners) { | 187 | for (Regis trationLis tenerWrapp er wrapper : registr ation.list eners) { | |||||||
188 | if (ap pContext.e quals(wrap per.getApp Context()) ) { | 188 | if (ap pContext.e quals(wrap per.getApp Context()) ) { | |||||||
189 | re gistration .listeners .remove(wr apper); | 189 | re gistration .listeners .remove(wr apper); | |||||||
190 | wr apper.list ener.notif y(wrapper. messageLay er, wrappe r.appConte xt); | 190 | wr apper.list ener.notif y(wrapper. messageLay er, wrappe r.appConte xt); | |||||||
191 | } | 191 | } | |||||||
192 | } | 192 | } | |||||||
193 | } | 193 | } | |||||||
194 | } | 194 | } | |||||||
195 | if (laye r != null || appCont ext != nul l) { | 195 | if (laye r != null || appCont ext != nul l) { | |||||||
196 | // N eed to che ck default | 196 | // N eed to che ck default | |||||||
197 | for (Registrat ionContext Impl regis tration : defaultReg istration. values()) { | 197 | for (Registrat ionContext Impl regis tration : defaultReg istration. values()) { | |||||||
198 | for (Regis trationLis tenerWrapp er wrapper : registr ation.list eners) { | 198 | for (Regis trationLis tenerWrapp er wrapper : registr ation.list eners) { | |||||||
199 | if (ap pContext ! = null && appContext .equals(wr apper.getA ppContext( )) || | 199 | if (ap pContext ! = null && appContext .equals(wr apper.getA ppContext( )) || | |||||||
200 | layer != null && l ayer.equal s(wrapper. getMessage Layer())) { | 200 | layer != null && l ayer.equal s(wrapper. getMessage Layer())) { | |||||||
201 | re gistration .listeners .remove(wr apper); | 201 | re gistration .listeners .remove(wr apper); | |||||||
202 | wr apper.list ener.notif y(wrapper. messageLay er, wrappe r.appConte xt); | 202 | wr apper.list ener.notif y(wrapper. messageLay er, wrappe r.appConte xt); | |||||||
203 | } | 203 | } | |||||||
204 | } | 204 | } | |||||||
205 | } | 205 | } | |||||||
206 | } | 206 | } | |||||||
207 | } else { | 207 | } else { | |||||||
208 | // Repla ced an exi sting regi stration s o need to notify tho se listene rs | 208 | // Repla ced an exi sting regi stration s o need to notify tho se listene rs | |||||||
209 | for (Reg istrationL istenerWra pper wrapp er : previ ous.listen ers) { | 209 | for (Reg istrationL istenerWra pper wrapp er : previ ous.listen ers) { | |||||||
210 | prev ious.liste ners.remov e(wrapper) ; | 210 | prev ious.liste ners.remov e(wrapper) ; | |||||||
211 | wrap per.listen er.notify( wrapper.me ssageLayer , wrapper. appContext ); | 211 | wrap per.listen er.notify( wrapper.me ssageLayer , wrapper. appContext ); | |||||||
212 | } | 212 | } | |||||||
213 | } | 213 | } | |||||||
214 | } | 214 | } | |||||||
215 | 215 | |||||||||
216 | 216 | |||||||||
217 | @Overr ide | 217 | @Overr ide | |||||||
218 | public boolean r emoveRegis tration(St ring regis trationID) { | 218 | public boolean r emoveRegis tration(St ring regis trationID) { | |||||||
219 | Re gistration ContextImp l registra tion = nul l; | 219 | Re gistration ContextImp l registra tion = nul l; | |||||||
220 | if (DEFAULT_ REGISTRATI ON_ID.equa ls(registr ationID)) { | 220 | if (DEFAULT_ REGISTRATI ON_ID.equa ls(registr ationID)) { | |||||||
221 | registra tion = def aultRegist ration.rem ove(regist rationID); | 221 | registra tion = def aultRegist ration.rem ove(regist rationID); | |||||||
222 | } | 222 | } | |||||||
223 | if (registra tion == nu ll) { | 223 | if (registra tion == nu ll) { | |||||||
224 | registra tion = lay erAppConte xtRegistra tions.remo ve(registr ationID); | 224 | registra tion = lay erAppConte xtRegistra tions.remo ve(registr ationID); | |||||||
225 | } | 225 | } | |||||||
226 | if (registra tion == nu ll) { | 226 | if (registra tion == nu ll) { | |||||||
227 | registra tion = ap pContextRe gistration s.remove(r egistratio nID); | 227 | registra tion = ap pContextRe gistration s.remove(r egistratio nID); | |||||||
228 | } | 228 | } | |||||||
229 | if (registra tion == nu ll) { | 229 | if (registra tion == nu ll) { | |||||||
230 | registra tion = lay erRegistra tions.remo ve(registr ationID); | 230 | registra tion = lay erRegistra tions.remo ve(registr ationID); | |||||||
231 | } | 231 | } | |||||||
232 | 232 | |||||||||
233 | if (registra tion == nu ll) { | 233 | if (registra tion == nu ll) { | |||||||
234 | return f alse; | 234 | return f alse; | |||||||
235 | } else { | 235 | } else { | |||||||
236 | for (Reg istrationL istenerWra pper wrapp er : regis tration.li steners) { | 236 | for (Reg istrationL istenerWra pper wrapp er : regis tration.li steners) { | |||||||
237 | wrap per.getLis tener().no tify(wrapp er.getMess ageLayer() , wrapper. getAppCont ext()); | 237 | wrap per.getLis tener().no tify(wrapp er.getMess ageLayer() , wrapper. getAppCont ext()); | |||||||
238 | } | 238 | } | |||||||
239 | return t rue; | 239 | return t rue; | |||||||
240 | } | 240 | } | |||||||
241 | } | 241 | } | |||||||
242 | 242 | |||||||||
243 | 243 | |||||||||
244 | @Overr ide | 244 | @Overr ide | |||||||
245 | public String[] detachList ener(Regis trationLis tener list ener, Stri ng layer, String app Context) { | 245 | public String[] detachList ener(Regis trationLis tener list ener, Stri ng layer, String app Context) { | |||||||
246 | St ring regis trationID = getRegis trationID( layer, app Context); | 246 | St ring regis trationID = getRegis trationID( layer, app Context); | |||||||
247 | Re gistration ContextImp l registra tionContex t = findRe gistration ContextImp l(layer, a ppContext) ; | 247 | Re gistration ContextImp l registra tionContex t = findRe gistration ContextImp l(layer, a ppContext) ; | |||||||
248 | if (registra tionContex t.removeLi stener(lis tener)) { | 248 | if (registra tionContex t.removeLi stener(lis tener)) { | |||||||
249 | return n ew String[ ] { regist rationID } ; | 249 | return n ew String[ ] { regist rationID } ; | |||||||
250 | } | 250 | } | |||||||
251 | re turn EMPTY _STRING_AR RAY; | 251 | re turn EMPTY _STRING_AR RAY; | |||||||
252 | } | 252 | } | |||||||
253 | 253 | |||||||||
254 | 254 | |||||||||
255 | @Overr ide | 255 | @Overr ide | |||||||
256 | public String[] getRegistr ationIDs(A uthConfigP rovider pr ovider) { | 256 | public String[] getRegistr ationIDs(A uthConfigP rovider pr ovider) { | |||||||
257 | Li st<String> result = new ArrayL ist<>(); | 257 | Li st<String> result = new ArrayL ist<>(); | |||||||
258 | if (provider == null) { | 258 | if (provider == null) { | |||||||
259 | result.a ddAll(laye rAppContex tRegistrat ions.keySe t()); | 259 | result.a ddAll(laye rAppContex tRegistrat ions.keySe t()); | |||||||
260 | result.a ddAll(appC ontextRegi strations. keySet()); | 260 | result.a ddAll(appC ontextRegi strations. keySet()); | |||||||
261 | result.a ddAll(laye rRegistrat ions.keySe t()); | 261 | result.a ddAll(laye rRegistrat ions.keySe t()); | |||||||
262 | if (defa ultRegistr ation != n ull) { | 262 | if (defa ultRegistr ation != n ull) { | |||||||
263 | resu lt.add(DEF AULT_REGIS TRATION_ID ); | 263 | resu lt.add(DEF AULT_REGIS TRATION_ID ); | |||||||
264 | } | 264 | } | |||||||
265 | } else { | 265 | } else { | |||||||
266 | findProv ider(provi der, layer AppContext Registrati ons, resul t); | 266 | findProv ider(provi der, layer AppContext Registrati ons, resul t); | |||||||
267 | findProv ider(provi der, appCo ntextRegis trations, result); | 267 | findProv ider(provi der, appCo ntextRegis trations, result); | |||||||
268 | findProv ider(provi der, layer Registrati ons, resul t); | 268 | findProv ider(provi der, layer Registrati ons, resul t); | |||||||
269 | findProv ider(provi der, defau ltRegistra tion, resu lt); | 269 | findProv ider(provi der, defau ltRegistra tion, resu lt); | |||||||
270 | } | 270 | } | |||||||
271 | re turn resul t.toArray( EMPTY_STRI NG_ARRAY); | 271 | re turn resul t.toArray( EMPTY_STRI NG_ARRAY); | |||||||
272 | } | 272 | } | |||||||
273 | 273 | |||||||||
274 | 274 | |||||||||
275 | privat e void fin dProvider( AuthConfig Provider p rovider, | 275 | privat e void fin dProvider( AuthConfig Provider p rovider, | |||||||
276 | Map<Stri ng,Registr ationConte xtImpl> re gistration s, List<St ring> resu lt) { | 276 | Map<Stri ng,Registr ationConte xtImpl> re gistration s, List<St ring> resu lt) { | |||||||
277 | fo r (Entry<S tring,Regi strationCo ntextImpl> entry : r egistratio ns.entrySe t()) { | 277 | fo r (Entry<S tring,Regi strationCo ntextImpl> entry : r egistratio ns.entrySe t()) { | |||||||
278 | if (prov ider.equal s(entry.ge tValue().g etProvider ())) { | 278 | if (prov ider.equal s(entry.ge tValue().g etProvider ())) { | |||||||
279 | resu lt.add(ent ry.getKey( )); | 279 | resu lt.add(ent ry.getKey( )); | |||||||
280 | } | 280 | } | |||||||
281 | } | 281 | } | |||||||
282 | } | 282 | } | |||||||
283 | 283 | |||||||||
284 | 284 | |||||||||
285 | @Overr ide | 285 | @Overr ide | |||||||
286 | public Registrat ionContext getRegist rationCont ext(String registrat ionID) { | 286 | public Registrat ionContext getRegist rationCont ext(String registrat ionID) { | |||||||
287 | Re gistration Context re sult = def aultRegist ration.get (registrat ionID); | 287 | Re gistration Context re sult = def aultRegist ration.get (registrat ionID); | |||||||
288 | if (result = = null) { | 288 | if (result = = null) { | |||||||
289 | result = layerAppC ontextRegi strations. get(regist rationID); | 289 | result = layerAppC ontextRegi strations. get(regist rationID); | |||||||
290 | } | 290 | } | |||||||
291 | if (result = = null) { | 291 | if (result = = null) { | |||||||
292 | result = appContex tRegistrat ions.get(r egistratio nID); | 292 | result = appContex tRegistrat ions.get(r egistratio nID); | |||||||
293 | } | 293 | } | |||||||
294 | if (result = = null) { | 294 | if (result = = null) { | |||||||
295 | result = layerRegi strations. get(regist rationID); | 295 | result = layerRegi strations. get(regist rationID); | |||||||
296 | } | 296 | } | |||||||
297 | re turn resul t; | 297 | re turn resul t; | |||||||
298 | } | 298 | } | |||||||
299 | 299 | |||||||||
300 | 300 | |||||||||
301 | @Overr ide | 301 | @Overr ide | |||||||
302 | public void refr esh() { | 302 | public void refr esh() { | |||||||
303 | lo adPersiste ntRegistra tions(); | 303 | lo adPersiste ntRegistra tions(); | |||||||
304 | } | 304 | } | |||||||
305 | 305 | |||||||||
306 | 306 | |||||||||
307 | privat e static S tring getR egistratio nID(String layer, St ring appCo ntext) { | 307 | privat e static S tring getR egistratio nID(String layer, St ring appCo ntext) { | |||||||
308 | if (layer != null && l ayer.lengt h() == 0) { | 308 | if (layer != null && l ayer.lengt h() == 0) { | |||||||
309 | throw ne w IllegalA rgumentExc eption( | 309 | throw ne w IllegalA rgumentExc eption( | |||||||
310 | sm.getStri ng("authCo nfigFactor yImpl.zero LengthMess ageLayer") ); | 310 | sm.getStri ng("authCo nfigFactor yImpl.zero LengthMess ageLayer") ); | |||||||
311 | } | 311 | } | |||||||
312 | if (appConte xt != null && appCon text.lengt h() == 0) { | 312 | if (appConte xt != null && appCon text.lengt h() == 0) { | |||||||
313 | throw ne w IllegalA rgumentExc eption( | 313 | throw ne w IllegalA rgumentExc eption( | |||||||
314 | sm.getStri ng("authCo nfigFactor yImpl.zero LengthAppC ontext")); | 314 | sm.getStri ng("authCo nfigFactor yImpl.zero LengthAppC ontext")); | |||||||
315 | } | 315 | } | |||||||
316 | re turn (laye r == null ? "" : lay er) + ":" + (appCont ext == nul l ? "" : a ppContext) ; | 316 | re turn (laye r == null ? "" : lay er) + ":" + (appCont ext == nul l ? "" : a ppContext) ; | |||||||
317 | } | 317 | } | |||||||
318 | 318 | |||||||||
319 | 319 | |||||||||
320 | privat e void loa dPersisten tRegistrat ions() { | 320 | privat e void loa dPersisten tRegistrat ions() { | |||||||
321 | sy nchronized (CONFIG_F ILE_LOCK) { | 321 | sy nchronized (CONFIG_F ILE_LOCK) { | |||||||
322 | if (log. isDebugEna bled()) { | 322 | if (log. isDebugEna bled()) { | |||||||
323 | log. debug(sm.g etString(" authConfig FactoryImp l.load", | 323 | log. debug(sm.g etString(" authConfig FactoryImp l.load", | |||||||
324 | CONFIG _FILE.getA bsolutePat h())); | 324 | CONFIG _FILE.getA bsolutePat h())); | |||||||
325 | } | 325 | } | |||||||
326 | if (!CON FIG_FILE.i sFile()) { | 326 | if (!CON FIG_FILE.i sFile()) { | |||||||
327 | retu rn; | 327 | retu rn; | |||||||
328 | } | 328 | } | |||||||
329 | Provider s provider s = Persis tentProvid erRegistra tions.load Providers( CONFIG_FIL E); | 329 | Provider s provider s = Persis tentProvid erRegistra tions.load Providers( CONFIG_FIL E); | |||||||
330 | for (Pro vider prov ider : pro viders.get Providers( )) { | 330 | for (Pro vider prov ider : pro viders.get Providers( )) { | |||||||
331 | doRe gisterConf igProvider (provider. getClassNa me(), prov ider.getPr operties() , | 331 | doRe gisterConf igProvider (provider. getClassNa me(), prov ider.getPr operties() , | |||||||
332 | provid er.getLaye r(), provi der.getApp Context(), provider. getDescrip tion()); | 332 | provid er.getLaye r(), provi der.getApp Context(), provider. getDescrip tion()); | |||||||
333 | } | 333 | } | |||||||
334 | } | 334 | } | |||||||
335 | } | 335 | } | |||||||
336 | 336 | |||||||||
337 | 337 | |||||||||
338 | privat e void sav ePersisten tRegistrat ions() { | 338 | privat e void sav ePersisten tRegistrat ions() { | |||||||
339 | sy nchronized (CONFIG_F ILE_LOCK) { | 339 | sy nchronized (CONFIG_F ILE_LOCK) { | |||||||
340 | Provider s provider s = new Pr oviders(); | 340 | Provider s provider s = new Pr oviders(); | |||||||
341 | savePers istentProv iders(prov iders, lay erAppConte xtRegistra tions); | 341 | savePers istentProv iders(prov iders, lay erAppConte xtRegistra tions); | |||||||
342 | savePers istentProv iders(prov iders, app ContextReg istrations ); | 342 | savePers istentProv iders(prov iders, app ContextReg istrations ); | |||||||
343 | savePers istentProv iders(prov iders, lay erRegistra tions); | 343 | savePers istentProv iders(prov iders, lay erRegistra tions); | |||||||
344 | savePers istentProv iders(prov iders, def aultRegist ration); | 344 | savePers istentProv iders(prov iders, def aultRegist ration); | |||||||
345 | Persiste ntProvider Registrati ons.writeP roviders(p roviders, CONFIG_FIL E); | 345 | Persiste ntProvider Registrati ons.writeP roviders(p roviders, CONFIG_FIL E); | |||||||
346 | } | 346 | } | |||||||
347 | } | 347 | } | |||||||
348 | 348 | |||||||||
349 | 349 | |||||||||
350 | privat e void sav ePersisten tProviders (Providers providers , | 350 | privat e void sav ePersisten tProviders (Providers providers , | |||||||
351 | Map<Stri ng,Registr ationConte xtImpl> re gistration s) { | 351 | Map<Stri ng,Registr ationConte xtImpl> re gistration s) { | |||||||
352 | fo r (Entry<S tring,Regi strationCo ntextImpl> entry : r egistratio ns.entrySe t()) { | 352 | fo r (Entry<S tring,Regi strationCo ntextImpl> entry : r egistratio ns.entrySe t()) { | |||||||
353 | savePers istentProv ider(provi ders, entr y.getValue ()); | 353 | savePers istentProv ider(provi ders, entr y.getValue ()); | |||||||
354 | } | 354 | } | |||||||
355 | } | 355 | } | |||||||
356 | 356 | |||||||||
357 | 357 | |||||||||
358 | privat e void sav ePersisten tProvider( Providers providers, | 358 | privat e void sav ePersisten tProvider( Providers providers, | |||||||
359 | Registra tionContex tImpl regi strationCo ntextImpl) { | 359 | Registra tionContex tImpl regi strationCo ntextImpl) { | |||||||
360 | if (registra tionContex tImpl != n ull && reg istrationC ontextImpl .isPersist ent()) { | 360 | if (registra tionContex tImpl != n ull && reg istrationC ontextImpl .isPersist ent()) { | |||||||
361 | Provider provider = new Prov ider(); | 361 | Provider provider = new Prov ider(); | |||||||
362 | provider .setAppCon text(regis trationCon textImpl.g etAppConte xt()); | 362 | provider .setAppCon text(regis trationCon textImpl.g etAppConte xt()); | |||||||
363 | provider .setClassN ame(regist rationCont extImpl.ge tProvider( ).getClass ().getName ()); | 363 | provider .setClassN ame(regist rationCont extImpl.ge tProvider( ).getClass ().getName ()); | |||||||
364 | provider .setDescri ption(regi strationCo ntextImpl. getDescrip tion()); | 364 | provider .setDescri ption(regi strationCo ntextImpl. getDescrip tion()); | |||||||
365 | provider .setLayer( registrati onContextI mpl.getMes sageLayer( )); | 365 | provider .setLayer( registrati onContextI mpl.getMes sageLayer( )); | |||||||
366 | for (Ent ry<String, String> pr operty : r egistratio nContextIm pl.getProp erties().e ntrySet()) { | 366 | for (Ent ry<String, String> pr operty : r egistratio nContextIm pl.getProp erties().e ntrySet()) { | |||||||
367 | prov ider.addPr operty(pro perty.getK ey(), prop erty.getVa lue()); | 367 | prov ider.addPr operty(pro perty.getK ey(), prop erty.getVa lue()); | |||||||
368 | } | 368 | } | |||||||
369 | provider s.addProvi der(provid er); | 369 | provider s.addProvi der(provid er); | |||||||
370 | } | 370 | } | |||||||
371 | } | 371 | } | |||||||
372 | 372 | |||||||||
373 | 373 | |||||||||
374 | privat e Registra tionContex tImpl find Registrati onContextI mpl(String layer, St ring appCo ntext) { | 374 | privat e Registra tionContex tImpl find Registrati onContextI mpl(String layer, St ring appCo ntext) { | |||||||
375 | Re gistration ContextImp l result; | 375 | Re gistration ContextImp l result; | |||||||
376 | re sult = lay erAppConte xtRegistra tions.get( getRegistr ationID(la yer, appCo ntext)); | 376 | re sult = lay erAppConte xtRegistra tions.get( getRegistr ationID(la yer, appCo ntext)); | |||||||
377 | if (result = = null) { | 377 | if (result = = null) { | |||||||
378 | result = appContex tRegistrat ions.get(g etRegistra tionID(nul l, appCont ext)); | 378 | result = appContex tRegistrat ions.get(g etRegistra tionID(nul l, appCont ext)); | |||||||
379 | } | 379 | } | |||||||
380 | if (result = = null) { | 380 | if (result = = null) { | |||||||
381 | result = layerRegi strations. get(getReg istrationI D(layer, n ull)); | 381 | result = layerRegi strations. get(getReg istrationI D(layer, n ull)); | |||||||
382 | } | 382 | } | |||||||
383 | if (result = = null) { | 383 | if (result = = null) { | |||||||
384 | result = defaultRe gistration .get(DEFAU LT_REGISTR ATION_ID); | 384 | result = defaultRe gistration .get(DEFAU LT_REGISTR ATION_ID); | |||||||
385 | } | 385 | } | |||||||
386 | re turn resul t; | 386 | re turn resul t; | |||||||
387 | } | 387 | } | |||||||
388 | 388 | |||||||||
389 | 389 | |||||||||
390 | privat e static c lass Regis trationCon textImpl i mplements Registrati onContext { | 390 | privat e static c lass Regis trationCon textImpl i mplements Registrati onContext { | |||||||
391 | 391 | |||||||||
392 | pr ivate Regi strationCo ntextImpl( String mes sageLayer, String ap pContext, String des cription, | 392 | pr ivate Regi strationCo ntextImpl( String mes sageLayer, String ap pContext, String des cription, | |||||||
393 | bool ean persis tent, Auth ConfigProv ider provi der, Map<S tring,Stri ng> proper ties) { | 393 | bool ean persis tent, Auth ConfigProv ider provi der, Map<S tring,Stri ng> proper ties) { | |||||||
394 | this.mes sageLayer = messageL ayer; | 394 | this.mes sageLayer = messageL ayer; | |||||||
395 | this.app Context = appContext ; | 395 | this.app Context = appContext ; | |||||||
396 | this.des cription = descripti on; | 396 | this.des cription = descripti on; | |||||||
397 | this.per sistent = persistent ; | 397 | this.per sistent = persistent ; | |||||||
398 | this.pro vider = pr ovider; | 398 | this.pro vider = pr ovider; | |||||||
399 | Map<Stri ng,String> propertie sCopy = ne w HashMap< >(); | 399 | Map<Stri ng,String> propertie sCopy = ne w HashMap< >(); | |||||||
400 | if (prop erties != null) { | 400 | if (prop erties != null) { | |||||||
401 | prop ertiesCopy .putAll(pr operties); | 401 | prop ertiesCopy .putAll(pr operties); | |||||||
402 | } | 402 | } | |||||||
403 | this.pro perties = Collection s.unmodifi ableMap(pr opertiesCo py); | 403 | this.pro perties = Collection s.unmodifi ableMap(pr opertiesCo py); | |||||||
404 | } | 404 | } | |||||||
405 | 405 | |||||||||
406 | pr ivate fina l String m essageLaye r; | 406 | pr ivate fina l String m essageLaye r; | |||||||
407 | pr ivate fina l String a ppContext; | 407 | pr ivate fina l String a ppContext; | |||||||
408 | pr ivate fina l String d escription ; | 408 | pr ivate fina l String d escription ; | |||||||
409 | pr ivate fina l boolean persistent ; | 409 | pr ivate fina l boolean persistent ; | |||||||
410 | pr ivate fina l AuthConf igProvider provider; | 410 | pr ivate fina l AuthConf igProvider provider; | |||||||
411 | pr ivate fina l Map<Stri ng,String> propertie s; | 411 | pr ivate fina l Map<Stri ng,String> propertie s; | |||||||
412 | pr ivate fina l List<Reg istrationL istenerWra pper> list eners = ne w CopyOnWr iteArrayLi st<>(); | 412 | pr ivate fina l List<Reg istrationL istenerWra pper> list eners = ne w CopyOnWr iteArrayLi st<>(); | |||||||
413 | 413 | |||||||||
414 | @O verride | 414 | @O verride | |||||||
415 | pu blic Strin g getMessa geLayer() { | 415 | pu blic Strin g getMessa geLayer() { | |||||||
416 | return m essageLaye r; | 416 | return m essageLaye r; | |||||||
417 | } | 417 | } | |||||||
418 | 418 | |||||||||
419 | 419 | |||||||||
420 | @O verride | 420 | @O verride | |||||||
421 | pu blic Strin g getAppCo ntext() { | 421 | pu blic Strin g getAppCo ntext() { | |||||||
422 | return a ppContext; | 422 | return a ppContext; | |||||||
423 | } | 423 | } | |||||||
424 | 424 | |||||||||
425 | @O verride | 425 | @O verride | |||||||
426 | pu blic Strin g getDescr iption() { | 426 | pu blic Strin g getDescr iption() { | |||||||
427 | return d escription ; | 427 | return d escription ; | |||||||
428 | } | 428 | } | |||||||
429 | 429 | |||||||||
430 | 430 | |||||||||
431 | @O verride | 431 | @O verride | |||||||
432 | pu blic boole an isPersi stent() { | 432 | pu blic boole an isPersi stent() { | |||||||
433 | return p ersistent; | 433 | return p ersistent; | |||||||
434 | } | 434 | } | |||||||
435 | 435 | |||||||||
436 | 436 | |||||||||
437 | pr ivate Auth ConfigProv ider getPr ovider() { | 437 | pr ivate Auth ConfigProv ider getPr ovider() { | |||||||
438 | return p rovider; | 438 | return p rovider; | |||||||
439 | } | 439 | } | |||||||
440 | 440 | |||||||||
441 | 441 | |||||||||
442 | pr ivate void addListen er(Registr ationListe nerWrapper listener) { | 442 | pr ivate void addListen er(Registr ationListe nerWrapper listener) { | |||||||
443 | if (list ener != nu ll) { | 443 | if (list ener != nu ll) { | |||||||
444 | list eners.add( listener); | 444 | list eners.add( listener); | |||||||
445 | } | 445 | } | |||||||
446 | } | 446 | } | |||||||
447 | 447 | |||||||||
448 | 448 | |||||||||
449 | pr ivate Map< String,Str ing> getPr operties() { | 449 | pr ivate Map< String,Str ing> getPr operties() { | |||||||
450 | return p roperties; | 450 | return p roperties; | |||||||
451 | } | 451 | } | |||||||
452 | 452 | |||||||||
453 | 453 | |||||||||
454 | pr ivate bool ean remove Listener(R egistratio nListener listener) { | 454 | pr ivate bool ean remove Listener(R egistratio nListener listener) { | |||||||
455 | boolean result = f alse; | 455 | boolean result = f alse; | |||||||
456 | for (Reg istrationL istenerWra pper wrapp er : liste ners) { | 456 | for (Reg istrationL istenerWra pper wrapp er : liste ners) { | |||||||
457 | if ( wrapper.ge tListener( ).equals(l istener)) { | 457 | if ( wrapper.ge tListener( ).equals(l istener)) { | |||||||
458 | listeners. remove(wra pper); | 458 | listeners. remove(wra pper); | |||||||
459 | } | 459 | } | |||||||
460 | } | 460 | } | |||||||
461 | return r esult; | 461 | return r esult; | |||||||
462 | } | 462 | } | |||||||
463 | } | 463 | } | |||||||
464 | 464 | |||||||||
465 | 465 | |||||||||
466 | privat e static c lass Regis trationLis tenerWrapp er { | 466 | privat e static c lass Regis trationLis tenerWrapp er { | |||||||
467 | 467 | |||||||||
468 | pr ivate fina l String m essageLaye r; | 468 | pr ivate fina l String m essageLaye r; | |||||||
469 | pr ivate fina l String a ppContext; | 469 | pr ivate fina l String a ppContext; | |||||||
470 | pr ivate fina l Registra tionListen er listene r; | 470 | pr ivate fina l Registra tionListen er listene r; | |||||||
471 | 471 | |||||||||
472 | 472 | |||||||||
473 | pu blic Regis trationLis tenerWrapp er(String messageLay er, String appContex t, | 473 | pu blic Regis trationLis tenerWrapp er(String messageLay er, String appContex t, | |||||||
474 | Regi strationLi stener lis tener) { | 474 | Regi strationLi stener lis tener) { | |||||||
475 | this.mes sageLayer = messageL ayer; | 475 | this.mes sageLayer = messageL ayer; | |||||||
476 | this.app Context = appContext ; | 476 | this.app Context = appContext ; | |||||||
477 | this.lis tener = li stener; | 477 | this.lis tener = li stener; | |||||||
478 | } | 478 | } | |||||||
479 | 479 | |||||||||
480 | 480 | |||||||||
481 | pu blic Strin g getMessa geLayer() { | 481 | pu blic Strin g getMessa geLayer() { | |||||||
482 | return m essageLaye r; | 482 | return m essageLaye r; | |||||||
483 | } | 483 | } | |||||||
484 | 484 | |||||||||
485 | 485 | |||||||||
486 | pu blic Strin g getAppCo ntext() { | 486 | pu blic Strin g getAppCo ntext() { | |||||||
487 | return a ppContext; | 487 | return a ppContext; | |||||||
488 | } | 488 | } | |||||||
489 | 489 | |||||||||
490 | 490 | |||||||||
491 | pu blic Regis trationLis tener getL istener() { | 491 | pu blic Regis trationLis tener getL istener() { | |||||||
492 | return l istener; | 492 | return l istener; | |||||||
493 | } | 493 | } | |||||||
494 | } | 494 | } | |||||||
495 | } | 495 | } |
Araxis Merge (but not the data content of this report) is Copyright © 1993–2017 Araxis Ltd (www.araxis.com). All rights reserved.