|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| KernelContext | Line # 41 | 152 | 111 | 50.2% |
0.5018587
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
| KernelContext.LazyHolderTimeoutMethods | Line # 471 | 0 | 1 | 0% |
0.0
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (150) | |||
| Result | |||
|
0.096296296
|
org.qedeq.kernel.bo.latex.ExtendedGenerateLatexTest.testGeneration
org.qedeq.kernel.bo.latex.ExtendedGenerateLatexTest.testGeneration
|
1 PASS | |
|
0.096296296
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration
org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration
|
1 PASS | |
|
0.096296296
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration
org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration
|
1 PASS | |
|
0.08888889
|
org.qedeq.kernel.xml.parser.CharsetParserTest.testParse1
org.qedeq.kernel.xml.parser.CharsetParserTest.testParse1
|
1 PASS | |
|
0.08888889
|
org.qedeq.kernel.xml.parser.CharsetParserTest.testParse2
org.qedeq.kernel.xml.parser.CharsetParserTest.testParse2
|
1 PASS | |
|
0.08148148
|
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L001_v2
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L001_v2
|
1 PASS | |
|
0.08148148
|
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L002
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L002
|
1 PASS | |
|
0.08148148
|
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L003
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L003
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq3
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq3
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq6
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq6
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq2
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq2
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq5
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq5
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq4
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq4
|
1 PASS | |
|
0.074074075
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_01
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_01
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative03
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative03
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative03
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative03
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative03
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative03
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_09
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_09
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_07
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_07
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative02
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative02
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_02
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_02
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_04
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_04
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.service.QedeqBoFormalLogicCheckerTest.testCheckModule
org.qedeq.kernel.bo.service.QedeqBoFormalLogicCheckerTest.testCheckModule
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative02
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative02
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.xml.dao.GenerateXmlTest.testGeneration
org.qedeq.kernel.xml.dao.GenerateXmlTest.testGeneration
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_03
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_03
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative04
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative04
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_08
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_08
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_05
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_05
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_06
org.qedeq.kernel.bo.service.ModuleConstantsExistenceCheckerTest.testModuleConstancsExistenceChecker_06
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative04
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative04
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative02
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative02
|
1 PASS | |
|
0.044444446
|
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative04
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative04
|
1 PASS | |
|
0.04074074
|
org.qedeq.kernel.xml.parser.QedeqParserTest.testParse1
org.qedeq.kernel.xml.parser.QedeqParserTest.testParse1
|
1 PASS | |
|
0.04074074
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm00
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm00
|
1 PASS | |
|
0.04074074
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm00
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm00
|
1 PASS | |
|
0.04074074
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm00
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm00
|
1 PASS | |
|
0.04074074
|
org.qedeq.kernel.bo.module.VisitorContextTest.testContext
org.qedeq.kernel.bo.module.VisitorContextTest.testContext
|
1 PASS | |
|
0.037037037
|
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L001_v1
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L001_v1
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_07
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_07
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative00
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative00
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_05
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_05
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_03
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_03
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_01
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_01
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_06
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_06
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_04
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_04
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq1
org.qedeq.kernel.bo.service.QedeqBoFactoryTest.testCreateStringQedeq1
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_02
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_02
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_09
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_09
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_08
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_08
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_10
org.qedeq.kernel.bo.service.LoadRequiredModulesTest.testLoadRequiredModules_10
|
1 PASS | |
|
0.02962963
|
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative01
org.qedeq.kernel.bo.logic.wf.CheckLogicTest.testNegative01
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm16
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm16
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm11
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm11
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm20
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm20
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm17
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm17
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm23
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm23
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm16
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm16
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm28
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm28
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm04
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm04
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm09
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm09
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm14
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm14
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm13
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm13
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm34
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm34
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm49
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm49
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm36
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm36
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm18
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm18
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm12
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm12
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm01
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm01
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm48
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm48
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm24
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm24
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm02
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm02
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm38
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm38
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm05
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm05
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm23
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm23
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm02
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm02
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether
org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm40
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm40
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm03
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm03
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm01
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm01
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm17
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm17
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm19
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm19
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm06
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm06
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm10
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm10
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm31
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm31
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm46
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm46
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm15
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm15
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm26
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm26
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm02
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm02
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm22
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm22
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm26
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm26
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm07
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm07
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm41
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm41
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm13
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm13
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm33
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm33
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm24
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm24
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm32
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm32
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm07
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm07
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether
org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm08
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm08
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm07
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm07
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm08
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm08
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm21
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm21
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm04
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm04
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm25
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm25
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm12
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm12
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm45
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm45
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm05
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm05
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm09
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm09
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm22
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm22
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm20
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm20
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm18
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm18
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm06
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm06
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm15
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm15
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm03
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm03
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm11
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm11
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm08
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm08
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm39
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm39
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm10
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm10
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm29
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm29
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm44
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm44
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.xml.parser.QedeqParserTest.testParse2
org.qedeq.kernel.xml.parser.QedeqParserTest.testParse2
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether
org.qedeq.kernel.bo.parser.AbstractParserTest.testAllTogether
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm30
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm30
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm43
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm43
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm37
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm37
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm47
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm47
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm09
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm09
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm28
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm28
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm05
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm05
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm42
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm42
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm27
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm27
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm27
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm27
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm06
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm06
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm14
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm14
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm03
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm03
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm01
org.qedeq.kernel.bo.parser.LatexMathParserTest.testReadMaximalTerm01
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm35
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm35
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm21
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm21
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm19
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm19
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm50
org.qedeq.kernel.bo.parser.AsciiMathParserTest.testReadMaximalTerm50
|
1 PASS | |
|
0.014814815
|
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm04
org.qedeq.kernel.bo.parser.SimpleMathParserTest.testReadMaximalTerm04
|
1 PASS | |
| 1 | /* This file is part of the project "Hilbert II" - http://www.qedeq.org | |
| 2 | * | |
| 3 | * Copyright 2000-2010, Michael Meyling <mime@qedeq.org>. | |
| 4 | * | |
| 5 | * "Hilbert II" is free software; you can redistribute | |
| 6 | * it and/or modify it under the terms of the GNU General Public | |
| 7 | * License as published by the Free Software Foundation; either | |
| 8 | * version 2 of the License, or (at your option) any later version. | |
| 9 | * | |
| 10 | * This program is distributed in the hope that it will be useful, | |
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 13 | * GNU General Public License for more details. | |
| 14 | */ | |
| 15 | ||
| 16 | package org.qedeq.kernel.bo.context; | |
| 17 | ||
| 18 | import java.io.File; | |
| 19 | import java.io.FileOutputStream; | |
| 20 | import java.io.IOException; | |
| 21 | import java.net.URL; | |
| 22 | import java.net.URLConnection; | |
| 23 | import java.nio.channels.FileLock; | |
| 24 | import java.util.Map; | |
| 25 | ||
| 26 | import org.qedeq.base.io.IoUtility; | |
| 27 | import org.qedeq.base.trace.Trace; | |
| 28 | import org.qedeq.base.utility.YodaUtility; | |
| 29 | import org.qedeq.kernel.bo.QedeqBo; | |
| 30 | import org.qedeq.kernel.bo.log.QedeqLog; | |
| 31 | import org.qedeq.kernel.common.ModuleAddress; | |
| 32 | import org.qedeq.kernel.common.SourceFileExceptionList; | |
| 33 | import org.qedeq.kernel.config.QedeqConfig; | |
| 34 | ||
| 35 | ||
| 36 | /** | |
| 37 | * This class provides static access methods for basic informations. | |
| 38 | * | |
| 39 | * @author Michael Meyling | |
| 40 | */ | |
| 41 | public final class KernelContext implements KernelProperties, KernelState, KernelServices { | |
| 42 | ||
| 43 | /** Message for non started kernel. */ | |
| 44 | private static final String KERNEL_NOT_STARTED = "Kernel not started"; | |
| 45 | ||
| 46 | /** Message for non initialized kernel. */ | |
| 47 | private static final String KERNEL_NOT_INITIALIZED = "Kernel not initialized"; | |
| 48 | ||
| 49 | /** This class. */ | |
| 50 | private static final Class CLASS = KernelContext.class; | |
| 51 | ||
| 52 | /** Version of this kernel. */ | |
| 53 | private static final String KERNEL_VERSION = "0.03.12"; | |
| 54 | ||
| 55 | /** Version dependent directory of this kernel. */ | |
| 56 | private static final String KERNEL_VERSION_DIRECTORY = KERNEL_VERSION.replace('.', '_'); | |
| 57 | ||
| 58 | /** Version code . */ | |
| 59 | private static final String KERNEL_CODE_NAME = "mongaga"; | |
| 60 | ||
| 61 | /** Kernel version dedication. */ | |
| 62 | private static final String KERNEL_DEDICATED | |
| 63 | = "dedicated to Therese Schirrmacher, who died on 2010-08-20"; | |
| 64 | ||
| 65 | /** Descriptive version information of this kernel. */ | |
| 66 | private static final String DESCRIPTIVE_KERNEL_VERSION | |
| 67 | = "Hilbert II - Version " + KERNEL_VERSION + " (" + KERNEL_CODE_NAME + ") [" | |
| 68 | + getBuildIdFromManifest() + "] " + KERNEL_DEDICATED; | |
| 69 | ||
| 70 | /** Maximal supported rule version of this kernel. */ | |
| 71 | private static final String MAXIMAL_RULE_VERSION = "1.00.00"; | |
| 72 | ||
| 73 | /** One and only instance of this class. */ | |
| 74 | private static final KernelContext INSTANCE = new KernelContext(); | |
| 75 | ||
| 76 | /** Lock file. */ | |
| 77 | private File lockFile; | |
| 78 | ||
| 79 | /** Lock file stream. */ | |
| 80 | private FileOutputStream lockStream; | |
| 81 | ||
| 82 | /** Initial kernel state. */ | |
| 83 | private final KernelState initialState = new KernelState() { | |
| 84 | ||
| 85 | 54 |
public void init(final KernelServices moduleServices, final QedeqConfig qedeqConfig) |
| 86 | throws IOException { | |
| 87 | 54 | config = qedeqConfig; |
| 88 | 54 | checkJavaVersion(); |
| 89 | 54 | createAllNecessaryDirectories(); |
| 90 | 54 | checkIfApplicationIsAlreadyRunningAndLockFile(); |
| 91 | 54 | KernelContext.this.services = moduleServices; |
| 92 | 54 | Trace.log("-----------------------------------------------------------------------------------------"); |
| 93 | 54 | QedeqLog.getInstance().logMessage("This is " |
| 94 | + KernelContext.getInstance().getDescriptiveKernelVersion()); | |
| 95 | 54 | QedeqLog.getInstance().logMessage(" see \"http://www.qedeq.org\" for more " |
| 96 | + "information"); | |
| 97 | 54 | QedeqLog.getInstance().logMessage(" supports rules till version " |
| 98 | + KernelContext.getInstance().getMaximalRuleVersion()); | |
| 99 | 54 | currentState = initializedState; |
| 100 | } | |
| 101 | ||
| 102 | 0 |
public boolean isReady() { |
| 103 | 0 | return false; |
| 104 | } | |
| 105 | ||
| 106 | 54 |
public void shutdown() { |
| 107 | 54 | currentState = initialState; |
| 108 | 54 | config = null; |
| 109 | // close stream and associated channel | |
| 110 | 54 | IoUtility.close(lockStream); |
| 111 | 54 | lockStream = null; |
| 112 | } | |
| 113 | ||
| 114 | 0 |
public void startupServices() { |
| 115 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 116 | } | |
| 117 | ||
| 118 | 0 |
public void removeAllModules() { |
| 119 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 120 | } | |
| 121 | ||
| 122 | 0 |
public void removeModule(final ModuleAddress address) { |
| 123 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 124 | } | |
| 125 | ||
| 126 | 0 |
public void clearLocalBuffer() throws IOException { |
| 127 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 128 | } | |
| 129 | ||
| 130 | 0 |
public QedeqBo loadModule(final ModuleAddress address) { |
| 131 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 132 | } | |
| 133 | ||
| 134 | 0 |
public boolean loadAllModulesFromQedeq() { |
| 135 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 136 | } | |
| 137 | ||
| 138 | 0 |
public void loadRequiredModules(final ModuleAddress address) { |
| 139 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 140 | } | |
| 141 | ||
| 142 | 0 |
public ModuleAddress[] getAllLoadedModules() { |
| 143 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 144 | } | |
| 145 | ||
| 146 | 0 |
public QedeqBo getQedeqBo(final ModuleAddress address) { |
| 147 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 148 | } | |
| 149 | ||
| 150 | 0 |
public ModuleAddress getModuleAddress(final URL url) { |
| 151 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 152 | } | |
| 153 | ||
| 154 | 0 |
public ModuleAddress getModuleAddress(final String url) { |
| 155 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 156 | } | |
| 157 | ||
| 158 | 0 |
public ModuleAddress getModuleAddress(final File file) { |
| 159 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 160 | } | |
| 161 | ||
| 162 | 0 |
public String getSource(final ModuleAddress address) { |
| 163 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 164 | } | |
| 165 | ||
| 166 | 0 |
public boolean checkModule(final ModuleAddress address) { |
| 167 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 168 | } | |
| 169 | ||
| 170 | 0 |
public Object executePlugin(final String pluginName, final ModuleAddress address, |
| 171 | final Map parameters) { | |
| 172 | 0 | throw new IllegalStateException(KERNEL_NOT_INITIALIZED); |
| 173 | } | |
| 174 | ||
| 175 | }; | |
| 176 | ||
| 177 | /** Initial kernel state. */ | |
| 178 | private final KernelState initializedState = new KernelState() { | |
| 179 | ||
| 180 | 0 |
public void init(final KernelServices moduleServices, final QedeqConfig qedeqConfig) |
| 181 | throws IOException { | |
| 182 | 0 | throw new IllegalStateException("Kernel is already initialized"); |
| 183 | } | |
| 184 | ||
| 185 | 0 |
public boolean isReady() { |
| 186 | 0 | return false; |
| 187 | } | |
| 188 | ||
| 189 | 54 |
public void shutdown() { |
| 190 | 54 | QedeqLog.getInstance().logMessage("QEDEQ Kernel closed."); |
| 191 | 54 | KernelContext.this.services = null; |
| 192 | 54 | initialState.shutdown(); |
| 193 | } | |
| 194 | ||
| 195 | 54 |
public void startupServices() { |
| 196 | 54 | services.startupServices(); |
| 197 | 54 | currentState = readyState; |
| 198 | 54 | QedeqLog.getInstance().logMessage("QEDEQ kernel opened."); |
| 199 | } | |
| 200 | ||
| 201 | 0 |
public void removeAllModules() { |
| 202 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 203 | } | |
| 204 | ||
| 205 | 0 |
public void removeModule(final ModuleAddress address) { |
| 206 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 207 | } | |
| 208 | ||
| 209 | 0 |
public void clearLocalBuffer() throws IOException { |
| 210 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 211 | } | |
| 212 | ||
| 213 | 0 |
public QedeqBo loadModule(final ModuleAddress address) { |
| 214 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 215 | } | |
| 216 | ||
| 217 | 0 |
public boolean loadAllModulesFromQedeq() { |
| 218 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 219 | } | |
| 220 | ||
| 221 | 0 |
public void loadRequiredModules(final ModuleAddress address) { |
| 222 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 223 | } | |
| 224 | ||
| 225 | 0 |
public ModuleAddress[] getAllLoadedModules() { |
| 226 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 227 | } | |
| 228 | ||
| 229 | 0 |
public QedeqBo getQedeqBo(final ModuleAddress address) { |
| 230 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 231 | } | |
| 232 | ||
| 233 | 0 |
public ModuleAddress getModuleAddress(final URL url) { |
| 234 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 235 | } | |
| 236 | ||
| 237 | 0 |
public ModuleAddress getModuleAddress(final String url) { |
| 238 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 239 | } | |
| 240 | ||
| 241 | 0 |
public ModuleAddress getModuleAddress(final File file) { |
| 242 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 243 | } | |
| 244 | ||
| 245 | 0 |
public String getSource(final ModuleAddress address) { |
| 246 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 247 | } | |
| 248 | ||
| 249 | 0 |
public boolean checkModule(final ModuleAddress address) { |
| 250 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 251 | } | |
| 252 | ||
| 253 | 0 |
public Object executePlugin(final String pluginName, final ModuleAddress address, |
| 254 | final Map parameters) { | |
| 255 | 0 | throw new IllegalStateException(KERNEL_NOT_STARTED); |
| 256 | } | |
| 257 | ||
| 258 | }; | |
| 259 | ||
| 260 | /** State for ready kernel. */ | |
| 261 | private final KernelState readyState = new KernelState() { | |
| 262 | ||
| 263 | 0 |
public void init(final KernelServices moduleServices, final QedeqConfig qedeqConfig) |
| 264 | throws IOException { | |
| 265 | // we are already ready | |
| 266 | } | |
| 267 | ||
| 268 | 0 |
public boolean isReady() { |
| 269 | 0 | return false; |
| 270 | } | |
| 271 | ||
| 272 | 54 |
public void shutdown() { |
| 273 | 54 | try { |
| 274 | 54 | final ModuleAddress[] addresses = services.getAllLoadedModules(); |
| 275 | 54 | final String[] buffer = new String[addresses.length]; |
| 276 | 208 | for (int i = 0; i < addresses.length; i++) { |
| 277 | 154 | buffer[i] = addresses[i].toString(); |
| 278 | } | |
| 279 | 54 | config.setLoadedModules(buffer); |
| 280 | 54 | config.store(); |
| 281 | 54 | QedeqLog.getInstance().logMessage("Current config file successfully saved."); |
| 282 | } catch (IOException e) { | |
| 283 | 0 | Trace.trace(CLASS, this, "shutdown()", e); |
| 284 | 0 | QedeqLog.getInstance().logMessage("Saving current config file failed."); |
| 285 | } | |
| 286 | 54 | initializedState.shutdown(); |
| 287 | } | |
| 288 | ||
| 289 | 0 |
public void startupServices() { |
| 290 | 0 | throw new IllegalStateException("Kernel is already initialized"); |
| 291 | } | |
| 292 | ||
| 293 | 0 |
public void removeAllModules() { |
| 294 | 0 | services.removeAllModules(); |
| 295 | } | |
| 296 | ||
| 297 | 0 |
public void removeModule(final ModuleAddress address) { |
| 298 | 0 | services.removeModule(address); |
| 299 | } | |
| 300 | ||
| 301 | 0 |
public void clearLocalBuffer() throws IOException { |
| 302 | 0 | services.clearLocalBuffer(); |
| 303 | } | |
| 304 | ||
| 305 | 37 |
public QedeqBo loadModule(final ModuleAddress address) throws SourceFileExceptionList { |
| 306 | 37 | return services.loadModule(address); |
| 307 | } | |
| 308 | ||
| 309 | 0 |
public boolean loadAllModulesFromQedeq() { |
| 310 | 0 | return services.loadAllModulesFromQedeq(); |
| 311 | } | |
| 312 | ||
| 313 | 70 |
public void loadRequiredModules(final ModuleAddress address) |
| 314 | throws SourceFileExceptionList { | |
| 315 | 70 | services.loadRequiredModules(address); |
| 316 | } | |
| 317 | ||
| 318 | 0 |
public ModuleAddress[] getAllLoadedModules() { |
| 319 | 0 | return services.getAllLoadedModules(); |
| 320 | } | |
| 321 | ||
| 322 | 58 |
public QedeqBo getQedeqBo(final ModuleAddress address) { |
| 323 | 58 | return services.getQedeqBo(address); |
| 324 | } | |
| 325 | ||
| 326 | 51 |
public ModuleAddress getModuleAddress(final URL url) throws IOException { |
| 327 | 51 | return services.getModuleAddress(url); |
| 328 | } | |
| 329 | ||
| 330 | 0 |
public ModuleAddress getModuleAddress(final String url) throws IOException { |
| 331 | 0 | return services.getModuleAddress(url); |
| 332 | } | |
| 333 | ||
| 334 | 2 |
public ModuleAddress getModuleAddress(final File file) throws IOException { |
| 335 | 2 | return services.getModuleAddress(file); |
| 336 | } | |
| 337 | ||
| 338 | 2 |
public String getSource(final ModuleAddress address) throws IOException { |
| 339 | 2 | return services.getSource(address); |
| 340 | } | |
| 341 | ||
| 342 | 91 |
public boolean checkModule(final ModuleAddress address) { |
| 343 | 91 | return services.checkModule(address); |
| 344 | } | |
| 345 | ||
| 346 | 4 |
public Object executePlugin(final String pluginName, final ModuleAddress address, |
| 347 | final Map parameters) { | |
| 348 | 4 | return services.executePlugin(pluginName, address, parameters); |
| 349 | } | |
| 350 | ||
| 351 | }; | |
| 352 | ||
| 353 | /** Initial kernel state. */ | |
| 354 | private KernelState currentState = initialState; | |
| 355 | ||
| 356 | /** For config access. */ | |
| 357 | private QedeqConfig config; | |
| 358 | ||
| 359 | /** This object can service QEDEQ modules. */ | |
| 360 | private KernelServices services; | |
| 361 | ||
| 362 | /** | |
| 363 | * Constructor. | |
| 364 | */ | |
| 365 | 15 |
private KernelContext() { |
| 366 | // nothing to do | |
| 367 | } | |
| 368 | ||
| 369 | /** | |
| 370 | * Get instance of kernel context. | |
| 371 | * | |
| 372 | * @return Singleton, which is responsible for the kernel access. | |
| 373 | */ | |
| 374 | 1234 |
public static final KernelContext getInstance() { |
| 375 | 1234 | return INSTANCE; |
| 376 | } | |
| 377 | ||
| 378 | /** | |
| 379 | * Get build information from JAR manifest file. Is also non empty string if no manifest | |
| 380 | * information is available. | |
| 381 | * | |
| 382 | * @return Implementation-version. | |
| 383 | */ | |
| 384 | 15 |
private static String getBuildIdFromManifest() { |
| 385 | 15 | String build = KernelContext.class.getPackage().getImplementationVersion(); |
| 386 | 15 | if (build == null) { |
| 387 | 15 | build = "no regular build"; |
| 388 | } | |
| 389 | 15 | return build; |
| 390 | } | |
| 391 | ||
| 392 | /** | |
| 393 | * Get build information. | |
| 394 | * | |
| 395 | * @return Implementation-version. | |
| 396 | */ | |
| 397 | 0 |
public String getBuildId() { |
| 398 | 0 | return getBuildIdFromManifest(); |
| 399 | } | |
| 400 | ||
| 401 | /** | |
| 402 | * Get version of this kernel. | |
| 403 | * | |
| 404 | * @return Kernel version. | |
| 405 | */ | |
| 406 | 0 |
public final String getKernelVersion() { |
| 407 | 0 | return KERNEL_VERSION; |
| 408 | } | |
| 409 | ||
| 410 | /** | |
| 411 | * Get code name of this kernel. | |
| 412 | * | |
| 413 | * @return Kernel code name. | |
| 414 | */ | |
| 415 | 0 |
public final String getKernelCodeName() { |
| 416 | 0 | return KERNEL_CODE_NAME; |
| 417 | } | |
| 418 | ||
| 419 | /** | |
| 420 | * Get relative version directory of this kernel. | |
| 421 | * | |
| 422 | * @return Version sub directory. | |
| 423 | */ | |
| 424 | 737 |
public final String getKernelVersionDirectory() { |
| 425 | 737 | return KERNEL_VERSION_DIRECTORY; |
| 426 | } | |
| 427 | ||
| 428 | /** | |
| 429 | * Get descriptive version information of this kernel. | |
| 430 | * | |
| 431 | * @return Version Information. | |
| 432 | */ | |
| 433 | 54 |
public final String getDescriptiveKernelVersion() { |
| 434 | 54 | return DESCRIPTIVE_KERNEL_VERSION; |
| 435 | } | |
| 436 | ||
| 437 | /** | |
| 438 | * Get dedication for this kernel. | |
| 439 | * | |
| 440 | * @return Kernel code dedication. | |
| 441 | */ | |
| 442 | 0 |
public final String getDedication() { |
| 443 | 0 | return KERNEL_DEDICATED; |
| 444 | } | |
| 445 | ||
| 446 | /** | |
| 447 | * Get maximal supported rule version of this kernel. | |
| 448 | * | |
| 449 | * @return Maximal supported rule version. | |
| 450 | */ | |
| 451 | 54 |
public final String getMaximalRuleVersion() { |
| 452 | 54 | return MAXIMAL_RULE_VERSION; |
| 453 | } | |
| 454 | ||
| 455 | /** | |
| 456 | * Is a given rule version supported? | |
| 457 | * | |
| 458 | * @param ruleVersion Check this one. | |
| 459 | * @return Is the given rule version supported? | |
| 460 | */ | |
| 461 | 0 |
public final boolean isRuleVersionSupported(final String ruleVersion) { |
| 462 | 0 | return MAXIMAL_RULE_VERSION.equals(ruleVersion); |
| 463 | } | |
| 464 | ||
| 465 | ||
| 466 | /** | |
| 467 | * This class ist just for solving the lazy loading problem thread save. | |
| 468 | * see <a href="http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom"> | |
| 469 | * Initialization_on_demand_holder_idiom</a>. | |
| 470 | */ | |
| 471 | private static final class LazyHolderTimeoutMethods { | |
| 472 | ||
| 473 | /** Lazy initialized constant that knows about the existence of the method | |
| 474 | * <code>URLConnection.setConnectTimeout</code>. This depends on the currently running | |
| 475 | * JVM. */ | |
| 476 | private static final boolean IS_SET_CONNECTION_TIMEOUT_SUPPORTED = YodaUtility.existsMethod( | |
| 477 | URLConnection.class, "setConnectTimeout", | |
| 478 | new Class[] {Integer.TYPE}); | |
| 479 | ||
| 480 | /** Lazy initialized constant that knows about the existence of the method | |
| 481 | * <code>URLConnection.setReadTimeout</code>. This depends on the currently running | |
| 482 | * JVM. */ | |
| 483 | private static final boolean IS_SET_READ_TIMEOUT_SUSPPORTED = YodaUtility.existsMethod( | |
| 484 | URLConnection.class, "setReadTimeout", | |
| 485 | new Class[] {Integer.TYPE}); | |
| 486 | ||
| 487 | /** | |
| 488 | * Hidden constructor. | |
| 489 | */ | |
| 490 | 0 |
private LazyHolderTimeoutMethods() { |
| 491 | // nothing to do | |
| 492 | } | |
| 493 | ||
| 494 | } | |
| 495 | ||
| 496 | ||
| 497 | /** | |
| 498 | * Does {@link java.net.URLConnection} support the method <code>setConnectionTimeOut</code> | |
| 499 | * in the currently running JVM. This should be true since version 1.5 but false for 1.4.2. | |
| 500 | * | |
| 501 | * @return Method is supported? | |
| 502 | */ | |
| 503 | 0 |
public boolean isSetConnectionTimeOutSupported() { |
| 504 | 0 | return LazyHolderTimeoutMethods.IS_SET_CONNECTION_TIMEOUT_SUPPORTED; |
| 505 | } | |
| 506 | ||
| 507 | /** | |
| 508 | * Does {@link java.net.URLConnection} support the method <code>setReadTimeOut</code> | |
| 509 | * in the currently running JVM. This should be true since version 1.5 but false for 1.4.2. | |
| 510 | * | |
| 511 | * @return Method is supported? | |
| 512 | */ | |
| 513 | 0 |
public boolean isSetReadTimeoutSupported() { |
| 514 | 0 | return LazyHolderTimeoutMethods.IS_SET_READ_TIMEOUT_SUSPPORTED; |
| 515 | } | |
| 516 | ||
| 517 | 134 |
public QedeqConfig getConfig() { |
| 518 | 134 | return config; |
| 519 | } | |
| 520 | ||
| 521 | 54 |
public void init(final KernelServices moduleServices, final QedeqConfig qedeqConfig) |
| 522 | throws IOException { | |
| 523 | 54 | currentState.init(moduleServices, qedeqConfig); |
| 524 | } | |
| 525 | ||
| 526 | 0 |
public boolean isReady() { |
| 527 | 0 | return currentState.isReady(); |
| 528 | } | |
| 529 | ||
| 530 | 54 |
public void shutdown() { |
| 531 | 54 | currentState.shutdown(); |
| 532 | } | |
| 533 | ||
| 534 | 54 |
public void startupServices() { |
| 535 | 54 | currentState.startupServices(); |
| 536 | } | |
| 537 | ||
| 538 | 0 |
public void removeAllModules() { |
| 539 | 0 | currentState.removeAllModules(); |
| 540 | } | |
| 541 | ||
| 542 | 0 |
public void removeModule(final ModuleAddress address) { |
| 543 | 0 | currentState.removeModule(address); |
| 544 | } | |
| 545 | ||
| 546 | 0 |
public void clearLocalBuffer() throws IOException { |
| 547 | 0 | currentState.clearLocalBuffer(); |
| 548 | } | |
| 549 | ||
| 550 | 37 |
public QedeqBo loadModule(final ModuleAddress address) throws SourceFileExceptionList { |
| 551 | 37 | return currentState.loadModule(address); |
| 552 | } | |
| 553 | ||
| 554 | 0 |
public boolean loadAllModulesFromQedeq() { |
| 555 | 0 | return currentState.loadAllModulesFromQedeq(); |
| 556 | } | |
| 557 | ||
| 558 | 70 |
public void loadRequiredModules(final ModuleAddress address) throws SourceFileExceptionList { |
| 559 | 70 | currentState.loadRequiredModules(address); |
| 560 | } | |
| 561 | ||
| 562 | 0 |
public ModuleAddress[] getAllLoadedModules() { |
| 563 | 0 | return currentState.getAllLoadedModules(); |
| 564 | } | |
| 565 | ||
| 566 | 58 |
public QedeqBo getQedeqBo(final ModuleAddress address) { |
| 567 | 58 | return currentState.getQedeqBo(address); |
| 568 | } | |
| 569 | ||
| 570 | 51 |
public ModuleAddress getModuleAddress(final URL url) throws IOException { |
| 571 | 51 | return currentState.getModuleAddress(url); |
| 572 | } | |
| 573 | ||
| 574 | 0 |
public ModuleAddress getModuleAddress(final String url) throws IOException { |
| 575 | 0 | return currentState.getModuleAddress(url); |
| 576 | } | |
| 577 | ||
| 578 | 2 |
public ModuleAddress getModuleAddress(final File file) throws IOException { |
| 579 | 2 | return currentState.getModuleAddress(file); |
| 580 | } | |
| 581 | ||
| 582 | 2 |
public String getSource(final ModuleAddress address) throws IOException { |
| 583 | 2 | return currentState.getSource(address); |
| 584 | } | |
| 585 | ||
| 586 | 91 |
public boolean checkModule(final ModuleAddress address) { |
| 587 | 91 | return currentState.checkModule(address); |
| 588 | } | |
| 589 | ||
| 590 | 4 |
public Object executePlugin(final String pluginName, final ModuleAddress address, |
| 591 | final Map parameters) { | |
| 592 | 4 | return currentState.executePlugin(pluginName, address, parameters); |
| 593 | } | |
| 594 | ||
| 595 | /** | |
| 596 | * Check java version. We want to be shure that the kernel is run at least with java 1.4.2 | |
| 597 | * | |
| 598 | * @throws IOException Application is running below java 1.4.2. | |
| 599 | */ | |
| 600 | 54 |
private void checkJavaVersion() throws IOException { |
| 601 | 54 | Trace.log("running on java version " + System.getProperty("java.version")); |
| 602 | 54 | final int[] versions = IoUtility.getJavaVersion(); |
| 603 | 54 | if (versions == null) { |
| 604 | 0 | Trace.fatal(CLASS, this, "checkJavaVersion", "running java version unknown", null); |
| 605 | // we try to continue | |
| 606 | 0 | return; |
| 607 | } | |
| 608 | 54 | final StringBuffer version = new StringBuffer(); |
| 609 | 216 | for (int i = 0; i < versions.length; i++) { |
| 610 | 162 | if (i > 0) { |
| 611 | 108 | version.append("."); |
| 612 | } | |
| 613 | 162 | version.append(versions[i]); |
| 614 | } | |
| 615 | 54 | Trace.paramInfo(CLASS, this, "checkJavaVersion", "version", version); |
| 616 | // >= 1 | |
| 617 | 54 | if (versions.length < 1 || versions[0] < 1) { |
| 618 | 0 | throw new IOException("This application requires at least Java 1.4.2 but we got " |
| 619 | + version); | |
| 620 | } | |
| 621 | 54 | if (versions[0] == 1) { // further checking |
| 622 | // >= 1.4 | |
| 623 | 54 | if (versions.length < 2 || versions[1] < 4) { |
| 624 | 0 | throw new IOException("This application requires at least Java 1.4.2 but we got " |
| 625 | + version); | |
| 626 | } | |
| 627 | 54 | if (versions[1] == 4) { // further checking |
| 628 | // >=1.4.2 | |
| 629 | 0 | if (versions.length < 3 || versions[2] < 2) { |
| 630 | 0 | throw new IOException( |
| 631 | "This application requires at least Java 1.4.2 but we got " | |
| 632 | + version); | |
| 633 | } | |
| 634 | } | |
| 635 | } | |
| 636 | } | |
| 637 | ||
| 638 | /** | |
| 639 | * Create all necessary directories for the kernel. | |
| 640 | * | |
| 641 | * @throws IOException Creation was not possible. | |
| 642 | */ | |
| 643 | 54 |
void createAllNecessaryDirectories() throws IOException { |
| 644 | // log directory | |
| 645 | 54 | final File logFile = new File(config.getBasisDirectory(), config.getLogFile()); |
| 646 | 54 | final File logDir = logFile.getParentFile(); |
| 647 | 54 | if (!logDir.exists() && !logDir.mkdirs()) { |
| 648 | 0 | throw new IOException("can't create directory: " + logDir.getAbsolutePath()); |
| 649 | } | |
| 650 | // buffer directory | |
| 651 | 54 | final File bufferDir = config.getBufferDirectory(); |
| 652 | 54 | if (!bufferDir.exists() && !bufferDir.mkdirs()) { |
| 653 | 0 | throw new IOException("can't create directory: " + bufferDir.getAbsolutePath()); |
| 654 | } | |
| 655 | // generation directory | |
| 656 | 54 | final File generationDir = config.getGenerationDirectory(); |
| 657 | 54 | if (!generationDir.exists() && !generationDir.mkdirs()) { |
| 658 | 0 | throw new IOException("can't create directory: " + generationDir.getAbsolutePath()); |
| 659 | } | |
| 660 | } | |
| 661 | ||
| 662 | ||
| 663 | /** | |
| 664 | * Checks if the application is already running. To check that we create a file in the | |
| 665 | * buffer directory, open a stream and write something into it. The stream is not closed | |
| 666 | * until kernel shutdown. | |
| 667 | * | |
| 668 | * @throws IOException Application is already running. | |
| 669 | */ | |
| 670 | 54 |
private void checkIfApplicationIsAlreadyRunningAndLockFile() |
| 671 | throws IOException { | |
| 672 | 54 | lockFile = new File(config.getBufferDirectory(), "qedeq_lock.lck"); |
| 673 | /* LATER 20100217 mime: remove old code, now we use FileLock mechanism | |
| 674 | final String osName = System.getProperty("os.name"); | |
| 675 | if (osName.startsWith("Windows")) { | |
| 676 | if ((lockFile.exists() && !lockFile.delete())) { | |
| 677 | throw new IOException("It seems the application is already running.\n" | |
| 678 | + "At least the file \"" + lockFile.getAbsolutePath() | |
| 679 | + "\" couldn't be deleted."); | |
| 680 | } | |
| 681 | } else { | |
| 682 | if ((lockFile.exists())) { | |
| 683 | throw new IOException("It seems the application is already running or crashed." | |
| 684 | + "\nAt least the file \"" + lockFile.getAbsolutePath() | |
| 685 | + "\" must be manually deleted!"); | |
| 686 | } | |
| 687 | } | |
| 688 | */ | |
| 689 | 54 | FileLock fl = null; |
| 690 | 54 | try { |
| 691 | 54 | lockStream = new FileOutputStream(lockFile); |
| 692 | 54 | lockStream.write("LOCKED".getBytes("UTF8")); |
| 693 | 54 | lockStream.flush(); |
| 694 | 54 | fl = lockStream.getChannel().tryLock(); |
| 695 | } catch (IOException e) { | |
| 696 | 0 | throw new IOException("It seems the application is already running.\n" |
| 697 | + "At least accessing the file \"" + lockFile.getAbsolutePath() + "\" failed."); | |
| 698 | } | |
| 699 | 54 | if (fl == null) { |
| 700 | 0 | throw new IOException("It seems the application is already running.\n" |
| 701 | + "At least locking the file \"" + lockFile.getAbsolutePath() + "\" failed."); | |
| 702 | } | |
| 703 | } | |
| 704 | ||
| 705 | } | |
|
||||||||||