瀏覽代碼

任务修改文件上传GridFS处理

demon 8 年之前
父節點
當前提交
b55aa034a0

+ 205 - 0
hos-arbiter/hos-arbiter.iml

@ -240,4 +240,209 @@
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
  </component>
  <component name="org.twodividedbyzero.idea.findbugs">
    <option name="_basePreferences">
      <map>
        <entry key="property.analysisEffortLevel" value="default" />
        <entry key="property.analyzeAfterAutoMake" value="false" />
        <entry key="property.analyzeAfterCompile" value="false" />
        <entry key="property.annotationGutterIconEnabled" value="true" />
        <entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" />
        <entry key="property.annotationTextRangeMarkupEnabled" value="true" />
        <entry key="property.exportAsHtml" value="true" />
        <entry key="property.exportAsXml" value="true" />
        <entry key="property.exportBaseDir" value="" />
        <entry key="property.exportCreateArchiveDir" value="false" />
        <entry key="property.exportOpenBrowser" value="true" />
        <entry key="property.minPriorityToReport" value="Medium" />
        <entry key="property.runAnalysisInBackground" value="false" />
        <entry key="property.showHiddenDetectors" value="false" />
        <entry key="property.toolWindowToFront" value="true" />
      </map>
    </option>
    <option name="_detectors">
      <map>
        <entry key="AppendingToAnObjectOutputStream" value="true" />
        <entry key="AtomicityProblem" value="true" />
        <entry key="BadAppletConstructor" value="false" />
        <entry key="BadResultSetAccess" value="true" />
        <entry key="BadSyntaxForRegularExpression" value="true" />
        <entry key="BadUseOfReturnValue" value="true" />
        <entry key="BadlyOverriddenAdapter" value="true" />
        <entry key="BooleanReturnNull" value="true" />
        <entry key="BuildInterproceduralCallGraph" value="false" />
        <entry key="BuildObligationPolicyDatabase" value="true" />
        <entry key="BuildStringPassthruGraph" value="true" />
        <entry key="CallToUnsupportedMethod" value="false" />
        <entry key="CalledMethods" value="true" />
        <entry key="CheckCalls" value="false" />
        <entry key="CheckExpectedWarnings" value="false" />
        <entry key="CheckImmutableAnnotation" value="true" />
        <entry key="CheckRelaxingNullnessAnnotation" value="true" />
        <entry key="CheckTypeQualifiers" value="true" />
        <entry key="CloneIdiom" value="true" />
        <entry key="ComparatorIdiom" value="true" />
        <entry key="ConfusedInheritance" value="true" />
        <entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
        <entry key="CovariantArrayAssignment" value="false" />
        <entry key="CrossSiteScripting" value="true" />
        <entry key="DefaultEncodingDetector" value="true" />
        <entry key="DoInsideDoPrivileged" value="true" />
        <entry key="DontCatchIllegalMonitorStateException" value="true" />
        <entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
        <entry key="DontUseEnum" value="true" />
        <entry key="DroppedException" value="true" />
        <entry key="DumbMethodInvocations" value="true" />
        <entry key="DumbMethods" value="true" />
        <entry key="DuplicateBranches" value="true" />
        <entry key="EmptyZipFileEntry" value="false" />
        <entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
        <entry key="ExplicitSerialization" value="true" />
        <entry key="FieldItemSummary" value="true" />
        <entry key="FinalizerNullsFields" value="true" />
        <entry key="FindBadCast2" value="true" />
        <entry key="FindBadForLoop" value="true" />
        <entry key="FindBugsSummaryStats" value="true" />
        <entry key="FindCircularDependencies" value="false" />
        <entry key="FindComparatorProblems" value="true" />
        <entry key="FindDeadLocalStores" value="true" />
        <entry key="FindDoubleCheck" value="true" />
        <entry key="FindEmptySynchronizedBlock" value="true" />
        <entry key="FindFieldSelfAssignment" value="true" />
        <entry key="FindFinalizeInvocations" value="true" />
        <entry key="FindFloatEquality" value="true" />
        <entry key="FindFloatMath" value="false" />
        <entry key="FindHEmismatch" value="true" />
        <entry key="FindInconsistentSync2" value="true" />
        <entry key="FindJSR166LockMonitorenter" value="true" />
        <entry key="FindLocalSelfAssignment2" value="true" />
        <entry key="FindMaskedFields" value="true" />
        <entry key="FindMismatchedWaitOrNotify" value="true" />
        <entry key="FindNakedNotify" value="true" />
        <entry key="FindNoSideEffectMethods" value="true" />
        <entry key="FindNonSerializableStoreIntoSession" value="false" />
        <entry key="FindNonSerializableValuePassedToWriteObject" value="false" />
        <entry key="FindNonShortCircuit" value="true" />
        <entry key="FindNullDeref" value="true" />
        <entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
        <entry key="FindOpenStream" value="true" />
        <entry key="FindPuzzlers" value="true" />
        <entry key="FindRefComparison" value="true" />
        <entry key="FindReturnRef" value="true" />
        <entry key="FindRoughConstants" value="true" />
        <entry key="FindRunInvocations" value="true" />
        <entry key="FindSelfComparison" value="true" />
        <entry key="FindSelfComparison2" value="true" />
        <entry key="FindSleepWithLockHeld" value="true" />
        <entry key="FindSpinLoop" value="true" />
        <entry key="FindSqlInjection" value="true" />
        <entry key="FindTwoLockWait" value="true" />
        <entry key="FindUncalledPrivateMethods" value="true" />
        <entry key="FindUnconditionalWait" value="true" />
        <entry key="FindUninitializedGet" value="true" />
        <entry key="FindUnrelatedTypesInGenericContainer" value="true" />
        <entry key="FindUnreleasedLock" value="true" />
        <entry key="FindUnsatisfiedObligation" value="true" />
        <entry key="FindUnsyncGet" value="true" />
        <entry key="FindUseOfNonSerializableValue" value="true" />
        <entry key="FindUselessControlFlow" value="true" />
        <entry key="FindUselessObjects" value="true" />
        <entry key="FormatStringChecker" value="true" />
        <entry key="FunctionsThatMightBeMistakenForProcedures" value="true" />
        <entry key="HugeSharedStringConstants" value="true" />
        <entry key="IDivResultCastToDouble" value="true" />
        <entry key="IncompatMask" value="true" />
        <entry key="InconsistentAnnotations" value="true" />
        <entry key="InefficientIndexOf" value="false" />
        <entry key="InefficientInitializationInsideLoop" value="false" />
        <entry key="InefficientMemberAccess" value="false" />
        <entry key="InefficientToArray" value="false" />
        <entry key="InfiniteLoop" value="true" />
        <entry key="InfiniteRecursiveLoop" value="true" />
        <entry key="InheritanceUnsafeGetResource" value="true" />
        <entry key="InitializationChain" value="true" />
        <entry key="InitializeNonnullFieldsInConstructor" value="true" />
        <entry key="InstantiateStaticClass" value="true" />
        <entry key="IntCast2LongAsInstant" value="true" />
        <entry key="InvalidJUnitTest" value="true" />
        <entry key="IteratorIdioms" value="true" />
        <entry key="LazyInit" value="true" />
        <entry key="LoadOfKnownNullValue" value="true" />
        <entry key="LostLoggerDueToWeakReference" value="true" />
        <entry key="MethodReturnCheck" value="true" />
        <entry key="Methods" value="true" />
        <entry key="MultithreadedInstanceAccess" value="true" />
        <entry key="MutableEnum" value="true" />
        <entry key="MutableLock" value="true" />
        <entry key="MutableStaticFields" value="true" />
        <entry key="Naming" value="true" />
        <entry key="Noise" value="false" />
        <entry key="NoiseNullDeref" value="false" />
        <entry key="NoteAnnotationRetention" value="true" />
        <entry key="NoteCheckReturnValueAnnotations" value="true" />
        <entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
        <entry key="NoteJCIPAnnotation" value="true" />
        <entry key="NoteNonNullAnnotations" value="false" />
        <entry key="NoteNonnullReturnValues" value="false" />
        <entry key="NoteSuppressedWarnings" value="true" />
        <entry key="NoteUnconditionalParamDerefs" value="true" />
        <entry key="NumberConstructor" value="true" />
        <entry key="OptionalReturnNull" value="true" />
        <entry key="OverridingEqualsNotSymmetrical" value="true" />
        <entry key="PreferZeroLengthArrays" value="true" />
        <entry key="PublicSemaphores" value="false" />
        <entry key="QuestionableBooleanAssignment" value="true" />
        <entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
        <entry key="ReadReturnShouldBeChecked" value="true" />
        <entry key="RedundantConditions" value="true" />
        <entry key="RedundantInterfaces" value="true" />
        <entry key="ReflectiveClasses" value="true" />
        <entry key="RepeatedConditionals" value="true" />
        <entry key="ResolveAllReferences" value="false" />
        <entry key="RuntimeExceptionCapture" value="true" />
        <entry key="SerializableIdiom" value="true" />
        <entry key="StartInConstructor" value="true" />
        <entry key="StaticCalendarDetector" value="true" />
        <entry key="StringConcatenation" value="true" />
        <entry key="SuperfluousInstanceOf" value="true" />
        <entry key="SuspiciousThreadInterrupted" value="true" />
        <entry key="SwitchFallthrough" value="true" />
        <entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
        <entry key="SynchronizeAndNullCheckField" value="true" />
        <entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
        <entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
        <entry key="TestASM" value="false" />
        <entry key="TestDataflowAnalysis" value="false" />
        <entry key="TestingGround" value="false" />
        <entry key="TestingGround2" value="false" />
        <entry key="TrainFieldStoreTypes" value="true" />
        <entry key="TrainLongInstantfParams" value="true" />
        <entry key="TrainNonNullAnnotations" value="true" />
        <entry key="TrainUnconditionalDerefParams" value="true" />
        <entry key="URLProblems" value="true" />
        <entry key="UncallableMethodOfAnonymousClass" value="true" />
        <entry key="UnnecessaryMath" value="true" />
        <entry key="UnreadFields" value="true" />
        <entry key="UselessSubclassMethod" value="false" />
        <entry key="VarArgsProblems" value="true" />
        <entry key="VolatileUsage" value="true" />
        <entry key="WaitInLoop" value="true" />
        <entry key="WrongMapIterator" value="true" />
        <entry key="XMLFactoryBypass" value="true" />
      </map>
    </option>
    <option name="_reportCategories">
      <map>
        <entry key="BAD_PRACTICE" value="true" />
        <entry key="CORRECTNESS" value="true" />
        <entry key="EXPERIMENTAL" value="true" />
        <entry key="I18N" value="true" />
        <entry key="MALICIOUS_CODE" value="true" />
        <entry key="MT_CORRECTNESS" value="true" />
        <entry key="PERFORMANCE" value="true" />
        <entry key="SECURITY" value="true" />
        <entry key="STYLE" value="true" />
      </map>
    </option>
  </component>
</module>

+ 205 - 0
hos-broker/hos-broker.iml

