Skip to content

Commit 185bef3

Browse files
committed
fix actframework#373, actframework#374; update osgl-genie to 1.2.1-BETA-1
1 parent 3e532d9 commit 185bef3

9 files changed

Lines changed: 133 additions & 16 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
<joda-time.version>2.9.9</joda-time.version>
8181
<okhttp.version>3.8.1</okhttp.version>
8282
<osgl-tool.version>1.4.3</osgl-tool.version>
83-
<osgl-genie.version>1.2.0-BETA-2</osgl-genie.version>
83+
<osgl-genie.version>1.2.1-BETA-1</osgl-genie.version>
8484
<osgl-mvc.version>1.2.0</osgl-mvc.version>
8585
<osgl-storage.version>1.4.1</osgl-storage.version>
8686
<osgl-tool-ext.version>1.0.1</osgl-tool-ext.version>

src/main/java/act/app/DbServiceManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ private void configureSequenceGenerator(final App app) {
140140
@Override
141141
public void run() {
142142
_SequenceNumberGenerator seqGen = app.config().sequenceNumberGenerator();
143-
seqGen.configure(app.config(), DbServiceManager.this);
143+
//seqGen.configure(app.config(), DbServiceManager.this);
144144
SequenceNumberGenerator.registerImpl(seqGen);
145145
}
146146
});
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package act.db;
2+
3+
/*-
4+
* #%L
5+
* ACT Framework
6+
* %%
7+
* Copyright (C) 2014 - 2017 ActFramework
8+
* %%
9+
* Licensed under the Apache License, Version 2.0 (the "License");
10+
* you may not use this file except in compliance with the License.
11+
* You may obtain a copy of the License at
12+
*
13+
* http://www.apache.org/licenses/LICENSE-2.0
14+
*
15+
* Unless required by applicable law or agreed to in writing, software
16+
* distributed under the License is distributed on an "AS IS" BASIS,
17+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18+
* See the License for the specific language governing permissions and
19+
* limitations under the License.
20+
* #L%
21+
*/
22+
23+
import act.app.App;
24+
import act.app.DbServiceManager;
25+
import org.osgl.inject.BeanSpec;
26+
import org.osgl.inject.GenericTypedBeanLoader;
27+
28+
import javax.enterprise.context.ApplicationScoped;
29+
import java.lang.reflect.Type;
30+
import java.util.List;
31+
32+
@ApplicationScoped
33+
public class DaoBaseLoader implements GenericTypedBeanLoader<DaoBase> {
34+
35+
private DbServiceManager dbServiceManager;
36+
public DaoBaseLoader() {
37+
dbServiceManager = App.instance().dbServiceManager();
38+
}
39+
40+
@Override
41+
public DaoBase load(BeanSpec spec) {
42+
List<Type> typeList = spec.typeParams();
43+
int sz = typeList.size();
44+
if (sz > 1) {
45+
Class<?> modelType = BeanSpec.rawTypeOf(typeList.get(1));
46+
return (DaoBase) dbServiceManager.dao(modelType);
47+
}
48+
return null;
49+
}
50+
51+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package act.db;
2+
3+
/*-
4+
* #%L
5+
* ACT Framework
6+
* %%
7+
* Copyright (C) 2014 - 2017 ActFramework
8+
* %%
9+
* Licensed under the Apache License, Version 2.0 (the "License");
10+
* you may not use this file except in compliance with the License.
11+
* You may obtain a copy of the License at
12+
*
13+
* http://www.apache.org/licenses/LICENSE-2.0
14+
*
15+
* Unless required by applicable law or agreed to in writing, software
16+
* distributed under the License is distributed on an "AS IS" BASIS,
17+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18+
* See the License for the specific language governing permissions and
19+
* limitations under the License.
20+
* #L%
21+
*/
22+
23+
import act.app.App;
24+
import act.app.DbServiceManager;
25+
import org.osgl.inject.BeanSpec;
26+
import org.osgl.inject.GenericTypedBeanLoader;
27+
28+
import javax.enterprise.context.ApplicationScoped;
29+
import java.lang.reflect.Type;
30+
import java.util.List;
31+
32+
@ApplicationScoped
33+
public class DaoLoader implements GenericTypedBeanLoader<Dao> {
34+
35+
private DbServiceManager dbServiceManager;
36+
public DaoLoader() {
37+
dbServiceManager = App.instance().dbServiceManager();
38+
}
39+
40+
@Override
41+
public Dao load(BeanSpec spec) {
42+
List<Type> typeList = spec.typeParams();
43+
int sz = typeList.size();
44+
if (sz > 1) {
45+
Class<?> modelType = BeanSpec.rawTypeOf(typeList.get(1));
46+
return dbServiceManager.dao(modelType);
47+
}
48+
return null;
49+
}
50+
51+
}

src/main/java/act/db/util/SequenceNumberGenerator.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,12 @@
2020
* #L%
2121
*/
2222

23+
import act.Act;
24+
import act.app.App;
25+
import act.app.DbServiceManager;
2326
import act.cli.Command;
2427
import act.cli.Required;
28+
import act.conf.AppConfig;
2529
import org.osgl.$;
2630

2731
import javax.inject.Inject;
@@ -55,8 +59,16 @@ public static class Provider implements javax.inject.Provider<_SequenceNumberGen
5559
@Override
5660
public _SequenceNumberGenerator get() {
5761
if (generators.size() > 1) {
62+
App app = Act.app();
63+
AppConfig config = app.config();
64+
DbServiceManager dbServiceManager = app.dbServiceManager();
5865
for (_SequenceNumberGenerator gen: generators) {
5966
if (!_SequenceNumberGenerator.InMemorySequenceNumberGenerator.class.isInstance(gen)) {
67+
try {
68+
gen.configure(config, dbServiceManager);
69+
} catch (Exception e) {
70+
continue;
71+
}
6072
return gen;
6173
}
6274
}

src/main/java/act/inject/genie/DependentScope.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@
2121
*/
2222

2323
import act.inject.param.ScopeCacheSupport;
24+
import org.osgl.inject.BeanSpec;
2425
import org.osgl.inject.ScopeCache;
2526

2627
public class DependentScope extends ScopeCacheSupport.Base implements ScopeCache, ScopeCacheSupport {
2728

2829
public static final DependentScope INSTANCE = new DependentScope();
2930

3031
@Override
31-
public <T> T get(Class<T> aClass) {
32+
public <T> T get(BeanSpec target) {
3233
return null;
3334
}
3435

@@ -38,7 +39,7 @@ public <T> T get(String key) {
3839
}
3940

4041
@Override
41-
public <T> void put(Class<T> aClass, T t) {
42+
public <T> void put(BeanSpec target, T t) {
4243
}
4344

4445
@Override

src/main/java/act/inject/genie/RequestScope.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,16 @@
2323
import act.app.ActionContext;
2424
import act.cli.CliContext;
2525
import act.inject.param.ScopeCacheSupport;
26+
import org.osgl.inject.BeanSpec;
2627
import org.osgl.inject.ScopeCache;
2728

2829
public class RequestScope extends ScopeCacheSupport.Base implements ScopeCache.RequestScope, ScopeCacheSupport {
2930

3031
public static final act.inject.genie.RequestScope INSTANCE = new act.inject.genie.RequestScope();
3132

3233
@Override
33-
public <T> T get(Class<T> aClass) {
34-
return get(aClass.getName());
34+
public <T> T get(BeanSpec target) {
35+
return get(target.toString());
3536
}
3637

3738
@Override
@@ -48,11 +49,11 @@ public <T> T get(String key) {
4849
}
4950

5051
@Override
51-
public <T> void put(Class<T> aClass, T t) {
52+
public <T> void put(BeanSpec target, T t) {
5253
if (null == t) {
5354
return;
5455
}
55-
put(aClass.getName(), t);
56+
put(target.toString(), t);
5657
}
5758

5859
public <T> void put(String key, T t) {

src/main/java/act/inject/genie/SessionScope.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ public SessionScope() {
4040
}
4141

4242
@Override
43-
public <T> T get(Class<T> aClass) {
44-
return get(aClass.getName());
43+
public <T> T get(BeanSpec target) {
44+
return get(target.toString());
4545
}
4646

4747
@Override
@@ -64,8 +64,8 @@ public <T> T get(String key) {
6464
}
6565

6666
@Override
67-
public <T> void put(Class<T> aClass, T t) {
68-
put(aClass.getName(), t);
67+
public <T> void put(BeanSpec target, T t) {
68+
put(target.toString(), t);
6969
}
7070

7171
@Override

src/main/java/act/inject/genie/SingletonScope.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
*/
2222

2323
import act.app.App;
24+
import org.osgl.inject.BeanSpec;
2425
import org.osgl.inject.ScopeCache;
2526

2627
public class SingletonScope implements ScopeCache.SingletonScope {
@@ -34,13 +35,13 @@ public SingletonScope() {
3435
}
3536

3637
@Override
37-
public <T> T get(Class<T> aClass) {
38-
return app.singleton(aClass);
38+
public <T> T get(BeanSpec target) {
39+
return (T) app.singleton(target.rawType());
3940
}
4041

4142
@Override
42-
public <T> void put(Class<T> aClass, T t) {
43-
app.registerSingleton(aClass, t);
43+
public <T> void put(BeanSpec target, T t) {
44+
app.registerSingleton(target.rawType(), t);
4445
}
4546

4647
}

0 commit comments

Comments
 (0)