├── .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 extends Annotation> 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 extends BeanClassBuilder> 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 extends EventConfig> event, Object rowkey);
9 |
10 | public EventContext post(Object data, Enum extends EventConfig> event);
11 |
12 | public EventContext syncPost(Object data, Enum extends EventConfig> event, Object rowkey);
13 |
14 | public EventContext syncPost(Object data, Enum extends EventConfig> 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 extends EnumHandler>> 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 extends NameStrategy> 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