@ -285,4 +285,209 @@
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
  </component>
  <component name="org.twodividedbyzero.idea.findbugs">
    <option name="_basePreferences">
      <map>
        <entry key="property.analysisEffortLevel" value="default" />
        <entry key="property.analyzeAfterAutoMake" value="false" />
        <entry key="property.analyzeAfterCompile" value="false" />
        <entry key="property.annotationGutterIconEnabled" value="true" />
        <entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" />
        <entry key="property.annotationTextRangeMarkupEnabled" value="true" />
        <entry key="property.exportAsHtml" value="true" />
        <entry key="property.exportAsXml" value="true" />
        <entry key="property.exportBaseDir" value="" />
        <entry key="property.exportCreateArchiveDir" value="false" />
        <entry key="property.exportOpenBrowser" value="true" />
        <entry key="property.minPriorityToReport" value="Medium" />
        <entry key="property.runAnalysisInBackground" value="false" />
        <entry key="property.showHiddenDetectors" value="false" />
        <entry key="property.toolWindowToFront" value="true" />
      </map>
    </option>
    <option name="_detectors">
      <map>
        <entry key="AppendingToAnObjectOutputStream" value="true" />
        <entry key="AtomicityProblem" value="true" />
        <entry key="BadAppletConstructor" value="false" />
        <entry key="BadResultSetAccess" value="true" />
        <entry key="BadSyntaxForRegularExpression" value="true" />
        <entry key="BadUseOfReturnValue" value="true" />
        <entry key="BadlyOverriddenAdapter" value="true" />
        <entry key="BooleanReturnNull" value="true" />
        <entry key="BuildInterproceduralCallGraph" value="false" />
        <entry key="BuildObligationPolicyDatabase" value="true" />
        <entry key="BuildStringPassthruGraph" value="true" />
        <entry key="CallToUnsupportedMethod" value="false" />
        <entry key="CalledMethods" value="true" />
        <entry key="CheckCalls" value="false" />
        <entry key="CheckExpectedWarnings" value="false" />
        <entry key="CheckImmutableAnnotation" value="true" />
        <entry key="CheckRelaxingNullnessAnnotation" value="true" />
        <entry key="CheckTypeQualifiers" value="true" />
        <entry key="CloneIdiom" value="true" />
        <entry key="ComparatorIdiom" value="true" />
        <entry key="ConfusedInheritance" value="true" />
        <entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
        <entry key="CovariantArrayAssignment" value="false" />
        <entry key="CrossSiteScripting" value="true" />
        <entry key="DefaultEncodingDetector" value="true" />
        <entry key="DoInsideDoPrivileged" value="true" />
        <entry key="DontCatchIllegalMonitorStateException" value="true" />
        <entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
        <entry key="DontUseEnum" value="true" />
        <entry key="DroppedException" value="true" />
        <entry key="DumbMethodInvocations" value="true" />
        <entry key="DumbMethods" value="true" />
        <entry key="DuplicateBranches" value="true" />
        <entry key="EmptyZipFileEntry" value="false" />
        <entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
        <entry key="ExplicitSerialization" value="true" />
        <entry key="FieldItemSummary" value="true" />
        <entry key="FinalizerNullsFields" value="true" />
        <entry key="FindBadCast2" value="true" />
        <entry key="FindBadForLoop" value="true" />
        <entry key="FindBugsSummaryStats" value="true" />
        <entry key="FindCircularDependencies" value="false" />
        <entry key="FindComparatorProblems" value="true" />
        <entry key="FindDeadLocalStores" value="true" />
        <entry key="FindDoubleCheck" value="true" />
        <entry key="FindEmptySynchronizedBlock" value="true" />
        <entry key="FindFieldSelfAssignment" value="true" />
        <entry key="FindFinalizeInvocations" value="true" />
        <entry key="FindFloatEquality" value="true" />
        <entry key="FindFloatMath" value="false" />
        <entry key="FindHEmismatch" value="true" />
        <entry key="FindInconsistentSync2" value="true" />
        <entry key="FindJSR166LockMonitorenter" value="true" />
        <entry key="FindLocalSelfAssignment2" value="true" />
        <entry key="FindMaskedFields" value="true" />
        <entry key="FindMismatchedWaitOrNotify" value="true" />
        <entry key="FindNakedNotify" value="true" />
        <entry key="FindNoSideEffectMethods" value="true" />
        <entry key="FindNonSerializableStoreIntoSession" value="false" />
        <entry key="FindNonSerializableValuePassedToWriteObject" value="false" />
        <entry key="FindNonShortCircuit" value="true" />
        <entry key="FindNullDeref" value="true" />
        <entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
        <entry key="FindOpenStream" value="true" />
        <entry key="FindPuzzlers" value="true" />
        <entry key="FindRefComparison" value="true" />
        <entry key="FindReturnRef" value="true" />
        <entry key="FindRoughConstants" value="true" />
        <entry key="FindRunInvocations" value="true" />
        <entry key="FindSelfComparison" value="true" />
        <entry key="FindSelfComparison2" value="true" />
        <entry key="FindSleepWithLockHeld" value="true" />
        <entry key="FindSpinLoop" value="true" />
        <entry key="FindSqlInjection" value="true" />
        <entry key="FindTwoLockWait" value="true" />
        <entry key="FindUncalledPrivateMethods" value="true" />
        <entry key="FindUnconditionalWait" value="true" />
        <entry key="FindUninitializedGet" value="true" />
        <entry key="FindUnrelatedTypesInGenericContainer" value="true" />
        <entry key="FindUnreleasedLock" value="true" />
        <entry key="FindUnsatisfiedObligation" value="true" />
        <entry key="FindUnsyncGet" value="true" />
        <entry key="FindUseOfNonSerializableValue" value="true" />
        <entry key="FindUselessControlFlow" value="true" />
        <entry key="FindUselessObjects" value="true" />
        <entry key="FormatStringChecker" value="true" />
        <entry key="FunctionsThatMightBeMistakenForProcedures" value="true" />
        <entry key="HugeSharedStringConstants" value="true" />
        <entry key="IDivResultCastToDouble" value="true" />
        <entry key="IncompatMask" value="true" />
        <entry key="InconsistentAnnotations" value="true" />
        <entry key="InefficientIndexOf" value="false" />
        <entry key="InefficientInitializationInsideLoop" value="false" />
        <entry key="InefficientMemberAccess" value="false" />
        <entry key="InefficientToArray" value="false" />
        <entry key="InfiniteLoop" value="true" />
        <entry key="InfiniteRecursiveLoop" value="true" />
        <entry key="InheritanceUnsafeGetResource" value="true" />
        <entry key="InitializationChain" value="true" />
        <entry key="InitializeNonnullFieldsInConstructor" value="true" />
        <entry key="InstantiateStaticClass" value="true" />
        <entry key="IntCast2LongAsInstant" value="true" />
        <entry key="InvalidJUnitTest" value="true" />
        <entry key="IteratorIdioms" value="true" />
        <entry key="LazyInit" value="true" />
        <entry key="LoadOfKnownNullValue" value="true" />
        <entry key="LostLoggerDueToWeakReference" value="true" />
        <entry key="MethodReturnCheck" value="true" />
        <entry key="Methods" value="true" />
        <entry key="MultithreadedInstanceAccess" value="true" />
        <entry key="MutableEnum" value="true" />
        <entry key="MutableLock" value="true" />
        <entry key="MutableStaticFields" value="true" />
        <entry key="Naming" value="true" />
        <entry key="Noise" value="false" />
        <entry key="NoiseNullDeref" value="false" />
        <entry key="NoteAnnotationRetention" value="true" />
        <entry key="NoteCheckReturnValueAnnotations" value="true" />
        <entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
        <entry key="NoteJCIPAnnotation" value="true" />
        <entry key="NoteNonNullAnnotations" value="false" />
        <entry key="NoteNonnullReturnValues" value="false" />
        <entry key="NoteSuppressedWarnings" value="true" />
        <entry key="NoteUnconditionalParamDerefs" value="true" />
        <entry key="NumberConstructor" value="true" />
        <entry key="OptionalReturnNull" value="true" />
        <entry key="OverridingEqualsNotSymmetrical" value="true" />
        <entry key="PreferZeroLengthArrays" value="true" />
        <entry key="PublicSemaphores" value="false" />
        <entry key="QuestionableBooleanAssignment" value="true" />
        <entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
        <entry key="ReadReturnShouldBeChecked" value="true" />
        <entry key="RedundantConditions" value="true" />
        <entry key="RedundantInterfaces" value="true" />
        <entry key="ReflectiveClasses" value="true" />
        <entry key="RepeatedConditionals" value="true" />
        <entry key="ResolveAllReferences" value="false" />
        <entry key="RuntimeExceptionCapture" value="true" />
        <entry key="SerializableIdiom" value="true" />
        <entry key="StartInConstructor" value="true" />
        <entry key="StaticCalendarDetector" value="true" />
        <entry key="StringConcatenation" value="true" />
        <entry key="SuperfluousInstanceOf" value="true" />
        <entry key="SuspiciousThreadInterrupted" value="true" />
        <entry key="SwitchFallthrough" value="true" />
        <entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
        <entry key="SynchronizeAndNullCheckField" value="true" />
        <entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
        <entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
        <entry key="TestASM" value="false" />
        <entry key="TestDataflowAnalysis" value="false" />
        <entry key="TestingGround" value="false" />
        <entry key="TestingGround2" value="false" />
        <entry key="TrainFieldStoreTypes" value="true" />
        <entry key="TrainLongInstantfParams" value="true" />
        <entry key="TrainNonNullAnnotations" value="true" />
        <entry key="TrainUnconditionalDerefParams" value="true" />
        <entry key="URLProblems" value="true" />
        <entry key="UncallableMethodOfAnonymousClass" value="true" />
        <entry key="UnnecessaryMath" value="true" />
        <entry key="UnreadFields" value="true" />
        <entry key="UselessSubclassMethod" value="false" />
        <entry key="VarArgsProblems" value="true" />
        <entry key="VolatileUsage" value="true" />
        <entry key="WaitInLoop" value="true" />
        <entry key="WrongMapIterator" value="true" />
        <entry key="XMLFactoryBypass" value="true" />
      </map>
    </option>
    <option name="_reportCategories">
      <map>
        <entry key="BAD_PRACTICE" value="true" />
        <entry key="CORRECTNESS" value="true" />
        <entry key="EXPERIMENTAL" value="true" />
        <entry key="I18N" value="true" />
        <entry key="MALICIOUS_CODE" value="true" />
        <entry key="MT_CORRECTNESS" value="true" />
        <entry key="PERFORMANCE" value="true" />
        <entry key="SECURITY" value="true" />
        <entry key="STYLE" value="true" />
      </map>
    </option>
  </component>
</module>

+ 25 - 17
hos-broker/src/main/java/com/yihu/hos/common/compiler/CamelCompiler.java

@ -5,11 +5,10 @@ package com.yihu.hos.common.compiler;
import com.yihu.hos.common.constants.BrokerConstant;
import com.yihu.hos.core.file.FileUtil;
import com.yihu.hos.models.SystemClassMapping;
import org.apache.commons.io.FileUtils;
import com.yihu.hos.web.framework.util.GridFSUtil;
import javax.tools.*;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Arrays;
@ -67,7 +66,8 @@ public class CamelCompiler {
                String loadClassName = loadJavaFile.getName().replace(".java", ".class");
                targetPath = targetPath.substring(1);
                String loadClassPath = targetPath + params.getPackageName() + loadClassName;//加载的class路径
                FileUtils.copyFile(new File(loadClassPath), new File(copyClassPath));
                copyClassPath =   GridFSUtil.uploadFile("upload", loadClassPath, params.getFilePath().replace(".java", ".class"));
                return copyClassPath;
            }
        }
