Skip to content

Commit

Permalink
Merge pull request #1 from actframework/0.3
Browse files Browse the repository at this point in the history
0.3
  • Loading branch information
leeaee committed Jan 13, 2017
2 parents f79b48e + 4216713 commit 2a993c7
Show file tree
Hide file tree
Showing 104 changed files with 2,379 additions and 290 deletions.
6 changes: 3 additions & 3 deletions pom.xml
Expand Up @@ -304,7 +304,7 @@
<dependency>
<groupId>org.osgl</groupId>
<artifactId>osgl-tool</artifactId>
<version>0.9.2</version>
<version>0.9.3-SNAPSHOT</version>
</dependency>

<dependency>
Expand All @@ -316,13 +316,13 @@
<dependency>
<groupId>org.osgl</groupId>
<artifactId>osgl-mvc</artifactId>
<version>0.7.0-SNAPSHOT</version>
<version>0.6.0-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>org.osgl</groupId>
<artifactId>osgl-tool-ext</artifactId>
<version>0.0.1</version>
<version>0.0.2-SNAPSHOT</version>
</dependency>

<dependency>
Expand Down
1 change: 0 additions & 1 deletion src/main/java/act/Info.java
Expand Up @@ -5,7 +5,6 @@
import act.sys.Env;
import act.util.Banner;
import org.osgl.mvc.annotation.GetAction;
import org.osgl.mvc.result.Result;

import static act.controller.Controller.Util.jsonMap;
import static act.controller.Controller.Util.text;
Expand Down
7 changes: 0 additions & 7 deletions src/main/java/act/SysUtilAdmin.java
@@ -1,15 +1,10 @@
package act;

import act.app.App;
import act.app.event.AppEventId;
import act.cli.CliContext;
import act.cli.Command;
import act.cli.Optional;
import act.cli.Required;
import act.handler.builtin.controller.*;
import act.sys.Env;
import act.util.AnnotatedClassFinder;
import act.util.Global;
import act.util.PropertySpec;
import org.joda.time.LocalDateTime;
import org.osgl.$;
Expand All @@ -26,8 +21,6 @@
import java.util.Date;
import java.util.List;

import static act.handler.builtin.controller.RequestHandlerProxy.registerGlobalInterceptor;

@SuppressWarnings("unused")
public class SysUtilAdmin {

Expand Down
15 changes: 15 additions & 0 deletions src/main/java/act/app/ActionContext.java
Expand Up @@ -627,6 +627,21 @@ public void resolve() {
}
}

@Override
public Locale locale(boolean required) {
if (required) {
if (null == locale()) {
localeResolver.resolve();
}
}
return super.locale(required);
}

@Override
public String i18n(String msgId, Object... args) {
return super.i18n(msgId, args);
}

