├── .gitignore ├── jfire-baseutil ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── jfireframework │ │ └── baseutil │ │ ├── LineReader.java │ │ ├── PackageScan.java │ │ ├── StringUtil.java │ │ ├── code │ │ ├── CodeLocation.java │ │ └── RandomString.java │ │ ├── collection │ │ ├── BitMap.java │ │ ├── ByteBufferPool.java │ │ ├── ByteCache.java │ │ ├── ObjectCollect.java │ │ ├── SingleProduceAndConsumerQueue.java │ │ ├── StringCache.java │ │ ├── buffer │ │ │ ├── ByteBuf.java │ │ │ ├── ByteBufPool.java │ │ │ ├── CacheSize.java │ │ │ ├── CompositeByteBuf.java │ │ │ ├── DirectByteBuf.java │ │ │ ├── DirectByteBufPool.java │ │ │ ├── HeapByteBuf.java │ │ │ ├── HeapByteBufPool.java │ │ │ └── QueueFactory.java │ │ └── map │ │ │ ├── Entry.java │ │ │ └── LightMap.java │ │ ├── concurrent │ │ ├── CpuCachePadingInt.java │ │ ├── CpuCachePadingLong.java │ │ ├── CpuCachePadingRefence.java │ │ ├── EnsureMultithreadedVisibility.java │ │ ├── MPMCQueue.java │ │ ├── MPMCQueue2.java │ │ ├── MPSCQueue.java │ │ ├── ParalLock.java │ │ ├── RecycleResource.java │ │ ├── SpscQueue.java │ │ ├── Sync.java │ │ ├── UnsafeIntFieldUpdater.java │ │ ├── UnsafeLongFieldUpdater.java │ │ └── UnsafeReferenceFieldUpdater.java │ │ ├── el │ │ ├── JelException.java │ │ └── JelExplain.java │ │ ├── encrypt │ │ ├── AesUtil.java │ │ ├── DesUtil.java │ │ ├── EnDecrpt.java │ │ ├── Md5Util.java │ │ └── RSAUtil.java │ │ ├── exception │ │ ├── JustThrowException.java │ │ ├── UnSupportException.java │ │ └── VerifyException.java │ │ ├── io │ │ └── StreamTool.java │ │ ├── order │ │ ├── AescComparator.java │ │ ├── DescComparator.java │ │ └── Order.java │ │ ├── reflect │ │ ├── HotswapClassLoader.java │ │ ├── ReflectUtil.java │ │ ├── SimpleHotswapClassLoader.java │ │ ├── TypeUtil.java │ │ ├── VarInfo.java │ │ └── copy │ │ │ ├── Copy.java │ │ │ ├── CopyField.java │ │ │ ├── CopyIgnore.java │ │ │ ├── CopyName.java │ │ │ ├── CopyUtil.java │ │ │ └── CopyUtilImpl.java │ │ ├── resource │ │ ├── ResourceCloseAgent.java │ │ └── ResourceCloseCallback.java │ │ ├── simplelog │ │ ├── ConsoleLogFactory.java │ │ ├── Logger.java │ │ └── LoggerImpl.java │ │ ├── time │ │ ├── NanoTimeWatch.java │ │ └── Timewatch.java │ │ ├── uniqueid │ │ ├── AutumnId.java │ │ ├── ByteTool.java │ │ ├── SummerId.java │ │ ├── Uid.java │ │ └── WinterId.java │ │ └── verify │ │ └── Verify.java │ └── test │ ├── java │ └── com │ │ └── jfireframework │ │ └── baseutil │ │ ├── BitMapTest.java │ │ ├── BufferTest.java │ │ ├── Demo.java │ │ ├── Demo2.java │ │ ├── DsiruptorTest.java │ │ ├── IdTest.java │ │ ├── Logtest.java │ │ ├── MPMCQueueTest.java │ │ ├── MpmcTest.java │ │ ├── Mpmcbugtest.java │ │ ├── SpscTest.java │ │ ├── Timelog.java │ │ ├── data │ │ ├── ChildObject.java │ │ ├── FatherObject.java │ │ ├── Home.java │ │ └── Person.java │ │ └── test │ │ ├── EnDecrptTest.java │ │ ├── IOUtilTest.java │ │ ├── MatchTest.java │ │ ├── PackageScanTest.java │ │ ├── SpeedTest.java │ │ ├── StringTest.java │ │ └── UnsafeTest.java │ └── resources │ └── log4j2-test.xml ├── jfire-boot ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── jfireframework │ │ └── boot │ │ ├── BootConfig.java │ │ └── BootStarter.java │ └── resources │ └── web.xml ├── jfire-codejson ├── ReadMe.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── jfireframework │ │ └── codejson │ │ ├── Json.java │ │ ├── JsonArray.java │ │ ├── JsonObject.java │ │ ├── JsonTool.java │ │ ├── annotation │ │ ├── JsonIgnore.java │ │ └── JsonRename.java │ │ ├── function │ │ ├── JsonReader.java │ │ ├── JsonWriter.java │ │ ├── ReadStrategy.java │ │ ├── ReaderContext.java │ │ ├── Strategy.java │ │ ├── WriteStrategy.java │ │ ├── WriterContext.java │ │ └── impl │ │ │ ├── read │ │ │ ├── DateReader.java │ │ │ ├── ObjectReader.java │ │ │ ├── array │ │ │ │ ├── BooleanArrayReader.java │ │ │ │ ├── ByteArrayReader.java │ │ │ │ ├── CharArrayReader.java │ │ │ │ ├── DoubleArrayReader.java │ │ │ │ ├── FloatArrayReader.java │ │ │ │ ├── IntArrayReader.java │ │ │ │ ├── LongArrayReader.java │ │ │ │ ├── ShortArrayReader.java │ │ │ │ └── StringArrayReader.java │ │ │ └── wrapper │ │ │ │ ├── BooleanReader.java │ │ │ │ ├── ByteReader.java │ │ │ │ ├── CharacterReader.java │ │ │ │ ├── DoubleReader.java │ │ │ │ ├── FloatReader.java │ │ │ │ ├── IntegerReader.java │ │ │ │ ├── LongReader.java │ │ │ │ └── ShortReader.java │ │ │ └── write │ │ │ ├── IteratorWriter.java │ │ │ ├── MapWriter.java │ │ │ ├── StrategyMapWriter.java │ │ │ ├── WriterAdapter.java │ │ │ ├── array │ │ │ ├── BooleanArrayWriter.java │ │ │ ├── ByteArrayWriter.java │ │ │ ├── CharArrayWriter.java │ │ │ ├── DoubleArrayWriter.java │ │ │ ├── FloatArrayWriter.java │ │ │ ├── IntArrayWriter.java │ │ │ ├── LongArrayWriter.java │ │ │ ├── ShortArrayWriter.java │ │ │ └── StringArrayWriter.java │ │ │ ├── extra │ │ │ ├── ArrayListWriter.java │ │ │ └── DateWriter.java │ │ │ └── wrapper │ │ │ ├── BooleanWriter.java │ │ │ ├── ByteWriter.java │ │ │ ├── CharacterWriter.java │ │ │ ├── DoubleWriter.java │ │ │ ├── FloatWriter.java │ │ │ ├── IntegerWriter.java │ │ │ ├── LongWriter.java │ │ │ ├── ShortWriter.java │ │ │ ├── StringWriter.java │ │ │ └── WrapperWriter.java │ │ ├── methodinfo │ │ ├── MethodInfoBuilder.java │ │ ├── ReadMethodInfo.java │ │ ├── WriteMethodInfo.java │ │ └── impl │ │ │ ├── read │ │ │ ├── AbstractReadMethodInfo.java │ │ │ ├── SetBaseMethodInfo.java │ │ │ ├── SetCollectionMethodInfo.java │ │ │ ├── SetCustomObjectMethodInfo.java │ │ │ ├── SetEnumMethodInfo.java │ │ │ ├── SetMapMethodInfo.java │ │ │ ├── SetWrapperMethodInfo.java │ │ │ └── array │ │ │ │ ├── AbstractArrayReadMethodInfo.java │ │ │ │ ├── SetBaseArrayMethodInfo.java │ │ │ │ ├── SetCollectionArrayMethodInfo.java │ │ │ │ ├── SetCustomArrayMethodInfo.java │ │ │ │ ├── SetMapArrayMethodInfo.java │ │ │ │ └── SetWarpperArrayMethodInfo.java │ │ │ └── write │ │ │ ├── AbstractWriteMethodInfo.java │ │ │ ├── ReturnBaseMethodInfo.java │ │ │ ├── ReturnCustomObjectMethodInfo.java │ │ │ ├── ReturnEnumWriteMethodInfo.java │ │ │ ├── ReturnIterableMethodInfo.java │ │ │ ├── ReturnMapMethodInfo.java │ │ │ ├── ReturnWrapperMethodInfo.java │ │ │ ├── array │ │ │ ├── AbstractWriteArrayMethodInfo.java │ │ │ ├── ReturnArrayBaseMethodInfo.java │ │ │ ├── ReturnArrayCustomObjectMethodInfo.java │ │ │ ├── ReturnArrayIterableMethodInfo.java │ │ │ ├── ReturnArrayMapMethodInfo.java │ │ │ └── ReturnArrayWrapperMethodInfo.java │ │ │ └── extra │ │ │ └── ReturnArrayListMethodInfo.java │ │ ├── tracker │ │ └── Tracker.java │ │ └── util │ │ ├── MethodComparator.java │ │ └── NameTool.java │ └── test │ ├── java │ └── com │ │ └── jfireframework │ │ └── codejson │ │ └── test │ │ ├── Data.java │ │ ├── FunctionTest.java │ │ ├── NestData.java │ │ ├── ReadComment.java │ │ ├── SpeedTest.java │ │ ├── Support.java │ │ ├── TestStrategy.java │ │ ├── TrackerTest.java │ │ ├── benchmark │ │ ├── Benchmark.java │ │ ├── BigData.java │ │ └── SmallObject.java │ │ ├── simple │ │ ├── Guy.java │ │ ├── Home.java │ │ ├── Person.java │ │ ├── Person2.java │ │ ├── Room.java │ │ ├── Room2.java │ │ └── TestData.java │ │ └── strategy │ │ ├── BaseData.java │ │ ├── DateInfo.java │ │ ├── FunData16.java │ │ ├── FunctionData.java │ │ ├── FunctionData10.java │ │ ├── FunctionData11.java │ │ ├── FunctionData12.java │ │ ├── FunctionData13.java │ │ ├── FunctionData14.java │ │ ├── FunctionData15.java │ │ ├── FunctionData2.java │ │ ├── FunctionData3.java │ │ ├── FunctionData4.java │ │ ├── FunctionData5.java │ │ ├── FunctionData6.java │ │ ├── FunctionData7.java │ │ ├── FunctionData8.java │ │ ├── FunctionData9.java │ │ ├── NestInfo.java │ │ └── TestEnum.java │ └── resources │ ├── comment.json │ ├── config.json │ ├── config.json1 │ ├── log.properties │ └── log4j2-test.xml ├── jfire-context ├── ReadMe.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── jfireframework │ │ └── context │ │ ├── ContextInitFinish.java │ │ ├── JfireContext.java │ │ ├── JfireContextImpl.java │ │ ├── aliasanno │ │ ├── AliasFor.java │ │ └── AnnotationUtil.java │ │ ├── aop │ │ ├── AopUtil.java │ │ ├── EnhanceAnnoInfo.java │ │ ├── ProceedPoint.java │ │ ├── ProceedPointImpl.java │ │ └── annotation │ │ │ ├── AfterEnhance.java │ │ │ ├── AroundEnhance.java │ │ │ ├── AutoResource.java │ │ │ ├── BeforeEnhance.java │ │ │ ├── EnhanceClass.java │ │ │ ├── ThrowEnhance.java │ │ │ └── Transaction.java │ │ ├── bean │ │ ├── Bean.java │ │ ├── BeanConfig.java │ │ ├── annotation │ │ │ └── field │ │ │ │ ├── CanBeNull.java │ │ │ │ └── MapKey.java │ │ ├── build │ │ │ ├── BeanClassBuilder.java │ │ │ └── BuildBy.java │ │ ├── field │ │ │ ├── FieldFactory.java │ │ │ ├── dependency │ │ │ │ ├── DependencyField.java │ │ │ │ └── impl │ │ │ │ │ ├── AbstractDependencyField.java │ │ │ │ │ ├── BeanNameMapField.java │ │ │ │ │ ├── DefaultBeanField.java │ │ │ │ │ ├── ListField.java │ │ │ │ │ ├── MethodMapField.java │ │ │ │ │ ├── NullInjectField.java │ │ │ │ │ └── ValueMapField.java │ │ │ └── param │ │ │ │ ├── AbstractParamField.java │ │ │ │ └── ParamField.java │ │ └── load │ │ │ ├── BeanLoadFactory.java │ │ │ └── LoadBy.java │ │ ├── cache │ │ ├── Cache.java │ │ ├── CacheManager.java │ │ ├── annotation │ │ │ ├── CacheDelete.java │ │ │ ├── CacheGet.java │ │ │ └── CachePut.java │ │ └── support │ │ │ ├── ConcurrentHashMapCacheManager.java │ │ │ ├── HashMapCache.java │ │ │ ├── RedidCacheManager.java │ │ │ └── RedisCache.java │ │ ├── config │ │ ├── BeanAttribute.java │ │ ├── BeanInfo.java │ │ └── ContextConfig.java │ │ ├── event │ │ ├── EventPoster.java │ │ └── impl │ │ │ ├── AbstractEventPoster.java │ │ │ ├── CalculateEventPost.java │ │ │ └── IoEventPoster.java │ │ └── tx │ │ ├── RessourceManager.java │ │ ├── TransactionIsolate.java │ │ └── TransactionManager.java │ └── test │ ├── java │ └── com │ │ └── jfireframework │ │ └── context │ │ └── test │ │ └── function │ │ ├── aliastest │ │ ├── AliasTest.java │ │ ├── Autowired.java │ │ ├── InitMethod.java │ │ ├── MyMethod.java │ │ ├── SingleDemo.java │ │ ├── SingleTon.java │ │ ├── TestAlias.java │ │ └── Testalis3.java │ │ ├── aop │ │ ├── AcManager.java │ │ ├── AopTest.java │ │ ├── ChildPerson.java │ │ ├── Enhance.java │ │ ├── Person.java │ │ └── TxManager.java │ │ ├── base │ │ ├── ContextTest.java │ │ ├── Properties.java │ │ ├── data │ │ │ ├── House.java │ │ │ ├── ImmutablePerson.java │ │ │ └── MutablePerson.java │ │ └── maptest │ │ │ ├── House.java │ │ │ ├── MapTest.java │ │ │ └── Person.java │ │ ├── cachetest │ │ ├── CacheManagerTest.java │ │ ├── CacheTarget.java │ │ ├── CacheTest.java │ │ ├── DemoCache.java │ │ └── NewCacheTest.java │ │ ├── event │ │ ├── EventTest.java │ │ ├── HaftHandler.java │ │ ├── SmsEvent.java │ │ └── UserPhone.java │ │ ├── initmethod │ │ ├── Enhance.java │ │ ├── InitMethodTest.java │ │ ├── Person.java │ │ └── Person2.java │ │ ├── loader │ │ ├── AllLoader.java │ │ ├── HolderTest.java │ │ ├── Home.java │ │ └── Person.java │ │ └── map │ │ ├── Host.java │ │ ├── MapTest.java │ │ ├── Order1.java │ │ └── Order2.java │ └── resources │ ├── config.json │ ├── config2.json │ ├── init.json │ ├── log.properties │ ├── log4j2-test.xml │ ├── mapconfig.json │ ├── propertiestest.json │ └── propertiestest.properties ├── jfire-data-mongodb ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── jfireframework │ └── data │ └── mongodb │ ├── MongoId.java │ ├── MongoIgnore.java │ ├── MongoRename.java │ └── MongoTransferUtil.java ├── jfire-dbunit ├── pom.xml ├── src │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── jfireframework │ │ │ └── dbunit │ │ │ ├── schema │ │ │ ├── DbUnit.java │ │ │ └── work │ │ │ │ ├── AnalyseWork.java │ │ │ │ ├── BuckupWork.java │ │ │ │ ├── BuildSchemaStructureWork.java │ │ │ │ ├── CleanWork.java │ │ │ │ ├── ExportWork.java │ │ │ │ ├── ImportWork.java │ │ │ │ └── RestoreWork.java │ │ │ ├── table │ │ │ ├── Row.java │ │ │ └── Table.java │ │ │ └── util │ │ │ ├── SqlUtil.java │ │ │ └── Util.java │ └── test │ │ ├── java │ │ └── com │ │ │ └── jfireframework │ │ │ └── dbunit │ │ │ ├── define │ │ │ └── BuildSql.java │ │ │ └── schemawork │ │ │ └── SchemaContextTest.java │ │ └── resources │ │ └── log4j2.xml └── test.xlsx ├── jfire-eventbus ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── jfireframework │ │ └── eventbus │ │ ├── bus │ │ ├── EventBus.java │ │ ├── ManualEventBus.java │ │ └── impl │ │ │ ├── AbstractEventBus.java │ │ │ ├── CalculateEventBus.java │ │ │ └── IoEventBus.java │ │ ├── event │ │ ├── EventConfig.java │ │ └── ParallelLevel.java │ │ ├── eventcontext │ │ ├── EventContext.java │ │ ├── ReadWriteEventContext.java │ │ ├── RowEventContext.java │ │ └── impl │ │ │ ├── NormalEventContext.java │ │ │ ├── ReadWriteEventContextImpl.java │ │ │ └── RowEventContextImpl.java │ │ ├── eventworker │ │ ├── EventWorker.java │ │ └── impl │ │ │ ├── CalculateWorker.java │ │ │ ├── IoCoreWorker.java │ │ │ ├── IoDynamicWorker.java │ │ │ └── IoWorker.java │ │ ├── executor │ │ ├── EventHandlerExecutor.java │ │ ├── EventSerialHandlerExecutor.java │ │ ├── ParallelHandlerExecutor.java │ │ ├── ReadWriteExecutor.java │ │ ├── RowKeyHandlerExecutor.java │ │ ├── TypeRowKeySerialHandlerExecutor.java │ │ └── TypeSerialHandlerExecutor.java │ │ ├── handler │ │ ├── EventHandler.java │ │ └── HandlerCombination.java │ │ └── util │ │ ├── DefaultWorkerCount.java │ │ └── WorkerCount.java │ └── test │ ├── java │ └── com │ │ └── jfireframework │ │ └── eventbus │ │ ├── PoolContext.java │ │ ├── Print.java │ │ ├── PrintHandler.java │ │ ├── PrintTest.java │ │ ├── RowPrint.java │ │ ├── SerialPrint2.java │ │ ├── Speed.java │ │ ├── SpeedHandler.java │ │ ├── SpeedTest.java │ │ ├── TypeRowPrint.java │ │ ├── TypeRowPrint2.java │ │ ├── TypeSerialPrint.java │ │ └── readwrite │ │ ├── ReadHandler.java │ │ ├── ReadWriteEvent.java │ │ ├── ReadWriteTest.java │ │ └── WriteHandler.java │ └── resources │ └── log.properties ├── jfire-jnet2 ├── pom.xml ├── readme.md └── src │ ├── main │ └── java │ │ └── com │ │ └── jfireframework │ │ └── jnet2 │ │ ├── client │ │ ├── AioClient.java │ │ ├── ClientReadCompleter.java │ │ └── ResponseFuture.java │ │ ├── common │ │ ├── channel │ │ │ ├── ChannelInitListener.java │ │ │ ├── ClientChannel.java │ │ │ ├── JnetChannel.java │ │ │ └── impl │ │ │ │ ├── AbstractChannel.java │ │ │ │ ├── AsyncClientChannelInfo.java │ │ │ │ ├── FutureClientChannelInfo.java │ │ │ │ └── ServerChannel.java │ │ ├── decodec │ │ │ ├── DecodeResult.java │ │ │ ├── DecodeResultType.java │ │ │ ├── DelimiterBasedFrameDecodec.java │ │ │ ├── FixLengthDecodec.java │ │ │ ├── FrameDecodec.java │ │ │ ├── LineBasedFrameDecodec.java │ │ │ ├── TotalLengthFieldBasedFrameDecoder.java │ │ │ └── TotalLengthFieldBasedFrameDecoderByHeap.java │ │ ├── exception │ │ │ ├── BufNotEnoughException.java │ │ │ ├── EndOfStreamException.java │ │ │ ├── JnetException.java │ │ │ ├── LessThanProtocolException.java │ │ │ ├── NotFitProtocolException.java │ │ │ ├── SelfCloseException.java │ │ │ └── TimeoutException.java │ │ ├── handler │ │ │ ├── DataHandler.java │ │ │ └── LengthPreHandler.java │ │ ├── result │ │ │ ├── InternalResult.java │ │ │ └── InternalResultImpl.java │ │ └── util │ │ │ ├── BytebufReleaseCallback.java │ │ │ └── ChannelCloseCallback.java │ │ └── server │ │ ├── AioServer.java │ │ ├── CompletionHandler │ │ ├── AcceptHandler.java │ │ ├── WeaponReadHandler.java │ │ ├── WeaponWriteHandler.java │ │ └── weapon │ │ │ ├── capacity │ │ │ ├── common │ │ │ │ └── BufHolder.java │ │ │ └── sync │ │ │ │ ├── CapacityAcceptHandler.java │ │ │ │ ├── CapacityReadHandler.java │ │ │ │ ├── WeaponCapacityWriteHandler.java │ │ │ │ ├── read │ │ │ │ ├── push │ │ │ │ │ ├── ReadAndPushHandlerImpl.java │ │ │ │ │ └── WeaponSyncWriteHandlerImpl.java │ │ │ │ └── withoutpush │ │ │ │ │ └── CapacityReadHandlerImpl.java │ │ │ │ └── write │ │ │ │ ├── push │ │ │ │ └── WeaponCapacityWriteWithPushHandlerImpl.java │ │ │ │ └── withoutpush │ │ │ │ └── WeaponCapacityWriteHandlerImpl.java │ │ │ └── single │ │ │ ├── AbstractSingleReadHandler.java │ │ │ ├── SingleAcceptHandler.java │ │ │ ├── SingleReadHandler.java │ │ │ ├── read │ │ │ ├── async │ │ │ │ ├── AbstractAsyncSingleReadHandler.java │ │ │ │ ├── AsyncReadHandler.java │ │ │ │ ├── event │ │ │ │ │ ├── Message.java │ │ │ │ │ └── ReciveHandler.java │ │ │ │ ├── push │ │ │ │ │ └── AsyncSingleReadWithPushHandlerImpl.java │ │ │ │ └── withoutpush │ │ │ │ │ └── AsyncSingleReadHandlerImpl.java │ │ │ └── sync │ │ │ │ ├── AbstractSyncSingleReadHandler.java │ │ │ │ ├── push │ │ │ │ └── SyncSingleReadAndPushHandlerImpl.java │ │ │ │ └── withoutpush │ │ │ │ └── SyncSingleReadHandlerImpl.java │ │ │ └── write │ │ │ ├── push │ │ │ └── SyncSingleWriteAndPushHandlerImpl.java │ │ │ └── withoutpush │ │ │ └── SyncSingleWriteHandlerImpl.java │ │ └── util │ │ ├── AcceptMode.java │ │ ├── DisruptorWaitMode.java │ │ ├── ExecutorMode.java │ │ ├── PushMode.java │ │ ├── ServerConfig.java │ │ ├── WorkMode.java │ │ └── WriteMode.java │ └── test │ ├── java │ └── com │ │ └── jfireframework │ │ └── socket │ │ └── test │ │ ├── BaseServerTest.java │ │ ├── Demo.java │ │ ├── EchoHandler.java │ │ ├── EchoHandler2.java │ │ ├── EchoTest.java │ │ ├── Loghandler.java │ │ ├── MainServer.java │ │ ├── NewServerTest.java │ │ ├── ObjectServerTest.java │ │ ├── Person.java │ │ ├── SingleSpeedTest.java │ │ └── SpeedTest.java │ └── resources │ ├── log.properties │ └── log4j2.xml ├── jfire-licp ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── jfireframework │ │ └── licp │ │ ├── ClassNoRegister.java │ │ ├── Licp.java │ │ ├── LicpIgnore.java │ │ ├── ObjectCollect.java │ │ ├── field │ │ ├── CacheField.java │ │ ├── FieldFactory.java │ │ └── impl │ │ │ ├── AbstractCacheField.java │ │ │ ├── BooleanField.java │ │ │ ├── ByteField.java │ │ │ ├── CharField.java │ │ │ ├── DoubleField.java │ │ │ ├── FloatField.java │ │ │ ├── IntField.java │ │ │ ├── IntegerField.java │ │ │ ├── LongField.java │ │ │ ├── ObjectField.java │ │ │ ├── ShortField.java │ │ │ ├── StringField.java │ │ │ ├── WBooleanField.java │ │ │ ├── WByteField.java │ │ │ ├── WCharField.java │ │ │ ├── WDoubleField.java │ │ │ ├── WFloatField.java │ │ │ ├── WShortField.java │ │ │ └── WlongField.java │ │ ├── serializer │ │ ├── LicpSerializer.java │ │ ├── ObjectSerializer.java │ │ ├── SerializerFactory.java │ │ ├── array │ │ │ ├── AbstractArraySerializer.java │ │ │ ├── BooleanArraySerializer.java │ │ │ ├── ByteArraySerializer.java │ │ │ ├── CharArraySerializer.java │ │ │ ├── DoubleArraySerializer.java │ │ │ ├── FloatArraySerializer.java │ │ │ ├── IntArraySerializer.java │ │ │ ├── IntegerArraySerializer.java │ │ │ ├── LongArraySerializer.java │ │ │ ├── ObjectArraySerializer.java │ │ │ ├── ShortArraySerializer.java │ │ │ ├── StringArraySerializer.java │ │ │ ├── WBooleanArraySerializer.java │ │ │ ├── WByteArraySerializer.java │ │ │ ├── WCharArraySerializer.java │ │ │ ├── WDoubleArraySerializer.java │ │ │ ├── WFloatArraySerializer.java │ │ │ ├── WLongArraySerializer.java │ │ │ └── WShortArraySerializer.java │ │ ├── base │ │ │ ├── BooleanSerializer.java │ │ │ ├── ByteSerializer.java │ │ │ ├── CharSerializer.java │ │ │ ├── DoubleSerializer.java │ │ │ ├── FloatSerializer.java │ │ │ ├── IntegerSerializer.java │ │ │ ├── LongSerializer.java │ │ │ ├── ShortSerializer.java │ │ │ └── StringSerializer.java │ │ └── extra │ │ │ ├── ArraylistSerializer.java │ │ │ ├── CalendarSerializer.java │ │ │ ├── DateSerializer.java │ │ │ ├── HashMapSerializer.java │ │ │ ├── HashSetSerializer.java │ │ │ └── LinkedListSerializer.java │ │ └── util │ │ ├── BufferUtil.java │ │ └── IntUtil.java │ └── test │ └── java │ └── com │ └── jframework │ └── licp │ └── test │ └── basetest │ ├── IntUtilTest.java │ ├── LongData2.java │ ├── LongTest.java │ ├── MutiTest.java │ ├── PerTest.java │ ├── Person.java │ ├── RightTest.java │ ├── RightTest2.java │ ├── SimpleTest.java │ ├── SpeedTest.java │ ├── TestData.java │ └── data │ ├── ArrayData.java │ ├── BaseData.java │ ├── Device.java │ ├── LongData.java │ ├── NewBaseData.java │ ├── Person.java │ ├── SpeedData.java │ ├── SpeedData2.java │ └── WrapData.java ├── jfire-mvc ├── ReadMe.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── jfireframework │ │ └── mvc │ │ ├── annotation │ │ ├── Controller.java │ │ ├── CookieValue.java │ │ ├── Document.java │ │ ├── HeaderValue.java │ │ ├── MvcDateParse.java │ │ ├── MvcIgnore.java │ │ ├── MvcRename.java │ │ ├── RequestMapping.java │ │ └── RequestParam.java │ │ ├── binder │ │ ├── BinderFactory.java │ │ ├── DataBinder.java │ │ ├── UploadItem.java │ │ ├── field │ │ │ ├── AbstractBinderField.java │ │ │ ├── BinderField.java │ │ │ ├── NopField.java │ │ │ ├── array │ │ │ │ ├── AbstractArrayField.java │ │ │ │ ├── base │ │ │ │ │ ├── ArrayWBooleanField.java │ │ │ │ │ ├── ArrayWByteField.java │ │ │ │ │ ├── ArrayWCharacterField.java │ │ │ │ │ ├── ArrayWDoubleField.java │ │ │ │ │ ├── ArrayWFloatField.java │ │ │ │ │ ├── ArrayWIntegerField.java │ │ │ │ │ ├── ArrayWLongField.java │ │ │ │ │ └── ArrayWShortField.java │ │ │ │ └── extra │ │ │ │ │ ├── ArrayEnumField.java │ │ │ │ │ ├── ArrayObjectField.java │ │ │ │ │ └── ArrayStringField.java │ │ │ ├── base │ │ │ │ ├── BooleanField.java │ │ │ │ ├── ByteField.java │ │ │ │ ├── CharField.java │ │ │ │ ├── DoubleField.java │ │ │ │ ├── FloatFiled.java │ │ │ │ ├── IntField.java │ │ │ │ ├── LongField.java │ │ │ │ └── ShortField.java │ │ │ ├── extra │ │ │ │ ├── DateField.java │ │ │ │ ├── EnumField.java │ │ │ │ ├── ListField.java │ │ │ │ ├── ObjectField.java │ │ │ │ ├── SqlDateField.java │ │ │ │ └── StringField.java │ │ │ └── wrapper │ │ │ │ ├── WBooleanField.java │ │ │ │ ├── WByteField.java │ │ │ │ ├── WCharacterField.java │ │ │ │ ├── WDoubleField.java │ │ │ │ ├── WFloatField.java │ │ │ │ ├── WIntegerField.java │ │ │ │ ├── WLongField.java │ │ │ │ └── WShortField.java │ │ ├── impl │ │ │ ├── ArrayBinder.java │ │ │ ├── BaseBinder.java │ │ │ ├── CookieBinder.java │ │ │ ├── DateBinder.java │ │ │ ├── EnumBinder.java │ │ │ ├── HeaderBinder.java │ │ │ ├── HttpServletRequestBinder.java │ │ │ ├── HttpServletResponseBinder.java │ │ │ ├── HttpSessionBinder.java │ │ │ ├── ListBinder.java │ │ │ ├── ListUploadBinder.java │ │ │ ├── ObjectDataBinder.java │ │ │ ├── SqlDateBinder.java │ │ │ ├── StringBinder.java │ │ │ ├── UploadBinder.java │ │ │ └── WrapperBinder.java │ │ ├── node │ │ │ ├── ArrayNode.java │ │ │ ├── ParamNode.java │ │ │ ├── StringValueNode.java │ │ │ └── TreeValueNode.java │ │ └── transfer │ │ │ ├── Transfer.java │ │ │ └── TransferFactory.java │ │ ├── config │ │ ├── ContentType.java │ │ ├── MvcStaticConfig.java │ │ ├── RequestMethod.java │ │ └── ResultType.java │ │ ├── core │ │ ├── DispathServletHelper.java │ │ ├── EasyMvcDispathServlet.java │ │ ├── ModelAndView.java │ │ ├── action │ │ │ ├── AbstractReportMdActionListener.java │ │ │ ├── Action.java │ │ │ ├── ActionCenter.java │ │ │ ├── ActionCenterBulder.java │ │ │ ├── ActionFactory.java │ │ │ ├── ActionInfo.java │ │ │ └── ActionInitListener.java │ │ └── resource │ │ │ ├── NoneResourcesHandler.java │ │ │ ├── ResourcesHandler.java │ │ │ └── StaticResourcesHandler.java │ │ ├── interceptor │ │ ├── ActionInterceptor.java │ │ └── impl │ │ │ ├── DataBinderInterceptor.java │ │ │ └── UploadInterceptor.java │ │ ├── rule │ │ ├── HeaderRule.java │ │ └── RestfulRule.java │ │ ├── util │ │ ├── ChangeMethodRequest.java │ │ ├── ClasspathBeetlKit.java │ │ ├── FileChangeDetect.java │ │ ├── JfireMvcResponseWrapper.java │ │ └── WebAppBeetlKit.java │ │ └── viewrender │ │ ├── ViewRender.java │ │ └── impl │ │ ├── BeetlRender.java │ │ ├── BytesRender.java │ │ ├── HtmlRender.java │ │ ├── JsonRender.java │ │ ├── JspRender.java │ │ ├── NoneRender.java │ │ ├── RedirectRender.java │ │ └── StringRender.java │ └── test │ ├── java │ └── com │ │ └── jfireframework │ │ └── mvc │ │ ├── NewBinderTest.java │ │ ├── RestTest.java │ │ ├── data │ │ └── MockRequest.java │ │ └── vo │ │ ├── Desk.java │ │ ├── Home.java │ │ └── Person.java │ └── resources │ └── web.xml ├── jfire-rpc ├── ReadMe.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── jfireframework │ │ └── rpc │ │ ├── annotation │ │ ├── MethodName.java │ │ └── ProxyName.java │ │ ├── client │ │ ├── BytecodeInvoker.java │ │ ├── CloseConnect.java │ │ ├── RpcFactory.java │ │ └── RpcProxyConfig.java │ │ ├── exception │ │ ├── InvokeException.java │ │ ├── LbrcException.java │ │ ├── NoSuchMethodException.java │ │ ├── NoSuchProxyException.java │ │ └── PortOutOfRangeException.java │ │ └── server │ │ ├── RcConfig.java │ │ ├── RcServer.java │ │ └── messagehandler │ │ └── InvokeEntryHandler.java │ └── test │ ├── java │ └── link │ │ └── jfire │ │ └── simplerpc │ │ ├── FunctionTest.java │ │ ├── Print.java │ │ ├── Print2.java │ │ ├── PrintImpl.java │ │ └── data │ │ └── ComplexOPbject.java │ └── resources │ ├── log.properties │ └── log4j2.xml ├── jfire-schedule ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── jfireframework │ │ └── schedule │ │ ├── handler │ │ ├── ExpireHandler.java │ │ └── impl │ │ │ └── SimpleExpireHandler.java │ │ ├── task │ │ └── Timetask.java │ │ ├── timer │ │ ├── Timer.java │ │ ├── bucket │ │ │ ├── Bucket.java │ │ │ └── impl │ │ │ │ ├── AbstractBucket.java │ │ │ │ ├── FixCapacityBucket.java │ │ │ │ └── HierarchyBucket.java │ │ └── impl │ │ │ ├── BaseTimer.java │ │ │ ├── FixedCapacityWheelTimer.java │ │ │ └── HierarchyWheelTimer.java │ │ └── trigger │ │ ├── Trigger.java │ │ └── impl │ │ ├── BaseTrigger.java │ │ ├── FixDayTimeTrigger.java │ │ ├── RepeatDelayTrigger.java │ │ └── SimpleDelayTrigger.java │ └── test │ └── java │ └── com │ └── jfireframework │ └── schedule │ └── FixTest.java ├── jfire-sql ├── ReadMe.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── jfireframework │ │ └── sql │ │ ├── annotation │ │ ├── Column.java │ │ ├── EnumBoundHandler.java │ │ ├── FindBy.java │ │ ├── Id.java │ │ ├── IdStrategy.java │ │ ├── OneToMany.java │ │ ├── Query.java │ │ ├── SqlIgnore.java │ │ ├── TableEntity.java │ │ └── Update.java │ │ ├── dbstructure │ │ ├── DefaultNameStrategy.java │ │ ├── MariaDBStructure.java │ │ ├── NameStrategy.java │ │ ├── Structure.java │ │ └── TypeAndLength.java │ │ ├── field │ │ ├── MapField.java │ │ ├── MapFieldBuilder.java │ │ └── impl │ │ │ ├── AbstractMapField.java │ │ │ ├── BooleanField.java │ │ │ ├── ByteArrayField.java │ │ │ ├── CalendarField.java │ │ │ ├── DateField.java │ │ │ ├── DoubleField.java │ │ │ ├── EnumField.java │ │ │ ├── FloatField.java │ │ │ ├── IntField.java │ │ │ ├── IntegerField.java │ │ │ ├── LongField.java │ │ │ ├── SqlDateField.java │ │ │ ├── StringField.java │ │ │ ├── TimeField.java │ │ │ ├── TimestampField.java │ │ │ ├── WBooleanField.java │ │ │ ├── WDoubleField.java │ │ │ ├── WFloatField.java │ │ │ └── WLongField.java │ │ ├── function │ │ ├── Dao.java │ │ ├── LockMode.java │ │ ├── ResultMap.java │ │ ├── SessionFactory.java │ │ ├── SqlSession.java │ │ ├── impl │ │ │ ├── DAOBeanImpl.java │ │ │ ├── Demo.java │ │ │ ├── SessionFactoryImpl.java │ │ │ └── SqlSessionImpl.java │ │ ├── mapper │ │ │ └── Mapper.java │ │ └── sqloperation │ │ │ ├── GetOperator.java │ │ │ ├── SaveOperator.java │ │ │ ├── SqlOperator.java │ │ │ └── UpdateOperator.java │ │ ├── jfirecontext │ │ ├── MapperLoadFactory.java │ │ └── MapperOp.java │ │ ├── log │ │ ├── LogInterceptor.java │ │ └── NopLogInterceptor.java │ │ ├── metadata │ │ ├── MetaContext.java │ │ ├── MetaData.java │ │ └── TableMetaData.java │ │ ├── page │ │ ├── AbstracePage.java │ │ ├── MysqlPage.java │ │ └── Page.java │ │ ├── resultsettransfer │ │ ├── AbstractResultsetTransfer.java │ │ ├── BooleanTransfer.java │ │ ├── DoubleTransfer.java │ │ ├── EnumTransfer.java │ │ ├── FixationBeanTransfer.java │ │ ├── FloatTransfer.java │ │ ├── IntegerTransfer.java │ │ ├── LongTransfer.java │ │ ├── ResultSetTransfer.java │ │ ├── ShortTransfer.java │ │ ├── SqlDateTransfer.java │ │ ├── StringTransfer.java │ │ ├── TimeStampTransfer.java │ │ ├── TimeTransfer.java │ │ ├── UtilDateTransfer.java │ │ └── VariableBeanTransfer.java │ │ └── util │ │ ├── AutoSession.java │ │ ├── DynamicSqlTool.java │ │ ├── MapperBuilder.java │ │ ├── SqlTool.java │ │ ├── TxManager.java │ │ └── enumhandler │ │ ├── AbstractEnumHandler.java │ │ ├── EnumCustomIntHandler.java │ │ ├── EnumHandler.java │ │ ├── EnumIntValue.java │ │ ├── EnumOrdinalHandler.java │ │ └── EnumStringHandler.java │ └── test │ ├── java │ └── com │ │ └── jfireframework │ │ └── sql │ │ └── test │ │ ├── BaseTestSupport.java │ │ ├── ConcurrentTest.java │ │ ├── CreateTableTest.java │ │ ├── DaoTest.java │ │ ├── FieldTest.java │ │ ├── InterfaceTest.java │ │ ├── LogSql.java │ │ ├── MapperJfirecontextTest.java │ │ ├── SessionTest.java │ │ ├── StringIdTest.java │ │ ├── SuitTestSupprt.java │ │ ├── TimeTest.java │ │ ├── TxManagerTest.java │ │ ├── TxTest.java │ │ ├── UserDAO.java │ │ ├── entity │ │ ├── Home.java │ │ ├── LisUser.java │ │ ├── LongUser.java │ │ ├── StringIdUser.java │ │ ├── User.java │ │ ├── User2.java │ │ ├── User4.java │ │ ├── User5.java │ │ ├── User6.java │ │ ├── User7.java │ │ └── User8.java │ │ ├── mappertest │ │ ├── HolderTest.java │ │ ├── MapperHolder.java │ │ └── SingletonMapper.java │ │ └── table │ │ ├── Home.java │ │ ├── User3.java │ │ └── UserTable.java │ └── resources │ ├── log.properties │ ├── log4j2-test.xml │ ├── test.sql │ ├── test.xlsx │ └── test1.xlsx ├── jfire-test ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── jfire │ └── test │ ├── Demo.java │ ├── rule │ ├── CustomRule.java │ ├── MutiThreadStatement.java │ ├── MutiThreadTest.java │ ├── RepeatStatement.java │ └── RepeatTest.java │ └── runner │ ├── BeanContextRunner.java │ └── ConfigPath.java ├── pom.xml ├── readme.md └── wx ├── README.md ├── pom.xml └── src └── main └── java └── com └── jfireframework └── extra └── wx ├── util ├── HttpsTool.java ├── MediaManager.java ├── MenuManager.java ├── MyX509TrustManager.java ├── TemplateMsgTool.java ├── TokenTool.java └── WebOauthTool.java └── vo ├── AccessToken.java ├── MediaQuery.java ├── MenuButton.java ├── TemplateInfo.java ├── WxCfg.java ├── WxJsSign.java ├── WxMsg.java └── WxPaySignMap.java /.gitignore: -------------------------------------------------------------------------------- 1 | #过滤target文件下生成的编译文件 2 | target/ 3 | .project 4 | .settings/ 5 | .classpath 6 | *.MF 7 | 8 | .idea 9 | *.iml -------------------------------------------------------------------------------- /jfire-baseutil/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | com.jfireframework 8 | framework-parent 9 | 1.0-SNAPSHOT 10 | 11 | jfire-baseutil 12 | baseutil 13 | www.jfireframewrok.com 14 | jfire-baseutil is common jar dependency of jfire J2EE package 15 | 16 | UTF-8 17 | 18 | 19 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/collection/buffer/CacheSize.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.collection.buffer; 2 | 3 | public class CacheSize 4 | { 5 | private int size; 6 | private int index; 7 | 8 | public CacheSize(int size, int index) 9 | { 10 | this.index = index; 11 | this.size = size; 12 | } 13 | 14 | public int index() 15 | { 16 | return index; 17 | } 18 | 19 | public boolean biggerThan(int size) 20 | { 21 | return this.size > size; 22 | } 23 | 24 | public int size() 25 | { 26 | return size; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/collection/buffer/QueueFactory.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.collection.buffer; 2 | 3 | import java.util.Queue; 4 | import java.util.concurrent.ConcurrentLinkedQueue; 5 | 6 | public interface QueueFactory 7 | { 8 | public Queue newInstance(); 9 | } 10 | 11 | class ConcurrentQueueFactory implements QueueFactory 12 | { 13 | 14 | @Override 15 | public Queue newInstance() 16 | { 17 | return new ConcurrentLinkedQueue(); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/collection/map/Entry.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.collection.map; 2 | 3 | public class Entry 4 | { 5 | private K key; 6 | private V value; 7 | 8 | public Entry(K key, V value) 9 | { 10 | this.key = key; 11 | this.value = value; 12 | } 13 | 14 | public K getKey() 15 | { 16 | return key; 17 | } 18 | 19 | public void setKey(K key) 20 | { 21 | this.key = key; 22 | } 23 | 24 | public V getValue() 25 | { 26 | return value; 27 | } 28 | 29 | public void setValue(V value) 30 | { 31 | this.value = value; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/concurrent/EnsureMultithreadedVisibility.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.concurrent; 2 | 3 | public interface EnsureMultithreadedVisibility 4 | { 5 | /** 6 | * 保证这个对象的属性数据在多线程中的可见性,借由Hb关系来保证。 7 | * 实现思路: 8 | * 使用一个无关的volatile 变量。在多线程环境中,第一个要读取数据之前,先读取这个volatile无关变量. 9 | * 这样,后续的数据读取就保证可以读取到最新的数据。 10 | * 也就是其他的属性无需用volatile修饰 11 | * 这里需要两个方法配合。 12 | * 一个写,一个读。写方法在所有普通属性被设置后调用,对volatile修饰的无关属性写入一个值。 13 | * 读方法在读取所有属性前调用,读取volatile修饰的属性。 14 | */ 15 | public void ensureMultithreadedVisibilityForRead(); 16 | 17 | public void ensureMultithreadedVisibilityForWrite(); 18 | } 19 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/concurrent/ParalLock.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.concurrent; 2 | 3 | import java.util.concurrent.ConcurrentHashMap; 4 | 5 | public class ParalLock 6 | { 7 | private ConcurrentHashMap lockMap = new ConcurrentHashMap(); 8 | 9 | public Object getLock(String key) 10 | { 11 | Object lock = lockMap.get(key); 12 | if (lock != null) 13 | { 14 | return lock; 15 | } 16 | lock = new Object(); 17 | if (lockMap.putIfAbsent(key, lock) == null) 18 | { 19 | return lock; 20 | } 21 | else 22 | { 23 | return lockMap.get(key); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/concurrent/RecycleResource.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.concurrent; 2 | 3 | public interface RecycleResource 4 | { 5 | 6 | /** 7 | * 增加一个资源的持有数量,返回false表示当前资源处于不可以增加持有的状态 8 | * 9 | * @return 10 | */ 11 | public void acquire(); 12 | 13 | public void release(); 14 | } 15 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/el/JelException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.el; 2 | 3 | public class JelException extends Exception 4 | { 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = 1L; 9 | 10 | public JelException(Throwable e) 11 | { 12 | super(e); 13 | } 14 | 15 | public JelException(String msg) 16 | { 17 | super(msg); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/exception/JustThrowException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.exception; 2 | 3 | public class JustThrowException extends RuntimeException 4 | { 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = 1L; 9 | 10 | public JustThrowException(Throwable e) 11 | { 12 | super(e); 13 | } 14 | 15 | public JustThrowException(String msg, Throwable e) 16 | { 17 | super(msg, e); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/exception/UnSupportException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.exception; 2 | 3 | public class UnSupportException extends RuntimeException 4 | { 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = 1L; 9 | 10 | public UnSupportException(String msg) 11 | { 12 | super(msg); 13 | } 14 | 15 | public UnSupportException(String msg, Throwable e) 16 | { 17 | super(msg, e); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/exception/VerifyException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.exception; 2 | 3 | public class VerifyException extends RuntimeException 4 | { 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = 673213394517431940L; 9 | 10 | public VerifyException(String msg) 11 | { 12 | super(msg); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/order/AescComparator.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.order; 2 | 3 | import java.util.Comparator; 4 | 5 | public class AescComparator implements Comparator 6 | { 7 | 8 | @Override 9 | public int compare(Order o1, Order o2) 10 | { 11 | if (o1.getOrder() > o2.getOrder()) 12 | { 13 | return 1; 14 | } 15 | else if (o1.getOrder() == o2.getOrder()) 16 | { 17 | return 0; 18 | } 19 | else 20 | { 21 | return -1; 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/order/DescComparator.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.order; 2 | 3 | import java.util.Comparator; 4 | 5 | public class DescComparator implements Comparator 6 | { 7 | @Override 8 | public int compare(Order o1, Order o2) 9 | { 10 | if (o1.getOrder() > o2.getOrder()) 11 | { 12 | return -1; 13 | } 14 | else if (o1.getOrder() == o2.getOrder()) 15 | { 16 | return 0; 17 | } 18 | else 19 | { 20 | return 1; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/order/Order.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.order; 2 | 3 | public interface Order 4 | { 5 | /** 6 | * 返回顺序 7 | * 8 | * @return 9 | */ 10 | public int getOrder(); 11 | } 12 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/reflect/TypeUtil.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.reflect; 2 | 3 | import java.lang.reflect.ParameterizedType; 4 | import java.lang.reflect.Type; 5 | 6 | public abstract class TypeUtil 7 | { 8 | private Type type; 9 | 10 | public TypeUtil() 11 | { 12 | ParameterizedType tmp = (ParameterizedType) (this.getClass().getGenericSuperclass()); 13 | type = tmp.getActualTypeArguments()[0]; 14 | } 15 | 16 | public Type getType() 17 | { 18 | return type; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/reflect/copy/CopyIgnore.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.reflect.copy; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.FIELD) 10 | public @interface CopyIgnore 11 | { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/reflect/copy/CopyName.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.reflect.copy; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.FIELD) 10 | public @interface CopyName 11 | { 12 | public String value() default ""; 13 | } 14 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/reflect/copy/CopyUtil.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.reflect.copy; 2 | 3 | public interface CopyUtil 4 | { 5 | public D copy(S src, D desc); 6 | } 7 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/resource/ResourceCloseCallback.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.resource; 2 | 3 | public interface ResourceCloseCallback 4 | { 5 | /** 6 | * 资源关闭的时候执行的回调动作 7 | * 8 | * @param resource 9 | */ 10 | public void onClose(T resource); 11 | } 12 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/simplelog/Logger.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.simplelog; 2 | 3 | public interface Logger 4 | { 5 | public void info(String msg, Object... params); 6 | 7 | public void warn(String msg, Object... params); 8 | 9 | public void debug(String msg, Object... params); 10 | 11 | public void trace(String msg, Object... params); 12 | 13 | public void error(String msg, Object... params); 14 | 15 | public boolean isTraceEnabled(); 16 | 17 | public boolean isDebugEnabled(); 18 | } 19 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/time/NanoTimeWatch.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.time; 2 | 3 | public class NanoTimeWatch 4 | { 5 | private long t0; 6 | private long t1; 7 | 8 | public void start() 9 | { 10 | t0 = System.nanoTime(); 11 | } 12 | 13 | public void end() 14 | { 15 | t1 = System.nanoTime(); 16 | } 17 | 18 | public long getTatol() 19 | { 20 | return t1 - t0; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/time/Timewatch.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.time; 2 | 3 | /** 4 | * 时间观察类 5 | * 6 | * @author 林斌(windfire@zailanghua.com) 7 | * 8 | */ 9 | public class Timewatch 10 | { 11 | private long t0 = System.currentTimeMillis(); 12 | private long t1 = System.currentTimeMillis(); 13 | 14 | /** 15 | * 开始计时 16 | */ 17 | public void start() 18 | { 19 | t0 = System.currentTimeMillis(); 20 | } 21 | 22 | /** 23 | * 结束计时 24 | */ 25 | public void end() 26 | { 27 | t1 = System.currentTimeMillis(); 28 | } 29 | 30 | /** 31 | * 返回统计时间 32 | * 33 | * @return 34 | */ 35 | public long getTotal() 36 | { 37 | return t1 - t0; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/uniqueid/ByteTool.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.uniqueid; 2 | 3 | public class ByteTool 4 | { 5 | private static final char[] digits = new char[] { 'a', 'b', 'c', '0', '1', 'C', 'D', '2', '3', '4', 'N', 'O', 'P', 'Q', '5', 'G', 'H', '6', 'U', 'V', '7', 'o', 'p', 'q', '8', 'W', 'X', '9', // 6 | 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', // 7 | 'A', 'B', 'E', 'F', 'I', 'J', 'K', 'L', 'M', 'R', 'S', 'T', 'Y', 'Z', // 8 | '-', '_' }; 9 | 10 | public static final char toDigit(int i) 11 | { 12 | return digits[i]; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /jfire-baseutil/src/main/java/com/jfireframework/baseutil/uniqueid/Uid.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.uniqueid; 2 | 3 | public interface Uid 4 | { 5 | // 该数字代表2016-01-01所具备的毫秒数,以该毫秒数作为基准 6 | public final long base = 1451577660000l; 7 | public final long short_mask = 0x000000000000003f; 8 | 9 | public byte[] generateBytes(); 10 | 11 | public String generate(); 12 | 13 | public long generateLong(); 14 | 15 | public String generateDigits(); 16 | } 17 | -------------------------------------------------------------------------------- /jfire-baseutil/src/test/java/com/jfireframework/baseutil/Demo2.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | 6 | public class Demo2 7 | { 8 | @Test 9 | public void test() 10 | { 11 | for (long l = 0; l < 1000800; l++) 12 | { 13 | Assert.assertEquals(((int) l) & 1, (int) (l & 1)); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /jfire-baseutil/src/test/java/com/jfireframework/baseutil/DsiruptorTest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil; 2 | 3 | public class DsiruptorTest 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /jfire-baseutil/src/test/java/com/jfireframework/baseutil/Logtest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil; 2 | 3 | import com.jfireframework.baseutil.simplelog.ConsoleLogFactory; 4 | import com.jfireframework.baseutil.simplelog.Logger; 5 | 6 | public class Logtest 7 | { 8 | private static final Logger logger = ConsoleLogFactory.getLogger(ConsoleLogFactory.DEBUG); 9 | 10 | public void demo() 11 | { 12 | logger.debug("sdas"); 13 | } 14 | 15 | public static void main(String[] args) 16 | { 17 | new Logtest().demo(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jfire-baseutil/src/test/java/com/jfireframework/baseutil/Timelog.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil; 2 | 3 | public class Timelog 4 | { 5 | private long start; 6 | private long end; 7 | 8 | public void start() 9 | { 10 | start = System.currentTimeMillis(); 11 | } 12 | 13 | public void end() 14 | { 15 | end = System.currentTimeMillis(); 16 | } 17 | 18 | public long total() 19 | { 20 | return end - start; 21 | } 22 | 23 | public static void main(String[] args) 24 | { 25 | System.out.println(Integer.MAX_VALUE - 1024 * 1024 * 1024); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /jfire-baseutil/src/test/java/com/jfireframework/baseutil/data/ChildObject.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.data; 2 | 3 | public class ChildObject extends FatherObject 4 | { 5 | public String print() 6 | { 7 | return "哈哈哈"; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /jfire-baseutil/src/test/java/com/jfireframework/baseutil/data/FatherObject.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.data; 2 | 3 | public class FatherObject 4 | { 5 | public String print() 6 | { 7 | return "你好"; 8 | } 9 | 10 | public String print2() 11 | { 12 | return "2123"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /jfire-baseutil/src/test/java/com/jfireframework/baseutil/test/IOUtilTest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.test; 2 | 3 | public class IOUtilTest 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /jfire-baseutil/src/test/java/com/jfireframework/baseutil/test/MatchTest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.test; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | 6 | import com.jfireframework.baseutil.StringUtil; 7 | 8 | public class MatchTest 9 | { 10 | @Test 11 | public void test() 12 | { 13 | Assert.assertTrue(StringUtil.match("sada.sda.test", "*test")); 14 | Assert.assertTrue(StringUtil.match("com.sda.sdas", "*")); 15 | Assert.assertTrue(StringUtil.match("/user/12/getid/121", "/user/*/getid/*")); 16 | Assert.assertFalse(StringUtil.match("/user/12/getid/121/123/456", "/user/*/getid/*/123")); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /jfire-baseutil/src/test/java/com/jfireframework/baseutil/test/StringTest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.test; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | 6 | import com.jfireframework.baseutil.StringUtil; 7 | 8 | public class StringTest 9 | { 10 | @Test 11 | public void test() 12 | { 13 | String pattern = "这是一个很大的问题,问题是{},zenm{}"; 14 | String result = StringUtil.format(pattern, "嘿嘿", 1); 15 | Assert.assertEquals("这是一个很大的问题,问题是嘿嘿,zenm1", result); 16 | pattern = "这是一个很大的问题,问题是{},zenm{},21asda{}"; 17 | result = StringUtil.format(pattern, "嘿嘿", 1); 18 | Assert.assertEquals("这是一个很大的问题,问题是嘿嘿,zenm1,21asda{}", result); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /jfire-baseutil/src/test/java/com/jfireframework/baseutil/test/UnsafeTest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.baseutil.test; 2 | 3 | import java.lang.reflect.Array; 4 | 5 | import org.junit.Test; 6 | 7 | import com.jfireframework.baseutil.reflect.ReflectUtil; 8 | 9 | import sun.misc.Unsafe; 10 | 11 | @SuppressWarnings("restriction") 12 | public class UnsafeTest 13 | { 14 | private Unsafe unsafe = ReflectUtil.getUnsafe(); 15 | 16 | @Test 17 | public void test() 18 | { 19 | int[] dim = new int[2]; 20 | dim[0] = 2; 21 | int[][] a = (int[][]) Array.newInstance(int.class, dim); 22 | a[1] = new int[] { 1, 2, 3, 43, 54, 5, 6, 6, 7 }; 23 | System.out.println(a[1][6]); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /jfire-boot/src/main/resources/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | Archetype Created Web Application 7 | 8 | jfiremvcserlvet 9 | com.jfireframework.mvc.core.EasyMvcDispathServlet 10 | 11 | 12 | jfiremvcserlvet 13 | /* 14 | 15 | 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/Json.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson; 2 | 3 | public interface Json 4 | { 5 | public boolean hasParentNode(); 6 | 7 | public void setParentNode(Json json); 8 | 9 | public Json getParentNode(); 10 | } 11 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/annotation/JsonIgnore.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.annotation; 2 | 3 | import java.lang.annotation.Inherited; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * 使用该注解表明这个方法会被忽略 9 | * 10 | * @author 林斌 11 | * 12 | */ 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Inherited 15 | public @interface JsonIgnore 16 | { 17 | /** 18 | * 代表是否忽略策略配置,强制执行 19 | * 20 | * @return 21 | */ 22 | public boolean force() default false; 23 | } 24 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/annotation/JsonRename.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.annotation; 2 | 3 | import java.lang.annotation.Inherited; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * 使用该注解表明这个方法在被json输出的时候名称会改变 9 | * 10 | * @author 林斌 11 | * 12 | */ 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Inherited 15 | public @interface JsonRename 16 | { 17 | public String value(); 18 | } 19 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/JsonReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function; 2 | 3 | import java.lang.reflect.Type; 4 | 5 | public interface JsonReader 6 | { 7 | public Object read(Type entityType, Object value); 8 | } 9 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/Strategy.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function; 2 | 3 | public interface Strategy 4 | { 5 | public String getRename(String fieldName); 6 | 7 | public boolean containsRename(String fieldName); 8 | } 9 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/ObjectReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.function.JsonReader; 5 | 6 | public class ObjectReader implements JsonReader 7 | { 8 | 9 | @Override 10 | public Object read(Type entityType, Object value) 11 | { 12 | return value; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/array/BooleanArrayReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.array; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.JsonArray; 5 | import com.jfireframework.codejson.function.JsonReader; 6 | 7 | public class BooleanArrayReader implements JsonReader 8 | { 9 | @Override 10 | public Object read(Type entityType, Object value) 11 | { 12 | JsonArray jsonArray = (JsonArray) value; 13 | int size = jsonArray.size(); 14 | boolean[] array = new boolean[size]; 15 | for (int i = 0; i < size; i++) 16 | { 17 | array[i] = jsonArray.getBoolean(i); 18 | } 19 | return array; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/array/ByteArrayReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.array; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.JsonArray; 5 | import com.jfireframework.codejson.function.JsonReader; 6 | 7 | public class ByteArrayReader implements JsonReader 8 | { 9 | 10 | @Override 11 | public Object read(Type entityType, Object value) 12 | { 13 | JsonArray jsonArray = (JsonArray) value; 14 | int size = jsonArray.size(); 15 | byte[] array = new byte[size]; 16 | for (int i = 0; i < size; i++) 17 | { 18 | array[i] = jsonArray.getByte(i); 19 | } 20 | return array; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/array/CharArrayReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.array; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.JsonArray; 5 | import com.jfireframework.codejson.function.JsonReader; 6 | 7 | public class CharArrayReader implements JsonReader 8 | { 9 | @Override 10 | public Object read(Type entityType, Object value) 11 | { 12 | JsonArray jsonArray = (JsonArray) value; 13 | int size = jsonArray.size(); 14 | char[] array = new char[size]; 15 | for (int i = 0; i < size; i++) 16 | { 17 | array[i] = jsonArray.getChar(i); 18 | } 19 | return array; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/array/DoubleArrayReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.array; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.JsonArray; 5 | import com.jfireframework.codejson.function.JsonReader; 6 | 7 | public class DoubleArrayReader implements JsonReader 8 | { 9 | @Override 10 | public Object read(Type entityType, Object value) 11 | { 12 | JsonArray jsonArray = (JsonArray) value; 13 | int size = jsonArray.size(); 14 | double[] array = new double[size]; 15 | for (int i = 0; i < size; i++) 16 | { 17 | array[i] = jsonArray.getDouble(i); 18 | } 19 | return array; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/array/FloatArrayReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.array; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.JsonArray; 5 | import com.jfireframework.codejson.function.JsonReader; 6 | 7 | public class FloatArrayReader implements JsonReader 8 | { 9 | 10 | @Override 11 | public Object read(Type entityType, Object value) 12 | { 13 | JsonArray jsonArray = (JsonArray) value; 14 | int size = jsonArray.size(); 15 | float[] array = new float[size]; 16 | for (int i = 0; i < size; i++) 17 | { 18 | array[i] = jsonArray.getFloat(i); 19 | } 20 | return array; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/array/IntArrayReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.array; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.JsonArray; 5 | import com.jfireframework.codejson.function.JsonReader; 6 | 7 | public class IntArrayReader implements JsonReader 8 | { 9 | 10 | @Override 11 | public Object read(Type entityType, Object value) 12 | { 13 | JsonArray jsonArray = (JsonArray) value; 14 | int size = jsonArray.size(); 15 | int[] array = new int[size]; 16 | for (int i = 0; i < size; i++) 17 | { 18 | array[i] = jsonArray.getInt(i); 19 | } 20 | return array; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/array/LongArrayReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.array; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.JsonArray; 5 | import com.jfireframework.codejson.function.JsonReader; 6 | 7 | public class LongArrayReader implements JsonReader 8 | { 9 | @Override 10 | public Object read(Type entityType, Object value) 11 | { 12 | JsonArray jsonArray = (JsonArray) value; 13 | int size = jsonArray.size(); 14 | long[] array = new long[size]; 15 | for (int i = 0; i < size; i++) 16 | { 17 | array[i] = jsonArray.getLong(i); 18 | } 19 | return array; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/array/ShortArrayReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.array; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.JsonArray; 5 | import com.jfireframework.codejson.function.JsonReader; 6 | 7 | public class ShortArrayReader implements JsonReader 8 | { 9 | @Override 10 | public Object read(Type entityType, Object value) 11 | { 12 | JsonArray jsonArray = (JsonArray) value; 13 | int size = jsonArray.size(); 14 | short[] array = new short[size]; 15 | for (int i = 0; i < size; i++) 16 | { 17 | array[i] = jsonArray.getShort(i); 18 | } 19 | return array; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/array/StringArrayReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.array; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.JsonArray; 5 | import com.jfireframework.codejson.function.JsonReader; 6 | 7 | public class StringArrayReader implements JsonReader 8 | { 9 | @Override 10 | public Object read(Type entityType, Object value) 11 | { 12 | JsonArray jsonArray = (JsonArray) value; 13 | int size = jsonArray.size(); 14 | String[] array = new String[size]; 15 | for (int i = 0; i < size; i++) 16 | { 17 | array[i] = jsonArray.getWString(i); 18 | } 19 | return array; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/wrapper/BooleanReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.wrapper; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.function.JsonReader; 5 | 6 | public class BooleanReader implements JsonReader 7 | { 8 | 9 | @Override 10 | public Object read(Type entityClass, Object value) 11 | { 12 | return Boolean.valueOf((String) value); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/wrapper/ByteReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.wrapper; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.function.JsonReader; 5 | 6 | public class ByteReader implements JsonReader 7 | { 8 | 9 | @Override 10 | public Object read(Type entityClass, Object value) 11 | { 12 | return Byte.valueOf((String) value); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/wrapper/CharacterReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.wrapper; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.function.JsonReader; 5 | 6 | public class CharacterReader implements JsonReader 7 | { 8 | 9 | @Override 10 | public Object read(Type entityClass, Object value) 11 | { 12 | return Character.valueOf(((String) value).charAt(0)); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/wrapper/DoubleReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.wrapper; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.function.JsonReader; 5 | 6 | public class DoubleReader implements JsonReader 7 | { 8 | 9 | @Override 10 | public Object read(Type entityClass, Object value) 11 | { 12 | return Double.valueOf((String) value); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/wrapper/FloatReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.wrapper; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.function.JsonReader; 5 | 6 | public class FloatReader implements JsonReader 7 | { 8 | 9 | @Override 10 | public Object read(Type entityClass, Object value) 11 | { 12 | return Float.valueOf((String) value); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/wrapper/IntegerReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.wrapper; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.function.JsonReader; 5 | 6 | public class IntegerReader implements JsonReader 7 | { 8 | 9 | @Override 10 | public Object read(Type entityClass, Object value) 11 | { 12 | return Integer.valueOf((String) value); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/wrapper/LongReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.wrapper; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.function.JsonReader; 5 | 6 | public class LongReader implements JsonReader 7 | { 8 | 9 | @Override 10 | public Object read(Type entityClass, Object value) 11 | { 12 | return Long.valueOf((String) value); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/read/wrapper/ShortReader.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.read.wrapper; 2 | 3 | import java.lang.reflect.Type; 4 | import com.jfireframework.codejson.function.JsonReader; 5 | 6 | public class ShortReader implements JsonReader 7 | { 8 | 9 | @Override 10 | public Object read(Type entityClass, Object value) 11 | { 12 | return Short.valueOf((String) value); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/array/ByteArrayWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.array; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class ByteArrayWriter extends WriterAdapter 8 | { 9 | @Override 10 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 11 | { 12 | byte[] array = (byte[]) field; 13 | cache.append('['); 14 | for (byte each : array) 15 | { 16 | cache.append(each).append(','); 17 | } 18 | if (cache.isCommaLast()) 19 | { 20 | cache.deleteLast(); 21 | } 22 | cache.append(']'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/array/DoubleArrayWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.array; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class DoubleArrayWriter extends WriterAdapter 8 | { 9 | @Override 10 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 11 | { 12 | double[] array = (double[]) field; 13 | cache.append('['); 14 | for (double each : array) 15 | { 16 | cache.append(each).append(','); 17 | } 18 | if (cache.isCommaLast()) 19 | { 20 | cache.deleteLast(); 21 | } 22 | cache.append(']'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/array/FloatArrayWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.array; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class FloatArrayWriter extends WriterAdapter 8 | { 9 | @Override 10 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 11 | { 12 | float[] array = (float[]) field; 13 | cache.append('['); 14 | for (float each : array) 15 | { 16 | cache.append(each).append(','); 17 | } 18 | if (cache.isCommaLast()) 19 | { 20 | cache.deleteLast(); 21 | } 22 | cache.append(']'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/array/IntArrayWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.array; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class IntArrayWriter extends WriterAdapter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 12 | { 13 | int[] array = (int[]) field; 14 | cache.append('['); 15 | for (int each : array) 16 | { 17 | cache.append(each).append(','); 18 | } 19 | if (cache.isCommaLast()) 20 | { 21 | cache.deleteLast(); 22 | } 23 | cache.append(']'); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/array/LongArrayWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.array; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class LongArrayWriter extends WriterAdapter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 12 | { 13 | long[] array = (long[]) field; 14 | cache.append('['); 15 | for (long each : array) 16 | { 17 | cache.append(each).append(','); 18 | } 19 | if (cache.isCommaLast()) 20 | { 21 | cache.deleteLast(); 22 | } 23 | cache.append(']'); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/array/ShortArrayWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.array; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class ShortArrayWriter extends WriterAdapter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 12 | { 13 | short[] array = (short[]) field; 14 | cache.append('['); 15 | for (short each : array) 16 | { 17 | cache.append(each).append(','); 18 | } 19 | if (cache.isCommaLast()) 20 | { 21 | cache.deleteLast(); 22 | } 23 | cache.append(']'); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/wrapper/BooleanWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.wrapper; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class BooleanWriter extends WriterAdapter implements WrapperWriter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 12 | { 13 | cache.append((Boolean) field); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/wrapper/ByteWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.wrapper; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class ByteWriter extends WriterAdapter implements WrapperWriter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 12 | { 13 | cache.append((Byte) field); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/wrapper/CharacterWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.wrapper; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class CharacterWriter extends WriterAdapter implements WrapperWriter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 12 | { 13 | cache.append('"').append((Character) field).append('"'); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/wrapper/DoubleWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.wrapper; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class DoubleWriter extends WriterAdapter implements WrapperWriter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 12 | { 13 | cache.append((Double) field); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/wrapper/FloatWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.wrapper; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class FloatWriter extends WriterAdapter implements WrapperWriter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracke) 12 | { 13 | cache.append((Float) field); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/wrapper/IntegerWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.wrapper; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class IntegerWriter extends WriterAdapter implements WrapperWriter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 12 | { 13 | cache.append((Integer) field); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/wrapper/LongWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.wrapper; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class LongWriter extends WriterAdapter implements WrapperWriter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracke) 12 | { 13 | cache.append((Long) field); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/wrapper/ShortWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.wrapper; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class ShortWriter extends WriterAdapter implements WrapperWriter 8 | { 9 | 10 | @Override 11 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 12 | { 13 | cache.append((Short) field); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/wrapper/StringWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.wrapper; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | import com.jfireframework.codejson.function.impl.write.WriterAdapter; 5 | import com.jfireframework.codejson.tracker.Tracker; 6 | 7 | public class StringWriter extends WriterAdapter implements WrapperWriter 8 | { 9 | 10 | public void write(Object field, StringCache cache, Object entity, Tracker tracker) 11 | { 12 | // String value = (String) field; 13 | // value = value.replace("\\", "\\\\").replace("\"", "\\\"").replace("\r", "\\r").replace("\n", "\\n"); 14 | cache.append('\"').append((String) field).append('\"'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/function/impl/write/wrapper/WrapperWriter.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.function.impl.write.wrapper; 2 | 3 | public interface WrapperWriter 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/methodinfo/ReadMethodInfo.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.methodinfo; 2 | 3 | public interface ReadMethodInfo 4 | { 5 | /** 6 | * 7 | * 返回将json对象转换成给定对象的实现代码 8 | * 9 | * @return 10 | */ 11 | public String getOutput(); 12 | } 13 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/methodinfo/WriteMethodInfo.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.methodinfo; 2 | 3 | /** 4 | * 方法信息,里面只包含一个方法。该方法用于返回进行json输出的动态编译代码 5 | * 代表用于get方法的信息输出 6 | * 7 | */ 8 | public interface WriteMethodInfo 9 | { 10 | /** 11 | * 12 | * 返回该方法进行json输出时进行代码编译的文本字符串。(该动态代码中的json输出中,包含了逗号的输出) 13 | * 14 | * @return 15 | */ 16 | public String getOutput(); 17 | } 18 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/methodinfo/impl/read/array/SetBaseArrayMethodInfo.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.methodinfo.impl.read.array; 2 | 3 | import java.lang.reflect.Method; 4 | import com.jfireframework.codejson.function.ReadStrategy; 5 | 6 | public class SetBaseArrayMethodInfo extends AbstractArrayReadMethodInfo 7 | { 8 | 9 | public SetBaseArrayMethodInfo(Method method, ReadStrategy strategy) 10 | { 11 | super(method, strategy); 12 | } 13 | 14 | @Override 15 | protected void readOneDim(String bk) 16 | { 17 | str += bk + "array1[i1] = jsonArray1.get" + rootName.substring(0, 1).toUpperCase() + rootName.substring(1) + "(i1);\n"; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/methodinfo/impl/read/array/SetCustomArrayMethodInfo.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.methodinfo.impl.read.array; 2 | 3 | import java.lang.reflect.Method; 4 | import com.jfireframework.codejson.function.ReadStrategy; 5 | import com.jfireframework.codejson.util.NameTool; 6 | 7 | public class SetCustomArrayMethodInfo extends AbstractArrayReadMethodInfo 8 | { 9 | 10 | public SetCustomArrayMethodInfo(Method method, ReadStrategy strategy) 11 | { 12 | super(method, strategy); 13 | } 14 | 15 | @Override 16 | protected void readOneDim(String bk) 17 | { 18 | str += bk + "array1[i1] = ReaderContext.read(" + NameTool.getRootType(getParamType()).getName() + ".class,jsonArray1.get(i1));\n"; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/methodinfo/impl/read/array/SetWarpperArrayMethodInfo.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.methodinfo.impl.read.array; 2 | 3 | import java.lang.reflect.Method; 4 | import com.jfireframework.codejson.function.ReadStrategy; 5 | import com.jfireframework.codejson.util.NameTool; 6 | 7 | public class SetWarpperArrayMethodInfo extends AbstractArrayReadMethodInfo 8 | { 9 | 10 | public SetWarpperArrayMethodInfo(Method method, ReadStrategy strategy) 11 | { 12 | super(method, strategy); 13 | } 14 | 15 | @Override 16 | protected void readOneDim(String bk) 17 | { 18 | String name = NameTool.getRootType(getParamType()).getSimpleName(); 19 | str += bk + "array1[i1] = jsonArray1.getW" + name.substring(0, 1).toUpperCase() + name.substring(1) + "(i1);\n"; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /jfire-codejson/src/main/java/com/jfireframework/codejson/util/MethodComparator.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.util; 2 | 3 | import java.lang.reflect.Method; 4 | import java.util.Comparator; 5 | 6 | public class MethodComparator implements Comparator 7 | { 8 | 9 | @Override 10 | public int compare(Method o1, Method o2) 11 | { 12 | return o1.getName().compareTo(o2.getName()); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/simple/Guy.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.simple; 2 | 3 | public class Guy 4 | { 5 | private String name; 6 | private Room room; 7 | 8 | public String getName() 9 | { 10 | return name; 11 | } 12 | 13 | public void setName(String name) 14 | { 15 | this.name = name; 16 | } 17 | 18 | public Room getRoom() 19 | { 20 | return room; 21 | } 22 | 23 | public void setRoom(Room room) 24 | { 25 | this.room = room; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/simple/Home.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.simple; 2 | 3 | public class Home 4 | { 5 | private float wdith = 12.36f; 6 | private float length = 50.26f; 7 | private Person person = new Person(); 8 | 9 | public float getWdith() 10 | { 11 | return wdith; 12 | } 13 | 14 | public void setWdith(float wdith) 15 | { 16 | this.wdith = wdith; 17 | } 18 | 19 | public float getLength() 20 | { 21 | return length; 22 | } 23 | 24 | public void setLength(float length) 25 | { 26 | this.length = length; 27 | } 28 | 29 | public Person getPerson() 30 | { 31 | return person; 32 | } 33 | 34 | public void setPerson(Person person) 35 | { 36 | this.person = person; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/simple/Person.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.simple; 2 | 3 | public class Person 4 | { 5 | private String name = "林斌"; 6 | private int age = 25; 7 | 8 | public String getName() 9 | { 10 | return name; 11 | } 12 | 13 | public void setName(String name) 14 | { 15 | this.name = name; 16 | } 17 | 18 | public int getAge() 19 | { 20 | return age; 21 | } 22 | 23 | public void setAge(int age) 24 | { 25 | this.age = age; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/simple/Person2.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.simple; 2 | 3 | public class Person2 4 | { 5 | private int age; 6 | 7 | public int getAge() 8 | { 9 | return age; 10 | } 11 | 12 | public void setAge(int age) 13 | { 14 | this.age = age; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/simple/Room.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.simple; 2 | 3 | public class Room 4 | { 5 | private int length; 6 | private Guy guy; 7 | 8 | public Guy getGuy() 9 | { 10 | return guy; 11 | } 12 | 13 | public void setGuy(Guy guy) 14 | { 15 | this.guy = guy; 16 | } 17 | 18 | public int getLength() 19 | { 20 | return length; 21 | } 22 | 23 | public void setLength(int length) 24 | { 25 | this.length = length; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/BaseData.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | public class BaseData 4 | { 5 | private float a = 2.2365f; 6 | public double b = 15.689; 7 | private double percent = 88.8121218; 8 | 9 | public float getA() 10 | { 11 | return a; 12 | } 13 | 14 | public void setA(float a) 15 | { 16 | this.a = a; 17 | } 18 | 19 | public double getB() 20 | { 21 | return b; 22 | } 23 | 24 | public void setB(double b) 25 | { 26 | this.b = b; 27 | } 28 | 29 | public double getPercent() 30 | { 31 | return percent; 32 | } 33 | 34 | public void setPercent(double percent) 35 | { 36 | this.percent = percent; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/FunData16.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | public class FunData16 4 | { 5 | private TestEnum test; 6 | 7 | public TestEnum getTest() 8 | { 9 | return test; 10 | } 11 | 12 | public void setTest(TestEnum test) 13 | { 14 | this.test = test; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/FunctionData10.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | import com.jfireframework.codejson.annotation.JsonRename; 4 | 5 | public class FunctionData10 6 | { 7 | @JsonRename("name2") 8 | private String name = "林斌"; 9 | private int age = 23; 10 | 11 | public String getAddress() 12 | { 13 | return "天鹅湾"; 14 | } 15 | 16 | public String getName() 17 | { 18 | return name; 19 | } 20 | 21 | public void setName(String name) 22 | { 23 | this.name = name; 24 | } 25 | 26 | @JsonRename("a") 27 | public int getAge() 28 | { 29 | return age; 30 | } 31 | 32 | public void setAge(int age) 33 | { 34 | this.age = age; 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/FunctionData11.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class FunctionData11 6 | { 7 | private ArrayList list = new ArrayList(); 8 | 9 | public FunctionData11() 10 | { 11 | list.add("12"); 12 | list.add("45"); 13 | } 14 | 15 | public ArrayList getList() 16 | { 17 | return list; 18 | } 19 | 20 | public void setList(ArrayList list) 21 | { 22 | this.list = list; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/FunctionData14.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | public class FunctionData14 4 | { 5 | private int[] array = new int[] { 1, 2, 43 }; 6 | 7 | private Integer[] array1 = new Integer[] { 3, 7, 9 }; 8 | 9 | public int[] getArray() 10 | { 11 | return array; 12 | } 13 | 14 | public void setArray(int[] array) 15 | { 16 | this.array = array; 17 | } 18 | 19 | public Integer[] getArray1() 20 | { 21 | return array1; 22 | } 23 | 24 | public void setArray1(Integer[] array1) 25 | { 26 | this.array1 = array1; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/FunctionData2.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | public class FunctionData2 4 | { 5 | private String name = "林斌"; 6 | private Integer age = 26; 7 | 8 | public String getName() 9 | { 10 | return name; 11 | } 12 | 13 | public void setName(String name) 14 | { 15 | this.name = name; 16 | } 17 | 18 | public Integer getAge() 19 | { 20 | return age; 21 | } 22 | 23 | public void setAge(Integer age) 24 | { 25 | this.age = age; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/FunctionData3.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class FunctionData3 7 | { 8 | private List list = new ArrayList(); 9 | 10 | public FunctionData3() 11 | { 12 | list.add("hello1"); 13 | list.add("hello2"); 14 | } 15 | 16 | public List getList() 17 | { 18 | return list; 19 | } 20 | 21 | public void setList(List list) 22 | { 23 | this.list = list; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/FunctionData6.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class FunctionData6 7 | { 8 | private Map[] maps = new HashMap[2]; 9 | 10 | public FunctionData6() 11 | { 12 | Map m = new HashMap(); 13 | m.put("test", "test"); 14 | maps[0] = m; 15 | m = new HashMap(); 16 | m.put("abc", "def"); 17 | maps[1] = m; 18 | } 19 | 20 | public Map[] getMaps() 21 | { 22 | return maps; 23 | } 24 | 25 | public void setMaps(Map[] maps) 26 | { 27 | this.maps = maps; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/FunctionData7.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class FunctionData7 7 | { 8 | private Object data; 9 | 10 | public FunctionData7() 11 | { 12 | Map map = new HashMap(); 13 | map.put(1, "121212"); 14 | data = map; 15 | } 16 | 17 | public Object getData() 18 | { 19 | return data; 20 | } 21 | 22 | public void setData(Object data) 23 | { 24 | this.data = data; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/FunctionData8.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class FunctionData8 7 | { 8 | private Object data; 9 | 10 | public FunctionData8() 11 | { 12 | Map map = new HashMap(); 13 | map.put("你好", "林斌"); 14 | data = map; 15 | } 16 | 17 | public Object getData() 18 | { 19 | return data; 20 | } 21 | 22 | public void setData(Object data) 23 | { 24 | this.data = data; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/NestInfo.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | import java.util.Date; 4 | 5 | public class NestInfo 6 | { 7 | private Date date; 8 | 9 | public Date getDate() 10 | { 11 | return date; 12 | } 13 | 14 | public void setDate(Date date) 15 | { 16 | this.date = date; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/java/com/jfireframework/codejson/test/strategy/TestEnum.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.codejson.test.strategy; 2 | 3 | public enum TestEnum 4 | { 5 | PUSH, PULL; 6 | } 7 | -------------------------------------------------------------------------------- /jfire-codejson/src/test/resources/comment.json: -------------------------------------------------------------------------------- 1 | { 2 | "name":"林斌" /*这是名字*/ 3 | } -------------------------------------------------------------------------------- /jfire-codejson/src/test/resources/config.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "packageNames" : ["com.jfire.core.test.function.base"], 4 | "beanConfigs":[ 5 | {"beanName":"com.jfire.core.test.function.base.data.ImmutablePerson", 6 | "params":{ 7 | "name":"林斌", 8 | "age":25, 9 | "boy":true 10 | }} 11 | ] 12 | } -------------------------------------------------------------------------------- /jfire-codejson/src/test/resources/log.properties: -------------------------------------------------------------------------------- 1 | link.jfire.codejson.test=info 2 | com.jfireframework.codejson=trace -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/ContextInitFinish.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context; 2 | 3 | import com.jfireframework.baseutil.order.Order; 4 | 5 | /** 6 | * 容器初始化完成接口 7 | * 8 | * @author windfire(windfire@zailanghua.com) 9 | * 10 | */ 11 | public interface ContextInitFinish extends Order 12 | { 13 | /** 14 | * 当容器初始化完成后,该接口会被容器调用 15 | * 16 | * @author 林斌(eric@jfire.cn) 17 | */ 18 | public void afterContextInit(); 19 | } 20 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/aliasanno/AliasFor.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.aliasanno; 2 | 3 | import java.lang.annotation.Annotation; 4 | import java.lang.annotation.Documented; 5 | import java.lang.annotation.ElementType; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Target(ElementType.METHOD) 12 | @Documented 13 | public @interface AliasFor 14 | { 15 | public String value(); 16 | 17 | Class annotation(); 18 | } 19 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/aop/annotation/AfterEnhance.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.aop.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE }) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Documented 13 | @Inherited 14 | public @interface AfterEnhance 15 | { 16 | public String value() default ""; 17 | 18 | public int order() default 1; 19 | } 20 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/aop/annotation/AroundEnhance.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.aop.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE }) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Documented 13 | @Inherited 14 | public @interface AroundEnhance 15 | { 16 | public String value() default ""; 17 | 18 | public int order() default 1; 19 | } 20 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/aop/annotation/AutoResource.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.aop.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * 注解在方法上,代码会自动打开和关闭方法中会需要使用到的资源 12 | * 13 | * @author 林斌{erci@jfire.cn} 14 | * 15 | */ 16 | @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE }) 17 | @Retention(RetentionPolicy.RUNTIME) 18 | @Documented 19 | @Inherited 20 | public @interface AutoResource 21 | { 22 | /** 23 | * 识别到该异常进行自动关闭,其余异常不操作 24 | * 25 | * @return 26 | */ 27 | public Class[] exceptions() default { Throwable.class }; 28 | } 29 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/aop/annotation/BeforeEnhance.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.aop.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * 12 | * 代表该方法是一个aop增强描述方法,代表被注解方法是一个前置增强 13 | */ 14 | @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE }) 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Documented 17 | @Inherited 18 | public @interface BeforeEnhance 19 | { 20 | public String value() default ""; 21 | 22 | public int order() default 1; 23 | } 24 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/aop/annotation/EnhanceClass.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.aop.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * 代表该类是一个aop增强类 通过target字符串来匹配需要增强的目标类 12 | * 13 | */ 14 | @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE, ElementType.TYPE }) 15 | @Retention(RetentionPolicy.RUNTIME) 16 | @Documented 17 | @Inherited 18 | public @interface EnhanceClass 19 | { 20 | public String value(); 21 | } 22 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/aop/annotation/ThrowEnhance.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.aop.annotation; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE }) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Documented 13 | @Inherited 14 | public @interface ThrowEnhance 15 | { 16 | public String value() default ""; 17 | 18 | public int order() default 1; 19 | 20 | /** 21 | * 需要进行捕获的异常类型。默认为throwable类型 22 | * 23 | * @return 24 | */ 25 | public Class[] type() default { Throwable.class }; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/bean/annotation/field/CanBeNull.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.bean.annotation.field; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * 使用该注解表明该属性的注入可以允许为空 12 | * 13 | * @author linbin 14 | * 15 | */ 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Target(value = { ElementType.FIELD, ElementType.ANNOTATION_TYPE }) 18 | @Documented 19 | @Inherited 20 | public @interface CanBeNull 21 | { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/bean/annotation/field/MapKey.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.bean.annotation.field; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | /** 11 | * 指示map属性字段进行依赖时所需要的信息,可以指定某一个方法的返回值是key 12 | * 13 | * @author 林斌{erci@jfire.cn} 14 | * 15 | */ 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Target(value = { ElementType.FIELD, ElementType.ANNOTATION_TYPE }) 18 | @Documented 19 | @Inherited 20 | public @interface MapKey 21 | { 22 | public String value(); 23 | } 24 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/bean/build/BeanClassBuilder.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.bean.build; 2 | 3 | import com.jfireframework.context.JfireContext; 4 | import com.jfireframework.context.bean.Bean; 5 | 6 | public interface BeanClassBuilder 7 | { 8 | public Bean build(Class origin, JfireContext jfireContext); 9 | 10 | public void setInitArgument(String arg); 11 | } 12 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/bean/build/BuildBy.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.bean.build; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Target(value = { ElementType.TYPE, ElementType.ANNOTATION_TYPE }) 12 | @Documented 13 | @Inherited 14 | public @interface BuildBy 15 | { 16 | /** 17 | * 该类需要由哪一个BeanClassBuilder来进行增强 18 | * 19 | * @return 20 | */ 21 | public Class buildFrom(); 22 | 23 | /** 24 | * 该BeanClassBuilder实例启动后的初始化参数 25 | * 26 | * @return 27 | */ 28 | public String initArgument(); 29 | } 30 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/bean/field/dependency/DependencyField.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.bean.field.dependency; 2 | 3 | import java.util.Map; 4 | 5 | public interface DependencyField 6 | { 7 | /** 8 | * 将所依赖的bean的实例注入 9 | * 10 | * @param src 被注入的对象 11 | * @param beanInstanceMap bean实例map。key为bean的名称 12 | */ 13 | public void inject(Object src, Map beanInstanceMap); 14 | } 15 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/bean/field/dependency/impl/NullInjectField.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.bean.field.dependency.impl; 2 | 3 | import java.lang.reflect.Field; 4 | import java.util.Map; 5 | 6 | public class NullInjectField extends AbstractDependencyField 7 | { 8 | 9 | public NullInjectField(Field field) 10 | { 11 | super(field); 12 | } 13 | 14 | @Override 15 | public void inject(Object src, Map beanInstanceMap) 16 | { 17 | ; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/bean/field/param/ParamField.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.bean.field.param; 2 | 3 | public interface ParamField 4 | { 5 | /** 6 | * 将参数设置到要注入的对象中 7 | * 8 | * @param entity 9 | */ 10 | public void setParam(Object entity); 11 | } 12 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/bean/load/BeanLoadFactory.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.bean.load; 2 | 3 | public interface BeanLoadFactory 4 | { 5 | /** 6 | * 根据类获得对应的对象 7 | * 8 | * @param ckass 9 | * @return 10 | */ 11 | public E load(Class ckass); 12 | } 13 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/bean/load/LoadBy.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.bean.load; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Target(value = { ElementType.TYPE, ElementType.ANNOTATION_TYPE }) 12 | @Documented 13 | @Inherited 14 | public @interface LoadBy 15 | { 16 | /** 17 | * 可以提供Bean的工厂bean的名称 18 | * 19 | * @return 20 | */ 21 | public String factoryBeanName(); 22 | } 23 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/cache/Cache.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.cache; 2 | 3 | public interface Cache 4 | { 5 | public void put(Object key, Object value); 6 | 7 | public void put(Object key, Object value, int timeToLive); 8 | 9 | public Object get(Object key); 10 | 11 | public void remove(Object key); 12 | 13 | public void clear(); 14 | 15 | public String getName(); 16 | } 17 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/cache/CacheManager.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.cache; 2 | 3 | public interface CacheManager 4 | { 5 | public Cache get(String name); 6 | } 7 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/cache/support/ConcurrentHashMapCacheManager.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.cache.support; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | import javax.annotation.PostConstruct; 6 | import com.jfireframework.context.cache.Cache; 7 | import com.jfireframework.context.cache.CacheManager; 8 | 9 | public class ConcurrentHashMapCacheManager implements CacheManager 10 | { 11 | private Map cacheMap = new HashMap(); 12 | 13 | @PostConstruct 14 | public void init() 15 | { 16 | HashMapCache cache = new HashMapCache(); 17 | cache.setName("default"); 18 | cacheMap.put("default", cache); 19 | } 20 | 21 | @Override 22 | public Cache get(String name) 23 | { 24 | return cacheMap.get(name); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/cache/support/RedidCacheManager.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.cache.support; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | import javax.annotation.PostConstruct; 6 | import com.jfireframework.context.cache.Cache; 7 | import com.jfireframework.context.cache.CacheManager; 8 | 9 | public class RedidCacheManager implements CacheManager 10 | { 11 | 12 | private Map cacheMap = new HashMap(); 13 | 14 | @PostConstruct 15 | public void init() 16 | { 17 | RedisCache cache = new RedisCache(); 18 | cacheMap.put("default", cache); 19 | } 20 | 21 | @Override 22 | public Cache get(String name) 23 | { 24 | return cacheMap.get(name); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/event/EventPoster.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.event; 2 | 3 | import com.jfireframework.eventbus.event.EventConfig; 4 | import com.jfireframework.eventbus.eventcontext.EventContext; 5 | 6 | public interface EventPoster 7 | { 8 | public EventContext post(Object data, Enum event, Object rowkey); 9 | 10 | public EventContext post(Object data, Enum event); 11 | 12 | public EventContext syncPost(Object data, Enum event, Object rowkey); 13 | 14 | public EventContext syncPost(Object data, Enum event); 15 | } 16 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/event/impl/CalculateEventPost.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.event.impl; 2 | 3 | import javax.annotation.PostConstruct; 4 | import com.jfireframework.eventbus.bus.impl.CalculateEventBus; 5 | import com.jfireframework.eventbus.handler.EventHandler; 6 | 7 | public class CalculateEventPost extends AbstractEventPoster 8 | { 9 | private int coreWorker = Runtime.getRuntime().availableProcessors(); 10 | 11 | @PostConstruct 12 | public void init() 13 | { 14 | eventBus = new CalculateEventBus(coreWorker); 15 | for (EventHandler each : handlers) 16 | { 17 | eventBus.addHandler(each); 18 | } 19 | eventBus.start(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/event/impl/IoEventPoster.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.event.impl; 2 | 3 | import javax.annotation.PostConstruct; 4 | import com.jfireframework.eventbus.bus.impl.IoEventBus; 5 | import com.jfireframework.eventbus.handler.EventHandler; 6 | 7 | public class IoEventPoster extends AbstractEventPoster 8 | { 9 | private int coreWorker = Runtime.getRuntime().availableProcessors(); 10 | private int maxWorker = 100; 11 | private long waittime = 60 * 1000; 12 | 13 | @PostConstruct 14 | public void init() 15 | { 16 | eventBus = new IoEventBus(coreWorker, maxWorker, waittime); 17 | for (EventHandler each : handlers) 18 | { 19 | eventBus.addHandler(each); 20 | } 21 | eventBus.start(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/tx/RessourceManager.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.tx; 2 | 3 | public interface RessourceManager 4 | { 5 | 6 | /** 7 | * 自动打开一个资源。 8 | */ 9 | public void open(); 10 | 11 | /** 12 | * 自动关闭对应的资源 13 | */ 14 | public void close(); 15 | } 16 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/tx/TransactionIsolate.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.tx; 2 | 3 | public enum TransactionIsolate 4 | { 5 | USE_DB_SETING, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE 6 | } 7 | -------------------------------------------------------------------------------- /jfire-context/src/main/java/com/jfireframework/context/tx/TransactionManager.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.tx; 2 | 3 | public interface TransactionManager 4 | { 5 | /** 6 | * 创建当前的session环境。如果已经存在则忽略 7 | */ 8 | public void buildCurrentSession(); 9 | 10 | /** 11 | * 开启事务,数字为该事务的隔离级别。如果为-1,则意味着使用不修改,使用该连接自身的隔离级别 12 | */ 13 | public void beginTransAction(int isolate); 14 | 15 | /** 16 | * 提交事务,但是并不关闭连接 17 | */ 18 | public void commit(); 19 | 20 | /** 21 | * 事务回滚,但是并不关闭连接 22 | */ 23 | public void rollback(Throwable e); 24 | 25 | /** 26 | * 关闭当前的session环境 27 | */ 28 | public void closeCurrentSession(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/aliastest/Autowired.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.aliastest; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | import javax.annotation.Resource; 6 | import com.jfireframework.context.aliasanno.AliasFor; 7 | 8 | @Resource 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface Autowired 11 | { 12 | @AliasFor(annotation = Resource.class, value = "name") 13 | public String wiredName(); 14 | } 15 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/aliastest/InitMethod.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.aliastest; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE }) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface InitMethod 11 | { 12 | public String name(); 13 | } 14 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/aliastest/MyMethod.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.aliastest; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | import com.jfireframework.context.aliasanno.AliasFor; 8 | 9 | @Target(ElementType.METHOD) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @InitMethod(name = "") 12 | public @interface MyMethod 13 | { 14 | @AliasFor(annotation = InitMethod.class, value = "name") 15 | public String load(); 16 | } 17 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/aliastest/SingleDemo.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.aliastest; 2 | 3 | @SingleTon("demo") 4 | public class SingleDemo 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/aliastest/SingleTon.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.aliastest; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | import javax.annotation.Resource; 6 | import com.jfireframework.context.aliasanno.AliasFor; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Resource(shareable = true) 10 | public @interface SingleTon 11 | { 12 | @AliasFor(annotation = Resource.class, value = "name") 13 | public String value() default ""; 14 | } 15 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/aliastest/TestAlias.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.aliastest; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | import javax.annotation.Resource; 6 | import com.jfireframework.context.aliasanno.AliasFor; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Resource 10 | public @interface TestAlias 11 | { 12 | @AliasFor(annotation = Resource.class, value = "name") 13 | String test() default "test"; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/aliastest/Testalis3.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.aliastest; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | import javax.annotation.Resource; 6 | import com.jfireframework.context.aliasanno.AliasFor; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @TestAlias 10 | public @interface Testalis3 11 | { 12 | @AliasFor(annotation = TestAlias.class, value = "test") 13 | public String t(); 14 | 15 | @AliasFor(annotation = Resource.class, value = "shareable") 16 | public boolean s() default false; 17 | } 18 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/aop/AcManager.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.aop; 2 | 3 | import javax.annotation.Resource; 4 | import com.jfireframework.context.tx.RessourceManager; 5 | 6 | @Resource 7 | public class AcManager implements RessourceManager 8 | { 9 | 10 | @Override 11 | public void close() 12 | { 13 | System.out.println("关闭资源"); 14 | } 15 | 16 | @Override 17 | public void open() 18 | { 19 | System.out.println("打开资源"); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/aop/ChildPerson.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.aop; 2 | 3 | import javax.annotation.Resource; 4 | 5 | @Resource 6 | public class ChildPerson extends Person 7 | { 8 | public void my() 9 | { 10 | System.out.println("子类说法"); 11 | hh(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/base/Properties.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.base; 2 | 3 | import java.io.File; 4 | import java.net.URISyntaxException; 5 | import org.junit.Assert; 6 | import org.junit.Test; 7 | import com.jfireframework.context.JfireContext; 8 | import com.jfireframework.context.JfireContextImpl; 9 | import com.jfireframework.context.test.function.base.data.ImmutablePerson; 10 | 11 | public class Properties 12 | { 13 | @Test 14 | public void test() throws URISyntaxException 15 | { 16 | JfireContext jfireContext = new JfireContextImpl(); 17 | jfireContext.readConfig(new File(this.getClass().getClassLoader().getResource("propertiestest.json").toURI())); 18 | ImmutablePerson person = jfireContext.getBean(ImmutablePerson.class); 19 | Assert.assertEquals(12, person.getAge()); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/base/maptest/House.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.base.maptest; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class House 7 | { 8 | private Map map = new HashMap(); 9 | 10 | public Map getMap() 11 | { 12 | return map; 13 | } 14 | 15 | public void setMap(Map map) 16 | { 17 | this.map = map; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/base/maptest/MapTest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.base.maptest; 2 | 3 | import java.io.File; 4 | import java.net.URISyntaxException; 5 | import java.util.Map; 6 | import org.junit.Assert; 7 | import org.junit.Test; 8 | import com.jfireframework.context.JfireContext; 9 | import com.jfireframework.context.JfireContextImpl; 10 | 11 | public class MapTest 12 | { 13 | @Test 14 | public void test() throws URISyntaxException 15 | { 16 | JfireContext jfireContext = new JfireContextImpl(); 17 | jfireContext.readConfig(new File(this.getClass().getClassLoader().getResource("mapconfig.json").toURI())); 18 | House house = jfireContext.getBean(House.class); 19 | Map map = house.getMap(); 20 | Assert.assertEquals(2, map.size()); 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/base/maptest/Person.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.base.maptest; 2 | 3 | public class Person 4 | { 5 | private String name; 6 | 7 | public String getName() 8 | { 9 | return name; 10 | } 11 | 12 | public void setName(String name) 13 | { 14 | this.name = name; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/cachetest/CacheManagerTest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.cachetest; 2 | 3 | import javax.annotation.Resource; 4 | import com.jfireframework.context.cache.Cache; 5 | import com.jfireframework.context.cache.CacheManager; 6 | 7 | @Resource 8 | public class CacheManagerTest implements CacheManager 9 | { 10 | 11 | private Cache cahce = new DemoCache(); 12 | 13 | @Override 14 | public Cache get(String name) 15 | { 16 | System.out.println("cache名称:" + name); 17 | return cahce; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/event/EventTest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.event; 2 | 3 | import org.junit.Test; 4 | import com.jfireframework.context.JfireContext; 5 | import com.jfireframework.context.JfireContextImpl; 6 | import com.jfireframework.context.event.impl.IoEventPoster; 7 | 8 | public class EventTest 9 | { 10 | @Test 11 | public void test() 12 | { 13 | JfireContext jfireContext = new JfireContextImpl("com.jfireframework.context.test.function.event"); 14 | jfireContext.addBean("com.jfireframework.context.event.impl.EventPosterImpl", false, IoEventPoster.class); 15 | jfireContext.initContext(); 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/event/SmsEvent.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.event; 2 | 3 | import com.jfireframework.eventbus.event.EventConfig; 4 | import com.jfireframework.eventbus.event.ParallelLevel; 5 | 6 | public enum SmsEvent implements EventConfig 7 | { 8 | // 欠费 9 | Arrearage, 10 | // 停机 11 | halt; 12 | 13 | @Override 14 | public ParallelLevel parallelLevel() 15 | { 16 | return ParallelLevel.PAEALLEL; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/event/UserPhone.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.event; 2 | 3 | public class UserPhone 4 | { 5 | private String phone; 6 | 7 | public String getPhone() 8 | { 9 | return phone; 10 | } 11 | 12 | public void setPhone(String phone) 13 | { 14 | this.phone = phone; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/initmethod/Enhance.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.initmethod; 2 | 3 | import javax.annotation.Resource; 4 | import com.jfireframework.context.aop.ProceedPoint; 5 | import com.jfireframework.context.aop.annotation.BeforeEnhance; 6 | import com.jfireframework.context.aop.annotation.EnhanceClass; 7 | 8 | @Resource 9 | @EnhanceClass("com.jfire.*.init*") 10 | public class Enhance 11 | { 12 | @BeforeEnhance("initage()") 13 | public void initage(ProceedPoint point) 14 | { 15 | System.out.println("dads"); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/initmethod/Person2.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.initmethod; 2 | 3 | import javax.annotation.Resource; 4 | 5 | @Resource(name = "p2") 6 | public class Person2 7 | { 8 | private int age; 9 | 10 | public void initage() 11 | { 12 | System.out.println("初始化"); 13 | age = 12; 14 | } 15 | 16 | public int getAge() 17 | { 18 | return age; 19 | } 20 | 21 | public void setAge(int age) 22 | { 23 | this.age = age; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/loader/HolderTest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.loader; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | import com.jfireframework.context.JfireContext; 6 | import com.jfireframework.context.JfireContextImpl; 7 | 8 | public class HolderTest 9 | { 10 | @Test 11 | public void test() 12 | { 13 | JfireContext jfireContext = new JfireContextImpl("com.jfireframework.context.test.function.loader"); 14 | Person person = jfireContext.getBean(Person.class); 15 | Assert.assertEquals("name", person.getName()); 16 | Home home = jfireContext.getBean(Home.class); 17 | Assert.assertEquals(100, home.getLength()); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/loader/Home.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.loader; 2 | 3 | import javax.annotation.Resource; 4 | import com.jfireframework.context.bean.load.LoadBy; 5 | 6 | @Resource 7 | @LoadBy(factoryBeanName = "allLoader") 8 | public interface Home 9 | { 10 | public int getLength(); 11 | } 12 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/loader/Person.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.loader; 2 | 3 | import javax.annotation.Resource; 4 | import com.jfireframework.context.bean.load.LoadBy; 5 | 6 | @Resource 7 | @LoadBy(factoryBeanName = "allLoader") 8 | public interface Person 9 | { 10 | public String getName(); 11 | } 12 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/map/Host.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.map; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | import javax.annotation.Resource; 6 | import com.jfireframework.baseutil.order.Order; 7 | import com.jfireframework.context.bean.annotation.field.MapKey; 8 | 9 | @Resource 10 | public class Host 11 | { 12 | @Resource 13 | @MapKey("getOrder") 14 | private Map map = new HashMap(); 15 | 16 | @Resource 17 | private Map map2 = new HashMap(); 18 | 19 | public Map getMap() 20 | { 21 | return map; 22 | } 23 | 24 | public Map getMap2() 25 | { 26 | return map2; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/map/Order1.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.map; 2 | 3 | import javax.annotation.Resource; 4 | import com.jfireframework.baseutil.order.Order; 5 | 6 | @Resource 7 | public class Order1 implements Order 8 | { 9 | 10 | @Override 11 | public int getOrder() 12 | { 13 | return 1; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-context/src/test/java/com/jfireframework/context/test/function/map/Order2.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.context.test.function.map; 2 | 3 | import javax.annotation.Resource; 4 | import com.jfireframework.baseutil.order.Order; 5 | 6 | @Resource 7 | public class Order2 implements Order 8 | { 9 | 10 | @Override 11 | public int getOrder() 12 | { 13 | return 2; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-context/src/test/resources/config.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "packageNames" : ["com.jfireframework.context.test.function.base"], 4 | "beanConfigs":[ 5 | {"beanName":"com.jfireframework.context.test.function.base.data.ImmutablePerson", 6 | "params":{ 7 | "name":"林斌", 8 | "age":"${age}||25", 9 | "boy":"true" 10 | }} 11 | ] 12 | } -------------------------------------------------------------------------------- /jfire-context/src/test/resources/init.json: -------------------------------------------------------------------------------- 1 | {"beanConfigs": [ 2 | { 3 | "beanName": "p2", 4 | "postConstructMethod":"initage" 5 | } 6 | ]} -------------------------------------------------------------------------------- /jfire-context/src/test/resources/log.properties: -------------------------------------------------------------------------------- 1 | com.jfireframework.context.aop.AopUtil=trace -------------------------------------------------------------------------------- /jfire-context/src/test/resources/propertiestest.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "packageNames": [ 4 | "com.jfireframework.context.test.function.base" 5 | ], 6 | "properties":["classpath:propertiestest.properties"], 7 | "beanConfigs": [ 8 | { 9 | "beanName": "com.jfireframework.context.test.function.base.data.ImmutablePerson", 10 | "params": { 11 | "name": "林斌", 12 | "age": "${age}||25", 13 | "boy": "true" 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /jfire-context/src/test/resources/propertiestest.properties: -------------------------------------------------------------------------------- 1 | age=12 -------------------------------------------------------------------------------- /jfire-data-mongodb/src/main/java/com/jfireframework/data/mongodb/MongoId.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.data.mongodb; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Retention(RetentionPolicy.RUNTIME) 10 | @Inherited 11 | @Target(ElementType.FIELD) 12 | public @interface MongoId 13 | { 14 | /** 15 | * mongodb中的id名称,默认为_id 16 | * 17 | * @return 18 | */ 19 | public String value() default "_id"; 20 | } 21 | -------------------------------------------------------------------------------- /jfire-data-mongodb/src/main/java/com/jfireframework/data/mongodb/MongoIgnore.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.data.mongodb; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Retention(RetentionPolicy.RUNTIME) 10 | @Inherited 11 | @Target(ElementType.FIELD) 12 | public @interface MongoIgnore 13 | { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-data-mongodb/src/main/java/com/jfireframework/data/mongodb/MongoRename.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.data.mongodb; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Inherited 10 | @Target(ElementType.FIELD) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface MongoRename 13 | { 14 | public String value(); 15 | } 16 | -------------------------------------------------------------------------------- /jfire-dbunit/src/main/java/com/jfireframework/dbunit/table/Row.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.dbunit.table; 2 | 3 | 4 | public class Row 5 | { 6 | public String[] data; 7 | 8 | public Row(String[] data) 9 | { 10 | this.data = data; 11 | } 12 | 13 | public String[] getData() 14 | { 15 | return data; 16 | } 17 | 18 | public void setData(String[] data) 19 | { 20 | this.data = data; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /jfire-dbunit/src/main/java/com/jfireframework/dbunit/util/Util.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.dbunit.util; 2 | 3 | public class Util 4 | { 5 | /** 6 | * 返回虚拟机使用内存量的一个估计值,内容为"xxM" 7 | * 8 | * @return 9 | */ 10 | public static String usedMemory() 11 | { 12 | Runtime runtime = Runtime.getRuntime(); 13 | return (runtime.totalMemory() - runtime.freeMemory()) / 1024 / 1024 + "M"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /jfire-dbunit/src/test/java/com/jfireframework/dbunit/schemawork/SchemaContextTest.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.dbunit.schemawork; 2 | 3 | import org.junit.Test; 4 | import com.jfireframework.dbunit.schema.DbUnit; 5 | import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; 6 | 7 | public class SchemaContextTest 8 | { 9 | @Test 10 | public void test() 11 | { 12 | MysqlDataSource dataSource = new MysqlDataSource(); 13 | dataSource.setUrl("jdbc:mysql://localhost:3306/thirdpay"); 14 | dataSource.setUser("root"); 15 | dataSource.setPassword("centerm"); 16 | DbUnit unit = new DbUnit(1, dataSource); 17 | unit.exportExcelWithData(); 18 | unit.importExcelFile(null); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /jfire-dbunit/test.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eric-jfire/jfireframework/3cc7e9513215223075ce7436e463c1fb70ea6b73/jfire-dbunit/test.xlsx -------------------------------------------------------------------------------- /jfire-eventbus/src/main/java/com/jfireframework/eventbus/bus/ManualEventBus.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus.bus; 2 | 3 | public interface ManualEventBus extends EventBus 4 | { 5 | /** 6 | * 新创建一个线程资源 7 | */ 8 | public void createWorker(); 9 | 10 | /** 11 | * 回收一个线程资源 12 | */ 13 | public void recycleWorker(); 14 | } 15 | -------------------------------------------------------------------------------- /jfire-eventbus/src/main/java/com/jfireframework/eventbus/event/EventConfig.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus.event; 2 | 3 | public interface EventConfig 4 | { 5 | public ParallelLevel parallelLevel(); 6 | } 7 | -------------------------------------------------------------------------------- /jfire-eventbus/src/main/java/com/jfireframework/eventbus/event/ParallelLevel.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus.event; 2 | 3 | public enum ParallelLevel 4 | { 5 | /** 6 | * 并行处理 7 | */ 8 | PAEALLEL, // 9 | /** 10 | * 基于id的串行处理。意味着单个事件中,如果是同一个id,则最多只有一个线程在处理 11 | */ 12 | ROWKEY_SERIAL, // 13 | /** 14 | * 事件串行处理。既单个事件最多只有一个线程在处理 15 | */ 16 | EVENT_SERIAL, // 17 | /** 18 | * 事件大类基于id的串行处理。意味着在一个事件类型中,如果是同一个id,则最多只有一个线程在处理 19 | */ 20 | TYPE_ROWKEY_SERIAL, 21 | /** 22 | * 事件大类穿行处理。即不同的事件,但是是一个类型,则最多只有一个线程在处理 23 | */ 24 | TYPE_SERIAL, // 25 | RW_EVENT_READ, // 26 | RW_EVENT_WRITE; 27 | } 28 | -------------------------------------------------------------------------------- /jfire-eventbus/src/main/java/com/jfireframework/eventbus/eventcontext/ReadWriteEventContext.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus.eventcontext; 2 | 3 | import com.jfireframework.eventbus.event.EventConfig; 4 | 5 | public interface ReadWriteEventContext> extends EventContext 6 | { 7 | /** 8 | * 是否直接执行。初始化的时候都是false 9 | * 10 | * @return 11 | */ 12 | public boolean immediateInvoke(); 13 | 14 | public static final int READ = 1; 15 | public static final int WRITE = 2; 16 | 17 | /** 18 | * 1是读取,2是写入 19 | * 20 | * @return 21 | */ 22 | public int mode(); 23 | 24 | public void setImmediateMode(); 25 | } 26 | -------------------------------------------------------------------------------- /jfire-eventbus/src/main/java/com/jfireframework/eventbus/eventcontext/RowEventContext.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus.eventcontext; 2 | 3 | import com.jfireframework.eventbus.event.EventConfig; 4 | 5 | public interface RowEventContext> extends EventContext 6 | { 7 | /** 8 | * 返回一个用于标识本行数据的key 9 | * 10 | * @return 11 | */ 12 | public Object rowkey(); 13 | } 14 | -------------------------------------------------------------------------------- /jfire-eventbus/src/main/java/com/jfireframework/eventbus/eventworker/EventWorker.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus.eventworker; 2 | 3 | public interface EventWorker extends Runnable 4 | { 5 | public void stop(); 6 | } 7 | -------------------------------------------------------------------------------- /jfire-eventbus/src/main/java/com/jfireframework/eventbus/executor/EventHandlerExecutor.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus.executor; 2 | 3 | import com.jfireframework.eventbus.bus.EventBus; 4 | import com.jfireframework.eventbus.eventcontext.EventContext; 5 | 6 | public interface EventHandlerExecutor 7 | { 8 | public void handle(EventContext eventContext, EventBus eventBus); 9 | } 10 | -------------------------------------------------------------------------------- /jfire-eventbus/src/main/java/com/jfireframework/eventbus/handler/EventHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus.handler; 2 | 3 | import com.jfireframework.baseutil.order.Order; 4 | import com.jfireframework.eventbus.bus.EventBus; 5 | import com.jfireframework.eventbus.event.EventConfig; 6 | 7 | public interface EventHandler, E> extends Order 8 | { 9 | /** 10 | * 处理一个事件 11 | * 12 | * @param event 13 | */ 14 | public Object handle(E data, EventBus eventBus); 15 | 16 | public T interest(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /jfire-eventbus/src/test/java/com/jfireframework/eventbus/PoolContext.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus; 2 | 3 | import java.util.LinkedList; 4 | import java.util.List; 5 | import java.util.Queue; 6 | import java.util.concurrent.ConcurrentLinkedQueue; 7 | 8 | public class PoolContext 9 | { 10 | private Queue queue = new LinkedList(); 11 | 12 | public PoolContext(int sum) 13 | { 14 | for (int i = 0; i < sum; i++) 15 | { 16 | queue.add(String.valueOf(i)); 17 | } 18 | } 19 | 20 | public String poll() 21 | { 22 | return queue.poll(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /jfire-eventbus/src/test/java/com/jfireframework/eventbus/Print.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus; 2 | 3 | import com.jfireframework.eventbus.event.EventConfig; 4 | import com.jfireframework.eventbus.event.ParallelLevel; 5 | 6 | public enum Print implements EventConfig 7 | { 8 | one(ParallelLevel.PAEALLEL), single(ParallelLevel.ROWKEY_SERIAL), typeserial1(ParallelLevel.TYPE_SERIAL), typeserial2(ParallelLevel.TYPE_SERIAL), rowtype(ParallelLevel.TYPE_ROWKEY_SERIAL), rowtype2(ParallelLevel.TYPE_ROWKEY_SERIAL); 9 | private final ParallelLevel type; 10 | 11 | private Print(ParallelLevel type) 12 | { 13 | this.type = type; 14 | } 15 | 16 | @Override 17 | public ParallelLevel parallelLevel() 18 | { 19 | return type; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /jfire-eventbus/src/test/java/com/jfireframework/eventbus/PrintHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus; 2 | 3 | import com.jfireframework.eventbus.bus.EventBus; 4 | import com.jfireframework.eventbus.handler.EventHandler; 5 | 6 | public class PrintHandler implements EventHandler 7 | { 8 | 9 | @Override 10 | public int getOrder() 11 | { 12 | return 0; 13 | } 14 | 15 | @Override 16 | public Object handle(String data, EventBus eventBus) 17 | { 18 | System.out.println("打印:" + data); 19 | return null; 20 | } 21 | 22 | @Override 23 | public Print interest() 24 | { 25 | return Print.one; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /jfire-eventbus/src/test/java/com/jfireframework/eventbus/Speed.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus; 2 | 3 | import com.jfireframework.eventbus.event.EventConfig; 4 | import com.jfireframework.eventbus.event.ParallelLevel; 5 | 6 | public enum Speed implements EventConfig 7 | { 8 | speed; 9 | 10 | @Override 11 | public ParallelLevel parallelLevel() 12 | { 13 | return ParallelLevel.ROWKEY_SERIAL; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /jfire-eventbus/src/test/java/com/jfireframework/eventbus/SpeedHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus; 2 | 3 | import com.jfireframework.eventbus.bus.EventBus; 4 | import com.jfireframework.eventbus.handler.EventHandler; 5 | 6 | public class SpeedHandler implements EventHandler 7 | { 8 | 9 | @Override 10 | public int getOrder() 11 | { 12 | // TODO Auto-generated method stub 13 | return 0; 14 | } 15 | 16 | @Override 17 | public Object handle(String value, EventBus eventBus) 18 | { 19 | // PoolContext poolContext = (PoolContext) eventContext.getEventData(); 20 | // String value = poolContext.poll(); 21 | // eventContext.setResult(value); 22 | return value; 23 | } 24 | 25 | @Override 26 | public Speed interest() 27 | { 28 | return Speed.speed; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /jfire-eventbus/src/test/java/com/jfireframework/eventbus/readwrite/ReadWriteEvent.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.eventbus.readwrite; 2 | 3 | import com.jfireframework.eventbus.event.EventConfig; 4 | import com.jfireframework.eventbus.event.ParallelLevel; 5 | 6 | public enum ReadWriteEvent implements EventConfig 7 | { 8 | read(ParallelLevel.RW_EVENT_READ), write(ParallelLevel.RW_EVENT_WRITE); 9 | private final ParallelLevel level; 10 | 11 | private ReadWriteEvent(ParallelLevel level) 12 | { 13 | this.level = level; 14 | } 15 | 16 | @Override 17 | public ParallelLevel parallelLevel() 18 | { 19 | return level; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /jfire-eventbus/src/test/resources/log.properties: -------------------------------------------------------------------------------- 1 | com.jfireframework.eventbus=debug -------------------------------------------------------------------------------- /jfire-jnet2/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eric-jfire/jfireframework/3cc7e9513215223075ce7436e463c1fb70ea6b73/jfire-jnet2/readme.md -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/channel/ChannelInitListener.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.channel; 2 | 3 | public interface ChannelInitListener 4 | { 5 | public void channelInit(JnetChannel jnetChannel); 6 | } 7 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/channel/ClientChannel.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.channel; 2 | 3 | import java.util.concurrent.Future; 4 | 5 | public interface ClientChannel extends JnetChannel 6 | { 7 | public void signal(Object obj); 8 | 9 | public void signalAll(Throwable e); 10 | 11 | public Future addFuture(); 12 | } 13 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/channel/impl/ServerChannel.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.channel.impl; 2 | 3 | import java.nio.channels.AsynchronousSocketChannel; 4 | 5 | public class ServerChannel extends AbstractChannel 6 | { 7 | 8 | public ServerChannel(AsynchronousSocketChannel socketChannel) 9 | { 10 | super(socketChannel); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/decodec/DecodeResultType.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.decodec; 2 | 3 | public enum DecodeResultType 4 | { 5 | NORMAL, NOT_FIT_PROTOCOL, BUF_NOT_ENOUGH, LESS_THAN_PROTOCOL 6 | } 7 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/decodec/FrameDecodec.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.decodec; 2 | 3 | import com.jfireframework.baseutil.collection.buffer.ByteBuf; 4 | import com.jfireframework.jnet2.common.exception.BufNotEnoughException; 5 | import com.jfireframework.jnet2.common.exception.LessThanProtocolException; 6 | import com.jfireframework.jnet2.common.exception.NotFitProtocolException; 7 | 8 | public interface FrameDecodec 9 | { 10 | /** 11 | * 报文解码器。从参数的ByteBuf中分离出来一个完整的报文。该接口的实现对于返回值应该新建一个新的Bytebuf 12 | * 13 | * @param ioBuffer 14 | * @return 15 | * @throws NotFitProtocolException 16 | * @throws BufNotEnoughException 17 | * @throws LessThanProtocolException 18 | */ 19 | public DecodeResult decodec(ByteBuf ioBuffer); 20 | } 21 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/exception/BufNotEnoughException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.exception; 2 | 3 | /** 4 | * 说明当前的buf不足以容纳一个tcp报文,需要增长大小。 5 | * 6 | * @author 林斌 7 | * 8 | */ 9 | public class BufNotEnoughException extends JnetException 10 | { 11 | private int needSize; 12 | 13 | public BufNotEnoughException(int needSize) 14 | { 15 | this.needSize = needSize; 16 | } 17 | 18 | /** 19 | * 20 | */ 21 | private static final long serialVersionUID = 1L; 22 | 23 | /** 24 | * 当前一个完整的报文长度 25 | * 26 | * @return 27 | */ 28 | public int getNeedSize() 29 | { 30 | return needSize; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/exception/EndOfStreamException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.exception; 2 | 3 | public class EndOfStreamException extends JnetException 4 | { 5 | 6 | /** 7 | * 8 | */ 9 | private static final long serialVersionUID = 8037997970885790653L; 10 | public static final EndOfStreamException instance = new EndOfStreamException(); 11 | 12 | private EndOfStreamException() 13 | { 14 | 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/exception/JnetException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.exception; 2 | 3 | public class JnetException extends Exception 4 | { 5 | 6 | /** 7 | * 8 | */ 9 | private static final long serialVersionUID = 1011661639624817862L; 10 | 11 | public JnetException() 12 | { 13 | 14 | } 15 | 16 | public JnetException(String msg) 17 | { 18 | super(msg); 19 | } 20 | 21 | public JnetException(String msg, Throwable e) 22 | { 23 | super(msg, e); 24 | } 25 | 26 | /** 27 | * 覆盖原有的jdk方法,不再重新填充堆栈信息,这样就保证了性能 28 | */ 29 | public Throwable fillInStackTrace() 30 | { 31 | return this; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/exception/LessThanProtocolException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.exception; 2 | 3 | /** 4 | * 读取的长度不满足一个报文协议长度 5 | * 6 | * @author eric(eric@jfire.cn) 7 | * 8 | */ 9 | public class LessThanProtocolException extends JnetException 10 | { 11 | 12 | /** 13 | * 14 | */ 15 | private static final long serialVersionUID = 4785438471276493258L; 16 | public static final LessThanProtocolException instance = new LessThanProtocolException(); 17 | 18 | private LessThanProtocolException() 19 | { 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/exception/NotFitProtocolException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.exception; 2 | 3 | /** 4 | * 表明读取的数据不符合报文协议 5 | * 6 | * @author 林斌 7 | * 8 | */ 9 | public class NotFitProtocolException extends JnetException 10 | { 11 | 12 | /** 13 | * 14 | */ 15 | private static final long serialVersionUID = -246003536673386746L; 16 | public static final NotFitProtocolException instance = new NotFitProtocolException(); 17 | 18 | private NotFitProtocolException() 19 | { 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/exception/SelfCloseException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.exception; 2 | 3 | /** 4 | * 如果程序自己关闭连接并没有什么异常的时候,就选择这个异常 5 | * 6 | * @author eric(eric@jfire.cn) 7 | * 8 | */ 9 | public class SelfCloseException extends JnetException 10 | { 11 | 12 | /** 13 | * 14 | */ 15 | private static final long serialVersionUID = -5549905347605918610L; 16 | 17 | public SelfCloseException() 18 | { 19 | super("代码己关闭了连接"); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/exception/TimeoutException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.exception; 2 | 3 | public class TimeoutException extends JnetException 4 | { 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = -1286997209432696734L; 9 | 10 | public TimeoutException(long timeout) 11 | { 12 | super("等待服务器返回结果超时,当前客户端设置超时时间为" + timeout + "毫秒"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/handler/DataHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.handler; 2 | 3 | import com.jfireframework.jnet2.common.result.InternalResult; 4 | 5 | public interface DataHandler 6 | { 7 | public final Object skipToWorkRing = new Object(); 8 | 9 | /** 10 | * 对传递过来的数据做处理。并且将处理完成的结果返回。后续的处理器会继续处理这个对象 11 | * 12 | * @param data 13 | * @param entry 14 | * @throws Throwable 如果方法抛出了异常,则首先会执行捕获异常的动作。然后关闭该通道 15 | */ 16 | public Object handle(Object data, InternalResult result) throws Throwable; 17 | 18 | /** 19 | * 通道发生异常是,处理链上的该方法会被调用 20 | * 21 | * @param data 22 | * @param result 23 | * @return 24 | */ 25 | public Object catchException(Object data, InternalResult result); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/common/util/BytebufReleaseCallback.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.common.util; 2 | 3 | import com.jfireframework.baseutil.collection.buffer.ByteBuf; 4 | import com.jfireframework.baseutil.resource.ResourceCloseCallback; 5 | 6 | public class BytebufReleaseCallback implements ResourceCloseCallback> 7 | { 8 | public static final BytebufReleaseCallback instance = new BytebufReleaseCallback(); 9 | 10 | private BytebufReleaseCallback() 11 | { 12 | } 13 | 14 | @Override 15 | public void onClose(ByteBuf buf) 16 | { 17 | buf.release(); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/CompletionHandler/AcceptHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.CompletionHandler; 2 | 3 | import java.nio.channels.AsynchronousSocketChannel; 4 | import java.nio.channels.CompletionHandler; 5 | 6 | public interface AcceptHandler extends CompletionHandler 7 | { 8 | /** 9 | * 停止接入 10 | */ 11 | public void stop(); 12 | } 13 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/CompletionHandler/WeaponReadHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.CompletionHandler; 2 | 3 | import java.nio.channels.CompletionHandler; 4 | import com.jfireframework.jnet2.common.channel.impl.ServerChannel; 5 | 6 | public interface WeaponReadHandler extends CompletionHandler 7 | { 8 | 9 | /** 10 | * 通知读取处理器,有空余的空间可以存储读取的数据。让处理器执行读取动作。 11 | * 注意:该方法必须为异步方法 12 | */ 13 | public void notifyRead(); 14 | 15 | /** 16 | * 读取处理器开始读取并且等待数据到达 17 | */ 18 | public void readAndWait(); 19 | 20 | public void catchThrowable(Throwable e); 21 | } 22 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/CompletionHandler/WeaponWriteHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.CompletionHandler; 2 | 3 | import java.nio.channels.CompletionHandler; 4 | import com.jfireframework.baseutil.collection.buffer.ByteBuf; 5 | 6 | public interface WeaponWriteHandler extends CompletionHandler> 7 | { 8 | 9 | /** 10 | * 将一个数据发送给写出处理器执行写出动作 11 | * 12 | * @param buf 13 | */ 14 | public void write(ByteBuf buf); 15 | 16 | /** 17 | * 供用户主动推送一个消息给客户端 18 | * 19 | * @param buf 20 | */ 21 | public void push(ByteBuf buf); 22 | } 23 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/CompletionHandler/weapon/capacity/common/BufHolder.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.CompletionHandler.weapon.capacity.common; 2 | 3 | import com.jfireframework.baseutil.collection.buffer.ByteBuf; 4 | 5 | public final class BufHolder 6 | { 7 | private volatile ByteBuf buf; 8 | 9 | public ByteBuf getBuf() 10 | { 11 | return buf; 12 | } 13 | 14 | public void setBuf(ByteBuf buf) 15 | { 16 | this.buf = buf; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/CompletionHandler/weapon/capacity/sync/CapacityReadHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.CompletionHandler.weapon.capacity.sync; 2 | 3 | import java.nio.channels.CompletionHandler; 4 | import com.jfireframework.jnet2.common.channel.impl.ServerChannel; 5 | 6 | public interface CapacityReadHandler extends CompletionHandler 7 | { 8 | /** 9 | * 通知读取处理器,有空余的空间可以存储读取的数据。让处理器执行读取动作。 10 | * 注意:该方法必须为异步方法 11 | */ 12 | public void notifyRead(); 13 | 14 | /** 15 | * 读取处理器开始读取并且等待数据到达 16 | */ 17 | public void readAndWait(); 18 | 19 | public void catchThrowable(Throwable e); 20 | 21 | public long cursor(); 22 | } 23 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/CompletionHandler/weapon/single/SingleReadHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.CompletionHandler.weapon.single; 2 | 3 | import java.nio.channels.CompletionHandler; 4 | import com.jfireframework.jnet2.common.channel.impl.ServerChannel; 5 | 6 | public interface SingleReadHandler extends CompletionHandler 7 | { 8 | /** 9 | * 通知读取处理器,有空余的空间可以存储读取的数据。让处理器执行读取动作。 10 | * 注意:该方法必须为异步方法 11 | */ 12 | public void notifyRead(); 13 | 14 | /** 15 | * 读取处理器开始读取并且等待数据到达 16 | */ 17 | public void readAndWait(); 18 | 19 | public void catchThrowable(Throwable e); 20 | } 21 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/CompletionHandler/weapon/single/read/async/AsyncReadHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.CompletionHandler.weapon.single.read.async; 2 | 3 | public interface AsyncReadHandler 4 | { 5 | public void asyncHandle(); 6 | } 7 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/CompletionHandler/weapon/single/read/async/event/Message.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.CompletionHandler.weapon.single.read.async.event; 2 | 3 | import com.jfireframework.eventbus.event.EventConfig; 4 | import com.jfireframework.eventbus.event.ParallelLevel; 5 | 6 | public enum Message implements EventConfig 7 | { 8 | recive; 9 | 10 | @Override 11 | public ParallelLevel parallelLevel() 12 | { 13 | return ParallelLevel.PAEALLEL; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/util/AcceptMode.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.util; 2 | 3 | public enum AcceptMode 4 | { 5 | SINGLE, // 6 | CAPACITY 7 | 8 | } 9 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/util/DisruptorWaitMode.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.util; 2 | 3 | public enum DisruptorWaitMode 4 | { 5 | BLOCK, PARK; 6 | } 7 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/util/ExecutorMode.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.util; 2 | 3 | public enum ExecutorMode 4 | { 5 | FIX,CACHED 6 | } 7 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/util/PushMode.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.util; 2 | 3 | public enum PushMode 4 | { 5 | OFF, ON 6 | } 7 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/util/WorkMode.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.util; 2 | 3 | public enum WorkMode 4 | { 5 | SYNC, ASYNC 6 | } 7 | -------------------------------------------------------------------------------- /jfire-jnet2/src/main/java/com/jfireframework/jnet2/server/util/WriteMode.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.jnet2.server.util; 2 | 3 | public enum WriteMode 4 | { 5 | // 单次写这种适合客户端要和服务器一问一答的形式。并且客户端需要根据服务器的反馈来进行下一次发出。这种情况下,是不会存在批量写的问题。因为没有批量的数据要处理 6 | SINGLE_WRITE, 7 | // 如果客户端可以持续不断的向服务端发送消息,则适合批量写出这种模式 8 | BATCH_WRITE; 9 | } 10 | -------------------------------------------------------------------------------- /jfire-jnet2/src/test/java/com/jfireframework/socket/test/Demo.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.socket.test; 2 | 3 | import com.jfireframework.baseutil.StringUtil; 4 | import com.jfireframework.baseutil.collection.buffer.ByteBuf; 5 | import com.jfireframework.baseutil.collection.buffer.HeapByteBuf; 6 | 7 | public class Demo 8 | { 9 | public static void main(String[] args) 10 | { 11 | ByteBuf buf = HeapByteBuf.allocate(100); 12 | buf.writeString("你好,这里是客户端"); 13 | System.out.println(buf.writeIndex()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /jfire-jnet2/src/test/java/com/jfireframework/socket/test/EchoHandler2.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.socket.test; 2 | 3 | import com.jfireframework.jnet2.common.exception.JnetException; 4 | import com.jfireframework.jnet2.common.handler.DataHandler; 5 | import com.jfireframework.jnet2.common.result.InternalResult; 6 | 7 | public class EchoHandler2 implements DataHandler 8 | { 9 | 10 | @Override 11 | public Object handle(Object data, InternalResult result) throws JnetException 12 | { 13 | return data; 14 | } 15 | 16 | @Override 17 | public Object catchException(Object data, InternalResult result) 18 | { 19 | // TODO Auto-generated method stub 20 | return null; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /jfire-jnet2/src/test/java/com/jfireframework/socket/test/MainServer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.socket.test; 2 | 3 | import com.jfireframework.jnet2.server.AioServer; 4 | import com.jfireframework.jnet2.server.util.ServerConfig; 5 | import com.jfireframework.jnet2.server.util.WorkMode; 6 | 7 | public class MainServer 8 | { 9 | public static void main(String[] args) 10 | { 11 | ServerConfig config = new ServerConfig(); 12 | // 服务端监听的端口 13 | config.setPort(81); 14 | config.setWorkMode(WorkMode.ASYNC); 15 | config.setInitListener(new myInitListener()); 16 | // 设置包解码器。包解码器用来从tcp的数据流中截取出一个完整的tcp报文 17 | // 这个解码器是行解码器。使用换行符进行报文切割 18 | // 当然,开发者也可以根据自己的业务需求,自行定制包解码器。框架本身提供了4种最为常见的包解码器。 19 | // 使用上面的配置新建一个服务端对象 20 | AioServer aioServer = new AioServer(config); 21 | // 启动服务端 22 | aioServer.start(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /jfire-jnet2/src/test/resources/log.properties: -------------------------------------------------------------------------------- 1 | com.jfireframework.jnet=trace 2 | com.jfireframework.socket=debug 3 | -------------------------------------------------------------------------------- /jfire-licp/src/main/java/com/jfireframework/licp/LicpIgnore.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.licp; 2 | 3 | import java.lang.annotation.Inherited; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | @Retention(RetentionPolicy.RUNTIME) 8 | @Inherited 9 | public @interface LicpIgnore 10 | { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /jfire-licp/src/main/java/com/jfireframework/licp/field/CacheField.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.licp.field; 2 | 3 | import java.nio.ByteBuffer; 4 | import com.jfireframework.baseutil.collection.buffer.ByteBuf; 5 | import com.jfireframework.licp.Licp; 6 | 7 | public interface CacheField 8 | { 9 | public String getName(); 10 | 11 | public void write(Object holder, ByteBuf buf, Licp licp); 12 | 13 | public void read(Object holder, ByteBuf buf, Licp licp); 14 | 15 | public void read(Object holder, ByteBuffer buf, Licp licp); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /jfire-licp/src/main/java/com/jfireframework/licp/util/IntUtil.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.licp.util; 2 | 3 | public class IntUtil 4 | { 5 | /** 6 | * 将一个int进行zigzag编码 7 | * 8 | * @param value 9 | * @return 10 | */ 11 | public static final int zig(int value) 12 | { 13 | return (value << 1) ^ (value >> 31); 14 | } 15 | 16 | /** 17 | * 将一个int进行zigzag解码 18 | * 19 | * @param value 20 | * @return 21 | */ 22 | public static final int zag(int value) 23 | { 24 | return ((value >>> 1) ^ -(value & 1)); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /jfire-licp/src/test/java/com/jframework/licp/test/basetest/IntUtilTest.java: -------------------------------------------------------------------------------- 1 | package com.jframework.licp.test.basetest; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | import com.jfireframework.licp.util.IntUtil; 6 | 7 | public class IntUtilTest 8 | { 9 | @Test 10 | public void test() 11 | { 12 | for (int i = Short.MIN_VALUE; i <= Short.MAX_VALUE; i++) 13 | { 14 | Assert.assertEquals(i, IntUtil.zag(IntUtil.zig(i))); 15 | } 16 | } 17 | 18 | @Test 19 | public void charTest() 20 | { 21 | int i = 'a'; 22 | System.out.println(i); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /jfire-licp/src/test/java/com/jframework/licp/test/basetest/data/ArrayData.java: -------------------------------------------------------------------------------- 1 | package com.jframework.licp.test.basetest.data; 2 | 3 | public class ArrayData 4 | { 5 | private Object j1 = new int[] { 1, 2, 4, 5 }; 6 | private Object k1 = new boolean[] { true, false, true, false, false, false, true }; 7 | private Object l1 = new char[] { 'a', 'v', 'q', 'j', 'h', 'e', 'f' }; 8 | private Object m1 = new byte[] { 0x32, 0x12, 0x34, (byte) 0x96 }; 9 | private Object n1 = new short[] { 3, 8, 213, 451, 312, 45 }; 10 | private Object o1 = new long[] { 12313131313l, 524141431313l, 3131231231425l, 1313123121l }; 11 | private Object p1 = new double[] { 6468613646.48646d, 4646.456d, 546864648867.466d }; 12 | private Object q1 = new float[] { 46486.2f, 49849.2f, 646854.6f }; 13 | private Object r1 = new String[] { "adasdasdasd", "dsadq2eafsa" }; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/annotation/Controller.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | import javax.annotation.Resource; 9 | import com.jfireframework.context.aliasanno.AliasFor; 10 | 11 | /** 12 | * 代表注解类是一个action类 13 | * 14 | * @author 林斌(windfire@zailanghua.com) 15 | * 16 | */ 17 | @Target(ElementType.TYPE) 18 | @Retention(RetentionPolicy.RUNTIME) 19 | @Inherited 20 | @Resource(shareable = true) 21 | public @interface Controller 22 | { 23 | /** 24 | * 包的整体请求路径前缀,默认不填写的话为类的简单名称 25 | * 26 | * @return 27 | */ 28 | @AliasFor(annotation = Resource.class, value = "name") 29 | public String value() default ""; 30 | } 31 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/annotation/CookieValue.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target(ElementType.PARAMETER) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Inherited 12 | public @interface CookieValue 13 | { 14 | /** 15 | * cookie的名称 16 | * 17 | * @return 18 | */ 19 | public String value() default ""; 20 | 21 | /** 22 | * 如果该cookie不存在,返回一个默认的值 23 | * 24 | * @return 25 | */ 26 | public String defaultValue() default ""; 27 | } 28 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/annotation/Document.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * 该注解用来存放某一个方法被提取出来的说明文字 11 | * 12 | * @author linbin 13 | * 14 | */ 15 | @Target(ElementType.METHOD) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Inherited 18 | public @interface Document 19 | { 20 | public String value(); 21 | } 22 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/annotation/HeaderValue.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target(ElementType.PARAMETER) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Inherited 12 | public @interface HeaderValue 13 | { 14 | /** 15 | * header的名称,如果不填写默认为参数名字 16 | * 17 | * @return 18 | */ 19 | public String value() default ""; 20 | 21 | /* 22 | * 如果该header不存在的时候给予一个默认值 23 | */ 24 | public String defaultValue() default ""; 25 | } 26 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/annotation/MvcDateParse.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * 这个注解表明将使用对应的格式转换来完成字符串到属性的转换 11 | * 12 | * @author 林斌 13 | * 14 | */ 15 | @Target({ ElementType.FIELD, ElementType.PARAMETER }) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Inherited 18 | public @interface MvcDateParse 19 | { 20 | /** 21 | * 日期的转换格式 22 | * 23 | * @return 24 | */ 25 | public String date_format() default "yyyy-MM-dd HH:mm:ss"; 26 | } 27 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/annotation/MvcIgnore.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * 这个注解表示对属性进行忽略 11 | * 12 | * @author 林斌 13 | * 14 | */ 15 | @Target(ElementType.FIELD) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Inherited 18 | public @interface MvcIgnore 19 | { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/annotation/MvcRename.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * 这个注解表示对属性名称进行重命名工作 11 | * 12 | * @author 林斌 13 | * 14 | */ 15 | @Target(ElementType.FIELD) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Inherited 18 | public @interface MvcRename 19 | { 20 | public String value(); 21 | } 22 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/annotation/RequestParam.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * 方法从http请求中获取的参数 11 | * 12 | * @author 林斌(windfire@zailanghua.com) 13 | * 14 | */ 15 | @Target(ElementType.PARAMETER) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Inherited 18 | public @interface RequestParam 19 | { 20 | /** 该属性的名称 */ 21 | public String value(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/binder/DataBinder.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.binder; 2 | 3 | import javax.servlet.http.HttpServletRequest; 4 | import javax.servlet.http.HttpServletResponse; 5 | import com.jfireframework.mvc.binder.node.TreeValueNode; 6 | 7 | public interface DataBinder 8 | { 9 | /** 10 | * 执行参数绑定动作,可以提取的参数从三个地方而来,request和response,以及其中提取的信息转变而来的treevaluenode 11 | * 12 | * @param request 13 | * @param treeValueNode 14 | * @param response 15 | * @return 16 | */ 17 | public Object bind(HttpServletRequest request, TreeValueNode treeValueNode, HttpServletResponse response); 18 | 19 | /** 20 | * 该参数的名称 21 | * 22 | * @return 23 | */ 24 | public String getParamName(); 25 | } 26 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/binder/field/BinderField.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.binder.field; 2 | 3 | import javax.servlet.http.HttpServletRequest; 4 | import javax.servlet.http.HttpServletResponse; 5 | import com.jfireframework.mvc.binder.node.ParamNode; 6 | 7 | public interface BinderField 8 | { 9 | /** 10 | * 从参数结点中提取信息设置该属性的值。该参数结点不为null 11 | * 12 | * @param request 13 | * @param response 14 | * @param node 15 | * @param entity 16 | */ 17 | public void setValue(HttpServletRequest request, HttpServletResponse response, ParamNode node, Object entity); 18 | 19 | public String getName(); 20 | } 21 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/binder/field/NopField.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.binder.field; 2 | 3 | import java.lang.reflect.Field; 4 | import javax.servlet.http.HttpServletRequest; 5 | import javax.servlet.http.HttpServletResponse; 6 | import com.jfireframework.mvc.binder.node.ParamNode; 7 | 8 | public class NopField extends AbstractBinderField 9 | { 10 | 11 | public NopField(Field field) 12 | { 13 | super(field); 14 | } 15 | 16 | @Override 17 | public void setValue(HttpServletRequest request, HttpServletResponse response, ParamNode node, Object entity) 18 | { 19 | ; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/binder/node/ArrayNode.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.binder.node; 2 | 3 | import java.util.ArrayList; 4 | 5 | public class ArrayNode implements ParamNode 6 | { 7 | private ArrayList array = new ArrayList(); 8 | 9 | public void add(String value) 10 | { 11 | array.add(value); 12 | } 13 | 14 | public ArrayList getArray() 15 | { 16 | return array; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/binder/node/ParamNode.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.binder.node; 2 | 3 | public interface ParamNode 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/binder/node/StringValueNode.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.binder.node; 2 | 3 | public class StringValueNode implements ParamNode 4 | { 5 | private final String value; 6 | 7 | public StringValueNode(String value) 8 | { 9 | this.value = value; 10 | } 11 | 12 | public String getValue() 13 | { 14 | return value; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/binder/transfer/Transfer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.binder.transfer; 2 | 3 | public interface Transfer 4 | { 5 | public T trans(String value); 6 | } 7 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/config/ContentType.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.config; 2 | 3 | public interface ContentType 4 | { 5 | public static final String JPG = "image/jpeg"; 6 | public static final String HTML = "text/html"; 7 | public static final String JSON = "application/Json"; 8 | public static final String STREAM = "application/octet-stream"; 9 | } 10 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/config/RequestMethod.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.config; 2 | 3 | public enum RequestMethod 4 | { 5 | GET, POST, PUT, DELETE 6 | } 7 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/config/ResultType.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.config; 2 | 3 | public enum ResultType 4 | { 5 | Json, Beetl, Jsp, Html, Redirect, None, String, Bytes, Class_Head; 6 | } 7 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/core/action/ActionInitListener.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.core.action; 2 | 3 | public interface ActionInitListener 4 | { 5 | /** 6 | * 该方法在action被初始化完成后调用 7 | */ 8 | public void init(Action action); 9 | } 10 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/core/resource/NoneResourcesHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.core.resource; 2 | 3 | import javax.servlet.http.HttpServletRequest; 4 | import javax.servlet.http.HttpServletResponse; 5 | 6 | public class NoneResourcesHandler implements ResourcesHandler 7 | { 8 | 9 | @Override 10 | public boolean handle(HttpServletRequest request, HttpServletResponse response) 11 | { 12 | return false; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/core/resource/ResourcesHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.core.resource; 2 | 3 | import javax.servlet.http.HttpServletRequest; 4 | import javax.servlet.http.HttpServletResponse; 5 | 6 | public interface ResourcesHandler 7 | { 8 | /** 9 | * 进行静态资源的处理,如果没有的话,返回false 10 | * 11 | * @param request 12 | * @param response 13 | * @return 14 | */ 15 | public boolean handle(HttpServletRequest request, HttpServletResponse response); 16 | } 17 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/viewrender/ViewRender.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.viewrender; 2 | 3 | import javax.servlet.http.HttpServletRequest; 4 | import javax.servlet.http.HttpServletResponse; 5 | 6 | public interface ViewRender 7 | { 8 | /** 9 | * 对视图进行渲染 10 | */ 11 | public void render(HttpServletRequest request, HttpServletResponse response, Object result) throws Throwable; 12 | } 13 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/viewrender/impl/BytesRender.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.viewrender.impl; 2 | 3 | import javax.annotation.Resource; 4 | import javax.servlet.http.HttpServletRequest; 5 | import javax.servlet.http.HttpServletResponse; 6 | import com.jfireframework.mvc.viewrender.ViewRender; 7 | 8 | @Resource 9 | public class BytesRender implements ViewRender 10 | { 11 | @Override 12 | public void render(HttpServletRequest request, HttpServletResponse response, Object result) throws Throwable 13 | { 14 | response.getOutputStream().write((byte[]) result); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/viewrender/impl/NoneRender.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.viewrender.impl; 2 | 3 | import javax.annotation.Resource; 4 | import javax.servlet.http.HttpServletRequest; 5 | import javax.servlet.http.HttpServletResponse; 6 | import com.jfireframework.mvc.viewrender.ViewRender; 7 | 8 | @Resource 9 | public class NoneRender implements ViewRender 10 | { 11 | @Override 12 | public void render(HttpServletRequest request, HttpServletResponse response, Object result) throws Throwable 13 | { 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/viewrender/impl/RedirectRender.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.viewrender.impl; 2 | 3 | import javax.annotation.Resource; 4 | import javax.servlet.http.HttpServletRequest; 5 | import javax.servlet.http.HttpServletResponse; 6 | import com.jfireframework.mvc.viewrender.ViewRender; 7 | 8 | @Resource 9 | public class RedirectRender implements ViewRender 10 | { 11 | 12 | @Override 13 | public void render(HttpServletRequest request, HttpServletResponse response, Object result) throws Throwable 14 | { 15 | response.sendRedirect((String) result); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /jfire-mvc/src/main/java/com/jfireframework/mvc/viewrender/impl/StringRender.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.viewrender.impl; 2 | 3 | import java.nio.charset.Charset; 4 | import javax.annotation.Resource; 5 | import javax.servlet.http.HttpServletRequest; 6 | import javax.servlet.http.HttpServletResponse; 7 | import com.jfireframework.mvc.viewrender.ViewRender; 8 | 9 | @Resource 10 | public class StringRender implements ViewRender 11 | { 12 | @Resource 13 | private Charset charset; 14 | 15 | @Override 16 | public void render(HttpServletRequest request, HttpServletResponse response, Object result) throws Throwable 17 | { 18 | response.getOutputStream().write(((String) result).getBytes(charset)); 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jfire-mvc/src/test/java/com/jfireframework/mvc/vo/Desk.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.mvc.vo; 2 | 3 | public class Desk 4 | { 5 | private String name; 6 | private int width; 7 | private length l; 8 | 9 | public length getL() 10 | { 11 | return l; 12 | } 13 | 14 | public void setL(length l) 15 | { 16 | this.l = l; 17 | } 18 | 19 | public static enum length 20 | { 21 | LONG, SHORT; 22 | } 23 | 24 | public String getName() 25 | { 26 | return name; 27 | } 28 | 29 | public void setName(String name) 30 | { 31 | this.name = name; 32 | } 33 | 34 | public int getWidth() 35 | { 36 | return width; 37 | } 38 | 39 | public void setWidth(int width) 40 | { 41 | this.width = width; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /jfire-mvc/src/test/resources/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | Archetype Created Web Application 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /jfire-rpc/ReadMe.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eric-jfire/jfireframework/3cc7e9513215223075ce7436e463c1fb70ea6b73/jfire-rpc/ReadMe.md -------------------------------------------------------------------------------- /jfire-rpc/src/main/java/com/jfireframework/rpc/annotation/MethodName.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.rpc.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(value = { ElementType.METHOD }) 10 | public @interface MethodName 11 | { 12 | /** 13 | * 代表远程调用时的方法名称 14 | * 15 | * @return 16 | */ 17 | public String value(); 18 | } 19 | -------------------------------------------------------------------------------- /jfire-rpc/src/main/java/com/jfireframework/rpc/annotation/ProxyName.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.rpc.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(value = { ElementType.METHOD }) 10 | public @interface ProxyName 11 | { 12 | /** 13 | * 代表远端调用的时候的代理名称 14 | * 15 | * @return 16 | */ 17 | public String value(); 18 | } 19 | -------------------------------------------------------------------------------- /jfire-rpc/src/main/java/com/jfireframework/rpc/client/CloseConnect.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.rpc.client; 2 | 3 | public interface CloseConnect 4 | { 5 | /** 6 | * 主动关闭当前使用的socket链接 7 | * 8 | * @author windfire(windfire@zailanghua.com) 9 | */ 10 | public void closeConnect(); 11 | } 12 | -------------------------------------------------------------------------------- /jfire-rpc/src/main/java/com/jfireframework/rpc/exception/InvokeException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.rpc.exception; 2 | 3 | public class InvokeException extends LbrcException 4 | { 5 | 6 | /** 7 | * 8 | */ 9 | private static final long serialVersionUID = 2837996250964523824L; 10 | 11 | public InvokeException(String msg, Throwable e) 12 | { 13 | super(msg, e); 14 | } 15 | 16 | public InvokeException(String string) 17 | { 18 | super(string); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /jfire-rpc/src/main/java/com/jfireframework/rpc/exception/LbrcException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.rpc.exception; 2 | 3 | public class LbrcException extends RuntimeException 4 | { 5 | protected String msg = null; 6 | /** 7 | * 8 | */ 9 | private static final long serialVersionUID = 8918888704235432212L; 10 | 11 | public LbrcException(String msg, Throwable e) 12 | { 13 | super(msg, e); 14 | this.msg = msg; 15 | } 16 | 17 | public LbrcException(Throwable e) 18 | { 19 | super(e); 20 | msg = e.getMessage(); 21 | } 22 | 23 | public LbrcException(String msg) 24 | { 25 | super(msg); 26 | this.msg = msg; 27 | } 28 | 29 | public String toString() 30 | { 31 | return msg; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /jfire-rpc/src/main/java/com/jfireframework/rpc/exception/NoSuchMethodException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.rpc.exception; 2 | 3 | public class NoSuchMethodException extends RuntimeException 4 | { 5 | /** 6 | * 7 | */ 8 | private static final long serialVersionUID = -2300880187419948816L; 9 | 10 | public NoSuchMethodException(String methodName) 11 | { 12 | super("不存在" + methodName + "这样的方法,请检查调用程序是否拼写错误"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /jfire-rpc/src/main/java/com/jfireframework/rpc/exception/NoSuchProxyException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.rpc.exception; 2 | 3 | public class NoSuchProxyException extends LbrcException 4 | { 5 | 6 | /** 7 | * 8 | */ 9 | private static final long serialVersionUID = 4128404531600649547L; 10 | 11 | public NoSuchProxyException(String msg) 12 | { 13 | super("代理:"+msg+" 不存在"); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-rpc/src/main/java/com/jfireframework/rpc/exception/PortOutOfRangeException.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.rpc.exception; 2 | 3 | public class PortOutOfRangeException extends LbrcException 4 | { 5 | 6 | /** 7 | * 8 | */ 9 | private static final long serialVersionUID = -4913269738376822883L; 10 | 11 | public PortOutOfRangeException(String msg, Throwable e) 12 | { 13 | super(msg, e); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /jfire-rpc/src/main/java/com/jfireframework/rpc/server/RcConfig.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.rpc.server; 2 | 3 | import java.util.Map; 4 | import com.jfireframework.jnet.server.util.ServerConfig; 5 | 6 | public class RcConfig extends ServerConfig 7 | { 8 | private Map implMap; 9 | private int maxLength = Integer.MAX_VALUE; 10 | 11 | public int getMaxLength() 12 | { 13 | return maxLength; 14 | } 15 | 16 | public void setMaxLength(int maxLength) 17 | { 18 | this.maxLength = maxLength; 19 | } 20 | 21 | public Map getImplMap() 22 | { 23 | return implMap; 24 | } 25 | 26 | public void setImplMap(Map implMap) 27 | { 28 | this.implMap = implMap; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /jfire-rpc/src/test/java/link/jfire/simplerpc/Print.java: -------------------------------------------------------------------------------- 1 | package link.jfire.simplerpc; 2 | 3 | import link.jfire.simplerpc.data.ComplexOPbject; 4 | 5 | public interface Print 6 | { 7 | public void methodWithoutReturn(String param); 8 | 9 | public void par(String[][] ps); 10 | 11 | public String methodWithReturn(String param); 12 | 13 | public Object[] returnComplexOPbject(ComplexOPbject complexOPbject); 14 | } 15 | -------------------------------------------------------------------------------- /jfire-rpc/src/test/java/link/jfire/simplerpc/Print2.java: -------------------------------------------------------------------------------- 1 | package link.jfire.simplerpc; 2 | 3 | public interface Print2 4 | { 5 | public void methodNotExist(); 6 | } 7 | -------------------------------------------------------------------------------- /jfire-rpc/src/test/resources/log.properties: -------------------------------------------------------------------------------- 1 | link.jfire.socket=debug 2 | link.jfire.simplerpc=debug -------------------------------------------------------------------------------- /jfire-schedule/src/main/java/com/jfireframework/schedule/handler/ExpireHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.schedule.handler; 2 | 3 | import com.jfireframework.schedule.trigger.Trigger; 4 | 5 | public interface ExpireHandler 6 | { 7 | public void expire(Trigger trigger); 8 | } 9 | -------------------------------------------------------------------------------- /jfire-schedule/src/main/java/com/jfireframework/schedule/handler/impl/SimpleExpireHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.schedule.handler.impl; 2 | 3 | import com.jfireframework.schedule.handler.ExpireHandler; 4 | import com.jfireframework.schedule.trigger.Trigger; 5 | 6 | public class SimpleExpireHandler implements ExpireHandler 7 | { 8 | 9 | @Override 10 | public void expire(Trigger trigger) 11 | { 12 | if (trigger.isCanceled() == false) 13 | { 14 | trigger.timetask().invoke(); 15 | } 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /jfire-schedule/src/main/java/com/jfireframework/schedule/task/Timetask.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.schedule.task; 2 | 3 | public interface Timetask 4 | { 5 | public void invoke(); 6 | } 7 | -------------------------------------------------------------------------------- /jfire-schedule/src/main/java/com/jfireframework/schedule/timer/Timer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.schedule.timer; 2 | 3 | import com.jfireframework.schedule.trigger.Trigger; 4 | 5 | public interface Timer extends Runnable 6 | { 7 | public void add(Trigger trigger); 8 | 9 | /** 10 | * 返回当前时间。该时间是当前时间减去类初始化的一个间隔时间。以纳秒表示。 11 | * 12 | * @return 13 | */ 14 | public long currentTime(); 15 | 16 | /** 17 | * 结束这个timer计时器。结束之后该timer不能再被使用 18 | */ 19 | public void stop(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /jfire-schedule/src/main/java/com/jfireframework/schedule/timer/bucket/Bucket.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.schedule.timer.bucket; 2 | 3 | import com.jfireframework.schedule.trigger.Trigger; 4 | 5 | public interface Bucket 6 | { 7 | void add(Trigger trigger); 8 | 9 | void expire(); 10 | } 11 | -------------------------------------------------------------------------------- /jfire-schedule/src/main/java/com/jfireframework/schedule/trigger/Trigger.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.schedule.trigger; 2 | 3 | import com.jfireframework.schedule.task.Timetask; 4 | 5 | public interface Trigger 6 | { 7 | 8 | /** 9 | * 取消该触发器 10 | */ 11 | public void cancel(); 12 | 13 | /** 14 | * 该触发器是否已经取消 15 | * 16 | * @return 17 | */ 18 | public boolean isCanceled(); 19 | 20 | public Timetask timetask(); 21 | 22 | /** 23 | * 类似与System.currentTimeMillis()的定义。表示下一次触发的时间.如果为负数。意味着该触发器已经结束生命周期 24 | * 25 | * @return 26 | */ 27 | public long deadline(); 28 | 29 | public void calNext(); 30 | } 31 | -------------------------------------------------------------------------------- /jfire-schedule/src/main/java/com/jfireframework/schedule/trigger/impl/RepeatDelayTrigger.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.schedule.trigger.impl; 2 | 3 | import java.util.concurrent.TimeUnit; 4 | import com.jfireframework.schedule.task.Timetask; 5 | 6 | public class RepeatDelayTrigger extends BaseTrigger 7 | { 8 | private final long delay; 9 | 10 | public RepeatDelayTrigger(Timetask timetask, long delay, TimeUnit unit) 11 | { 12 | super(timetask); 13 | this.delay = unit.toMillis(delay); 14 | calNext(); 15 | } 16 | 17 | @Override 18 | public long deadline() 19 | { 20 | return deadline; 21 | } 22 | 23 | @Override 24 | public void calNext() 25 | { 26 | deadline = System.currentTimeMillis() + delay; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /jfire-schedule/src/main/java/com/jfireframework/schedule/trigger/impl/SimpleDelayTrigger.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.schedule.trigger.impl; 2 | 3 | import java.util.concurrent.TimeUnit; 4 | import com.jfireframework.schedule.task.Timetask; 5 | 6 | public class SimpleDelayTrigger extends BaseTrigger 7 | { 8 | 9 | public SimpleDelayTrigger(Timetask timetask, long delay, TimeUnit unit) 10 | { 11 | super(timetask); 12 | deadline = System.currentTimeMillis() + unit.toMillis(delay); 13 | } 14 | 15 | @Override 16 | public long deadline() 17 | { 18 | return deadline; 19 | } 20 | 21 | @Override 22 | public void calNext() 23 | { 24 | cancel(); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/annotation/EnumBoundHandler.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | import com.jfireframework.sql.util.enumhandler.EnumHandler; 8 | 9 | @Retention(RetentionPolicy.RUNTIME) 10 | @Target(ElementType.TYPE) 11 | public @interface EnumBoundHandler 12 | { 13 | public Class> value(); 14 | } 15 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/annotation/FindBy.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 使用这个注解,意味着可以在dao操作中通过该键来查询得到唯一的返回结果 10 | * 11 | * @author linbin 12 | * 13 | */ 14 | @Retention(RetentionPolicy.RUNTIME) 15 | @Target(ElementType.FIELD) 16 | public @interface FindBy 17 | { 18 | 19 | } 20 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/annotation/Id.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 表明该字段是一个数据库的主键 注意:该字段表明该字段是int型并且自增长 10 | * 11 | * @author 林斌(windfire@zailanghua.com) 12 | * 13 | */ 14 | @Retention(RetentionPolicy.RUNTIME) 15 | @Target(ElementType.FIELD) 16 | public @interface Id 17 | { 18 | public IdStrategy idStrategy() default IdStrategy.autoDecision; 19 | } 20 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/annotation/IdStrategy.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.annotation; 2 | 3 | public enum IdStrategy 4 | { 5 | nativeDb, custom, stringUid, autoDecision 6 | } 7 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/annotation/OneToMany.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Target(ElementType.FIELD) 9 | @Retention(RetentionPolicy.RUNTIME) 10 | public @interface OneToMany 11 | { 12 | public String oneField(); 13 | 14 | public String manyField(); 15 | } 16 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/annotation/SqlIgnore.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Inherited; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * 使用该注解表明无论是dao还是map都会忽略该字段 11 | * 12 | * @author 林斌 13 | * 14 | */ 15 | @Target(ElementType.FIELD) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Inherited 18 | public @interface SqlIgnore 19 | { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/annotation/TableEntity.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | import com.jfireframework.sql.dbstructure.DefaultNameStrategy; 8 | import com.jfireframework.sql.dbstructure.NameStrategy; 9 | 10 | /** 11 | * 该注解表明该类是一个数据库表的映射类 12 | * 13 | * @author 林斌(windfire@zailanghua.com) 14 | * 15 | */ 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Target(ElementType.TYPE) 18 | public @interface TableEntity 19 | { 20 | public String name(); 21 | 22 | public Class nameStrategy() default DefaultNameStrategy.class; 23 | } 24 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/annotation/Update.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 该注解的接口方法表明该方法被调用的时候会发出该sql语句 10 | * 11 | * @author 林斌(windfire@zailanghua.com) 12 | * 13 | */ 14 | @Retention(RetentionPolicy.RUNTIME) 15 | @Target(ElementType.METHOD) 16 | public @interface Update 17 | { 18 | /** 19 | * 需要发出的sql语句 20 | * 21 | * @return 22 | */ 23 | public String sql(); 24 | 25 | /** 26 | * 方法形参名称 27 | * 28 | * @return 29 | */ 30 | public String paramNames(); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/dbstructure/DefaultNameStrategy.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.dbstructure; 2 | 3 | import com.jfireframework.baseutil.collection.StringCache; 4 | 5 | public class DefaultNameStrategy implements NameStrategy 6 | { 7 | 8 | @Override 9 | public String toDbName(String name) 10 | { 11 | StringCache cache = new StringCache(20); 12 | int index = 0; 13 | while (index < name.length()) 14 | { 15 | char c = name.charAt(index); 16 | if (c >= 'A' && c <= 'Z') 17 | { 18 | cache.append('_').append(Character.toLowerCase(c)); 19 | } 20 | else 21 | { 22 | cache.append(c); 23 | } 24 | index += 1; 25 | } 26 | return cache.toString(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/dbstructure/NameStrategy.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.dbstructure; 2 | 3 | public interface NameStrategy 4 | { 5 | public String toDbName(String name); 6 | } 7 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/dbstructure/Structure.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.dbstructure; 2 | 3 | import java.sql.SQLException; 4 | import javax.sql.DataSource; 5 | import com.jfireframework.sql.metadata.TableMetaData; 6 | 7 | public interface Structure 8 | { 9 | public void createTable(DataSource dataSource, TableMetaData[] metaDatas) throws SQLException; 10 | 11 | public void updateTable(DataSource dataSource, TableMetaData[] metaDatas) throws SQLException; 12 | } 13 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/dbstructure/TypeAndLength.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.dbstructure; 2 | 3 | public class TypeAndLength 4 | { 5 | private final String type; 6 | private final int length; 7 | 8 | public TypeAndLength(String type, int length) 9 | { 10 | this.type = type; 11 | this.length = length; 12 | } 13 | 14 | public String getDbType() 15 | { 16 | if (length != 0) 17 | { 18 | return type + '(' + length + ')'; 19 | } 20 | else 21 | { 22 | return type; 23 | } 24 | } 25 | 26 | public String getType() 27 | { 28 | return type; 29 | } 30 | 31 | public int getLength() 32 | { 33 | return length; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/function/LockMode.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.function; 2 | 3 | public enum LockMode 4 | { 5 | SHARE, UPDATE 6 | } 7 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/function/impl/Demo.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.function.impl; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class Demo 7 | { 8 | public static void main(String[] args) 9 | { 10 | System.out.println(ArrayList.class.isAssignableFrom(List.class)); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/function/sqloperation/SaveOperator.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.function.sqloperation; 2 | 3 | import java.util.List; 4 | 5 | public interface SaveOperator 6 | { 7 | /** 8 | * 将一个对象保存或者更新到数据库。如果对象的id属性有值,就是更新操作,如果没有值就是插入操作 9 | * 10 | * @param 11 | * 12 | * @param entity 13 | * @return 14 | */ 15 | public void save(T entity); 16 | 17 | /** 18 | * 批量保存一个list中的数据 19 | * 20 | * @param 21 | * @param entitys 22 | */ 23 | public void batchInsert(List entitys); 24 | 25 | /** 26 | * 将一个对象以插入的形式保存到数据库 27 | * 28 | * @param 29 | * 30 | * @param entity 31 | */ 32 | public void insert(T entity); 33 | } 34 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/function/sqloperation/UpdateOperator.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.function.sqloperation; 2 | 3 | public interface UpdateOperator 4 | { 5 | /** 6 | * 删除对象所对应的表的一条记录 7 | * 8 | * @param 9 | * 10 | * @param entityClass 代表数据库表的类对象 11 | * @param pk 主键 12 | * @return 13 | */ 14 | public int delete(T entity); 15 | 16 | public int update(String sql); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/jfirecontext/MapperLoadFactory.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.jfirecontext; 2 | 3 | import javax.annotation.Resource; 4 | import com.jfireframework.context.bean.load.BeanLoadFactory; 5 | import com.jfireframework.sql.function.impl.SessionFactoryImpl; 6 | 7 | @Resource(name = "sessionFactory") 8 | public class MapperLoadFactory extends SessionFactoryImpl implements BeanLoadFactory 9 | { 10 | 11 | @SuppressWarnings("unchecked") 12 | @Override 13 | public E load(Class ckass) 14 | { 15 | return (E) mappers.get(ckass); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/jfirecontext/MapperOp.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.jfirecontext; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | import javax.annotation.Resource; 10 | import com.jfireframework.context.bean.load.LoadBy; 11 | 12 | @Retention(RetentionPolicy.RUNTIME) 13 | @Target(value = { ElementType.TYPE }) 14 | @Documented 15 | @Inherited 16 | @Resource 17 | @LoadBy(factoryBeanName = "sessionFactory") 18 | public @interface MapperOp 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/log/LogInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.log; 2 | 3 | public interface LogInterceptor 4 | { 5 | public boolean isLogOn(String sql); 6 | 7 | public void log(String sql, Object... params); 8 | } 9 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/log/NopLogInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.log; 2 | 3 | public class NopLogInterceptor implements LogInterceptor 4 | { 5 | 6 | @Override 7 | public boolean isLogOn(String sql) 8 | { 9 | return false; 10 | } 11 | 12 | @Override 13 | public void log(String sql, Object... params) 14 | { 15 | ; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/page/MysqlPage.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.page; 2 | 3 | public class MysqlPage extends AbstracePage 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/resultsettransfer/FixationBeanTransfer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.resultsettransfer; 2 | 3 | import java.sql.ResultSet; 4 | import com.jfireframework.sql.field.MapField; 5 | 6 | public class FixationBeanTransfer extends AbstractResultsetTransfer 7 | { 8 | public FixationBeanTransfer(Class type, String fieldNames) 9 | { 10 | super(type, fieldNames); 11 | } 12 | 13 | @Override 14 | @SuppressWarnings("unchecked") 15 | protected T valueOf(ResultSet resultSet) throws Exception 16 | { 17 | T entity = (T) entityClass.newInstance(); 18 | for (MapField each : mapFields) 19 | { 20 | each.setEntityValue(entity, resultSet); 21 | } 22 | return entity; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/resultsettransfer/FloatTransfer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.resultsettransfer; 2 | 3 | import java.sql.ResultSet; 4 | import java.sql.SQLException; 5 | 6 | public class FloatTransfer extends AbstractResultsetTransfer 7 | { 8 | 9 | public FloatTransfer(Class type) 10 | { 11 | super(type); 12 | } 13 | 14 | @Override 15 | protected Float valueOf(ResultSet resultSet) throws Exception 16 | { 17 | return Float.valueOf(resultSet.getFloat(1)); 18 | } 19 | 20 | public float primitiveValue(ResultSet resultSet) throws SQLException 21 | { 22 | if (resultSet.next()) 23 | { 24 | return resultSet.getFloat(1); 25 | } 26 | else 27 | { 28 | throw new NullPointerException("sql操作没有返回结果。请确认是否应该使用包装类"); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/resultsettransfer/LongTransfer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.resultsettransfer; 2 | 3 | import java.sql.ResultSet; 4 | import java.sql.SQLException; 5 | 6 | public class LongTransfer extends AbstractResultsetTransfer 7 | { 8 | public LongTransfer(Class type) 9 | { 10 | super(type); 11 | } 12 | 13 | @Override 14 | protected Long valueOf(ResultSet resultSet) throws Exception 15 | { 16 | return Long.valueOf(resultSet.getLong(1)); 17 | } 18 | 19 | public long primitiveValue(ResultSet resultSet) throws SQLException 20 | { 21 | if (resultSet.next()) 22 | { 23 | return resultSet.getLong(1); 24 | } 25 | else 26 | { 27 | throw new NullPointerException("sql操作没有返回结果。请确认是否应该使用包装类"); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/resultsettransfer/ResultSetTransfer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.resultsettransfer; 2 | 3 | import java.sql.ResultSet; 4 | import java.util.List; 5 | 6 | public interface ResultSetTransfer 7 | { 8 | public T transfer(ResultSet resultSet) throws Exception; 9 | 10 | public List transferList(ResultSet resultSet) throws Exception; 11 | } 12 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/resultsettransfer/SqlDateTransfer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.resultsettransfer; 2 | 3 | import java.sql.Date; 4 | import java.sql.ResultSet; 5 | 6 | public class SqlDateTransfer extends AbstractResultsetTransfer 7 | { 8 | 9 | public SqlDateTransfer(Class type) 10 | { 11 | super(type); 12 | } 13 | 14 | @Override 15 | protected Date valueOf(ResultSet resultSet) throws Exception 16 | { 17 | return resultSet.getDate(1); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/resultsettransfer/StringTransfer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.resultsettransfer; 2 | 3 | import java.sql.ResultSet; 4 | import java.sql.SQLException; 5 | 6 | public class StringTransfer extends AbstractResultsetTransfer 7 | { 8 | 9 | public StringTransfer(Class type) 10 | { 11 | super(type); 12 | } 13 | 14 | @Override 15 | protected String valueOf(ResultSet resultSet) throws SQLException 16 | { 17 | return resultSet.getString(1); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/resultsettransfer/TimeStampTransfer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.resultsettransfer; 2 | 3 | import java.sql.ResultSet; 4 | import java.sql.Timestamp; 5 | 6 | public class TimeStampTransfer extends AbstractResultsetTransfer 7 | { 8 | 9 | public TimeStampTransfer(Class type) 10 | { 11 | super(type); 12 | } 13 | 14 | @Override 15 | protected Timestamp valueOf(ResultSet resultSet) throws Exception 16 | { 17 | return resultSet.getTimestamp(1); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /jfire-sql/src/main/java/com/jfireframework/sql/resultsettransfer/TimeTransfer.java: -------------------------------------------------------------------------------- 1 | package com.jfireframework.sql.resultsettransfer; 2 | 3 | import java.sql.ResultSet; 4 | import java.sql.Time; 5 | 6 | public class TimeTransfer extends AbstractResultsetTransfer