@ -96,7 +96,7 @@ public class CamelCompiler {
        File fPath = new File(packagePathTemplate + packageName);
        if (!fPath.exists()) fPath.mkdirs();
        File loadFIle = genProcessorJavaFile(filePath, packageName, className);
        File loadFIle = genProcessorJavaFile(routeId,filePath, packageName, className);
        if (loadFIle.exists()) {
            Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjects(loadFIle.getAbsolutePath());
            // options命令行选项
@ -119,7 +119,9 @@ public class CamelCompiler {
                String loadPath = loadFIle.getName().replace(".java", ".class");
                targetPath = targetPath.substring(1);
                String loadClassPath = targetPath + packageName + loadPath;//要加载的class路径
                FileUtils.copyFile(new File(loadClassPath), new File(copyClassPath));
//                FileUtils.copyFile(new File(loadClassPath), new File(copyClassPath));
                copyClassPath =   GridFSUtil.uploadFile("upload", loadClassPath,filePath.replace(".java",".class"));
                return copyClassPath;
            }
@ -138,8 +140,10 @@ public class CamelCompiler {
        try {
//            String oldPath = String.format(classPathTemplate, packageName, oldClassName);
            String newPath = String.format(classPathTemplate, params.getPackageName(), params.getOldClassName() + params.getRouteId());
            newPath = GridFSUtil.downFile("upload", newPath, params.getFilePath());
            String text = FileUtil.readFileText(new File(params.getFilePath()));
            String text = FileUtil.readFileText(new File(newPath));
            if (text.contains("?cron=")) {
                String oldStr = text.substring(text.indexOf("?cron=") + 6);
                String cron = oldStr.substring(0, oldStr.indexOf("\""));
@ -157,10 +161,11 @@ public class CamelCompiler {
            if (!fPath.exists()) fPath.mkdirs();
            File f = new File(newPath);
            FileWriter fw = new FileWriter(f);
            fw.write(text);
            fw.flush();
            fw.close();//这里只是产生一个JAVA文件,简单的IO操作
            boolean b = FileUtil.writeFile(newPath, text, "UTF-8");
//            FileWriter fw = new FileWriter(f);
//            fw.write(text);
//            fw.flush();
//            fw.close();//这里只是产生一个JAVA文件,简单的IO操作
            return f;
        } catch (Exception e) {
            System.out.println("修改Route文件操作出错");
@ -170,19 +175,22 @@ public class CamelCompiler {
    }
    public static File genProcessorJavaFile(String filePath, String packageName, String newClassName) {
    public static File genProcessorJavaFile(String routId ,String filePath, String packageName, String className) {
        try {
            String newPath = String.format(classPathTemplate, packageName, newClassName);
            String text = FileUtil.readFileText(new File(filePath));
            String newPath = String.format(classPathTemplate, packageName, className);
            newPath = GridFSUtil.downFile("upload", newPath, filePath);
            String text = FileUtil.readFileText(new File(newPath));
            File fPath = new File(packagePathTemplate + packageName);
            if (!fPath.exists()) fPath.mkdirs();
            File f = new File(newPath);
            FileWriter fw = new FileWriter(f);
            fw.write(text);
            fw.flush();
            fw.close();//这里只是产生一个JAVA文件,简单的IO操作
            boolean b = FileUtil.writeFile(newPath, text, "UTF-8");
//            FileWriter fw = new FileWriter(f);
//            fw.write(text);
//            fw.flush();
//            fw.close();//这里只是产生一个JAVA文件,简单的IO操作
            return f;
        } catch (Exception e) {
            System.out.println("撑撑processor文件操作出错");

+ 1 - 1
hos-broker/src/main/java/com/yihu/hos/common/compiler/ClassParams.java

@ -10,7 +10,7 @@ public class ClassParams {
    private String routeId;             //routeId
    private String filePath;            //原java模板文件路径
    private String filePath;            //文件名,用于mongodb存储获取
    private String packageName;        //包名
    private String oldClassName;      //旧java文件名
    private String newClassName;      //新java文件名

+ 2 - 2
hos-broker/src/main/java/com/yihu/hos/services/ESBCamelService.java

@ -343,7 +343,7 @@ public class ESBCamelService {
    public Result genProcessorFile(String serviceFlow, String packageName, String className, String path) {
        try {
            String filePath= CamelCompiler.copyProcess(serviceFlow, path, packageName, className);
            String filePath= CamelCompiler.genProcessClass(serviceFlow, path, packageName, className);
            if (filePath !=null){
                return Result.success(filePath);
            }else {
@ -358,7 +358,7 @@ public class ESBCamelService {
    public Result genRouteFile(ClassParams params) {
        try {
            String path = CamelCompiler.compiler(params);
            String path = CamelCompiler.genRouteClass(params);
            return Result.success(path);
        } catch (IOException e) {
            e.printStackTrace();

+ 205 - 0
hos-camel/hos-camel.iml

@ -161,4 +161,209 @@
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
  </component>
  <component name="org.twodividedbyzero.idea.findbugs">
    <option name="_basePreferences">
      <map>
        <entry key="property.analysisEffortLevel" value="default" />
        <entry key="property.analyzeAfterAutoMake" value="false" />
        <entry key="property.analyzeAfterCompile" value="false" />
        <entry key="property.annotationGutterIconEnabled" value="true" />
        <entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" />
        <entry key="property.annotationTextRangeMarkupEnabled" value="true" />
        <entry key="property.exportAsHtml" value="true" />
        <entry key="property.exportAsXml" value="true" />
        <entry key="property.exportBaseDir" value="" />
        <entry key="property.exportCreateArchiveDir" value="false" />
        <entry key="property.exportOpenBrowser" value="true" />
        <entry key="property.minPriorityToReport" value="Medium" />
        <entry key="property.runAnalysisInBackground" value="false" />
        <entry key="property.showHiddenDetectors" value="false" />
        <entry key="property.toolWindowToFront" value="true" />
      </map>
    </option>
    <option name="_detectors">
      <map>
        <entry key="AppendingToAnObjectOutputStream" value="true" />
        <entry key="AtomicityProblem" value="true" />
        <entry key="BadAppletConstructor" value="false" />
        <entry key="BadResultSetAccess" value="true" />
        <entry key="BadSyntaxForRegularExpression" value="true" />
        <entry key="BadUseOfReturnValue" value="true" />
        <entry key="BadlyOverriddenAdapter" value="true" />
        <entry key="BooleanReturnNull" value="true" />
        <entry key="BuildInterproceduralCallGraph" value="false" />
        <entry key="BuildObligationPolicyDatabase" value="true" />
        <entry key="BuildStringPassthruGraph" value="true" />
        <entry key="CallToUnsupportedMethod" value="false" />
        <entry key="CalledMethods" value="true" />
        <entry key="CheckCalls" value="false" />
        <entry key="CheckExpectedWarnings" value="false" />
        <entry key="CheckImmutableAnnotation" value="true" />
        <entry key="CheckRelaxingNullnessAnnotation" value="true" />
        <entry key="CheckTypeQualifiers" value="true" />
        <entry key="CloneIdiom" value="true" />
        <entry key="ComparatorIdiom" value="true" />
        <entry key="ConfusedInheritance" value="true" />
        <entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
        <entry key="CovariantArrayAssignment" value="false" />
        <entry key="CrossSiteScripting" value="true" />
        <entry key="DefaultEncodingDetector" value="true" />
        <entry key="DoInsideDoPrivileged" value="true" />
        <entry key="DontCatchIllegalMonitorStateException" value="true" />
        <entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
        <entry key="DontUseEnum" value="true" />
        <entry key="DroppedException" value="true" />
        <entry key="DumbMethodInvocations" value="true" />
        <entry key="DumbMethods" value="true" />
        <entry key="DuplicateBranches" value="true" />
        <entry key="EmptyZipFileEntry" value="false" />
        <entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
        <entry key="ExplicitSerialization" value="true" />
        <entry key="FieldItemSummary" value="true" />
        <entry key="FinalizerNullsFields" value="true" />
        <entry key="FindBadCast2" value="true" />
        <entry key="FindBadForLoop" value="true" />
        <entry key="FindBugsSummaryStats" value="true" />
        <entry key="FindCircularDependencies" value="false" />
        <entry key="FindComparatorProblems" value="true" />
        <entry key="FindDeadLocalStores" value="true" />
        <entry key="FindDoubleCheck" value="true" />
        <entry key="FindEmptySynchronizedBlock" value="true" />
        <entry key="FindFieldSelfAssignment" value="true" />
        <entry key="FindFinalizeInvocations" value="true" />
        <entry key="FindFloatEquality" value="true" />
        <entry key="FindFloatMath" value="false" />
        <entry key="FindHEmismatch" value="true" />
        <entry key="FindInconsistentSync2" value="true" />
        <entry key="FindJSR166LockMonitorenter" value="true" />
        <entry key="FindLocalSelfAssignment2" value="true" />
        <entry key="FindMaskedFields" value="true" />
        <entry key="FindMismatchedWaitOrNotify" value="true" />
        <entry key="FindNakedNotify" value="true" />
        <entry key="FindNoSideEffectMethods" value="true" />
        <entry key="FindNonSerializableStoreIntoSession" value="false" />
        <entry key="FindNonSerializableValuePassedToWriteObject" value="false" />
        <entry key="FindNonShortCircuit" value="true" />
        <entry key="FindNullDeref" value="true" />
        <entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
        <entry key="FindOpenStream" value="true" />
        <entry key="FindPuzzlers" value="true" />
        <entry key="FindRefComparison" value="true" />
        <entry key="FindReturnRef" value="true" />
        <entry key="FindRoughConstants" value="true" />
        <entry key="FindRunInvocations" value="true" />
        <entry key="FindSelfComparison" value="true" />
        <entry key="FindSelfComparison2" value="true" />
        <entry key="FindSleepWithLockHeld" value="true" />
        <entry key="FindSpinLoop" value="true" />
        <entry key="FindSqlInjection" value="true" />
        <entry key="FindTwoLockWait" value="true" />
        <entry key="FindUncalledPrivateMethods" value="true" />
        <entry key="FindUnconditionalWait" value="true" />
        <entry key="FindUninitializedGet" value="true" />
        <entry key="FindUnrelatedTypesInGenericContainer" value="true" />
        <entry key="FindUnreleasedLock" value="true" />
        <entry key="FindUnsatisfiedObligation" value="true" />
        <entry key="FindUnsyncGet" value="true" />
        <entry key="FindUseOfNonSerializableValue" value="true" />
        <entry key="FindUselessControlFlow" value="true" />
        <entry key="FindUselessObjects" value="true" />
        <entry key="FormatStringChecker" value="true" />
        <entry key="FunctionsThatMightBeMistakenForProcedures" value="true" />
        <entry key="HugeSharedStringConstants" value="true" />
        <entry key="IDivResultCastToDouble" value="true" />
        <entry key="IncompatMask" value="true" />
        <entry key="InconsistentAnnotations" value="true" />
        <entry key="InefficientIndexOf" value="false" />
        <entry key="InefficientInitializationInsideLoop" value="false" />
        <entry key="InefficientMemberAccess" value="false" />
        <entry key="InefficientToArray" value="false" />
        <entry key="InfiniteLoop" value="true" />
        <entry key="InfiniteRecursiveLoop" value="true" />
        <entry key="InheritanceUnsafeGetResource" value="true" />
        <entry key="InitializationChain" value="true" />
        <entry key="InitializeNonnullFieldsInConstructor" value="true" />
        <entry key="InstantiateStaticClass" value="true" />
        <entry key="IntCast2LongAsInstant" value="true" />
        <entry key="InvalidJUnitTest" value="true" />
        <entry key="IteratorIdioms" value="true" />
        <entry key="LazyInit" value="true" />
        <entry key="LoadOfKnownNullValue" value="true" />
        <entry key="LostLoggerDueToWeakReference" value="true" />
        <entry key="MethodReturnCheck" value="true" />
        <entry key="Methods" value="true" />
        <entry key="MultithreadedInstanceAccess" value="true" />
        <entry key="MutableEnum" value="true" />
        <entry key="MutableLock" value="true" />
        <entry key="MutableStaticFields" value="true" />
        <entry key="Naming" value="true" />
        <entry key="Noise" value="false" />
        <entry key="NoiseNullDeref" value="false" />
        <entry key="NoteAnnotationRetention" value="true" />
        <entry key="NoteCheckReturnValueAnnotations" value="true" />
        <entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
        <entry key="NoteJCIPAnnotation" value="true" />
        <entry key="NoteNonNullAnnotations" value="false" />
        <entry key="NoteNonnullReturnValues" value="false" />
        <entry key="NoteSuppressedWarnings" value="true" />
        <entry key="NoteUnconditionalParamDerefs" value="true" />
        <entry key="NumberConstructor" value="true" />
        <entry key="OptionalReturnNull" value="true" />
        <entry key="OverridingEqualsNotSymmetrical" value="true" />
        <entry key="PreferZeroLengthArrays" value="true" />
        <entry key="PublicSemaphores" value="false" />
        <entry key="QuestionableBooleanAssignment" value="true" />
        <entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
        <entry key="ReadReturnShouldBeChecked" value="true" />
        <entry key="RedundantConditions" value="true" />
        <entry key="RedundantInterfaces" value="true" />
        <entry key="ReflectiveClasses" value="true" />
        <entry key="RepeatedConditionals" value="true" />
        <entry key="ResolveAllReferences" value="false" />
        <entry key="RuntimeExceptionCapture" value="true" />
        <entry key="SerializableIdiom" value="true" />
        <entry key="StartInConstructor" value="true" />
        <entry key="StaticCalendarDetector" value="true" />
        <entry key="StringConcatenation" value="true" />
        <entry key="SuperfluousInstanceOf" value="true" />
        <entry key="SuspiciousThreadInterrupted" value="true" />
        <entry key="SwitchFallthrough" value="true" />
        <entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
        <entry key="SynchronizeAndNullCheckField" value="true" />
        <entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
        <entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
        <entry key="TestASM" value="false" />
        <entry key="TestDataflowAnalysis" value="false" />
        <entry key="TestingGround" value="false" />
        <entry key="TestingGround2" value="false" />
        <entry key="TrainFieldStoreTypes" value="true" />
        <entry key="TrainLongInstantfParams" value="true" />
        <entry key="TrainNonNullAnnotations" value="true" />
        <entry key="TrainUnconditionalDerefParams" value="true" />
        <entry key="URLProblems" value="true" />
        <entry key="UncallableMethodOfAnonymousClass" value="true" />
        <entry key="UnnecessaryMath" value="true" />
        <entry key="UnreadFields" value="true" />
        <entry key="UselessSubclassMethod" value="false" />
        <entry key="VarArgsProblems" value="true" />
        <entry key="VolatileUsage" value="true" />
        <entry key="WaitInLoop" value="true" />
        <entry key="WrongMapIterator" value="true" />
        <entry key="XMLFactoryBypass" value="true" />
      </map>
    </option>
    <option name="_reportCategories">
      <map>
        <entry key="BAD_PRACTICE" value="true" />
        <entry key="CORRECTNESS" value="true" />
        <entry key="EXPERIMENTAL" value="true" />
        <entry key="I18N" value="true" />
        <entry key="MALICIOUS_CODE" value="true" />
        <entry key="MT_CORRECTNESS" value="true" />
        <entry key="PERFORMANCE" value="true" />
        <entry key="SECURITY" value="true" />
        <entry key="STYLE" value="true" />
      </map>
    </option>
  </component>
</module>

+ 205 - 0
hos-core/hos-core.iml

@ -34,4 +34,209 @@
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.3.RELEASE" level="project" />
  </component>
  <component name="org.twodividedbyzero.idea.findbugs">
    <option name="_basePreferences">
      <map>
        <entry key="property.analysisEffortLevel" value="default" />
        <entry key="property.analyzeAfterAutoMake" value="false" />
        <entry key="property.analyzeAfterCompile" value="false" />
        <entry key="property.annotationGutterIconEnabled" value="true" />
        <entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" />
        <entry key="property.annotationTextRangeMarkupEnabled" value="true" />
        <entry key="property.exportAsHtml" value="true" />
        <entry key="property.exportAsXml" value="true" />
        <entry key="property.exportBaseDir" value="" />
        <entry key="property.exportCreateArchiveDir" value="false" />
        <entry key="property.exportOpenBrowser" value="true" />
        <entry key="property.minPriorityToReport" value="Medium" />
        <entry key="property.runAnalysisInBackground" value="false" />
        <entry key="property.showHiddenDetectors" value="false" />
        <entry key="property.toolWindowToFront" value="true" />
      </map>
    </option>
    <option name="_detectors">
      <map>
        <entry key="AppendingToAnObjectOutputStream" value="true" />
        <entry key="AtomicityProblem" value="true" />
        <entry key="BadAppletConstructor" value="false" />
        <entry key="BadResultSetAccess" value="true" />
        <entry key="BadSyntaxForRegularExpression" value="true" />
        <entry key="BadUseOfReturnValue" value="true" />
        <entry key="BadlyOverriddenAdapter" value="true" />
        <entry key="BooleanReturnNull" value="true" />
        <entry key="BuildInterproceduralCallGraph" value="false" />
        <entry key="BuildObligationPolicyDatabase" value="true" />
        <entry key="BuildStringPassthruGraph" value="true" />
        <entry key="CallToUnsupportedMethod" value="false" />
        <entry key="CalledMethods" value="true" />
        <entry key="CheckCalls" value="false" />
        <entry key="CheckExpectedWarnings" value="false" />
        <entry key="CheckImmutableAnnotation" value="true" />
        <entry key="CheckRelaxingNullnessAnnotation" value="true" />
        <entry key="CheckTypeQualifiers" value="true" />
        <entry key="CloneIdiom" value="true" />
        <entry key="ComparatorIdiom" value="true" />
        <entry key="ConfusedInheritance" value="true" />
        <entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
        <entry key="CovariantArrayAssignment" value="false" />
        <entry key="CrossSiteScripting" value="true" />
        <entry key="DefaultEncodingDetector" value="true" />
        <entry key="DoInsideDoPrivileged" value="true" />
        <entry key="DontCatchIllegalMonitorStateException" value="true" />
        <entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
        <entry key="DontUseEnum" value="true" />
        <entry key="DroppedException" value="true" />
        <entry key="DumbMethodInvocations" value="true" />
        <entry key="DumbMethods" value="true" />
        <entry key="DuplicateBranches" value="true" />
        <entry key="EmptyZipFileEntry" value="false" />
        <entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
        <entry key="ExplicitSerialization" value="true" />
        <entry key="FieldItemSummary" value="true" />
        <entry key="FinalizerNullsFields" value="true" />
        <entry key="FindBadCast2" value="true" />
        <entry key="FindBadForLoop" value="true" />
        <entry key="FindBugsSummaryStats" value="true" />
        <entry key="FindCircularDependencies" value="false" />
        <entry key="FindComparatorProblems" value="true" />
        <entry key="FindDeadLocalStores" value="true" />
        <entry key="FindDoubleCheck" value="true" />
        <entry key="FindEmptySynchronizedBlock" value="true" />
        <entry key="FindFieldSelfAssignment" value="true" />
        <entry key="FindFinalizeInvocations" value="true" />
        <entry key="FindFloatEquality" value="true" />
        <entry key="FindFloatMath" value="false" />
        <entry key="FindHEmismatch" value="true" />
        <entry key="FindInconsistentSync2" value="true" />
        <entry key="FindJSR166LockMonitorenter" value="true" />
        <entry key="FindLocalSelfAssignment2" value="true" />
        <entry key="FindMaskedFields" value="true" />
        <entry key="FindMismatchedWaitOrNotify" value="true" />
        <entry key="FindNakedNotify" value="true" />
        <entry key="FindNoSideEffectMethods" value="true" />
        <entry key="FindNonSerializableStoreIntoSession" value="false" />
        <entry key="FindNonSerializableValuePassedToWriteObject" value="false" />
        <entry key="FindNonShortCircuit" value="true" />
        <entry key="FindNullDeref" value="true" />
        <entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
        <entry key="FindOpenStream" value="true" />
        <entry key="FindPuzzlers" value="true" />
        <entry key="FindRefComparison" value="true" />
        <entry key="FindReturnRef" value="true" />
        <entry key="FindRoughConstants" value="true" />
        <entry key="FindRunInvocations" value="true" />
        <entry key="FindSelfComparison" value="true" />
        <entry key="FindSelfComparison2" value="true" />
        <entry key="FindSleepWithLockHeld" value="true" />
        <entry key="FindSpinLoop" value="true" />
        <entry key="FindSqlInjection" value="true" />
        <entry key="FindTwoLockWait" value="true" />
        <entry key="FindUncalledPrivateMethods" value="true" />
        <entry key="FindUnconditionalWait" value="true" />
        <entry key="FindUninitializedGet" value="true" />
        <entry key="FindUnrelatedTypesInGenericContainer" value="true" />
        <entry key="FindUnreleasedLock" value="true" />
        <entry key="FindUnsatisfiedObligation" value="true" />
        <entry key="FindUnsyncGet" value="true" />
        <entry key="FindUseOfNonSerializableValue" value="true" />
        <entry key="FindUselessControlFlow" value="true" />
        <entry key="FindUselessObjects" value="true" />
        <entry key="FormatStringChecker" value="true" />
        <entry key="FunctionsThatMightBeMistakenForProcedures" value="true" />
        <entry key="HugeSharedStringConstants" value="true" />
        <entry key="IDivResultCastToDouble" value="true" />
        <entry key="IncompatMask" value="true" />
        <entry key="InconsistentAnnotations" value="true" />
        <entry key="InefficientIndexOf" value="false" />
        <entry key="InefficientInitializationInsideLoop" value="false" />
        <entry key="InefficientMemberAccess" value="false" />
        <entry key="InefficientToArray" value="false" />
        <entry key="InfiniteLoop" value="true" />
        <entry key="InfiniteRecursiveLoop" value="true" />
        <entry key="InheritanceUnsafeGetResource" value="true" />
        <entry key="InitializationChain" value="true" />
        <entry key="InitializeNonnullFieldsInConstructor" value="true" />
        <entry key="InstantiateStaticClass" value="true" />
        <entry key="IntCast2LongAsInstant" value="true" />
        <entry key="InvalidJUnitTest" value="true" />
        <entry key="IteratorIdioms" value="true" />
        <entry key="LazyInit" value="true" />
        <entry key="LoadOfKnownNullValue" value="true" />
        <entry key="LostLoggerDueToWeakReference" value="true" />
        <entry key="MethodReturnCheck" value="true" />
        <entry key="Methods" value="true" />
        <entry key="MultithreadedInstanceAccess" value="true" />
        <entry key="MutableEnum" value="true" />
        <entry key="MutableLock" value="true" />
        <entry key="MutableStaticFields" value="true" />
        <entry key="Naming" value="true" />
        <entry key="Noise" value="false" />
        <entry key="NoiseNullDeref" value="false" />
        <entry key="NoteAnnotationRetention" value="true" />
        <entry key="NoteCheckReturnValueAnnotations" value="true" />
        <entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
        <entry key="NoteJCIPAnnotation" value="true" />
        <entry key="NoteNonNullAnnotations" value="false" />
        <entry key="NoteNonnullReturnValues" value="false" />
        <entry key="NoteSuppressedWarnings" value="true" />
        <entry key="NoteUnconditionalParamDerefs" value="true" />
        <entry key="NumberConstructor" value="true" />
        <entry key="OptionalReturnNull" value="true" />
        <entry key="OverridingEqualsNotSymmetrical" value="true" />
        <entry key="PreferZeroLengthArrays" value="true" />
        <entry key="PublicSemaphores" value="false" />
        <entry key="QuestionableBooleanAssignment" value="true" />
        <entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
        <entry key="ReadReturnShouldBeChecked" value="true" />
        <entry key="RedundantConditions" value="true" />
        <entry key="RedundantInterfaces" value="true" />
        <entry key="ReflectiveClasses" value="true" />
        <entry key="RepeatedConditionals" value="true" />
        <entry key="ResolveAllReferences" value="false" />
        <entry key="RuntimeExceptionCapture" value="true" />
        <entry key="SerializableIdiom" value="true" />
        <entry key="StartInConstructor" value="true" />
        <entry key="StaticCalendarDetector" value="true" />
        <entry key="StringConcatenation" value="true" />
        <entry key="SuperfluousInstanceOf" value="true" />
        <entry key="SuspiciousThreadInterrupted" value="true" />
        <entry key="SwitchFallthrough" value="true" />
        <entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
        <entry key="SynchronizeAndNullCheckField" value="true" />
        <entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
        <entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
        <entry key="TestASM" value="false" />
        <entry key="TestDataflowAnalysis" value="false" />
        <entry key="TestingGround" value="false" />
        <entry key="TestingGround2" value="false" />
        <entry key="TrainFieldStoreTypes" value="true" />
        <entry key="TrainLongInstantfParams" value="true" />
        <entry key="TrainNonNullAnnotations" value="true" />
        <entry key="TrainUnconditionalDerefParams" value="true" />
        <entry key="URLProblems" value="true" />
        <entry key="UncallableMethodOfAnonymousClass" value="true" />
        <entry key="UnnecessaryMath" value="true" />
        <entry key="UnreadFields" value="true" />
        <entry key="UselessSubclassMethod" value="false" />
        <entry key="VarArgsProblems" value="true" />
        <entry key="VolatileUsage" value="true" />
        <entry key="WaitInLoop" value="true" />
        <entry key="WrongMapIterator" value="true" />
        <entry key="XMLFactoryBypass" value="true" />
      </map>
    </option>
    <option name="_reportCategories">
      <map>
        <entry key="BAD_PRACTICE" value="true" />
        <entry key="CORRECTNESS" value="true" />
        <entry key="EXPERIMENTAL" value="true" />
        <entry key="I18N" value="true" />
        <entry key="MALICIOUS_CODE" value="true" />
        <entry key="MT_CORRECTNESS" value="true" />
        <entry key="PERFORMANCE" value="true" />
        <entry key="SECURITY" value="true" />
        <entry key="STYLE" value="true" />
      </map>
    </option>
  </component>
</module>

+ 205 - 0
hos-rest/hos-rest.iml

@ -248,4 +248,209 @@
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
  </component>
  <component name="org.twodividedbyzero.idea.findbugs">
    <option name="_basePreferences">
      <map>
        <entry key="property.analysisEffortLevel" value="default" />
        <entry key="property.analyzeAfterAutoMake" value="false" />
        <entry key="property.analyzeAfterCompile" value="false" />
        <entry key="property.annotationGutterIconEnabled" value="true" />
        <entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" />
        <entry key="property.annotationTextRangeMarkupEnabled" value="true" />
        <entry key="property.exportAsHtml" value="true" />
        <entry key="property.exportAsXml" value="true" />
        <entry key="property.exportBaseDir" value="" />
        <entry key="property.exportCreateArchiveDir" value="false" />
        <entry key="property.exportOpenBrowser" value="true" />
        <entry key="property.minPriorityToReport" value="Medium" />
        <entry key="property.runAnalysisInBackground" value="false" />
        <entry key="property.showHiddenDetectors" value="false" />
        <entry key="property.toolWindowToFront" value="true" />
      </map>
    </option>
    <option name="_detectors">
      <map>
        <entry key="AppendingToAnObjectOutputStream" value="true" />
        <entry key="AtomicityProblem" value="true" />
        <entry key="BadAppletConstructor" value="false" />
        <entry key="BadResultSetAccess" value="true" />
        <entry key="BadSyntaxForRegularExpression" value="true" />
        <entry key="BadUseOfReturnValue" value="true" />
        <entry key="BadlyOverriddenAdapter" value="true" />
        <entry key="BooleanReturnNull" value="true" />
        <entry key="BuildInterproceduralCallGraph" value="false" />
        <entry key="BuildObligationPolicyDatabase" value="true" />
        <entry key="BuildStringPassthruGraph" value="true" />
        <entry key="CallToUnsupportedMethod" value="false" />
        <entry key="CalledMethods" value="true" />
        <entry key="CheckCalls" value="false" />
        <entry key="CheckExpectedWarnings" value="false" />
        <entry key="CheckImmutableAnnotation" value="true" />
        <entry key="CheckRelaxingNullnessAnnotation" value="true" />
        <entry key="CheckTypeQualifiers" value="true" />
        <entry key="CloneIdiom" value="true" />
        <entry key="ComparatorIdiom" value="true" />
        <entry key="ConfusedInheritance" value="true" />
        <entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
        <entry key="CovariantArrayAssignment" value="false" />
        <entry key="CrossSiteScripting" value="true" />
        <entry key="DefaultEncodingDetector" value="true" />
        <entry key="DoInsideDoPrivileged" value="true" />
        <entry key="DontCatchIllegalMonitorStateException" value="true" />
        <entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
        <entry key="DontUseEnum" value="true" />
        <entry key="DroppedException" value="true" />
        <entry key="DumbMethodInvocations" value="true" />
        <entry key="DumbMethods" value="true" />
        <entry key="DuplicateBranches" value="true" />
        <entry key="EmptyZipFileEntry" value="false" />
        <entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
        <entry key="ExplicitSerialization" value="true" />
        <entry key="FieldItemSummary" value="true" />
        <entry key="FinalizerNullsFields" value="true" />
        <entry key="FindBadCast2" value="true" />
        <entry key="FindBadForLoop" value="true" />
        <entry key="FindBugsSummaryStats" value="true" />
        <entry key="FindCircularDependencies" value="false" />
        <entry key="FindComparatorProblems" value="true" />
        <entry key="FindDeadLocalStores" value="true" />
        <entry key="FindDoubleCheck" value="true" />
        <entry key="FindEmptySynchronizedBlock" value="true" />
        <entry key="FindFieldSelfAssignment" value="true" />
        <entry key="FindFinalizeInvocations" value="true" />
        <entry key="FindFloatEquality" value="true" />
        <entry key="FindFloatMath" value="false" />
        <entry key="FindHEmismatch" value="true" />
        <entry key="FindInconsistentSync2" value="true" />
        <entry key="FindJSR166LockMonitorenter" value="true" />
        <entry key="FindLocalSelfAssignment2" value="true" />
        <entry key="FindMaskedFields" value="true" />
        <entry key="FindMismatchedWaitOrNotify" value="true" />
        <entry key="FindNakedNotify" value="true" />
        <entry key="FindNoSideEffectMethods" value="true" />
        <entry key="FindNonSerializableStoreIntoSession" value="false" />
        <entry key="FindNonSerializableValuePassedToWriteObject" value="false" />
        <entry key="FindNonShortCircuit" value="true" />
        <entry key="FindNullDeref" value="true" />
        <entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
        <entry key="FindOpenStream" value="true" />
        <entry key="FindPuzzlers" value="true" />
        <entry key="FindRefComparison" value="true" />
        <entry key="FindReturnRef" value="true" />
        <entry key="FindRoughConstants" value="true" />
        <entry key="FindRunInvocations" value="true" />
        <entry key="FindSelfComparison" value="true" />
        <entry key="FindSelfComparison2" value="true" />
        <entry key="FindSleepWithLockHeld" value="true" />
        <entry key="FindSpinLoop" value="true" />
        <entry key="FindSqlInjection" value="true" />
        <entry key="FindTwoLockWait" value="true" />
        <entry key="FindUncalledPrivateMethods" value="true" />
        <entry key="FindUnconditionalWait" value="true" />
        <entry key="FindUninitializedGet" value="true" />
        <entry key="FindUnrelatedTypesInGenericContainer" value="true" />
        <entry key="FindUnreleasedLock" value="true" />
        <entry key="FindUnsatisfiedObligation" value="true" />
        <entry key="FindUnsyncGet" value="true" />
        <entry key="FindUseOfNonSerializableValue" value="true" />
        <entry key="FindUselessControlFlow" value="true" />
        <entry key="FindUselessObjects" value="true" />
        <entry key="FormatStringChecker" value="true" />
        <entry key="FunctionsThatMightBeMistakenForProcedures" value="true" />
        <entry key="HugeSharedStringConstants" value="true" />
        <entry key="IDivResultCastToDouble" value="true" />
        <entry key="IncompatMask" value="true" />
        <entry key="InconsistentAnnotations" value="true" />
        <entry key="InefficientIndexOf" value="false" />
        <entry key="InefficientInitializationInsideLoop" value="false" />
        <entry key="InefficientMemberAccess" value="false" />
        <entry key="InefficientToArray" value="false" />
        <entry key="InfiniteLoop" value="true" />
        <entry key="InfiniteRecursiveLoop" value="true" />
        <entry key="InheritanceUnsafeGetResource" value="true" />
        <entry key="InitializationChain" value="true" />
        <entry key="InitializeNonnullFieldsInConstructor" value="true" />
        <entry key="InstantiateStaticClass" value="true" />
        <entry key="IntCast2LongAsInstant" value="true" />
        <entry key="InvalidJUnitTest" value="true" />
        <entry key="IteratorIdioms" value="true" />
        <entry key="LazyInit" value="true" />
        <entry key="LoadOfKnownNullValue" value="true" />
        <entry key="LostLoggerDueToWeakReference" value="true" />
        <entry key="MethodReturnCheck" value="true" />
        <entry key="Methods" value="true" />
        <entry key="MultithreadedInstanceAccess" value="true" />
        <entry key="MutableEnum" value="true" />
        <entry key="MutableLock" value="true" />
        <entry key="MutableStaticFields" value="true" />
        <entry key="Naming" value="true" />
        <entry key="Noise" value="false" />
        <entry key="NoiseNullDeref" value="false" />
        <entry key="NoteAnnotationRetention" value="true" />
        <entry key="NoteCheckReturnValueAnnotations" value="true" />
        <entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
        <entry key="NoteJCIPAnnotation" value="true" />
        <entry key="NoteNonNullAnnotations" value="false" />
        <entry key="NoteNonnullReturnValues" value="false" />
        <entry key="NoteSuppressedWarnings" value="true" />
        <entry key="NoteUnconditionalParamDerefs" value="true" />
        <entry key="NumberConstructor" value="true" />
        <entry key="OptionalReturnNull" value="true" />
        <entry key="OverridingEqualsNotSymmetrical" value="true" />
        <entry key="PreferZeroLengthArrays" value="true" />
        <entry key="PublicSemaphores" value="false" />
        <entry key="QuestionableBooleanAssignment" value="true" />
        <entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
        <entry key="ReadReturnShouldBeChecked" value="true" />
        <entry key="RedundantConditions" value="true" />
        <entry key="RedundantInterfaces" value="true" />
        <entry key="ReflectiveClasses" value="true" />
        <entry key="RepeatedConditionals" value="true" />
        <entry key="ResolveAllReferences" value="false" />
        <entry key="RuntimeExceptionCapture" value="true" />
        <entry key="SerializableIdiom" value="true" />
        <entry key="StartInConstructor" value="true" />
        <entry key="StaticCalendarDetector" value="true" />
        <entry key="StringConcatenation" value="true" />
        <entry key="SuperfluousInstanceOf" value="true" />
        <entry key="SuspiciousThreadInterrupted" value="true" />
        <entry key="SwitchFallthrough" value="true" />
        <entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
        <entry key="SynchronizeAndNullCheckField" value="true" />
        <entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
        <entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
        <entry key="TestASM" value="false" />
        <entry key="TestDataflowAnalysis" value="false" />
        <entry key="TestingGround" value="false" />
        <entry key="TestingGround2" value="false" />
        <entry key="TrainFieldStoreTypes" value="true" />
        <entry key="TrainLongInstantfParams" value="true" />
        <entry key="TrainNonNullAnnotations" value="true" />
        <entry key="TrainUnconditionalDerefParams" value="true" />
        <entry key="URLProblems" value="true" />
        <entry key="UncallableMethodOfAnonymousClass" value="true" />
        <entry key="UnnecessaryMath" value="true" />
        <entry key="UnreadFields" value="true" />
        <entry key="UselessSubclassMethod" value="false" />
        <entry key="VarArgsProblems" value="true" />
        <entry key="VolatileUsage" value="true" />
        <entry key="WaitInLoop" value="true" />
        <entry key="WrongMapIterator" value="true" />
        <entry key="XMLFactoryBypass" value="true" />
      </map>
    </option>
    <option name="_reportCategories">
      <map>
        <entry key="BAD_PRACTICE" value="true" />
        <entry key="CORRECTNESS" value="true" />
        <entry key="EXPERIMENTAL" value="true" />
        <entry key="I18N" value="true" />
        <entry key="MALICIOUS_CODE" value="true" />
        <entry key="MT_CORRECTNESS" value="true" />
        <entry key="PERFORMANCE" value="true" />
        <entry key="SECURITY" value="true" />
        <entry key="STYLE" value="true" />
      </map>
    </option>
  </component>
</module>

+ 205 - 0
hos-web-framework-dependencies/hos-web-framework-dependencies.iml

@ -162,4 +162,209 @@
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
  </component>
  <component name="org.twodividedbyzero.idea.findbugs">
    <option name="_basePreferences">
      <map>
        <entry key="property.analysisEffortLevel" value="default" />
        <entry key="property.analyzeAfterAutoMake" value="false" />
        <entry key="property.analyzeAfterCompile" value="false" />
        <entry key="property.annotationGutterIconEnabled" value="true" />
        <entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" />
        <entry key="property.annotationTextRangeMarkupEnabled" value="true" />
        <entry key="property.exportAsHtml" value="true" />
        <entry key="property.exportAsXml" value="true" />
        <entry key="property.exportBaseDir" value="" />
        <entry key="property.exportCreateArchiveDir" value="false" />
        <entry key="property.exportOpenBrowser" value="true" />
        <entry key="property.minPriorityToReport" value="Medium" />
        <entry key="property.runAnalysisInBackground" value="false" />
        <entry key="property.showHiddenDetectors" value="false" />
        <entry key="property.toolWindowToFront" value="true" />
      </map>
    </option>
    <option name="_detectors">
      <map>
        <entry key="AppendingToAnObjectOutputStream" value="true" />
        <entry key="AtomicityProblem" value="true" />
        <entry key="BadAppletConstructor" value="false" />
        <entry key="BadResultSetAccess" value="true" />
        <entry key="BadSyntaxForRegularExpression" value="true" />
        <entry key="BadUseOfReturnValue" value="true" />
        <entry key="BadlyOverriddenAdapter" value="true" />
        <entry key="BooleanReturnNull" value="true" />
        <entry key="BuildInterproceduralCallGraph" value="false" />
        <entry key="BuildObligationPolicyDatabase" value="true" />
        <entry key="BuildStringPassthruGraph" value="true" />
        <entry key="CallToUnsupportedMethod" value="false" />
        <entry key="CalledMethods" value="true" />
        <entry key="CheckCalls" value="false" />
        <entry key="CheckExpectedWarnings" value="false" />
        <entry key="CheckImmutableAnnotation" value="true" />
        <entry key="CheckRelaxingNullnessAnnotation" value="true" />
        <entry key="CheckTypeQualifiers" value="true" />
        <entry key="CloneIdiom" value="true" />
        <entry key="ComparatorIdiom" value="true" />
        <entry key="ConfusedInheritance" value="true" />
        <entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
        <entry key="CovariantArrayAssignment" value="false" />
        <entry key="CrossSiteScripting" value="true" />
        <entry key="DefaultEncodingDetector" value="true" />
        <entry key="DoInsideDoPrivileged" value="true" />
        <entry key="DontCatchIllegalMonitorStateException" value="true" />
        <entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
        <entry key="DontUseEnum" value="true" />
        <entry key="DroppedException" value="true" />
        <entry key="DumbMethodInvocations" value="true" />
        <entry key="DumbMethods" value="true" />
        <entry key="DuplicateBranches" value="true" />
        <entry key="EmptyZipFileEntry" value="false" />
        <entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
        <entry key="ExplicitSerialization" value="true" />
        <entry key="FieldItemSummary" value="true" />
        <entry key="FinalizerNullsFields" value="true" />
        <entry key="FindBadCast2" value="true" />
        <entry key="FindBadForLoop" value="true" />
        <entry key="FindBugsSummaryStats" value="true" />
        <entry key="FindCircularDependencies" value="false" />
        <entry key="FindComparatorProblems" value="true" />
        <entry key="FindDeadLocalStores" value="true" />
        <entry key="FindDoubleCheck" value="true" />
        <entry key="FindEmptySynchronizedBlock" value="true" />
        <entry key="FindFieldSelfAssignment" value="true" />
        <entry key="FindFinalizeInvocations" value="true" />
        <entry key="FindFloatEquality" value="true" />
        <entry key="FindFloatMath" value="false" />
        <entry key="FindHEmismatch" value="true" />
        <entry key="FindInconsistentSync2" value="true" />
        <entry key="FindJSR166LockMonitorenter" value="true" />
        <entry key="FindLocalSelfAssignment2" value="true" />
        <entry key="FindMaskedFields" value="true" />
        <entry key="FindMismatchedWaitOrNotify" value="true" />
        <entry key="FindNakedNotify" value="true" />
        <entry key="FindNoSideEffectMethods" value="true" />
        <entry key="FindNonSerializableStoreIntoSession" value="false" />
        <entry key="FindNonSerializableValuePassedToWriteObject" value="false" />
        <entry key="FindNonShortCircuit" value="true" />
        <entry key="FindNullDeref" value="true" />
        <entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
        <entry key="FindOpenStream" value="true" />
        <entry key="FindPuzzlers" value="true" />
        <entry key="FindRefComparison" value="true" />
        <entry key="FindReturnRef" value="true" />
        <entry key="FindRoughConstants" value="true" />
        <entry key="FindRunInvocations" value="true" />
        <entry key="FindSelfComparison" value="true" />
        <entry key="FindSelfComparison2" value="true" />
        <entry key="FindSleepWithLockHeld" value="true" />
        <entry key="FindSpinLoop" value="true" />
        <entry key="FindSqlInjection" value="true" />
        <entry key="FindTwoLockWait" value="true" />
        <entry key="FindUncalledPrivateMethods" value="true" />
        <entry key="FindUnconditionalWait" value="true" />
        <entry key="FindUninitializedGet" value="true" />
        <entry key="FindUnrelatedTypesInGenericContainer" value="true" />
        <entry key="FindUnreleasedLock" value="true" />
        <entry key="FindUnsatisfiedObligation" value="true" />
        <entry key="FindUnsyncGet" value="true" />
        <entry key="FindUseOfNonSerializableValue" value="true" />
        <entry key="FindUselessControlFlow" value="true" />
        <entry key="FindUselessObjects" value="true" />
        <entry key="FormatStringChecker" value="true" />
        <entry key="FunctionsThatMightBeMistakenForProcedures" value="true" />
        <entry key="HugeSharedStringConstants" value="true" />
        <entry key="IDivResultCastToDouble" value="true" />
        <entry key="IncompatMask" value="true" />
        <entry key="InconsistentAnnotations" value="true" />
        <entry key="InefficientIndexOf" value="false" />
        <entry key="InefficientInitializationInsideLoop" value="false" />
        <entry key="InefficientMemberAccess" value="false" />
        <entry key="InefficientToArray" value="false" />
        <entry key="InfiniteLoop" value="true" />
        <entry key="InfiniteRecursiveLoop" value="true" />
        <entry key="InheritanceUnsafeGetResource" value="true" />
        <entry key="InitializationChain" value="true" />
        <entry key="InitializeNonnullFieldsInConstructor" value="true" />
        <entry key="InstantiateStaticClass" value="true" />
        <entry key="IntCast2LongAsInstant" value="true" />
        <entry key="InvalidJUnitTest" value="true" />
        <entry key="IteratorIdioms" value="true" />
        <entry key="LazyInit" value="true" />
        <entry key="LoadOfKnownNullValue" value="true" />
        <entry key="LostLoggerDueToWeakReference" value="true" />
        <entry key="MethodReturnCheck" value="true" />
        <entry key="Methods" value="true" />
        <entry key="MultithreadedInstanceAccess" value="true" />
        <entry key="MutableEnum" value="true" />
        <entry key="MutableLock" value="true" />
        <entry key="MutableStaticFields" value="true" />
        <entry key="Naming" value="true" />
        <entry key="Noise" value="false" />
        <entry key="NoiseNullDeref" value="false" />
        <entry key="NoteAnnotationRetention" value="true" />
        <entry key="NoteCheckReturnValueAnnotations" value="true" />
        <entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
        <entry key="NoteJCIPAnnotation" value="true" />
        <entry key="NoteNonNullAnnotations" value="false" />
        <entry key="NoteNonnullReturnValues" value="false" />
        <entry key="NoteSuppressedWarnings" value="true" />
        <entry key="NoteUnconditionalParamDerefs" value="true" />
        <entry key="NumberConstructor" value="true" />
        <entry key="OptionalReturnNull" value="true" />
        <entry key="OverridingEqualsNotSymmetrical" value="true" />
        <entry key="PreferZeroLengthArrays" value="true" />
        <entry key="PublicSemaphores" value="false" />
        <entry key="QuestionableBooleanAssignment" value="true" />
        <entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
        <entry key="ReadReturnShouldBeChecked" value="true" />
        <entry key="RedundantConditions" value="true" />
        <entry key="RedundantInterfaces" value="true" />
        <entry key="ReflectiveClasses" value="true" />
        <entry key="RepeatedConditionals" value="true" />
        <entry key="ResolveAllReferences" value="false" />
        <entry key="RuntimeExceptionCapture" value="true" />
        <entry key="SerializableIdiom" value="true" />
        <entry key="StartInConstructor" value="true" />
        <entry key="StaticCalendarDetector" value="true" />
        <entry key="StringConcatenation" value="true" />
        <entry key="SuperfluousInstanceOf" value="true" />
        <entry key="SuspiciousThreadInterrupted" value="true" />
        <entry key="SwitchFallthrough" value="true" />
        <entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
        <entry key="SynchronizeAndNullCheckField" value="true" />
        <entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
        <entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
        <entry key="TestASM" value="false" />
        <entry key="TestDataflowAnalysis" value="false" />
        <entry key="TestingGround" value="false" />
        <entry key="TestingGround2" value="false" />
        <entry key="TrainFieldStoreTypes" value="true" />
        <entry key="TrainLongInstantfParams" value="true" />
        <entry key="TrainNonNullAnnotations" value="true" />
        <entry key="TrainUnconditionalDerefParams" value="true" />
        <entry key="URLProblems" value="true" />
        <entry key="UncallableMethodOfAnonymousClass" value="true" />
        <entry key="UnnecessaryMath" value="true" />
        <entry key="UnreadFields" value="true" />
        <entry key="UselessSubclassMethod" value="false" />
        <entry key="VarArgsProblems" value="true" />
        <entry key="VolatileUsage" value="true" />
        <entry key="WaitInLoop" value="true" />
        <entry key="WrongMapIterator" value="true" />
        <entry key="XMLFactoryBypass" value="true" />
      </map>
    </option>
    <option name="_reportCategories">
      <map>
        <entry key="BAD_PRACTICE" value="true" />
        <entry key="CORRECTNESS" value="true" />
        <entry key="EXPERIMENTAL" value="true" />
        <entry key="I18N" value="true" />
        <entry key="MALICIOUS_CODE" value="true" />
        <entry key="MT_CORRECTNESS" value="true" />
        <entry key="PERFORMANCE" value="true" />
        <entry key="SECURITY" value="true" />
        <entry key="STYLE" value="true" />
      </map>
    </option>
  </component>
</module>

+ 205 - 0
hos-web-framework/hos-web-framework.iml

@ -199,4 +199,209 @@
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
  </component>
  <component name="org.twodividedbyzero.idea.findbugs">
    <option name="_basePreferences">
      <map>
        <entry key="property.analysisEffortLevel" value="default" />
        <entry key="property.analyzeAfterAutoMake" value="false" />
        <entry key="property.analyzeAfterCompile" value="false" />
        <entry key="property.annotationGutterIconEnabled" value="true" />
        <entry key="property.annotationSuppressWarningsClass" value="edu.umd.cs.findbugs.annotations.SuppressFBWarnings" />
        <entry key="property.annotationTextRangeMarkupEnabled" value="true" />
        <entry key="property.exportAsHtml" value="true" />
        <entry key="property.exportAsXml" value="true" />
        <entry key="property.exportBaseDir" value="" />
        <entry key="property.exportCreateArchiveDir" value="false" />
        <entry key="property.exportOpenBrowser" value="true" />
        <entry key="property.minPriorityToReport" value="Medium" />
        <entry key="property.runAnalysisInBackground" value="false" />
        <entry key="property.showHiddenDetectors" value="false" />
        <entry key="property.toolWindowToFront" value="true" />
      </map>
    </option>
    <option name="_detectors">
      <map>
        <entry key="AppendingToAnObjectOutputStream" value="true" />
        <entry key="AtomicityProblem" value="true" />
        <entry key="BadAppletConstructor" value="false" />
        <entry key="BadResultSetAccess" value="true" />
        <entry key="BadSyntaxForRegularExpression" value="true" />
        <entry key="BadUseOfReturnValue" value="true" />
        <entry key="BadlyOverriddenAdapter" value="true" />
        <entry key="BooleanReturnNull" value="true" />
        <entry key="BuildInterproceduralCallGraph" value="false" />
        <entry key="BuildObligationPolicyDatabase" value="true" />
        <entry key="BuildStringPassthruGraph" value="true" />
        <entry key="CallToUnsupportedMethod" value="false" />
        <entry key="CalledMethods" value="true" />
        <entry key="CheckCalls" value="false" />
        <entry key="CheckExpectedWarnings" value="false" />
        <entry key="CheckImmutableAnnotation" value="true" />
        <entry key="CheckRelaxingNullnessAnnotation" value="true" />
        <entry key="CheckTypeQualifiers" value="true" />
        <entry key="CloneIdiom" value="true" />
        <entry key="ComparatorIdiom" value="true" />
        <entry key="ConfusedInheritance" value="true" />
        <entry key="ConfusionBetweenInheritedAndOuterMethod" value="true" />
        <entry key="CovariantArrayAssignment" value="false" />
        <entry key="CrossSiteScripting" value="true" />
        <entry key="DefaultEncodingDetector" value="true" />
        <entry key="DoInsideDoPrivileged" value="true" />
        <entry key="DontCatchIllegalMonitorStateException" value="true" />
        <entry key="DontIgnoreResultOfPutIfAbsent" value="true" />
        <entry key="DontUseEnum" value="true" />
        <entry key="DroppedException" value="true" />
        <entry key="DumbMethodInvocations" value="true" />
        <entry key="DumbMethods" value="true" />
        <entry key="DuplicateBranches" value="true" />
        <entry key="EmptyZipFileEntry" value="false" />
        <entry key="EqualsOperandShouldHaveClassCompatibleWithThis" value="true" />
        <entry key="ExplicitSerialization" value="true" />
        <entry key="FieldItemSummary" value="true" />
        <entry key="FinalizerNullsFields" value="true" />
        <entry key="FindBadCast2" value="true" />
        <entry key="FindBadForLoop" value="true" />
        <entry key="FindBugsSummaryStats" value="true" />
        <entry key="FindCircularDependencies" value="false" />
        <entry key="FindComparatorProblems" value="true" />
        <entry key="FindDeadLocalStores" value="true" />
        <entry key="FindDoubleCheck" value="true" />
        <entry key="FindEmptySynchronizedBlock" value="true" />
        <entry key="FindFieldSelfAssignment" value="true" />
        <entry key="FindFinalizeInvocations" value="true" />
        <entry key="FindFloatEquality" value="true" />
        <entry key="FindFloatMath" value="false" />
        <entry key="FindHEmismatch" value="true" />
        <entry key="FindInconsistentSync2" value="true" />
        <entry key="FindJSR166LockMonitorenter" value="true" />
        <entry key="FindLocalSelfAssignment2" value="true" />
        <entry key="FindMaskedFields" value="true" />
        <entry key="FindMismatchedWaitOrNotify" value="true" />
        <entry key="FindNakedNotify" value="true" />
        <entry key="FindNoSideEffectMethods" value="true" />
        <entry key="FindNonSerializableStoreIntoSession" value="false" />
        <entry key="FindNonSerializableValuePassedToWriteObject" value="false" />
        <entry key="FindNonShortCircuit" value="true" />
        <entry key="FindNullDeref" value="true" />
        <entry key="FindNullDerefsInvolvingNonShortCircuitEvaluation" value="true" />
        <entry key="FindOpenStream" value="true" />
        <entry key="FindPuzzlers" value="true" />
        <entry key="FindRefComparison" value="true" />
        <entry key="FindReturnRef" value="true" />
        <entry key="FindRoughConstants" value="true" />
        <entry key="FindRunInvocations" value="true" />
        <entry key="FindSelfComparison" value="true" />
        <entry key="FindSelfComparison2" value="true" />
        <entry key="FindSleepWithLockHeld" value="true" />
        <entry key="FindSpinLoop" value="true" />
        <entry key="FindSqlInjection" value="true" />
        <entry key="FindTwoLockWait" value="true" />
        <entry key="FindUncalledPrivateMethods" value="true" />
        <entry key="FindUnconditionalWait" value="true" />
        <entry key="FindUninitializedGet" value="true" />
        <entry key="FindUnrelatedTypesInGenericContainer" value="true" />
        <entry key="FindUnreleasedLock" value="true" />
        <entry key="FindUnsatisfiedObligation" value="true" />
        <entry key="FindUnsyncGet" value="true" />
        <entry key="FindUseOfNonSerializableValue" value="true" />
        <entry key="FindUselessControlFlow" value="true" />
        <entry key="FindUselessObjects" value="true" />
        <entry key="FormatStringChecker" value="true" />
        <entry key="FunctionsThatMightBeMistakenForProcedures" value="true" />
        <entry key="HugeSharedStringConstants" value="true" />
        <entry key="IDivResultCastToDouble" value="true" />
        <entry key="IncompatMask" value="true" />
        <entry key="InconsistentAnnotations" value="true" />
        <entry key="InefficientIndexOf" value="false" />
        <entry key="InefficientInitializationInsideLoop" value="false" />
        <entry key="InefficientMemberAccess" value="false" />
        <entry key="InefficientToArray" value="false" />
        <entry key="InfiniteLoop" value="true" />
        <entry key="InfiniteRecursiveLoop" value="true" />
        <entry key="InheritanceUnsafeGetResource" value="true" />
        <entry key="InitializationChain" value="true" />
        <entry key="InitializeNonnullFieldsInConstructor" value="true" />
        <entry key="InstantiateStaticClass" value="true" />
        <entry key="IntCast2LongAsInstant" value="true" />
        <entry key="InvalidJUnitTest" value="true" />
        <entry key="IteratorIdioms" value="true" />
        <entry key="LazyInit" value="true" />
        <entry key="LoadOfKnownNullValue" value="true" />
        <entry key="LostLoggerDueToWeakReference" value="true" />
        <entry key="MethodReturnCheck" value="true" />
        <entry key="Methods" value="true" />
        <entry key="MultithreadedInstanceAccess" value="true" />
        <entry key="MutableEnum" value="true" />
        <entry key="MutableLock" value="true" />
        <entry key="MutableStaticFields" value="true" />
        <entry key="Naming" value="true" />
        <entry key="Noise" value="false" />
        <entry key="NoiseNullDeref" value="false" />
        <entry key="NoteAnnotationRetention" value="true" />
        <entry key="NoteCheckReturnValueAnnotations" value="true" />
        <entry key="NoteDirectlyRelevantTypeQualifiers" value="true" />
        <entry key="NoteJCIPAnnotation" value="true" />
        <entry key="NoteNonNullAnnotations" value="false" />
        <entry key="NoteNonnullReturnValues" value="false" />
        <entry key="NoteSuppressedWarnings" value="true" />
        <entry key="NoteUnconditionalParamDerefs" value="true" />
        <entry key="NumberConstructor" value="true" />
        <entry key="OptionalReturnNull" value="true" />
        <entry key="OverridingEqualsNotSymmetrical" value="true" />
        <entry key="PreferZeroLengthArrays" value="true" />
        <entry key="PublicSemaphores" value="false" />
        <entry key="QuestionableBooleanAssignment" value="true" />
        <entry key="ReadOfInstanceFieldInMethodInvokedByConstructorInSuperclass" value="true" />
        <entry key="ReadReturnShouldBeChecked" value="true" />
        <entry key="RedundantConditions" value="true" />
        <entry key="RedundantInterfaces" value="true" />
        <entry key="ReflectiveClasses" value="true" />
        <entry key="RepeatedConditionals" value="true" />
        <entry key="ResolveAllReferences" value="false" />
        <entry key="RuntimeExceptionCapture" value="true" />
        <entry key="SerializableIdiom" value="true" />
        <entry key="StartInConstructor" value="true" />
        <entry key="StaticCalendarDetector" value="true" />
        <entry key="StringConcatenation" value="true" />
        <entry key="SuperfluousInstanceOf" value="true" />
        <entry key="SuspiciousThreadInterrupted" value="true" />
        <entry key="SwitchFallthrough" value="true" />
        <entry key="SynchronizationOnSharedBuiltinConstant" value="true" />
        <entry key="SynchronizeAndNullCheckField" value="true" />
        <entry key="SynchronizeOnClassLiteralNotGetClass" value="true" />
        <entry key="SynchronizingOnContentsOfFieldToProtectField" value="true" />
        <entry key="TestASM" value="false" />
        <entry key="TestDataflowAnalysis" value="false" />
        <entry key="TestingGround" value="false" />
        <entry key="TestingGround2" value="false" />
        <entry key="TrainFieldStoreTypes" value="true" />
        <entry key="TrainLongInstantfParams" value="true" />
        <entry key="TrainNonNullAnnotations" value="true" />
        <entry key="TrainUnconditionalDerefParams" value="true" />
        <entry key="URLProblems" value="true" />
        <entry key="UncallableMethodOfAnonymousClass" value="true" />
        <entry key="UnnecessaryMath" value="true" />
        <entry key="UnreadFields" value="true" />
        <entry key="UselessSubclassMethod" value="false" />
        <entry key="VarArgsProblems" value="true" />
        <entry key="VolatileUsage" value="true" />
        <entry key="WaitInLoop" value="true" />
        <entry key="WrongMapIterator" value="true" />
        <entry key="XMLFactoryBypass" value="true" />
      </map>
    </option>
    <option name="_reportCategories">
      <map>
        <entry key="BAD_PRACTICE" value="true" />
        <entry key="CORRECTNESS" value="true" />
        <entry key="EXPERIMENTAL" value="true" />
        <entry key="I18N" value="true" />
        <entry key="MALICIOUS_CODE" value="true" />
        <entry key="MT_CORRECTNESS" value="true" />
        <entry key="PERFORMANCE" value="true" />
        <entry key="SECURITY" value="true" />
        <entry key="STYLE" value="true" />
      </map>
    </option>
  </component>
</module>

+ 37 - 0
hos-web-framework/src/main/java/com/yihu/hos/web/framework/util/GridFSUtil.java

@ -484,6 +484,43 @@ public class GridFSUtil {
        return "";
    }
    /**
     *  上传文件至Mongodb by GridFS
     *
     * @param dbName    数据库名
     * @param filePath  文件路径
     */
    public static String uploadFile(String dbName, String filePath,String fileName) {
        //获取mongodb连接
//        MongodbHelper mongoOrigin = new MongodbHelper(dbName);
        //创建一个容器
        File file = new File(filePath);
        MongoDatabase db = MongodbFactory.getDB(dbName);
        GridFSBucket gridFS = GridFSBuckets.create(db);
        //自定义字段
        Document metaDocument= new Document();
        // Create some custom options
        GridFSUploadOptions gridFSUploadOptions = new GridFSUploadOptions()
                .chunkSizeBytes(defaultChunkSize).metadata(metaDocument);
        GridFSUploadStream uploadStream = gridFS.openUploadStream(fileName, gridFSUploadOptions);
        try {
            byte[] data = FileUtil.toByteArray(filePath);
            uploadStream.write(data);
            ObjectId id = uploadStream.getFileId();
            if (id != null) {
                return fileName;
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        finally {
            if (uploadStream != null) {
                uploadStream.close();
            }
        }
        return "";
    }
    /**
     * 据文件名返回文件,只返回第一个
     * @param fileName

+ 25 - 26
src/main/java/com/yihu/hos/system/service/FlowManager.java

@ -1,6 +1,5 @@
package com.yihu.hos.system.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.common.constants.Constants;
import com.yihu.hos.config.MongoConfig;
import com.yihu.hos.core.datatype.StringUtil;
@ -318,15 +317,17 @@ public class FlowManager implements IFlowManage {
    /**
     * TODO 调用broker接口生成camel相关文件
     * 发送消息到broker,生成camel相关文件
     * @param flowTempId
     * @param newCron
     * @throws Exception
     */
    public Integer genCamelFile(Integer flowTempId, String newCron) throws Exception {
        Long timestamp = System.currentTimeMillis();
        Integer newFlowId = sendAddProcessore(flowTempId, timestamp);
        //发送生成processor文件的消息
        Integer newFlowId = sendAddProcessor(flowTempId, timestamp);
        if (newFlowId != null){
            //发送生成route文件的消息
            newFlowId = sendAddRoute(flowTempId, newFlowId, newCron);
            if (newFlowId !=null){
                return newFlowId;
@ -341,7 +342,7 @@ public class FlowManager implements IFlowManage {
    }
    /**
     * 修改camel相关文件
     * 修改任务,修改camel相关文件
     * @param flowId 流程ID
     * @param newCron  新cron
     * @return
@ -349,15 +350,13 @@ public class FlowManager implements IFlowManage {
     */
    @Override
    public Integer updateCamelFile(Integer flowTempId,Integer flowId, String newCron) throws Exception {
         /* 修改route文件无需重新生成flowClass记录,文件名根据className+routeId 生成;*/
        List<SystemServiceFlowTemp> flowTempRouters = flowTempDao.getFlowTemps(flowTempId, Constants.FLOW_TYPE_ROUTE);
        List<SystemServiceFlowClass> flowClassRouters = flowClassDao.getFlowClass(flowId, Constants.FLOW_TYPE_ROUTE);
//        SystemServiceFlow oldFlow = getFlowById(flowId);
        SystemServiceFlow flow = flowDao.getEntity(SystemServiceFlow.class,flowId);
        //route模板文件记录是否存在。不存在就返回。
        if (!flowTempRouters.isEmpty()){
            SystemServiceFlowTemp flowTemp =flowTempRouters.get(0);
            SystemServiceFlowClass flowClass =flowClassRouters.get(0);
            StringBuilder basePath = new StringBuilder();;
            if (flowTemp.getPackageName()!=null){
                String packagePath[] = flowTemp.getPackageName().split("\\.");
@ -365,17 +364,9 @@ public class FlowManager implements IFlowManage {
                    basePath.append(packagePath[i]).append("/");
                }
            }
                    //route文件生成成功,发送消息
//                    flowClass.setIsUpdate("1");
//                    sendUpdateMessage(flow.getCode(), flowClass, Constants.FLOW_OP_UPDATE);
            serviceFlowEventService.routeClassChanged(flow.getCode(),basePath.toString(), flowTemp.getClassName(), flowTemp.getClassPath(),newCron);
            return flowId;
//            genNewRoutefile(flowTemp.getClassPath(),basePath.toString(),flowTemp.getClassName(),newClassName,newCron);
        }
        return null;
    }
@ -399,17 +390,18 @@ public class FlowManager implements IFlowManage {
            }
            //新增processor记录
            String newClassName = flowTemp.getClassName() + newFlow.getCode();
            String newRoutePath = flowTemp.getClassPath().replace(".java",".class");
            String newRoutePath = flowTemp.getClassPath().replace(".java",".class");//生成后的class应保存的地址
            String deName = DES.decrypt(flowTemp.getClassPath(), DES.COMMON_PASSWORD);//吉阿米果的文件名
            SystemServiceFlowClass newFlowClass = new SystemServiceFlowClass();
            newFlowClass.setPackageName(flowTemp.getPackageName());
            newFlowClass.setClassName(newClassName);
            newFlowClass.setClassPath(newRoutePath);
            newFlowClass.setClassName(flowTemp.getClassName() + newFlow.getCode());
            newFlowClass.setClassPath(deName.replace(".java",".class"));
            newFlowClass.setFlowId(newFlow.getId());
            newFlowClass.setType(Constants.FLOW_TYPE_ROUTE);
            flowClassDao.saveEntity(newFlowClass);
            newFlowClass.setIsUpdate("1");
            serviceFlowEventService.routeClassAdded(newFlow.getCode(), basePath.toString(),  flowTemp.getClassName(), flowTemp.getClassPath(),newCron);
            serviceFlowEventService.routeClassAdded(newFlow.getCode(), basePath.toString(),  flowTemp.getClassName(), deName,newCron);
            return newFlow.getId();
        }
@ -417,7 +409,7 @@ public class FlowManager implements IFlowManage {
        return null;
    }
    public Integer sendAddProcessore(Integer flowId, Long timestamp) throws Exception {
    public Integer sendAddProcessor(Integer flowId, Long timestamp) throws Exception {
        List<SystemServiceFlowTemp> flowTempRouters = flowTempDao.getFlowTemps(flowId, Constants.FLOW_TYPE_ROUTE);
        List<SystemServiceFlowTemp> flowTempProces = flowTempDao.getFlowTemps(flowId, Constants.FLOW_TYPE_PROCESSOR);
        SystemServiceFlow oldFlow = getFlowById(flowId);
@ -426,7 +418,6 @@ public class FlowManager implements IFlowManage {
        if (!flowTempRouters.isEmpty()) {
            //成功生成文件后,添加flow和flowclass记录
            //生成新流程
            SystemServiceFlow newFlow = new SystemServiceFlow();
            newFlow.setName(oldFlow.getName() + timestamp);
            newFlow.setCode(oldFlow.getCode() + timestamp);
@ -440,8 +431,9 @@ public class FlowManager implements IFlowManage {
            for (SystemServiceFlowTemp process : flowTempProces) {
                String newProcessPath;
                StringBuilder proPath = new StringBuilder();
                ;
                if (process.getPackageName() != null) {
                    //生成“/"分割的包名
                    String packagePath[] = process.getPackageName().split("\\.");
                    for (int i = 0; i < packagePath.length; i++) {
                        proPath.append(packagePath[i]).append("/");
@ -449,15 +441,17 @@ public class FlowManager implements IFlowManage {
                }
                newProcessPath = process.getClassPath().replace(".java", ".class");
                String deName = DES.decrypt(process.getClassPath(), DES.COMMON_PASSWORD);//吉阿米果的文件名
                SystemServiceFlowClass processClass = new SystemServiceFlowClass();
                processClass.setPackageName(process.getPackageName());
                processClass.setClassName(process.getClassName());
                processClass.setClassPath(newProcessPath);
                processClass.setClassPath(deName.replace(".java",".class"));
                processClass.setFlowId(newFlow.getId());
                processClass.setType(Constants.FLOW_TYPE_PROCESSOR);
                processClass.setIsUpdate("1");
//                sendUpdateMessage(newFlow.getCode(), processClass, Constants.FLOW_OP_ADD);
                serviceFlowEventService.processorClassAdded(newFlow.getCode(),proPath.toString(), processClass.getClassName(), process.getClassPath());
                //发送消息
                serviceFlowEventService.processorClassAdded(newFlow.getCode(),proPath.toString(), processClass.getClassName(), deName);
                flowClassDao.saveEntity(processClass);
@ -468,4 +462,9 @@ public class FlowManager implements IFlowManage {
        return null;
    }
    public static void main(String[] args) throws Exception {
        String deName = DES.decrypt("9818f69020f9c6404c55c8e6f24db78acdeae2368f2b917a9189275f1ee01bd0cbc5f0c2528424dd78ab82c362f8ee27e30fe7d3cb9bdb8e", DES.COMMON_PASSWORD);//吉阿米果的文件名
        System.out.println(deName);
    }
}

+ 18 - 0
src/main/resources/application.yml

@ -20,6 +20,24 @@ spring:
---
spring:
  profiles: dev
 datasource:
      driverClassName: com.mysql.jdbc.Driver
      url: jdbc:mysql://192.168.1.220:3306/esb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
      username: hos2
      password: hos2
      test-on-borrow: true
      validation-query: SELECT 1
      test-while-idle: true
      max-total: 100
      default-auto-commit: true
      max-idle: 30
      min-idle: 10
      initial-size: 10
  jpa:
    database-platform: org.hibernate.dialect.MySQL5Dialect
    hibernate.dialect: org.hibernate.dialect.MySQL5Dialect
    format-sql: true
    show-sql: true
  data:
    mongodb:
      host: 172.19.103.86

+ 4 - 4
src/main/resources/spring/applicationContext.xml

@ -49,14 +49,14 @@
        <property name="removeAbandonedTimeout" value="55"/>
    </bean>
    <bean id="cacheIntercepter" class="com.yihu.hos.interceptor.AuditInterceptor" />
    <!--<bean id="cacheIntercepter" class="com.yihu.hos.interceptor.AuditInterceptor" />-->
    <!--Hibernate 会话管理器配置-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="entityInterceptor">
            <ref bean="cacheIntercepter"/>
        </property>
        <!--<property name="entityInterceptor">-->
            <!--<ref bean="cacheIntercepter"/>-->
        <!--</property>-->
        <property name="packagesToScan">
            <list>