Apps Framework + Soy: create plugin for conformance checking. (Do not wire in yet.)
Apps Framework + Soy: create plugin for conformance checking. (Do not wire in yet.)

Overall design: []

In [] I added the CheckConformance pass without wiring it in. The pass uses in-memory ConformanceConfig protocol buffers to drive its conformance checking.

In [] I attempted to wire in the CheckConformance pass by adding getters and setters for the ConformanceConfig protocol buffers to SoyJsSrcOptions. However, this approach breaks the open-source build by adding a dependency on the generated protobuf class file.

Although Soy and protocol buffers are both open-source, open-source Soy does not currently depend on protocol buffers, and adding this dependency is currently not worth the effort. (See discussion on []

As a workaround, this CL changes the conformance system to a plugin model. Users of Soy, such as Apps Framework, can bind a CheckConformance implementation via Guice. (The Soy AST is kept internal to Soy by keeping the CheckConformance implementation inside soy/conformance, without an opensource_filegroup.)
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=71581084

viqueen/closure-templates,viqueen/closure-templates,oujesky/closure-templates,jmhodges/closure-templates,nathancomstock/closure-templates,rikuayanokozy/closure-templates,rgpower/closure-templates,google/closure-templates,SerkanSipahi/closure-templates,Medium/closure-templates,google/closure-templates,rgpower/closure-templates,Medium/closure-templates,atul-bhouraskar/closure-templates,jmhodges/closure-templates,jmhodges/closure-templates,chunzj/closure-templates,rikuayanokozy/closure-templates,iacdingping/closure-templates,atul-bhouraskar/closure-templates,Medium/closure-templates,google/closure-templates,chunzj/closure-templates,oujesky/closure-templates,rgpower/closure-templates,jmhodges/closure-templates,Medium/closure-templates,chunzj/closure-templates,chunzj/closure-templates,rikuayanokozy/closure-templates,rpatil26/closure-templates,oujesky/closure-templates,SerkanSipahi/closure-templates,rikuayanokozy/closure-templates,iacdingping/closure-templates,viqueen/closure-templates,Medium/closure-templates,nathancomstock/closure-templates,nathancomstock/closure-templates,yext/closure-templates,oujesky/closure-templates,rgpower/closure-templates,viqueen/closure-templates,SerkanSipahi/closure-templates,oujesky/closure-templates,iacdingping/closure-templates,atul-bhouraskar/closure-templates,yext/closure-templates,google/closure-templates,rpatil26/closure-templates,rpatil26/closure-templates,rpatil26/closure-templates,nathancomstock/closure-templates,SerkanSipahi/closure-templates,yext/closure-templates,yext/closure-templates,google/closure-templates,iacdingping/closure-templates,atul-bhouraskar/closure-templates