You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/08/18 09:28:05 UTC
[1/2] camel git commit: CAMEL-9541: Keep user guide TOC up to date
with components from the Camel Catalog.
Repository: camel
Updated Branches:
refs/heads/master 9bbdb5b50 -> 38941053b
CAMEL-9541: Keep user guide TOC up to date with components from the Camel Catalog.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3791e125
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3791e125
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3791e125
Branch: refs/heads/master
Commit: 3791e1250a8e0d392c945330faf6b40dd75adbf7
Parents: 9bbdb5b
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 18 11:12:25 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 18 11:12:25 2016 +0200
----------------------------------------------------------------------
docs/user-manual/en/SUMMARY.md | 456 +++++++++----------
platforms/catalog/pom.xml | 2 +
.../maven/packaging/PrepareUserGuideMojo.java | 261 +++++++++++
3 files changed, 481 insertions(+), 238 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/3791e125/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index 687f548..f595706 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -82,247 +82,227 @@
* Using Camel questions
* [How do I configure endpoints](how-do-i-configure-endpoints.adoc)
+
+
+<!-- core components: START -->
* Core Components
- * [Bean](bean-component.adoc)
- * [Binding](binding-component.adoc)
- * [Browse](browse-component.adoc)
- * [Class](class-component.adoc)
- * [Controlbus](controlbus-component.adoc)
- * [Dataformat](dataformat-component.adoc)
- * [Dataset](dataset-component.adoc)
- * [Direct](direct-component.adoc)
- * [Direct-vm](direct-vm-component.adoc)
- * [File](file-component.adoc)
- * [Language](language-component.adoc)
- * [Log](log-component.adoc)
- * [Mock](mock-component.adoc)
- * [Properties](properties-component.adoc)
- * [Ref](ref-component.adoc)
- * [Rest](rest-component.adoc)
- * [Rest API](rest-api-component.adoc)
- * [Scheduler](scheduler-component.adoc)
- * [Seda](seda-component.adoc)
- * [Stub](stub-component.adoc)
- * [Test](test-component.adoc)
- * [Timer](timer-component.adoc)
- * [Validator](validator-component.adoc)
- * [VM](vm-component.adoc)
- * [Xslt](xslt-component.adoc)
+ * [Bean](bean-component.adoc)
+ * [Binding](binding-component.adoc)
+ * [Browse](browse-component.adoc)
+ * [Class](class-component.adoc)
+ * [Control Bus](controlbus-component.adoc)
+ * [Data Format](dataformat-component.adoc)
+ * [Dataset](dataset-component.adoc)
+ * [Direct](direct-component.adoc)
+ * [Direct VM](direct-vm-component.adoc)
+ * [File](file-component.adoc)
+ * [Language](language-component.adoc)
+ * [Log](log-component.adoc)
+ * [Mock](mock-component.adoc)
+ * [Properties](properties-component.adoc)
+ * [REST](rest-component.adoc)
+ * [REST API](rest-api-component.adoc)
+ * [Ref](ref-component.adoc)
+ * [SEDA](seda-component.adoc)
+ * [Scheduler](scheduler-component.adoc)
+ * [Stub](stub-component.adoc)
+ * [Test](test-component.adoc)
+ * [Timer](timer-component.adoc)
+ * [VM](vm-component.adoc)
+ * [Validator](validator-component.adoc)
+ * [XSLT](xslt-component.adoc)
+<!-- core components: END -->
+
+
+
+
+
+<!-- components: START -->
* Components
- * [Async Http Client (AHC)](ahc-component.adoc)
- * [AHC Websocket (AHC-WS)](ahc-ws-component.adoc)
- * [Amqp](amqp-component.adoc)
- * [Apns](apns-component.adoc)
- * [Atmosphere Websocket](atmosphere-websocket-component.adoc)
- * [Atmos](atmos-component.adoc)
- * [Atom](atom-component.adoc)
- * [Avro](avro-component.adoc)
- * [AWS](aws-component.adoc)
- * [AWS CloudWatch](aws-cw-component.adoc)
- * [AWS DynamoDB](aws-ddb-component.adoc)
- * [AWS DynamoDB Streams](aws-ddbstream-component.adoc)
- * [AWS EC2](aws-ec2-component.adoc)
- * [AWS Kinesis](aws-kinesis-component.adoc)
- * [AWS S3](aws-s3-component.adoc)
- * [AWS SDB](aws-sdb-component.adoc)
- * [AWS SES](aws-ses-component.adoc)
- * [AWS SNS](aws-sns-component.adoc)
- * [AWS SQS](aws-sqs-component.adoc)
- * [AWS SWF](aws-swf-component.adoc)
- * [Bam](bam.adoc)
- * [Barcode](barcode-data-format-component.adoc)
- * [Base64](base64-component.adoc)
- * [Beanstalk](beanstalk-component.adoc)
- * [Bean-validator](bean-validator-component.adoc)
- * [Bindy](bindy-component.adoc)
- * [Blueprint](blueprint-testing-component.adoc)
- * [Boon](boon-component.adoc)
- * [Box](box-component.adoc)
- * [Braintree](braintree-component.adoc)
- * [Cache](cache-component.adoc)
- * [Cassandraql](cql-component.adoc)
- * [Castor](castor-component.adoc)
- * [CDI](cdi.adoc)
- * [Chunk](chunk-component.adoc)
- * [Cmis](cmis-component.adoc)
- * [CM SMS](cm-sms-component.adoc)
- * [CoAP](coap-component.adoc)
- * [Cometd](cometd-component.adoc)
- * [Context](context-component.adoc)
- * [Couchdb](couchdb-component.adoc)
- * [Crypto](crypto-component.adoc)
- * [Crypto Digital Signatures](crypto-digital-signatures.adoc)
- * [CSV](csv.adoc)
- * [CXF](cxf-component.adoc)
- * [CXFRS](cxfrs-component.adoc)
- * [CXF Transport](cxf-transport.adoc)
- * [Disruptor](disruptor-component.adoc)
- * [DNS](dns-component.adoc)
- * [Docker](docker-component.adoc)
- * [Dozer](dozer-component.adoc)
- * [Dropbox](dropbox-component.adoc)
- * [Eclipse](eclipse.adoc)
- * [Ehcache](ehcache-component.adoc)
- * [EJB](ejb-component.adoc)
- * [ElasticSearch](elasticsearch-component.adoc)
- * [Elsql](elsql-component.adoc)
- * [Eventadmin](eventadmin-component.adoc)
- * [Exec](exec-component.adoc)
- * [Facebook](facebook-component.adoc)
- * [Flatpack](flatpack-component.adoc)
- * [FOP](fop-component.adoc)
- * [Freemarker](freemarker-component.adoc)
- * [FTP](ftp-component.adoc)
- * [Ganglia](ganglia-component.adoc)
- * [Geocoder](geocoder-component.adoc)
- * [Git](git-component.adoc)
- * [Github](github-component.adoc)
- * [Google Calendar](google-calendar-component.adoc)
- * [Google Drive](google-drive-component.adoc)
- * [Google Mail](google-mail-component.adoc)
- * [Gora](gora-component.adoc)
- * [Grape](grape-component.adoc)
- * [Groovy](groovy.adoc)
- * [Groovy DSL](groovy-dsl.adoc)
- * [Gson](gson.adoc)
- * [Guava Eventbus](guava-eventbus-component.adoc)
- * [Guice](guice.adoc)
- * [Hawtdb](hawtdb.adoc)
- * [Hazelcast](hazelcast-component.adoc)
- * [Hbase](hbase-component.adoc)
- * [HDFS](hdfs-component.adoc)
- * [HDFS2](hdfs2-component.adoc)
- * [Hessian](hessian.adoc)
- * [Hipchat](hipchat-component.adoc)
- * [HL7](hl7.adoc)
- * [Http](http-component.adoc)
- * [Http4](http4-component.adoc)
- * [Ibatis](ibatis-component.adoc)
- * [Infinispan](infinispan-component.adoc)
- * [IRC](irc-component.adoc)
- * [Ironmq](ironmq-component.adoc)
- * [Jackson](jackson.adoc)
- * [Jasypt](jasypt.adoc)
- * [Javaspace](javaspace-component.adoc)
- * [JMS](jms-component.adoc)
- * [JMX](jmx-component.adoc)
- * [JSON](json.adoc)
- * [Jbpm](jbpm-component.adoc)
- * [Jcache](jcache-component.adoc)
- * [Jclouds](jclouds-component.adoc)
- * [Jcr](jcr-component.adoc)
- * [JDBC](jdbc-component.adoc)
- * [Jetty](jetty-component.adoc)
- * [Jgroups](jgroups-component.adoc)
- * [Jing](jing-component.adoc)
- * [JIRA](jira-component.adoc)
- * [Jolt](jolt-component.adoc)
- * [Jpa](jpa-component.adoc)
- * [JT400](jt400-component.adoc)
- * [Kafka](kafka-component.adoc)
- * [Kestrel](kestrel-component.adoc)
- * [Krati](krati-component.adoc)
- * [Kubernetes](kubernetes-component.adoc)
- * [Kura](kura-component.adoc)
- * [LDAP](ldap-component.adoc)
- * [LevelDB](leveldb.adoc)
- * [Linkedin](linkedin-component.adoc)
- * [Lucene](lucene-component.adoc)
- * [Lumberjack](lumberjack-component.adoc)
- * [Mail](mail.adoc)
- * [IMAP](imap-component.adoc)
- * [IMAPs](imaps-component.adoc)
- * [POP3](pop3-component.adoc)
- * [POP3s](pop3s-component.adoc)
- * [SMTP](smtp-component.adoc)
- * [SMTPs](smtps-component.adoc)
- * [Metrics](metrics.adoc)
- * [Mina](mina-component.adoc)
- * [Mina2](mina2-component.adoc)
- * [MLLP](mllp.adoc)
- * [MongoDB](mongodb-component.adoc)
- * [MongoDB-GridFS](gridfs-component.adoc)
- * [MQTT](mqtt-component.adoc)
- * [Msv](msv-component.adoc)
- * [Mustache](mustache-component.adoc)
- * [Mvel](mvel-component.adoc)
- * [Mybatis](mybatis-component.adoc)
- * [Nagios](nagios-component.adoc)
- * [Netty](netty-component.adoc)
- * [Netty4](netty4-component.adoc)
- * [Netty HTTP](netty-http-component.adoc)
- * [Netty4 HTTP](netty4-http-component.adoc)
- * [NATS](nats-component.adoc)
- * [Olingo2](olingo2-component.adoc)
- * [Openshift](openshift-component.adoc)
- * [Optaplanner](optaplanner-component.adoc)
- * [Paho](paho-component.adoc)
- * [Paxlogging](paxlogging-component.adoc)
- * [PDF](pdf-component.adoc)
- * [PGEvent](pgevent-component.adoc)
- * [Printer](lpr-component.adoc)
- * [Quartz](quartz-component.adoc)
- * [Quartz2](quartz2-component.adoc)
- * [Quickfix](quickfix-component.adoc)
- * [RabbitMQ](rabbitmq-component.adoc)
- * [Restlet](restlet-component.adoc)
- * [RMI](rmi-component.adoc)
- * [Routebox](routebox-component.adoc)
- * [RSS](rss-component.adoc)
- * [Salesforce](salesforce-component.adoc)
- * [SAP NetWeaver](sap-netweaver-component.adoc)
- * [Saxon](xquery.adoc)
- * [Scp](scp-component.adoc)
- * [Schematron](schematron-component.adoc)
- * [SCR](camel-and-scr.adoc)
- * [Script](script.adoc)
- * [Servicenow](servicenow-component.adoc)
- * [Servlet](servlet-component.adoc)
- * [Servlet Listener](servletlistener.adoc)
- * [Shiro](shiro-security.adoc)
- * [SIP](sip-component.adoc)
- * [SJMS](sjms-component.adoc)
- * [SJMS Batch](sjms-batch-component.adoc)
- * [Slack](slack-component.adoc)
- * [SMPP](smpp-component.adoc)
- * [SNMP](snmp-component.adoc)
- * [Solr](solr-component.adoc)
- * [Spark](spark-component.adoc)
- * [Spark-Rest](spark-rest-component.adoc)
- * [Splunk](splunk-component.adoc)
- * [Spring](spring.adoc)
- * [Spring-Batch](spring-batch-component.adoc)
- * [Spring-Boot](spring-boot.adoc)
- * [Spring-Event](spring-event-component.adoc)
- * [Spring-Integration](spring-integration-component.adoc)
- * [Spring-Javaconfig](spring-java-config.adoc)
- * [Spring-Ldap](spring-ldap-component.adoc)
- * [Spring-Redis](spring-redis-component.adoc)
- * [Spring-Security](spring-security.adoc)
- * [Spring-Web-Services](spring-ws-component.adoc)
- * [SQL](sql-component.adoc)
- * [SQL-Stored](sql-stored-component.adoc)
- * [SSH](ssh-component.adoc)
- * [StAX](stax-component.adoc)
- * [Stomp](stomp-component.adoc)
- * [Stream](stream-component.adoc)
- * [Stringtemplate](string-template.adoc)
- * [Swagger](swagger.adoc)
- * [Swagger Java](swagger-java.adoc)
- * [Telegram](telegram-component.adoc)
- * [Twitter](twitter-component.adoc)
- * [Undertow](undertow-component.adoc)
- * [URLRewrite](urlrewrite.adoc)
- * [Velocity](velocity-component.adoc)
- * [Vertx](vertx-component.adoc)
- * [Weather](weather-component.adoc)
- * [Websocket](websocket-component.adoc)
- * [XML Security](xmlsecurity-component.adoc)
- * [XMPP](xmpp-component.adoc)
- * [Yammer](yammer-component.adoc)
- * [Zipkin](zipkin.adoc)
- * [ZooKeeper](zookeeper-component.adoc)
+ * [AHC](ahc-component.adoc)
+ * [AHC Websocket](ahc-ws-component.adoc)
+ * [AMQP](amqp-component.adoc)
+ * [APNS](apns-component.adoc)
+ * [AWS CloudWatch](aws-cw-component.adoc)
+ * [AWS DynamoDB](aws-ddb-component.adoc)
+ * [AWS DynamoDB Streams](aws-ddbstream-component.adoc)
+ * [AWS EC2](aws-ec2-component.adoc)
+ * [AWS Kinesis](aws-kinesis-component.adoc)
+ * [AWS S3 Storage Service](aws-s3-component.adoc)
+ * [AWS Simple Email Service](aws-ses-component.adoc)
+ * [AWS Simple Notification System](aws-sns-component.adoc)
+ * [AWS Simple Queue Service](aws-sqs-component.adoc)
+ * [AWS Simple Workflow](aws-swf-component.adoc)
+ * [AWS SimpleDB](aws-sdb-component.adoc)
+ * [Apache Flink](flink-component.adoc)
+ * [Apache Spark](spark-component.adoc)
+ * [Atmos](atmos-component.adoc)
+ * [Atmosphere Websocket](atmosphere-websocket-component.adoc)
+ * [Atom](atom-component.adoc)
+ * [Avro](avro-component.adoc)
+ * [Bean Validator](bean-validator-component.adoc)
+ * [Beanstalk](beanstalk-component.adoc)
+ * [Box](box-component.adoc)
+ * [Braintree](braintree-component.adoc)
+ * [CM SMS Gateway](cm-sms-component.adoc)
+ * [CMIS](cmis-component.adoc)
+ * [CXF](cxf-component.adoc)
+ * [CXF-RS](cxfrs-component.adoc)
+ * [Camel Context](context-component.adoc)
+ * [Cassandra CQL](cql-component.adoc)
+ * [Chronicle Engine](chronicle-engine-component.adoc)
+ * [Chunk](chunk-component.adoc)
+ * [CoAP](coap-component.adoc)
+ * [CometD](cometd-component.adoc)
+ * [Consul](consul-component.adoc)
+ * [CouchDB](couchdb-component.adoc)
+ * [Crypto (JCE)](crypto-component.adoc)
+ * [DNS](dns-component.adoc)
+ * [Disruptor](disruptor-component.adoc)
+ * [Docker](docker-component.adoc)
+ * [Dozer](dozer-component.adoc)
+ * [Dropbox](dropbox-component.adoc)
+ * [EHCache](cache-component.adoc)
+ * [EJB](ejb-component.adoc)
+ * [Ehcache](ehcache-component.adoc)
+ * [ElSQL](elsql-component.adoc)
+ * [Elasticsearch](elasticsearch-component.adoc)
+ * [Exec](exec-component.adoc)
+ * [FOP](fop-component.adoc)
+ * [FTP](ftp-component.adoc)
+ * [FTPS](ftps-component.adoc)
+ * [Facebook](facebook-component.adoc)
+ * [Flatpack](flatpack-component.adoc)
+ * [Freemarker](freemarker-component.adoc)
+ * [Ganglia](ganglia-component.adoc)
+ * [Geocoder](geocoder-component.adoc)
+ * [Git](git-component.adoc)
+ * [GitHub](github-component.adoc)
+ * [Google Calendar](google-calendar-component.adoc)
+ * [Google Drive](google-drive-component.adoc)
+ * [Google Mail](google-mail-component.adoc)
+ * [Gora](gora-component.adoc)
+ * [Grape](grape-component.adoc)
+ * [Guava EventBus](guava-eventbus-component.adoc)
+ * [HBase](hbase-component.adoc)
+ * [HDFS](hdfs-component.adoc)
+ * [HDFS2](hdfs2-component.adoc)
+ * [HTTP](http-component.adoc)
+ * [HTTP4](http4-component.adoc)
+ * [Hazelcast](hazelcast-component.adoc)
+ * [Hipchat](hipchat-component.adoc)
+ * [IMAP](imap-component.adoc)
+ * [IRC](irc-component.adoc)
+ * [Infinispan](infinispan-component.adoc)
+ * [InfluxDB](influxdb-component.adoc)
+ * [JBPM](jbpm-component.adoc)
+ * [JCR](jcr-component.adoc)
+ * [JCache](jcache-component.adoc)
+ * [JClouds](jclouds-component.adoc)
+ * [JDBC](jdbc-component.adoc)
+ * [JGroups](jgroups-component.adoc)
+ * [JIRA](jira-component.adoc)
+ * [JMS](jms-component.adoc)
+ * [JMX](jmx-component.adoc)
+ * [JOLT](jolt-component.adoc)
+ * [JPA](jpa-component.adoc)
+ * [JT400](jt400-component.adoc)
+ * [JavaSpace](javaspace-component.adoc)
+ * [Jetty 9](jetty-component.adoc)
+ * [Jetty Websocket](websocket-component.adoc)
+ * [Jing](jing-component.adoc)
+ * [Kafka](kafka-component.adoc)
+ * [Kestrel](kestrel-component.adoc)
+ * [Krati](krati-component.adoc)
+ * [Kubernetes](kubernetes-component.adoc)
+ * [LDAP](ldap-component.adoc)
+ * [Linkedin](linkedin-component.adoc)
+ * [Lucene](lucene-component.adoc)
+ * [Lumberjack](lumberjack-component.adoc)
+ * [MQTT](mqtt-component.adoc)
+ * [MSV](msv-component.adoc)
+ * [MVEL](mvel-component.adoc)
+ * [Metrics](metrics-component.adoc)
+ * [Mina](mina-component.adoc)
+ * [Mina2](mina2-component.adoc)
+ * [MongoDB](mongodb-component.adoc)
+ * [MongoDBGridFS](gridfs-component.adoc)
+ * [Mustache](mustache-component.adoc)
+ * [MyBatis](mybatis-component.adoc)
+ * [Nagios](nagios-component.adoc)
+ * [Nats](nats-component.adoc)
+ * [Netty](netty-component.adoc)
+ * [Netty HTTP](netty-http-component.adoc)
+ * [Netty4](netty4-component.adoc)
+ * [Netty4 HTTP](netty4-http-component.adoc)
+ * [OSGi EventAdmin](eventadmin-component.adoc)
+ * [OSGi PAX Logging](paxlogging-component.adoc)
+ * [OpenShift](openshift-component.adoc)
+ * [OptaPlanner](optaplanner-component.adoc)
+ * [PDF](pdf-component.adoc)
+ * [Paho](paho-component.adoc)
+ * [PostgresSQL Event](pgevent-component.adoc)
+ * [Printer](lpr-component.adoc)
+ * [Quartz](quartz-component.adoc)
+ * [Quartz2](quartz2-component.adoc)
+ * [QuickFix](quickfix-component.adoc)
+ * [RMI](rmi-component.adoc)
+ * [RSS](rss-component.adoc)
+ * [RabbitMQ](rabbitmq-component.adoc)
+ * [Restlet](restlet-component.adoc)
+ * [RouteBox](routebox-component.adoc)
+ * [SAP NetWeaver](sap-netweaver-component.adoc)
+ * [SCP](scp-component.adoc)
+ * [SFTP](sftp-component.adoc)
+ * [SIP](sip-component.adoc)
+ * [SMPP](smpp-component.adoc)
+ * [SNMP](snmp-component.adoc)
+ * [SQL](sql-component.adoc)
+ * [SQL StoredProcedure](sql-stored-component.adoc)
+ * [SSH](ssh-component.adoc)
+ * [Salesforce](salesforce-component.adoc)
+ * [Schematron](schematron-component.adoc)
+ * [ServiceNow](servicenow-component.adoc)
+ * [Servlet](servlet-component.adoc)
+ * [Simple JMS](sjms-component.adoc)
+ * [Simple JMS Batch](sjms-batch-component.adoc)
+ * [Slack](slack-component.adoc)
+ * [Solr](solr-component.adoc)
+ * [Spark Rest](spark-rest-component.adoc)
+ * [Splunk](splunk-component.adoc)
+ * [Spring Batch](spring-batch-component.adoc)
+ * [Spring Event](spring-event-component.adoc)
+ * [Spring Integration](spring-integration-component.adoc)
+ * [Spring LDAP](spring-ldap-component.adoc)
+ * [Spring Redis](spring-redis-component.adoc)
+ * [Spring WebService](spring-ws-component.adoc)
+ * [StAX](stax-component.adoc)
+ * [Stomp](stomp-component.adoc)
+ * [Stream](stream-component.adoc)
+ * [String Template](string-template-component.adoc)
+ * [Telegram](telegram-component.adoc)
+ * [Twitter](twitter-component.adoc)
+ * [Undertow](undertow-component.adoc)
+ * [Velocity](velocity-component.adoc)
+ * [Vert.x](vertx-component.adoc)
+ * [Weather](weather-component.adoc)
+ * [XML RPC](xmlrpc-component.adoc)
+ * [XML Security](xmlsecurity-component.adoc)
+ * [XMPP](xmpp-component.adoc)
+ * [XQuery](xquery-component.adoc)
+ * [Yammer](yammer-component.adoc)
+ * [ZooKeeper](zookeeper-component.adoc)
+ * [etcd](etcd-component.adoc)
+ * [iBatis](ibatis-component.adoc)
+ * [ironmq](ironmq-component.adoc)
+ * [mllp](mllp-component.adoc)
+<!-- components: END -->
+
+
+
+
+
* [Expression Languages](languages.adoc)
* [Bean Language](bean-language.adoc)
http://git-wip-us.apache.org/repos/asf/camel/blob/3791e125/platforms/catalog/pom.xml
----------------------------------------------------------------------
diff --git a/platforms/catalog/pom.xml b/platforms/catalog/pom.xml
index e76cdcb..413cf3b 100644
--- a/platforms/catalog/pom.xml
+++ b/platforms/catalog/pom.xml
@@ -90,8 +90,10 @@
<version>${project.version}</version>
<executions>
<execution>
+ <!-- prepare the catalog before the user guide -->
<goals>
<goal>prepare-catalog</goal>
+ <goal>prepare-user-guide</goal>
</goals>
<phase>process-resources</phase>
</execution>
http://git-wip-us.apache.org/repos/asf/camel/blob/3791e125/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareUserGuideMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareUserGuideMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareUserGuideMojo.java
new file mode 100644
index 0000000..1b27084
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareUserGuideMojo.java
@@ -0,0 +1,261 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.maven.packaging;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import edu.emory.mathcs.backport.java.util.Collections;
+import org.apache.camel.maven.packaging.model.ComponentModel;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
+
+import static org.apache.camel.maven.packaging.PackageHelper.loadText;
+import static org.apache.camel.maven.packaging.PackageHelper.writeText;
+
+/**
+ * Prepares the user guide to keep the table of content up to date with the components, data formats, and languages.
+ *
+ * @goal prepare-user-guide
+ */
+public class PrepareUserGuideMojo extends AbstractMojo {
+
+ /**
+ * The maven project.
+ *
+ * @parameter property="project"
+ * @required
+ * @readonly
+ */
+ protected MavenProject project;
+
+ /**
+ * The directory for components catalog
+ *
+ * @parameter default-value="${project.build.directory}/classes/org/apache/camel/catalog/components"
+ */
+ protected File componentsDir;
+
+ /**
+ * The directory for the user guide
+ *
+ * @parameter default-value="${project.directory}/../../../docs/user-manual/en"
+ */
+ protected File userGuideDir;
+
+ /**
+ * Maven ProjectHelper.
+ *
+ * @component
+ * @readonly
+ */
+ private MavenProjectHelper projectHelper;
+
+ /**
+ * Execute goal.
+ *
+ * @throws MojoExecutionException execution of the main class or one of the
+ * threads it generated failed.
+ * @throws MojoFailureException something bad happened...
+ */
+ public void execute() throws MojoExecutionException, MojoFailureException {
+ executeComponents();
+ }
+
+ protected void executeComponents() throws MojoExecutionException, MojoFailureException {
+ Set<File> componentFiles = new TreeSet<File>();
+
+ if (componentsDir != null && componentsDir.isDirectory()) {
+ File[] files = componentsDir.listFiles();
+ if (files != null) {
+ componentFiles.addAll(Arrays.asList(files));
+ }
+ }
+
+ try {
+ List<ComponentModel> models = new ArrayList<>();
+ for (File core : componentFiles) {
+ String json = loadText(new FileInputStream(core));
+ ComponentModel model = generateComponentModel(json);
+
+ // filter out alternative schemas which reuses documentation
+ boolean add = true;
+ if (!model.getAlternativeSchemes().isEmpty()) {
+ String first = model.getAlternativeSchemes().split(",")[0];
+ if (!model.getScheme().equals(first)) {
+ add = false;
+ }
+ }
+ if (add) {
+ models.add(model);
+ }
+ }
+
+ // sor the models
+ Collections.sort(models, new ComponentComparator());
+
+ // the summary file has the TOC
+ File file = new File(userGuideDir, "SUMMARY.md");
+
+ // update core components
+ StringBuilder core = new StringBuilder();
+ core.append("* Core Components\n");
+ for (ComponentModel model : models) {
+ if (model.getLabel().contains("core")) {
+ String line = "\t* " + link(model) + "\n";
+ core.append(line);
+ }
+ }
+ boolean updated = updateCoreComponents(file, core.toString());
+
+ // update regular components
+ StringBuilder regular = new StringBuilder();
+ regular.append("* Components\n");
+ for (ComponentModel model : models) {
+ if (!model.getLabel().contains("core")) {
+ String line = "\t* " + link(model) + "\n";
+ regular.append(line);
+ }
+ }
+ updated |= updateComponents(file, regular.toString());
+
+ if (updated) {
+ getLog().info("Updated user guide file: " + file);
+ } else {
+ getLog().debug("No changes to user guide file: " + file);
+ }
+
+ } catch (IOException e) {
+ throw new MojoFailureException("Error due " + e.getMessage(), e);
+ }
+ }
+
+ private boolean updateCoreComponents(File file, String changed) throws MojoExecutionException {
+ if (!file.exists()) {
+ return false;
+ }
+
+ try {
+ String text = loadText(new FileInputStream(file));
+
+ String existing = StringHelper.between(text, "<!-- core components: START -->" , "<!-- core components: END -->");
+ if (existing != null) {
+ // remove leading line breaks etc
+ existing = existing.trim();
+ changed = changed.trim();
+ if (existing.equals(changed)) {
+ return false;
+ } else {
+ String before = StringHelper.before(text, "<!-- core components: START -->");
+ String after = StringHelper.after(text, "<!-- core components: END -->");
+ text = before + "\n<!-- core components: START -->\n" + changed + "\n<!-- core components: END -->\n" + after;
+ writeText(file, text);
+ return true;
+ }
+ } else {
+ getLog().warn("Cannot find markers in file " + file);
+ getLog().warn("Add the following markers");
+ getLog().warn("\t<!-- core components: START -->");
+ getLog().warn("\t<!-- core components: END -->");
+ return false;
+ }
+ } catch (Exception e) {
+ throw new MojoExecutionException("Error reading file " + file + " Reason: " + e, e);
+ }
+ }
+
+ private boolean updateComponents(File file, String changed) throws MojoExecutionException {
+ if (!file.exists()) {
+ return false;
+ }
+
+ try {
+ String text = loadText(new FileInputStream(file));
+
+ String existing = StringHelper.between(text, "<!-- components: START -->" , "<!-- components: END -->");
+ if (existing != null) {
+ // remove leading line breaks etc
+ existing = existing.trim();
+ changed = changed.trim();
+ if (existing.equals(changed)) {
+ return false;
+ } else {
+ String before = StringHelper.before(text, "<!-- components: START -->");
+ String after = StringHelper.after(text, "<!-- components: END -->");
+ text = before + "\n<!-- components: START -->\n" + changed + "\n<!-- components: END -->\n" + after;
+ writeText(file, text);
+ return true;
+ }
+ } else {
+ getLog().warn("Cannot find markers in file " + file);
+ getLog().warn("Add the following markers");
+ getLog().warn("\t<!-- components: START -->");
+ getLog().warn("\t<!-- components: END -->");
+ return false;
+ }
+ } catch (Exception e) {
+ throw new MojoExecutionException("Error reading file " + file + " Reason: " + e, e);
+ }
+ }
+
+ private static String link(ComponentModel model) {
+ return "[" + model.getTitle() + "](" + model.getScheme() + "-component.adoc)";
+ }
+
+ private static class ComponentComparator implements Comparator<ComponentModel> {
+
+ @Override
+ public int compare(ComponentModel o1, ComponentModel o2) {
+ // lets sory by title
+ return o1.getTitle().compareTo(o2.getTitle());
+ }
+ }
+
+ private ComponentModel generateComponentModel(String json) {
+ List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("component", json, false);
+
+ ComponentModel component = new ComponentModel();
+ component.setScheme(JSonSchemaHelper.getSafeValue("scheme", rows));
+ component.setSyntax(JSonSchemaHelper.getSafeValue("syntax", rows));
+ component.setAlternativeSyntax(JSonSchemaHelper.getSafeValue("alternativeSyntax", rows));
+ component.setAlternativeSchemes(JSonSchemaHelper.getSafeValue("alternativeSchemes", rows));
+ component.setTitle(JSonSchemaHelper.getSafeValue("title", rows));
+ component.setDescription(JSonSchemaHelper.getSafeValue("description", rows));
+ component.setLabel(JSonSchemaHelper.getSafeValue("label", rows));
+ component.setDeprecated(JSonSchemaHelper.getSafeValue("deprecated", rows));
+ component.setConsumerOnly(JSonSchemaHelper.getSafeValue("consumerOnly", rows));
+ component.setProducerOnly(JSonSchemaHelper.getSafeValue("producerOnly", rows));
+ component.setJavaType(JSonSchemaHelper.getSafeValue("javaType", rows));
+ component.setGroupId(JSonSchemaHelper.getSafeValue("groupId", rows));
+ component.setArtifactId(JSonSchemaHelper.getSafeValue("artifactId", rows));
+ component.setVersion(JSonSchemaHelper.getSafeValue("version", rows));
+
+ return component;
+ }
+
+}
\ No newline at end of file
[2/2] camel git commit: CAMEL-9541: Keep user guide TOC up to date
with components from the Camel Catalog.
Posted by da...@apache.org.
CAMEL-9541: Keep user guide TOC up to date with components from the Camel Catalog.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/38941053
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/38941053
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/38941053
Branch: refs/heads/master
Commit: 38941053b7fdbbc0f84d6dbe35c95c70b7fcaeb6
Parents: 3791e12
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Aug 18 11:27:31 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Aug 18 11:27:31 2016 +0200
----------------------------------------------------------------------
docs/user-manual/en/SUMMARY.md | 108 +++++---
.../maven/packaging/PrepareUserGuideMojo.java | 252 ++++++++++++++++++-
.../maven/packaging/ReadmeComponentMojo.java | 2 +
3 files changed, 329 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/38941053/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index f595706..749cfc9 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -303,37 +303,87 @@
+<!-- dataformats: START -->
+* Data Formats
+ * [Avro](avro-dataformat.adoc)
+ * [Barcode](barcode-dataformat.adoc)
+ * [Base64](base64-dataformat.adoc)
+ * [BeanIO](beanio-dataformat.adoc)
+ * [Bindy CSV](bindy-csv-dataformat.adoc)
+ * [Bindy Fixed Length](bindy-fixed-dataformat.adoc)
+ * [Bindy Key Value Pair](bindy-kvp-dataformat.adoc)
+ * [Boon](boon-dataformat.adoc)
+ * [CSV](csv-dataformat.adoc)
+ * [Castor](castor-dataformat.adoc)
+ * [Crypto (Java Cryptographic Extension)](crypto-dataformat.adoc)
+ * [Flatpack](flatpack-dataformat.adoc)
+ * [GZip](gzip-dataformat.adoc)
+ * [HL7](hl7-dataformat.adoc)
+ * [Hessian](hessian-dataformat.adoc)
+ * [JAXB](jaxb-dataformat.adoc)
+ * [JSon GSon](json-gson-dataformat.adoc)
+ * [JSon Jackson](json-jackson-dataformat.adoc)
+ * [JSon Johnzon](json-johnzon-dataformat.adoc)
+ * [JSon XStream](json-xstream-dataformat.adoc)
+ * [JacksonXML](jacksonxml-dataformat.adoc)
+ * [Java Object Serialization](serialization-dataformat.adoc)
+ * [JiBX](jibx-dataformat.adoc)
+ * [LZF Deflate Compression](lzf-dataformat.adoc)
+ * [MIME Multipart](mime-multipart-dataformat.adoc)
+ * [PGP](pgp-dataformat.adoc)
+ * [Protobuf](protobuf-dataformat.adoc)
+ * [RSS](rss-dataformat.adoc)
+ * [SOAP](soapjaxb-dataformat.adoc)
+ * [String Encoding](string-dataformat.adoc)
+ * [Syslog](syslog-dataformat.adoc)
+ * [Tar File](tarfile-dataformat.adoc)
+ * [TidyMarkup](tidyMarkup-dataformat.adoc)
+ * [XML Beans](xmlBeans-dataformat.adoc)
+ * [XML JSon](xmljson-dataformat.adoc)
+ * [XML RPC](xmlrpc-dataformat.adoc)
+ * [XML Security](secureXML-dataformat.adoc)
+ * [XStream](xstream-dataformat.adoc)
+ * [YAML SnakeYAML](yaml-snakeyaml-dataformat.adoc)
+ * [Zip Deflate Compression](zip-dataformat.adoc)
+ * [Zip File](zipfile-dataformat.adoc)
+ * [iCal](ical-dataformat.adoc)
+ * [uniVocity CSV](univocity-csv-dataformat.adoc)
+ * [uniVocity Fixed Length](univocity-fixed-dataformat.adoc)
+ * [uniVocity TSV](univocity-tsv-dataformat.adoc)
+<!-- dataformats: END -->
+
+
+
+
+<!-- languages: START -->
+* Expression Languages
+ * [Bean method](bean-language.adoc)
+ * [Constant](constant-language.adoc)
+ * [EL](el-language.adoc)
+ * [ExchangeProperty](exchangeProperty-language.adoc)
+ * [File](file-language.adoc)
+ * [Groovy](groovy-language.adoc)
+ * [HL7 Terser](terser-language.adoc)
+ * [Header](header-language.adoc)
+ * [JSonPath](jsonpath-language.adoc)
+ * [JXPath](jxpath-language.adoc)
+ * [JavaScript](javaScript-language.adoc)
+ * [MVEL](mvel-language.adoc)
+ * [OGNL](ognl-language.adoc)
+ * [PHP](php-language.adoc)
+ * [Python](python-language.adoc)
+ * [Ref](ref-language.adoc)
+ * [Ruby](ruby-language.adoc)
+ * [SQL](sql-language.adoc)
+ * [Simple](simple-language.adoc)
+ * [SpEL](spel-language.adoc)
+ * [Tokenize](tokenize-language.adoc)
+ * [XML Tokenize](xtokenize-language.adoc)
+ * [XPath](xpath-language.adoc)
+ * [XQuery](xquery-language.adoc)
+<!-- languages: END -->
-* [Expression Languages](languages.adoc)
- * [Bean Language](bean-language.adoc)
- * [Constant](constant.adoc)
- * [EL](juel.adoc)
- * [Jsonpath](jsonpath.adoc)
- * [JXPath](jxpath.adoc)
- * [Ognl](ognl.adoc)
- * [Ruby](ruby.adoc)
- * [SQL](josql.adoc)
- * [Scripting languages](scripting-languages.adoc)
-* Data Formats
- * [BeanIO](beanio-dataformat.adoc)
- * [Flatpack](flatpack-dataformat-dataformat.adoc)
- * [Ical](ical-dataformat.adoc)
- * [Jackson XML](jackson-xml-dataformat.adoc)
- * [Jaxb](jaxb-dataformat.adoc)
- * [Jibx](jibx-dataformat.adoc)
- * [Johnzon](johnzon-dataformat.adoc)
- * [Lzf](lzf-dataformat.adoc)
- * [Syslog](syslog-dataformat.adoc)
- * [SOAP](soap-dataformat.adoc)
- * [Tagsoup](tagsoup-dataformat.adoc)
- * [Univocity Parsers](univocity-parsers-dataformat.adoc)
- * [XML Beans](xmlbeans-dataformat.adoc)
- * [XML JSON](xmljson-dataformat.adoc)
- * [XML Rpc](xmlrpc-dataformat.adoc)
- * [XStream](xstream-dataformat.adoc)
- * [YAML](yaml-dataformat.adoc)
- * [Zipfile](zipfile-dataformat.adoc)
* Example
* [BAM Example](bam-example.adoc)
http://git-wip-us.apache.org/repos/asf/camel/blob/38941053/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareUserGuideMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareUserGuideMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareUserGuideMojo.java
index 1b27084..98dd7be 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareUserGuideMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareUserGuideMojo.java
@@ -27,14 +27,21 @@ import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
+import javax.xml.crypto.Data;
+
import edu.emory.mathcs.backport.java.util.Collections;
import org.apache.camel.maven.packaging.model.ComponentModel;
+import org.apache.camel.maven.packaging.model.DataFormatModel;
+import org.apache.camel.maven.packaging.model.DataFormatOptionModel;
+import org.apache.camel.maven.packaging.model.LanguageModel;
+import org.apache.camel.maven.packaging.model.LanguageOptionModel;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectHelper;
+import static org.apache.camel.maven.packaging.JSonSchemaHelper.getSafeValue;
import static org.apache.camel.maven.packaging.PackageHelper.loadText;
import static org.apache.camel.maven.packaging.PackageHelper.writeText;
@@ -62,6 +69,20 @@ public class PrepareUserGuideMojo extends AbstractMojo {
protected File componentsDir;
/**
+ * The directory for data formats catalog
+ *
+ * @parameter default-value="${project.build.directory}/classes/org/apache/camel/catalog/dataformats"
+ */
+ protected File dataFormatsDir;
+
+ /**
+ * The directory for languages catalog
+ *
+ * @parameter default-value="${project.build.directory}/classes/org/apache/camel/catalog/languages"
+ */
+ protected File languagesDir;
+
+ /**
* The directory for the user guide
*
* @parameter default-value="${project.directory}/../../../docs/user-manual/en"
@@ -85,10 +106,12 @@ public class PrepareUserGuideMojo extends AbstractMojo {
*/
public void execute() throws MojoExecutionException, MojoFailureException {
executeComponents();
+ executeDataFormats();
+ executeLanguages();
}
protected void executeComponents() throws MojoExecutionException, MojoFailureException {
- Set<File> componentFiles = new TreeSet<File>();
+ Set<File> componentFiles = new TreeSet<>();
if (componentsDir != null && componentsDir.isDirectory()) {
File[] files = componentsDir.listFiles();
@@ -99,8 +122,8 @@ public class PrepareUserGuideMojo extends AbstractMojo {
try {
List<ComponentModel> models = new ArrayList<>();
- for (File core : componentFiles) {
- String json = loadText(new FileInputStream(core));
+ for (File file : componentFiles) {
+ String json = loadText(new FileInputStream(file));
ComponentModel model = generateComponentModel(json);
// filter out alternative schemas which reuses documentation
@@ -155,6 +178,96 @@ public class PrepareUserGuideMojo extends AbstractMojo {
}
}
+ protected void executeDataFormats() throws MojoExecutionException, MojoFailureException {
+ Set<File> dataFormatFiles = new TreeSet<>();
+
+ if (dataFormatsDir != null && dataFormatsDir.isDirectory()) {
+ File[] files = dataFormatsDir.listFiles();
+ if (files != null) {
+ dataFormatFiles.addAll(Arrays.asList(files));
+ }
+ }
+
+ try {
+ List<DataFormatModel> models = new ArrayList<>();
+ for (File file : dataFormatFiles) {
+ String json = loadText(new FileInputStream(file));
+ DataFormatModel model = generateDataFormatModel(json);
+ models.add(model);
+ }
+
+ // sor the models
+ Collections.sort(models, new DataFormatComparator());
+
+ // the summary file has the TOC
+ File file = new File(userGuideDir, "SUMMARY.md");
+
+ // TODO: some dataformats reuse docs, such as bindy etc.
+
+ // update data formats
+ StringBuilder dataFormats = new StringBuilder();
+ dataFormats.append("* Data Formats\n");
+ for (DataFormatModel model : models) {
+ String line = "\t* " + link(model) + "\n";
+ dataFormats.append(line);
+ }
+ boolean updated = updateDataFormats(file, dataFormats.toString());
+
+ if (updated) {
+ getLog().info("Updated user guide file: " + file);
+ } else {
+ getLog().debug("No changes to user guide file: " + file);
+ }
+
+ } catch (IOException e) {
+ throw new MojoFailureException("Error due " + e.getMessage(), e);
+ }
+ }
+
+ protected void executeLanguages() throws MojoExecutionException, MojoFailureException {
+ Set<File> languageFiles = new TreeSet<>();
+
+ if (languagesDir != null && languagesDir.isDirectory()) {
+ File[] files = languagesDir.listFiles();
+ if (files != null) {
+ languageFiles.addAll(Arrays.asList(files));
+ }
+ }
+
+ try {
+ List<LanguageModel> models = new ArrayList<>();
+ for (File file : languageFiles) {
+ String json = loadText(new FileInputStream(file));
+ LanguageModel model = generateLanguageModel(json);
+ models.add(model);
+ }
+
+ // sor the models
+ Collections.sort(models, new LanguageComparator());
+
+ // the summary file has the TOC
+ File file = new File(userGuideDir, "SUMMARY.md");
+
+ // update languages
+ StringBuilder languages = new StringBuilder();
+ languages.append("* Expression Languages\n");
+ for (LanguageModel model : models) {
+ String line = "\t* " + link(model) + "\n";
+ languages.append(line);
+ }
+ boolean updated = updateLanguages(file, languages.toString());
+
+ if (updated) {
+ getLog().info("Updated user guide file: " + file);
+ } else {
+ getLog().debug("No changes to user guide file: " + file);
+ }
+
+ } catch (IOException e) {
+ throw new MojoFailureException("Error due " + e.getMessage(), e);
+ }
+ }
+
private boolean updateCoreComponents(File file, String changed) throws MojoExecutionException {
if (!file.exists()) {
return false;
@@ -223,15 +336,109 @@ public class PrepareUserGuideMojo extends AbstractMojo {
}
}
+ private boolean updateDataFormats(File file, String changed) throws MojoExecutionException {
+ if (!file.exists()) {
+ return false;
+ }
+
+ try {
+ String text = loadText(new FileInputStream(file));
+
+ String existing = StringHelper.between(text, "<!-- dataformats: START -->" , "<!-- dataformats: END -->");
+ if (existing != null) {
+ // remove leading line breaks etc
+ existing = existing.trim();
+ changed = changed.trim();
+ if (existing.equals(changed)) {
+ return false;
+ } else {
+ String before = StringHelper.before(text, "<!-- dataformats: START -->");
+ String after = StringHelper.after(text, "<!-- dataformats: END -->");
+ text = before + "\n<!-- dataformats: START -->\n" + changed + "\n<!-- dataformats: END -->\n" + after;
+ writeText(file, text);
+ return true;
+ }
+ } else {
+ getLog().warn("Cannot find markers in file " + file);
+ getLog().warn("Add the following markers");
+ getLog().warn("\t<!-- dataformats: START -->");
+ getLog().warn("\t<!-- dataformats: END -->");
+ return false;
+ }
+ } catch (Exception e) {
+ throw new MojoExecutionException("Error reading file " + file + " Reason: " + e, e);
+ }
+ }
+
+ private boolean updateLanguages(File file, String changed) throws MojoExecutionException {
+ if (!file.exists()) {
+ return false;
+ }
+
+ try {
+ String text = loadText(new FileInputStream(file));
+
+ String existing = StringHelper.between(text, "<!-- languages: START -->" , "<!-- languages: END -->");
+ if (existing != null) {
+ // remove leading line breaks etc
+ existing = existing.trim();
+ changed = changed.trim();
+ if (existing.equals(changed)) {
+ return false;
+ } else {
+ String before = StringHelper.before(text, "<!-- languages: START -->");
+ String after = StringHelper.after(text, "<!-- languages: END -->");
+ text = before + "\n<!-- languages: START -->\n" + changed + "\n<!-- languages: END -->\n" + after;
+ writeText(file, text);
+ return true;
+ }
+ } else {
+ getLog().warn("Cannot find markers in file " + file);
+ getLog().warn("Add the following markers");
+ getLog().warn("\t<!-- languages: START -->");
+ getLog().warn("\t<!-- languages: END -->");
+ return false;
+ }
+ } catch (Exception e) {
+ throw new MojoExecutionException("Error reading file " + file + " Reason: " + e, e);
+ }
+ }
+
private static String link(ComponentModel model) {
return "[" + model.getTitle() + "](" + model.getScheme() + "-component.adoc)";
}
+ private static String link(DataFormatModel model) {
+ return "[" + model.getTitle() + "](" + model.getName() + "-dataformat.adoc)";
+ }
+
+ private static String link(LanguageModel model) {
+ return "[" + model.getTitle() + "](" + model.getName() + "-language.adoc)";
+ }
+
private static class ComponentComparator implements Comparator<ComponentModel> {
@Override
public int compare(ComponentModel o1, ComponentModel o2) {
- // lets sory by title
+ // lets sort by title
+ return o1.getTitle().compareTo(o2.getTitle());
+ }
+ }
+
+ private static class DataFormatComparator implements Comparator<DataFormatModel> {
+
+ @Override
+ public int compare(DataFormatModel o1, DataFormatModel o2) {
+ // lets sort by title
+ return o1.getTitle().compareTo(o2.getTitle());
+ }
+ }
+
+ private static class LanguageComparator implements Comparator<LanguageModel> {
+
+ @Override
+ public int compare(LanguageModel o1, LanguageModel o2) {
+ // lets sort by title
return o1.getTitle().compareTo(o2.getTitle());
}
}
@@ -258,4 +465,41 @@ public class PrepareUserGuideMojo extends AbstractMojo {
return component;
}
+ private DataFormatModel generateDataFormatModel(String json) {
+ List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("dataformat", json, false);
+
+ DataFormatModel dataFormat = new DataFormatModel();
+ dataFormat.setName(JSonSchemaHelper.getSafeValue("name", rows));
+ dataFormat.setTitle(JSonSchemaHelper.getSafeValue("title", rows));
+ dataFormat.setModelName(JSonSchemaHelper.getSafeValue("modelName", rows));
+ dataFormat.setDescription(JSonSchemaHelper.getSafeValue("description", rows));
+ dataFormat.setLabel(JSonSchemaHelper.getSafeValue("label", rows));
+ dataFormat.setDeprecated(JSonSchemaHelper.getSafeValue("deprecated", rows));
+ dataFormat.setJavaType(JSonSchemaHelper.getSafeValue("javaType", rows));
+ dataFormat.setGroupId(JSonSchemaHelper.getSafeValue("groupId", rows));
+ dataFormat.setArtifactId(JSonSchemaHelper.getSafeValue("artifactId", rows));
+ dataFormat.setVersion(JSonSchemaHelper.getSafeValue("version", rows));
+
+ return dataFormat;
+ }
+
+ private LanguageModel generateLanguageModel(String json) {
+ List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("language", json, false);
+
+ LanguageModel language = new LanguageModel();
+ language.setTitle(JSonSchemaHelper.getSafeValue("title", rows));
+ language.setName(JSonSchemaHelper.getSafeValue("name", rows));
+ language.setModelName(JSonSchemaHelper.getSafeValue("modelName", rows));
+ language.setDescription(JSonSchemaHelper.getSafeValue("description", rows));
+ language.setLabel(JSonSchemaHelper.getSafeValue("label", rows));
+ language.setDeprecated(JSonSchemaHelper.getSafeValue("deprecated", rows));
+ language.setJavaType(JSonSchemaHelper.getSafeValue("javaType", rows));
+ language.setGroupId(JSonSchemaHelper.getSafeValue("groupId", rows));
+ language.setArtifactId(JSonSchemaHelper.getSafeValue("artifactId", rows));
+ language.setVersion(JSonSchemaHelper.getSafeValue("version", rows));
+
+ return language;
+ }
+
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/38941053/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java
index b94ba77..5881522 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ReadmeComponentMojo.java
@@ -460,6 +460,7 @@ public class ReadmeComponentMojo extends AbstractMojo {
DataFormatModel dataFormat = new DataFormatModel();
dataFormat.setTitle(JSonSchemaHelper.getSafeValue("title", rows));
dataFormat.setModelName(JSonSchemaHelper.getSafeValue("modelName", rows));
+ dataFormat.setName(JSonSchemaHelper.getSafeValue("name", rows));
dataFormat.setDescription(JSonSchemaHelper.getSafeValue("description", rows));
dataFormat.setLabel(JSonSchemaHelper.getSafeValue("label", rows));
dataFormat.setDeprecated(JSonSchemaHelper.getSafeValue("deprecated", rows));
@@ -497,6 +498,7 @@ public class ReadmeComponentMojo extends AbstractMojo {
LanguageModel language = new LanguageModel();
language.setTitle(JSonSchemaHelper.getSafeValue("title", rows));
language.setModelName(JSonSchemaHelper.getSafeValue("modelName", rows));
+ language.setName(JSonSchemaHelper.getSafeValue("name", rows));
language.setDescription(JSonSchemaHelper.getSafeValue("description", rows));
language.setLabel(JSonSchemaHelper.getSafeValue("label", rows));
language.setDeprecated(JSonSchemaHelper.getSafeValue("deprecated", rows));