[GUMP@brutus]: Project smartfrog-tasks-test (in module smartfrog) failed
Smartfrog <[email protected]>
| Newsgroups | gmane.comp.java.smartfrog.devel |
|---|---|
| Message-ID | <[email protected]> |
To whom it may engage...
This is an automated request, but not an unsolicited one. For
more information please visit http://gump.apache.org/nagged.html,
and/or contact the folk at [email protected]
Project smartfrog-tasks-test has an issue affecting its community integration.
This issue affects 1 projects.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- smartfrog-tasks-test : Smartfrog: Application Deployment from HP Laboratories
Full details are available at:
http://brutus.apache.org/gump/public/smartfrog/smartfrog-tasks-test/index.html
That said, some information snippets are provided here.
The following annotations (debug/informational/warning/error messages) were provided:
-DEBUG- Dependency on ant exists, no need to add for property ant.home.
-DEBUG- Dependency on smartfrog exists, no need to add for property env.SFHOME.
-INFO- Failed with reason build failed
The following work was performed:
http://brutus.apache.org/gump/public/smartfrog/smartfrog-tasks-test/gump_work/build_smartfrog_smartfrog-tasks-test.html
Work Name: build_smartfrog_smartfrog-tasks-test (Type: Build)
Work ended in a state of : Failed
Elapsed: 2 mins 7 secs
Command Line: java -Djava.awt.headless=true org.apache.tools.ant.Main -Dgump.merge=/home/gump/workspaces2/public/gump/work/merge.xml -Dbuild.sysclasspath=only -Dant.home=/usr/local/gump/public/workspace/ant/dist -Dsystem.tests=false -Denv.SFHOME=/usr/local/gump/public/workspace/smartfrog/smartfrog/dist test
[Working Directory: /usr/local/gump/public/workspace/smartfrog/extras/ant]
CLASSPATH: /opt/jdk1.4/lib/tools.jar:/usr/local/gump/public/workspace/smartfrog/extras/ant/build/test/classes:/usr/local/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-swing.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-trax.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-junit.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant.jar:/usr/local/gump/public/workspace/ant/build/lib/ant-testutil.jar:/usr/local/gump/public/workspace/dist/junit/junit.jar:/usr/local/gump/public/workspace/smartfrog/smartfrog/dist/lib/sfExamples.jar:/usr/local/gump/public/workspace/smartfrog/smartfrog/dist/lib/sfServices.jar:/usr/local/gump/public/workspace/
smartfrog/smartfrog/dist/lib/smartfrog.jar:/usr/local/gump/public/workspace/smartfrog/extr
as/ant/build/dist/lib/sf-tasks.jar
---------------------------------------------
[sf-junit] Testsuite: org.smartfrog.tools.ant.test.system.PingTest
[sf-junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 24.367 sec
[sf-junit] Testsuite: org.smartfrog.tools.ant.test.system.RunTest
[sf-junit] not found:
[sf-junit] Reference not found, Unresolved Reference
[sf-junit] log was:-
[sf-junit] 2005/04/16 01:18:27:750 PDT [WARN ][main] SFCORE_LOG - SmartFrog security is NOT activeSmartFrog 3.04.019_beta(C) Copyright 1998-2005 Hewlett-Packard Development Company, LPSmartFrogCompileResolutionException:: error in schema: non-optional attribute 'sfClass (class that implements component)' is missing, source: HERE sfConfig:schemaPrim, resolutionPhase: predicate at org.smartfrog.sfcore.languages.sf.predicates.Schema.checkSchemaClass(Schema.java:178) at org.smartfrog.sfcore.languages.sf.predicates.Schema.checkAttribute(Schema.java:125) at org.smartfrog.sfcore.languages.sf.predicates.Schema.doPredicate(Schema.java:272) at org.smartfrog.sfcore.languages.sf.predicates.BasePredicate.doit(BasePredicate.java:56) at org.smartfrog.sfcore.languages.sf.Phase.actOn(Phase.java:97) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.visit(ComponentDescriptionImpl.java:
596) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.visit(Component
DescriptionImpl.java:591) at org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:663) at org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:605) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.sfComponentDescription(ComponentDescriptionImpl.java:667) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.sfComponentDescription(ComponentDescriptionImpl.java:634) at org.smartfrog.sfcore.common.ActionDeploy.Deploy(ActionDeploy.java:112) at org.smartfrog.sfcore.common.ActionDeploy.execute(ActionDeploy.java:213) at org.smartfrog.sfcore.common.ConfigurationAction.execute(ConfigurationAction.java:74) at org.smartfrog.sfcore.common.ConfigurationDescriptor.execute(ConfigurationDescriptor.java:812) at
org.smartfrog.SFSystem.runConfigurationDescriptor(SFSystem.java:297) at org.smartfrog.SFSy
stem.runConfigurationDescriptor(SFSystem.java:274) at org.smartfrog.SFSystem.runConfigurationDescriptors(SFSystem.java:263) at org.smartfrog.SFSystem.runSmartFrog(SFSystem.java:453) at org.smartfrog.SFSystem.execute(SFSystem.java:360) at org.smartfrog.SFSystem.main(SFSystem.java:327) - FAILED when trying DEPLOY of 'app', [/tmp/deploy15271360.sf] Result: * Exception: 'SmartFrogDeploymentException: unnamed component. deploying description '/tmp/deploy15271360.sf' for 'app' cause: SmartFrogResolutionException:: Error resolving '/tmp/deploy15271360.sf'. Parser error while resolving phases[SmartFrogCompileResolutionException:: error in schema: non-optional attribute 'sfClass (class that implements component)' is missing, source: HERE sfConfig:schemaPrim, resolutionPhase: predicate] deployedContext: included' * Command line SFACT: 'app:DEPLOY:/tmp/deploy15271360.
sf:::' * To String: ' name:app, type:DEPLOY, url:/tmp/deploy15271360.sf, resultTyp
e:FAILED, resultExceptionMessage:unnamed component. deploying description '/tmp/deploy15271360.sf' for 'app''junit.framework.TestListener: addFailure(testInline, not found: "Reference not found, Unresolved Reference" log was "2005/04/16 01:18:27:750 PDT [WARN ][main] SFCORE_LOG - SmartFrog security is NOT activeSmartFrog 3.04.019_beta(C) Copyright 1998-2005 Hewlett-Packard Development Company, LPSmartFrogCompileResolutionException:: error in schema: non-optional attribute 'sfClass (class that implements component)' is missing, source: HERE sfConfig:schemaPrim, resolutionPhase: predicate at org.smartfrog.sfcore.languages.sf.predicates.Schema.checkSchemaClass(Schema.java:178) at org.smartfrog.sfcore.languages.sf.predicates.Schema.checkAttribute(Schema.java:125) at org.smartfrog.sfcore.languages.sf.predicates.Schema.doPredicate(Schema.java:272) at org.smartfrog.sfcore.languages.sf.predica
tes.BasePredicate.doit(BasePredicate.java:56) at org.smartfrog.sfcore.languages.sf.Phase.a
ctOn(Phase.java:97) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.visit(ComponentDescriptionImpl.java:596) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.visit(ComponentDescriptionImpl.java:591) at org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:663) at org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:605) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.sfComponentDescription(ComponentDescriptionImpl.java:667) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.sfComponentDescription(ComponentDescriptionImpl.java:634) at org.smartfrog.sfcore.common.ActionDeploy.Deploy(ActionDeploy.java:112) at org.smartfrog.sfcore.common.ActionDeploy.exe
cute(ActionDeploy.java:213) at org.smartfrog.sfcore.common.ConfigurationAction.execute(Con
figurationAction.java:74) at org.smartfrog.sfcore.common.ConfigurationDescriptor.execute(ConfigurationDescriptor.java:812) at org.smartfrog.SFSystem.runConfigurationDescriptor(SFSystem.java:297) at org.smartfrog.SFSystem.runConfigurationDescriptor(SFSystem.java:274) at org.smartfrog.SFSystem.runConfigurationDescriptors(SFSystem.java:263) at org.smartfrog.SFSystem.runSmartFrog(SFSystem.java:453) at org.smartfrog.SFSystem.execute(SFSystem.java:360) at org.smartfrog.SFSystem.main(SFSystem.java:327) - FAILED when trying DEPLOY of 'app', [/tmp/deploy15271360.sf] Result: * Exception: 'SmartFrogDeploymentException: unnamed component. deploying description '/tmp/deploy15271360.sf' for 'app' cause: SmartFrogResolutionException:: Error resolving '/tmp/deploy15271360.sf'. Parser error while resolving phases[SmartFrogCompileResolutionException:: error in schema: non-optional attrib
ute 'sfClass (class that implements component)' is missing, source: HERE sfConfig:schemaPr
im, resolutionPhase: predicate] deployedContext: included' * Command line SFACT: 'app:DEPLOY:/tmp/deploy15271360.sf:::' * To String: ' name:app, type:DEPLOY, url:/tmp/deploy15271360.sf, resultType:FAILED, resultExceptionMessage:unnamed component. deploying description '/tmp/deploy15271360.sf' for 'app''")
[sf-junit] Tests run: 17, Failures: 1, Errors: 0, Time elapsed: 14.043 sec
[sf-junit] ------------- Standard Output ---------------
[sf-junit] not found:
[sf-junit] Reference not found, Unresolved Reference
[sf-junit] log was:-
[sf-junit] 2005/04/16 01:18:27:750 PDT [WARN ][main] SFCORE_LOG - SmartFrog security is NOT activeSmartFrog 3.04.019_beta(C) Copyright 1998-2005 Hewlett-Packard Development Company, LPSmartFrogCompileResolutionException:: error in schema: non-optional attribute 'sfClass (class that implements component)' is missing, source: HERE sfConfig:schemaPrim, resolutionPhase: predicate at org.smartfrog.sfcore.languages.sf.predicates.Schema.checkSchemaClass(Schema.java:178) at org.smartfrog.sfcore.languages.sf.predicates.Schema.checkAttribute(Schema.java:125) at org.smartfrog.sfcore.languages.sf.predicates.Schema.doPredicate(Schema.java:272) at org.smartfrog.sfcore.languages.sf.predicates.BasePredicate.doit(BasePredicate.java:56) at org.smartfrog.sfcore.languages.sf.Phase.actOn(Phase.java:97) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.visit(ComponentDescriptionImpl.java:
596) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.visit(Component
DescriptionImpl.java:591) at org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:663) at org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:605) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.sfComponentDescription(ComponentDescriptionImpl.java:667) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.sfComponentDescription(ComponentDescriptionImpl.java:634) at org.smartfrog.sfcore.common.ActionDeploy.Deploy(ActionDeploy.java:112) at org.smartfrog.sfcore.common.ActionDeploy.execute(ActionDeploy.java:213) at org.smartfrog.sfcore.common.ConfigurationAction.execute(ConfigurationAction.java:74) at org.smartfrog.sfcore.common.ConfigurationDescriptor.execute(ConfigurationDescriptor.java:812) at
org.smartfrog.SFSystem.runConfigurationDescriptor(SFSystem.java:297) at org.smartfrog.SFSy
stem.runConfigurationDescriptor(SFSystem.java:274) at org.smartfrog.SFSystem.runConfigurationDescriptors(SFSystem.java:263) at org.smartfrog.SFSystem.runSmartFrog(SFSystem.java:453) at org.smartfrog.SFSystem.execute(SFSystem.java:360) at org.smartfrog.SFSystem.main(SFSystem.java:327) - FAILED when trying DEPLOY of 'app', [/tmp/deploy15271360.sf] Result: * Exception: 'SmartFrogDeploymentException: unnamed component. deploying description '/tmp/deploy15271360.sf' for 'app' cause: SmartFrogResolutionException:: Error resolving '/tmp/deploy15271360.sf'. Parser error while resolving phases[SmartFrogCompileResolutionException:: error in schema: non-optional attribute 'sfClass (class that implements component)' is missing, source: HERE sfConfig:schemaPrim, resolutionPhase: predicate] deployedContext: included' * Command line SFACT: 'app:DEPLOY:/tmp/deploy15271360.
sf:::' * To String: ' name:app, type:DEPLOY, url:/tmp/deploy15271360.sf, resultTyp
e:FAILED, resultExceptionMessage:unnamed component. deploying description '/tmp/deploy15271360.sf' for 'app''------------- ---------------- ---------------
[sf-junit] Testcase: testInline(org.smartfrog.tools.ant.test.system.RunTest): FAILED
[sf-junit] not found: "Reference not found, Unresolved Reference" log was "2005/04/16 01:18:27:750 PDT [WARN ][main] SFCORE_LOG - SmartFrog security is NOT activeSmartFrog 3.04.019_beta(C) Copyright 1998-2005 Hewlett-Packard Development Company, LPSmartFrogCompileResolutionException:: error in schema: non-optional attribute 'sfClass (class that implements component)' is missing, source: HERE sfConfig:schemaPrim, resolutionPhase: predicate at org.smartfrog.sfcore.languages.sf.predicates.Schema.checkSchemaClass(Schema.java:178) at org.smartfrog.sfcore.languages.sf.predicates.Schema.checkAttribute(Schema.java:125) at org.smartfrog.sfcore.languages.sf.predicates.Schema.doPredicate(Schema.java:272) at org.smartfrog.sfcore.languages.sf.predicates.BasePredicate.doit(BasePredicate.java:56) at org.smartfrog.sfcore.languages.sf.Phase.actOn(Phase.java:97) at org.smartfrog.sfcore.componentdescripti
on.ComponentDescriptionImpl.visit(ComponentDescriptionImpl.java:596) at org.smartfrog.sfco
re.componentdescription.ComponentDescriptionImpl.visit(ComponentDescriptionImpl.java:591) at org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:663) at org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:605) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.sfComponentDescription(ComponentDescriptionImpl.java:667) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.sfComponentDescription(ComponentDescriptionImpl.java:634) at org.smartfrog.sfcore.common.ActionDeploy.Deploy(ActionDeploy.java:112) at org.smartfrog.sfcore.common.ActionDeploy.execute(ActionDeploy.java:213) at org.smartfrog.sfcore.common.ConfigurationAction.execute(ConfigurationAction.java:74) at org.smartfrog.sfcore.common.Confi
gurationDescriptor.execute(ConfigurationDescriptor.java:812) at org.smartfrog.SFSystem.run
ConfigurationDescriptor(SFSystem.java:297) at org.smartfrog.SFSystem.runConfigurationDescriptor(SFSystem.java:274) at org.smartfrog.SFSystem.runConfigurationDescriptors(SFSystem.java:263) at org.smartfrog.SFSystem.runSmartFrog(SFSystem.java:453) at org.smartfrog.SFSystem.execute(SFSystem.java:360) at org.smartfrog.SFSystem.main(SFSystem.java:327) - FAILED when trying DEPLOY of 'app', [/tmp/deploy15271360.sf] Result: * Exception: 'SmartFrogDeploymentException: unnamed component. deploying description '/tmp/deploy15271360.sf' for 'app' cause: SmartFrogResolutionException:: Error resolving '/tmp/deploy15271360.sf'. Parser error while resolving phases[SmartFrogCompileResolutionException:: error in schema: non-optional attribute 'sfClass (class that implements component)' is missing, source: HERE sfConfig:schemaPrim, resolutionPhase: predicate] deployedContext: inclu
ded' * Command line SFACT: 'app:DEPLOY:/tmp/deploy15271360.sf:::' * To String: '
name:app, type:DEPLOY, url:/tmp/deploy15271360.sf, resultType:FAILED, resultExceptionMessage:unnamed component. deploying description '/tmp/deploy15271360.sf' for 'app''"
[sf-junit] junit.framework.AssertionFailedError: not found: "Reference not found, Unresolved Reference" log was "2005/04/16 01:18:27:750 PDT [WARN ][main] SFCORE_LOG - SmartFrog security is NOT activeSmartFrog 3.04.019_beta(C) Copyright 1998-2005 Hewlett-Packard Development Company, LPSmartFrogCompileResolutionException:: error in schema: non-optional attribute 'sfClass (class that implements component)' is missing, source: HERE sfConfig:schemaPrim, resolutionPhase: predicate at org.smartfrog.sfcore.languages.sf.predicates.Schema.checkSchemaClass(Schema.java:178) at org.smartfrog.sfcore.languages.sf.predicates.Schema.checkAttribute(Schema.java:125) at org.smartfrog.sfcore.languages.sf.predicates.Schema.doPredicate(Schema.java:272) at org.smartfrog.sfcore.languages.sf.predicates.BasePredicate.doit(BasePredicate.java:56) at org.smartfrog.sfcore.languages.sf.Phase.actOn(Phase.java:97) at o
rg.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.visit(ComponentDescripti
onImpl.java:596) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.visit(ComponentDescriptionImpl.java:591) at org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:663) at org.smartfrog.sfcore.languages.sf.sfcomponentdescription.SFComponentDescriptionImpl.sfResolvePhases(SFComponentDescriptionImpl.java:605) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.sfComponentDescription(ComponentDescriptionImpl.java:667) at org.smartfrog.sfcore.componentdescription.ComponentDescriptionImpl.sfComponentDescription(ComponentDescriptionImpl.java:634) at org.smartfrog.sfcore.common.ActionDeploy.Deploy(ActionDeploy.java:112) at org.smartfrog.sfcore.common.ActionDeploy.execute(ActionDeploy.java:213) at org.smartfrog.sfcore.common.ConfigurationAction.execute(ConfigurationAction.java:74
) at org.smartfrog.sfcore.common.ConfigurationDescriptor.execute(ConfigurationDescriptor.j
ava:812) at org.smartfrog.SFSystem.runConfigurationDescriptor(SFSystem.java:297) at org.smartfrog.SFSystem.runConfigurationDescriptor(SFSystem.java:274) at org.smartfrog.SFSystem.runConfigurationDescriptors(SFSystem.java:263) at org.smartfrog.SFSystem.runSmartFrog(SFSystem.java:453) at org.smartfrog.SFSystem.execute(SFSystem.java:360) at org.smartfrog.SFSystem.main(SFSystem.java:327) - FAILED when trying DEPLOY of 'app', [/tmp/deploy15271360.sf] Result: * Exception: 'SmartFrogDeploymentException: unnamed component. deploying description '/tmp/deploy15271360.sf' for 'app' cause: SmartFrogResolutionException:: Error resolving '/tmp/deploy15271360.sf'. Parser error while resolving phases[SmartFrogCompileResolutionException:: error in schema: non-optional attribute 'sfClass (class that implements component)' is missing, source: HERE sfConfig:schemaPrim, resolutionPhase: pre
dicate] deployedContext: included' * Command line SFACT: 'app:DEPLOY:/tmp/dep
loy15271360.sf:::' * To String: ' name:app, type:DEPLOY, url:/tmp/deploy15271360.sf, resultType:FAILED, resultExceptionMessage:unnamed component. deploying description '/tmp/deploy15271360.sf' for 'app''"
[sf-junit] at org.smartfrog.tools.ant.test.TaskTestBase.assertInLog(TaskTestBase.java:96)
[sf-junit] at org.smartfrog.tools.ant.test.TaskTestBase.assertDeployFailsWithUnresolvedReference(TaskTestBase.java:149)
[sf-junit] at org.smartfrog.tools.ant.test.system.RunTest.testInline(RunTest.java:90)
[sf-junit] Test org.smartfrog.tools.ant.test.system.RunTest FAILED
[sf-junit] Testsuite: org.smartfrog.tools.ant.test.system.StopDaemonTest
[sf-junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 9.705 sec
[sf-junit] Testsuite: org.smartfrog.tools.ant.test.system.UndeployTest
[sf-junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 13.204 sec
[sf-junit] Testsuite: org.smartfrog.tools.ant.test.unit.ParseTest
[sf-junit] Tests run: 15, Failures: 0, Errors: 0, Time elapsed: 9.053 sec
[sf-junit] Testsuite: org.smartfrog.tools.ant.test.unit.SecurityTest
[sf-junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 1.723 sec
[sf-junit] Testsuite: org.smartfrog.tools.ant.test.unit.ToUrlTest
[sf-junit] Tests run: 11, Failures: 0, Errors: 0, Time elapsed: 1.572 sec
notest:
test:
[junitreport] Transform time: 2954ms
BUILD FAILED
/home/gump/workspaces2/public/workspace/smartfrog/extras/ant/build.xml:219: The following error occurred while executing this line:
/home/gump/workspaces2/public/workspace/smartfrog/common.xml:312: Unit tests failed see /home/gump/workspaces2/public/workspace/smartfrog/extras/ant/build/test/reports
Total time: 2 minutes 7 seconds
---------------------------------------------
To subscribe to this information via syndicated feeds:
- RSS: http://brutus.apache.org/gump/public/smartfrog/smartfrog-tasks-test/rss.xml
- Atom: http://brutus.apache.org/gump/public/smartfrog/smartfrog-tasks-test/atom.xml
============================== Gump Tracking Only ===
Produced by Gump version 2.2.
Gump Run 21000016042005, brutus:brutus-public:21000016042005
Gump E-mail Identifier (unique within run) #11.
--
Apache Gump
http://gump.apache.org/ [Instance: brutus]
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click