/**
* Dissolve session and flash into cookies.
* <p><b>Note</b> this method must be called
Expand Down
31 changes: 26 additions & 5 deletions src/main/java/act/app/App.java
Expand Up @@ -47,11 +47,14 @@
import org.osgl.http.H;
import org.osgl.http.HttpConfig;
import org.osgl.logging.Logger;
import org.osgl.mvc.MvcConfig;
import org.osgl.storage.IStorageService;
import org.osgl.util.*;

import javax.enterprise.context.ApplicationScoped;
import java.io.File;
import java.io.IOException;
import java.nio.file.*;
import java.util.*;

import static act.app.event.AppEventId.*;
Expand Down Expand Up @@ -108,6 +111,7 @@ public enum F {
private Thread mainThread;
private Set<String> scanList;
private List<File> baseDirs;
private volatile File tmpDir;

protected App() {
INST = this;
Expand Down Expand Up @@ -175,7 +179,7 @@ public List<File> baseDirs() {
if (null != appBase && appBase.isDirectory()) {
baseDirs.add(appBase);
}
for (File baseDir: config.moduleBases()) {
for (File baseDir : config.moduleBases()) {
if (null != baseDir && baseDir.isDirectory()) {
baseDirs.add(baseDir);
}
Expand Down Expand Up @@ -217,7 +221,7 @@ public List<File> allSourceDirs(boolean requireTestProfile) {
return dirs;
}

public List<File> allResourceDirs (boolean requireTestProfile) {
public List<File> allResourceDirs(boolean requireTestProfile) {
List<File> dirs = C.newList();
dirs.addAll(resourceDirs());
if (!requireTestProfile || "test".equals(Act.profile())) {
Expand Down Expand Up @@ -481,11 +485,24 @@ void hook() {
}

public File tmpDir() {
return new File(this.layout().target(appBase), "tmp");
if (null == tmpDir) {
synchronized (this) {
if (Act.isDev()) {
tmpDir = new File(this.layout().target(appBase), "tmp");
} else {
try {
tmpDir = java.nio.file.Files.createTempDirectory(name()).toFile();
} catch (IOException e) {
throw E.ioException(e);
}
}
}
}
return tmpDir;
}

public File file(String path) {
return new File(home(), path);
return new File(base(), path);
}

public File resource(String path) {
Expand Down Expand Up @@ -705,6 +722,9 @@ private void loadConfig() {
config.app(this);
registerSingleton(AppConfig.class, config);
registerValueObjectCodec();
if (config.i18nEnabled()) {
MvcConfig.enableLocalizedErrorMsg();
}
}

private void initHttpConfig() {
Expand Down Expand Up @@ -897,7 +917,7 @@ private void shutdownJobManager() {
private void initScanlist() {
ClassLoader classLoader = getClass().getClassLoader();
if (classLoader instanceof BootstrapClassLoader) {
scanList = ((BootstrapClassLoader)classLoader).scanList();
scanList = ((BootstrapClassLoader) classLoader).scanList();
}
}

Expand Down Expand Up @@ -936,6 +956,7 @@ private void loadBuiltInScanners() {
scannerManager.register(new ControllerByteCodeScanner());
scannerManager.register(new MailerByteCodeScanner());
scannerManager.register(new JobByteCodeScanner());
scannerManager.register(new SimpleBean.ByteCodeScanner());
scannerManager.register(new SimpleEventListenerByteCodeScanner());
scannerManager.register(new CommanderByteCodeScanner());
scannerManager.register(new RythmTransformerScanner());
Expand Down
15 changes: 13 additions & 2 deletions src/main/java/act/app/AppClassLoader.java
Expand Up @@ -38,7 +38,6 @@
import java.io.File;
import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.security.ProtectionDomain;
import java.util.*;

import static act.util.ClassInfoRepository.canonicalName;
Expand Down Expand Up @@ -66,6 +65,7 @@ public class AppClassLoader
protected MailerClassMetaInfoManager mailerInfo = new MailerClassMetaInfoManager();
protected CommanderClassMetaInfoManager commanderInfo = new CommanderClassMetaInfoManager();
protected JobClassMetaInfoManager jobInfo = new JobClassMetaInfoManager();
protected SimpleBean.MetaInfoManager simpleBeanInfo;
protected Metric metric = Act.metricPlugin().metric(MetricInfo.CLASS_LOADING);

@Inject
Expand All @@ -80,6 +80,7 @@ public AppClassLoader(final App app) {
if (null == app.eventBus()) {
return; // for unit test only
}
simpleBeanInfo = new SimpleBean.MetaInfoManager(this);
app.eventBus().bind(AppEventId.APP_CODE_SCANNED, new AppEventListenerBase() {

@Override
Expand Down Expand Up @@ -120,6 +121,7 @@ public final void destroy() {
controllerInfo.destroy();
mailerInfo.destroy();
jobInfo.destroy();
simpleBeanInfo.destroy();
releaseResources();
destroyed = true;
}
Expand Down Expand Up @@ -153,6 +155,10 @@ public CommanderClassMetaInfoManager commanderClassMetaInfoManager() {
return commanderInfo;
}

public SimpleBean.MetaInfoManager simpleBeanInfoManager() {
return simpleBeanInfo;
}

@Override
public MailerClassMetaInfo mailerClassMetaInfo(String className) {
return mailerInfo.mailerMetaInfo(className);
Expand All @@ -170,6 +176,10 @@ public JobClassMetaInfoManager jobClassMetaInfoManager() {
return jobInfo;
}

public SimpleBean.MetaInfo simpleBeanMetaInfo(String className) {
return simpleBeanInfo.get(className);
}

public boolean isSourceClass(String className) {
return false;
}
Expand Down Expand Up @@ -227,7 +237,8 @@ protected void scanByteCode(Iterable<String> classes, $.Function<String, byte[]>
dependencies.remove(className);
byte[] ba = bytecodeProvider.apply(className);
if (null == ba) {
throw new NullPointerException();
logger.warn("Cannot find any bytecode for class: %s. You might have an empty Java source file for that.", className);
continue;
}
libClsCache.put(className, ba);
act.metric.Timer timer = metric.startTimer("act:classload:scan:bytecode:" + className);
Expand Down
5 changes: 0 additions & 5 deletions src/main/java/act/app/RuntimeDirs.java
Expand Up @@ -4,7 +4,6 @@
import act.route.RouteTableRouterBuilder;

import java.io.File;
import java.util.List;

/**
* Define application dir structure at runtime
Expand Down Expand Up @@ -35,10 +34,6 @@ public static File routes(App app) {
return new File(classes(app), RouteTableRouterBuilder.ROUTES_FILE);
}

public static File asset(App app) {
return new File(app.home(), ASSET);
}

public static File classes(App app) {
return new File(app.home(), CLASSES);
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/act/app/conf/AutoConfigPlugin.java
Expand Up @@ -33,7 +33,7 @@ public class AutoConfigPlugin extends AnnotatedTypeFinder {
private static Field modifiersField;

public AutoConfigPlugin() {
super(AutoConfig.class, new $.F2<App, String, Map<Class<? extends AppByteCodeScanner>, Set<String>>>() {
super(true, false, AutoConfig.class, new $.F2<App, String, Map<Class<? extends AppByteCodeScanner>, Set<String>>>() {
@Override
public Map<Class<? extends AppByteCodeScanner>, Set<String>> apply(final App app, final String className) throws NotAppliedException, $.Break {
app.eventBus().bind(AppEventId.PRE_START, new AppEventListenerBase() {
Expand Down
7 changes: 1 addition & 6 deletions src/main/java/act/app/data/StringValueResolverManager.java
Expand Up @@ -4,17 +4,12 @@
import act.app.App;
import act.app.AppServiceBase;
import act.conf.AppConfig;
import act.data.*;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.LocalDateTime;
import org.joda.time.LocalTime;
import act.data.SObjectResolver;
import org.osgl.storage.ISObject;
import org.osgl.util.AnnotationAware;
import org.osgl.util.C;
import org.osgl.util.StringValueResolver;

import java.util.Date;
import java.util.Map;

@ActComponent
Expand Down
1 change: 0 additions & 1 deletion src/main/java/act/boot/app/RunApp.java
Expand Up @@ -6,7 +6,6 @@
import org.osgl.logging.L;
import org.osgl.logging.Logger;
import org.osgl.util.E;
import org.osgl.util.FastStr;
import org.osgl.util.S;

import java.lang.reflect.InvocationTargetException;
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/act/conf/ConfigKeyHelper.java
Expand Up @@ -7,8 +7,6 @@
import org.osgl.logging.L;
import org.osgl.logging.Logger;
import org.osgl.util.C;
import org.osgl.util.E;
import org.osgl.util.FastStr;
import org.osgl.util.S;

import java.io.File;
Expand Down

0 comments on commit 2a993c7

Please sign in to comment.