Jcoder
Jcoder copied to clipboard
Java Dynamic code or JAR , publish you Api or Schedule in flying
Welcome to the Jcoder
In this project you can fast publish your API and schedule task, dynamic edit you java class and add or remove jar !
-
Getting Started
- first you need jdk8(must) and maven(not must)
- to down last release war https://github.com/NLPchina/Jcoder/releases
- run it
java -jar jcoder-[version].war
and visit http://localhost:8080/ Login by name:admin password:admin
-
about config on startup
you can make a config file named
coder.conf
#only localhost can visit Management background host=localhost # default port is 8080 port=8080 # home path .default is ~/.jcoder #home=~/.jcoder # mvn exepath , it is a full path like /home/maven/bin/mvn maven=mvn # log path log=log/jcoder.log
now you can use it by :
java -jar jcoder-[version].war -f=coder.conf
Of course you can take these by args :
java -jar jcoder-[version].war --home=~/.jcoder --port=9090 --host=localhost
-
Publish a API
Click
Test
->Create-Task
Code :
package org.nlpcn.jcoder.run.java; import org.apache.log4j.Logger; import org.nlpcn.jcoder.run.annotation.DefaultExecute; import org.nutz.ioc.loader.annotation.Inject; public class TestRun { @Inject private Logger log; @DefaultExecute public String defaultTest(String name) throws InterruptedException { return "Hello Jcoder " + name; } }
select TaskType :
Active
and write some word to description now ClickSave
buttonnow you can use you api by : http://localhost:8080/api/TestRun?name=ansj
-
Publish a schedule task
Click
Test
->Create-Task
Code:
package org.nlpcn.jcoder.run.java; import java.util.Date; import org.apache.log4j.Logger; import org.nlpcn.jcoder.run.annotation.DefaultExecute; import org.nlpcn.jcoder.util.DateUtils; import org.nutz.ioc.loader.annotation.Inject; public class CronTest { @Inject private Logger log ; @DefaultExecute public void execute() throws InterruptedException { Thread.sleep(10000L); log.info(DateUtils.formatDate(new Date(), DateUtils.SDF_FORMAT)); } }
select TaskType :
Active
and write some word todescription
Write Corn0/5 * * * * ?
now ClickSave
buttonnow your job every 5`s run once!
-
how to use example by action
ackage org.nlpcn.jcoder.run.java; mport org.nlpcn.jcoder.run.annotation.Cache; ** * this is a api example * * @author ansj * */ Single(false) // default is true ublic class ApiExampleAction { @Inject private Logger log ; @Inject private Dao dao ; @Execute // publish this function to api ! // use url is // http://host:port/[className]/methodName?field=value // http//localhost:8080/ApiExampleAction/method?name=heloo&hello_word=hi public Object function(HttpServletRequest req, HttpServerResponse rep, String name, @Param("hello_word") Integer helloWord) { dosomething.. } @DefaultExecute // publish this function to api ! //http://localhost:8080/ApiExampleAction?user.name=aaa&user.passowrd=bbb //http://localhost:8080/ApiExampleAction/function2?user.name=aaa&user.passowrd=bbb //more about http://www.nutzam.com/core/mvc/http_adaptor.html @Execute(methods={"get","post"},restful=true, rpc=true) //methods default all , restufl,rpc default true @Cache(time=10,size=1000,block=false) // time SECONDS , block if false use asynchronous public Object function2(@Param("..") User user) { dosomething.. }
-
road map
- auto backup database export and import
- system properties view and manager
- publish socket api by netty
- add a util for testing task
- incremental update task from jcoder server
- publish a restful api by db table
- Perfect the documents
- add Dasboard page view task use time ,times ,err or other system info