You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2018/07/11 21:54:41 UTC
[incubator-plc4x] branch feature/site-generation-fixes updated
(bb9e8e7 -> 0be404c)
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a change to branch feature/site-generation-fixes
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git.
from bb9e8e7 - Patched ascidoctor-site-plugin to generate the images into the correct path - Custom skin for the site generation
add 525e7c0 improved mocking of serial protocol test
add 430b3a0 serial ads protocol: as soon as we transmitted the ack frame we unset the boolean
add dbdb331 Added another interesting link regarding the s7 comm plus protocol.
add 87cf9d0 added toString(), equals() and hashCode() to PlcRequestContainer
add 4ad7ea2 added ADS protocol Tracing
add a2d2b4f added output for cli input on example test
add 3ef3922 added logging of retransmission
add db58135 fixed wrong log category
add bf508e3 updated serial ads-protocol: - removed thread blocking - only read on complete data
add 8a874ed added toString(), equals(), hashCode() for some basic api objects.
add 976464d fixed failing test on travis
add 929162b move ack to postaction as we only ack a valid (crc) packet
add d06dd30 ADS/AMS serial protocol. Throw error if user data exceeds 255 bytes.
add 572e16b ADS/AMS log unexpected frames
add 4b7fc7e fixed wrong padding of strings.
add 587b5d2 small access change
add 20090bb fixed device name handling
add aaad9ce smaller cleanups
add 83c69c9 added single message rate limiter to throttle outgoing messages to one on serial connection
add c14ecc1 added a ADSException to correlate ads messages using the invokeId
add e69ef91 implement retry mechanism on ADS/AMS using the fixed rate scheduler.
add b0fad96 fixed tests
add 89c034c fixed build
add ef96140 switch from link to code as the handlers are not a current dependency
add dff0d41 set interrupt flag where necessary.
add 067cf7a try to fix wobbily test by avoid using the thread if no message is on the way
add 1e684e9 removed obsolete TODO
add 864bd96 fixed some sonar bugs (equals, hashcode, serializable)
add 96eaca6 fixed sonar warning about not serializable fields
add 8b8a938 fixed some bugs while working on coverage
add de97867 fix remaining sonar bug
add cf6d54d added tests for AdsNotificationSample and AdsStampHeader
add 151a20f fixed serial driver regex to match the serial port the right way
add 971acb2 added serial testing to ManualPlc4AdsTest
add 97245e2 BUGFIX: receive behaves differently on receive without a timeout
add ffc1680 fixed small warning
add 6a564cf added a basic type converter to the camel component
add 474a95e Added missing Apache header.
add 88ddd90 added initial integration of https://github.com/digitalpetri/modbus
add 0d37f46 added basic manual test for Modbus
add 295a5e9 MODBUS: fixed patterns and aligned them on ADS
add 0db64c8 fix dependency problems
add 5330bcd ignore the tcp dependency for now
add 948bbba fix build
add ae4e81b use combine children attribute to merge ignored dependencies
add 3b5fd72 added some logging
add 6f222f0 added possibility to supply port to modbus
add 3560f75 set test logging to trace for now
add 1ee4886 modbus bugfix don't wait for session complete
add 807afb5 MODBUS: fixing matchers don't match
add 5241986 modbus: fix netty read mockup
add 7920c4f modbus test display byte[]
add e2e735e fix build
add 920a96f modbus: fixed typo in addressing
add a643829 modbus consume error messages
add ff9aa2d implemented getSize() on WriteRequestItem method analog to ReadRequestItem
add 3e2585d disolved quantity in favor of size attribute of PlcRead and PlcWrite Request.
add a7cc186 modbus: added some logging and pdu todo
add 4fe91d0 fixed small typo
add fff1b70 added logging for incoming tcp payload
add 9c57fc4 added a todo about chunking and quantity regarding item types
add 33b8a51 modbus: added basic type encoding and decoding.
add cdddd19 fixed produce coil value method. Added a basic test
add 6c27497 ignore commons io for now
add 5714e07 Added some more information about the wago web-interface and the default login to this.
add 369ee00 small fixes in the modbus protocol
add f95d70f Introduced TcpHexDumper to driver-bases/test
add 492ed4a added test for modbus PlcDriver
add 1c65826 moved Assert and Junit5Backport to driver-bases/test
add c326e36 added modbus connection tests
add 036e394 fixed build problems
add 22d5106 added Test for Plc4XModbusProtocol and fixed several Bugs.
add a66f66d Refactored the way the maps the enums are built up.
add 7a2b14b Added some EtherNet/IP related documentation.
add 748a39d PLC4X-40 - Refactor the PlcSubscriber to be more aligned with the PlcReader and PlcWriter
add 7079cad Changed the pom to use a variable instead of having it hard coded for every modbus driver dependency.
new f9bc175 Merged changes from master
new 0be404c Merged changes from master
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../java/org/apache/plc4x/camel/Plc4XConsumer.java | 33 +-
.../apache/plc4x/camel/Plc4XPollingConsumer.java | 2 +-
.../plc4x/camel/ResponseItemTypeConverter.java} | 37 +--
.../camel/{component/plc4x => TypeConverter} | 2 +-
.../java/org/apache/plc4x/camel/ManualTest.java | 2 +-
.../java/org/apache/plc4x/camel/MockDriver.java | 57 ++--
.../plc4x/java/api/connection/PlcSubscriber.java | 24 +-
.../plc4x/java/api/messages/PlcNotification.java | 80 -----
.../java/api/messages/PlcProprietaryRequest.java | 23 ++
.../java/api/messages/PlcProprietaryResponse.java | 22 ++
.../apache/plc4x/java/api/messages/PlcRequest.java | 29 +-
.../java/api/messages/PlcRequestContainer.java | 32 ++
.../plc4x/java/api/messages/PlcResponse.java | 32 +-
.../{PlcMessage.java => PlcSubscriptionEvent.java} | 21 +-
...PlcMessage.java => PlcSubscriptionRequest.java} | 9 +-
.../api/messages/PlcSubscriptionResponse.java} | 19 +-
.../api/messages/PlcUnsubscriptionRequest.java | 54 ++++
.../api/messages/PlcUnsubscriptionResponse.java} | 4 +-
.../java/api/messages/items/ReadRequestItem.java | 54 +++-
.../java/api/messages/items/ReadResponseItem.java | 52 ++-
.../plc4x/java/api/messages/items/RequestItem.java | 58 +++-
.../java/api/messages/items/ResponseItem.java | 59 +++-
.../api/messages/items/SubscriptionEventItem.java} | 34 +-
...a => SubscriptionRequestChangeOfStateItem.java} | 19 +-
...tem.java => SubscriptionRequestCyclicItem.java} | 25 +-
...Item.java => SubscriptionRequestEventItem.java} | 11 +-
.../messages/items/SubscriptionRequestItem.java} | 34 +-
.../messages/items/SubscriptionResponseItem.java} | 25 +-
.../messages/items/UnsubscriptionRequestItem.java | 62 ++++
.../items/UnsubscriptionResponseItem.java} | 14 +-
.../java/api/messages/items/WriteRequestItem.java | 56 +++-
.../java/api/messages/items/WriteResponseItem.java | 28 +-
.../messages/specific/TypeSafePlcReadRequest.java | 21 ++
.../messages/specific/TypeSafePlcWriteRequest.java | 21 ++
.../SubscriptionHandle.java} | 12 +-
.../plc4x/java/api/model/SubscriptionType.java} | 26 +-
plc4j/protocols/ads/pom.xml | 12 +
.../org/apache/plc4x/java/ads/AdsPlcDriver.java | 2 +-
.../api/commands/AdsDeviceNotificationRequest.java | 2 +-
.../java/ads/api/commands/AdsReadResponse.java | 17 +-
.../java/ads/api/commands/AdsReadWriteRequest.java | 2 +-
.../ads/api/commands/AdsReadWriteResponse.java | 2 +-
.../ads/api/commands/AdsWriteControlRequest.java | 2 +-
.../java/ads/api/commands/AdsWriteRequest.java | 2 +-
.../java/ads/api/commands/UnknownCommand.java | 11 +-
.../api/commands/types/AdsNotificationSample.java | 2 +-
.../java/ads/api/commands/types/AdsState.java | 2 +-
.../plc4x/java/ads/api/commands/types/Device.java | 27 +-
.../plc4x/java/ads/api/generic/AmsHeader.java | 34 +-
.../java/ads/api/serial/AmsSerialResetFrame.java | 13 +
.../java/ads/api/serial/types/FragmentNumber.java | 26 ++
.../java/ads/api/serial/types/ReceiverAddress.java | 26 ++
.../ads/api/serial/types/TransmitterAddress.java | 26 ++
.../java/ads/api/serial/types/UserDataLength.java | 23 ++
.../plc4x/java/ads/api/tcp/AmsTcpHeader.java | 2 +-
.../plc4x/java/ads/api/util/ByteReadable.java | 3 +-
.../java/ads/api/util/UnsignedIntLEByteValue.java | 11 +-
.../ads/api/util/UnsignedShortLEByteValue.java | 11 +-
.../ads/connection/AdsAbstractPlcConnection.java | 5 +
.../ads/connection/AdsSerialPlcConnection.java | 2 +
.../java/ads/connection/AdsTcpPlcConnection.java | 208 ++++++------
.../java/ads/model/AdsSubscriptionHandle.java} | 23 +-
.../java/ads/protocol/Ads2PayloadProtocol.java | 2 +
.../java/ads/protocol/Payload2SerialProtocol.java | 117 ++++---
.../java/ads/protocol/Payload2TcpProtocol.java | 6 +-
.../plc4x/java/ads/protocol/Plc4x2AdsProtocol.java | 19 +-
.../java/ads/protocol/exception/AdsException.java | 57 ++++
.../protocol/util/SingleMessageRateLimiter.java | 124 ++++++++
.../java/org/apache/plc4x/java/ads/AdsDumper.java | 2 +-
.../apache/plc4x/java/ads/AdsPlcDriverTest.java | 2 +-
.../apache/plc4x/java/ads/ManualPlc4XAdsTest.java | 32 +-
.../ads/adslib/ADSClientNotificationExample.java | 2 +
.../org/apache/plc4x/java/ads/adslib/AdsLib.java | 30 +-
.../apache/plc4x/java/ads/adslib/AmsRouter.java | 18 +-
.../commands/types/AdsNotificationSampleTest.java | 69 ++++
.../ads/api/commands/types/AdsStampHeaderTest.java | 90 ++++++
.../types/CommandTypesFactoryMethodTest.java | 11 +
.../java/ads/api/commands/types/DeviceTest.java | 34 +-
.../java/ads/api/commands/types/LengthTest.java | 2 +-
.../ads/api/commands/types/ReadLengthTest.java | 2 +-
.../ads/api/commands/types/SampleSizeTest.java | 2 +-
.../java/ads/api/commands/types/SamplesTest.java | 2 +-
.../ads/api/commands/types/WriteLengthTest.java | 2 +-
.../ads/api/generic/GenericFactoryMethodTest.java | 6 +-
.../java/ads/api/generic/types/AmsPortTest.java | 11 +-
.../java/ads/api/generic/types/DataLengthTest.java | 2 +-
.../java/ads/api/generic/types/TcpLengthTest.java | 2 +-
.../SerialFactoryMethodTest.java} | 29 +-
.../types/GenericTypesFactoryMethodTest.java | 22 +-
.../TcpFactoryMethodTest.java} | 8 +-
.../types/GenericTypesFactoryMethodTest.java | 15 +-
.../connection/AdsAbstractPlcConnectionTest.java | 2 +-
.../ads/connection/AdsConnectionFactoryTest.java | 2 +-
.../ads/connection/AdsSerialPlcConnectionTest.java | 197 +++++++++++-
.../ads/connection/AdsTcpPlcConnectionTests.java | 46 ++-
...load2SerialProtocolExampleConversationTest.java | 41 ++-
.../java/ads/protocol/util/DigestUtilTest.java | 4 +-
.../ads/protocol/util/LittleEndianDecoderTest.java | 2 +-
.../ads/protocol/util/LittleEndianEncoderTest.java | 4 +-
plc4j/protocols/driver-bases/test/pom.xml | 33 ++
.../java/base/connection/tcp}/TcpHexDumper.java | 2 +-
.../org/apache/plc4x/java/base}/util/Assert.java | 22 +-
.../plc4x/java/base}/util/Junit5Backport.java | 2 +-
plc4j/protocols/modbus/pom.xml | 76 ++++-
.../apache/plc4x/java/modbus/ModbusPlcDriver.java | 41 ++-
.../modbus/connection/BaseModbusPlcConnection.java | 49 +--
.../connection/ModbusConnectionFactory.java} | 32 +-
.../connection/ModbusSerialPlcConnection.java | 25 +-
.../modbus/connection/ModbusTcpPlcConnection.java | 36 ++-
.../java/modbus/model/CoilModbusAddress.java} | 32 +-
.../model/MaskWriteRegisterModbusAddress.java | 88 ++++++
.../plc4x/java/modbus/model/ModbusAddress.java | 42 ++-
.../model/ReadDiscreteInputsModbusAddress.java | 42 +++
.../model/ReadHoldingRegistersModbusAddress.java | 42 +++
.../model/ReadInputRegistersModbusAddress.java | 42 +++
.../java/modbus/model/RegisterModbusAddress.java | 43 +++
.../plc4x/java/modbus/netty/ModbusProtocol.java | 40 ---
.../plc4x/java/modbus/netty/ModbusTcpProtocol.java | 39 ---
.../java/modbus/netty/Plc4XModbusProtocol.java | 351 ++++++++++++++++++++-
.../plc4x/java/modbus/ManualPlc4XModbusTest.java} | 31 +-
.../plc4x/java/modbus/ModbusPlcDriverTest.java | 125 ++++++++
.../connection/BaseModbusPlcConnectionTest.java | 166 ++++++++++
.../connection/ModbusConnectionFactoryTest.java | 95 ++++++
.../connection/ModbusSerialPlcConnectionTest.java | 286 +++++++++++++++++
.../connection/ModbusTcpPlcConnectionTests.java | 134 ++++++++
.../java/modbus/netty/Plc4XModbusProtocolTest.java | 303 ++++++++++++++++++
.../main => modbus/src/test}/resources/logback.xml | 6 +-
.../java/isotp/netty/model/types/DeviceGroup.java | 17 +-
.../isotp/netty/model/types/DisconnectReason.java | 17 +-
.../isotp/netty/model/types/ParameterCode.java | 17 +-
.../isotp/netty/model/types/ProtocolClass.java | 17 +-
.../java/isotp/netty/model/types/RejectCause.java | 17 +-
.../java/isotp/netty/model/types/TpduCode.java | 17 +-
.../java/isotp/netty/model/types/TpduSize.java | 17 +-
.../netty/model/types/DataTransportErrorCode.java | 17 +-
.../s7/netty/model/types/DataTransportSize.java | 17 +-
.../s7/netty/model/types/HeaderErrorClass.java | 17 +-
.../java/s7/netty/model/types/MemoryArea.java | 17 +-
.../java/s7/netty/model/types/MessageType.java | 17 +-
.../java/s7/netty/model/types/ParameterError.java | 17 +-
.../java/s7/netty/model/types/ParameterType.java | 17 +-
.../s7/netty/model/types/SpecificationType.java | 17 +-
.../java/s7/netty/model/types/TransportSize.java | 17 +-
.../netty/model/types/VariableAddressingMode.java | 17 +-
pom.xml | 159 +---------
src/site/asciidoc/developers/vpn.adoc | 7 +
src/site/asciidoc/protocols/s7/s7comm-plus.adoc | 3 +
src/site/resources/img/apache_incubator_logo.png | Bin 0 -> 13171 bytes
src/site/resources/img/apache_plc4x_logo_small.png | Bin 0 -> 18451 bytes
src/site/site.xml | 4 +-
utils/site-skin/pom.xml | 62 ++++
.../main/resources/META-INF/maven/site-macros.vm | 17 +-
.../src/main/resources/META-INF/maven/site.vm | 173 +++++++---
153 files changed, 4297 insertions(+), 1249 deletions(-)
copy integrations/apache-camel/src/{test/java/org/apache/plc4x/camel/Plc4XConsumerTest.java => main/java/org/apache/plc4x/camel/ResponseItemTypeConverter.java} (66%)
copy integrations/apache-camel/src/main/resources/META-INF/services/org/apache/camel/{component/plc4x => TypeConverter} (94%)
delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcNotification.java
copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcSubscriptionEvent.java} (66%)
copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcSubscriptionRequest.java} (83%)
rename plc4j/{protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/netty/ModbusSerialProtocol.java => api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponse.java} (60%)
create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequest.java
rename plc4j/{protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/netty/model/ModbusMessage.java => api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponse.java} (87%)
copy plc4j/{protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/serial/types/TransmitterAddress.java => api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionEventItem.java} (51%)
copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/{ReadRequestItem.java => SubscriptionRequestChangeOfStateItem.java} (68%)
copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/{ReadRequestItem.java => SubscriptionRequestCyclicItem.java} (58%)
copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/{WriteResponseItem.java => SubscriptionRequestEventItem.java} (68%)
copy plc4j/api/src/{test/java/org/apache/plc4x/java/api/connection/PlcWriterTest.java => main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestItem.java} (51%)
copy plc4j/{protocols/ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionResponseItem.java} (55%)
create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionRequestItem.java
copy plc4j/{protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionResponseItem.java} (74%)
copy plc4j/api/src/main/java/org/apache/plc4x/java/api/{messages/PlcMessage.java => model/SubscriptionHandle.java} (60%)
copy plc4j/{protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/TsapParameter.java => api/src/main/java/org/apache/plc4x/java/api/model/SubscriptionType.java} (58%)
copy plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/DisconnectAdditionalInformationParameter.java => ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java} (60%)
create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/exception/AdsException.java
create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/util/SingleMessageRateLimiter.java
create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/AdsNotificationSampleTest.java
create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/AdsStampHeaderTest.java
copy integrations/apache-camel/src/test/java/org/apache/plc4x/camel/Plc4XConsumerTest.java => plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/DeviceTest.java (64%)
copy plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/{generic/GenericFactoryMethodTest.java => serial/SerialFactoryMethodTest.java} (76%)
copy plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/{generic => serial}/types/GenericTypesFactoryMethodTest.java (85%)
copy plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/{generic/GenericFactoryMethodTest.java => tcp/TcpFactoryMethodTest.java} (92%)
copy plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/{generic => tcp}/types/GenericTypesFactoryMethodTest.java (90%)
rename plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/util => driver-bases/test/src/main/java/org/apache/plc4x/java/base/connection/tcp}/TcpHexDumper.java (98%)
rename plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads => driver-bases/test/src/main/java/org/apache/plc4x/java/base}/util/Assert.java (80%)
copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads => driver-bases/test/src/main/java/org/apache/plc4x/java/base}/util/Junit5Backport.java (97%)
copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/util/Junit5Backport.java => modbus/src/main/java/org/apache/plc4x/java/modbus/connection/ModbusConnectionFactory.java} (53%)
rename plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/util/Junit5Backport.java => modbus/src/main/java/org/apache/plc4x/java/modbus/model/CoilModbusAddress.java} (50%)
create mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/MaskWriteRegisterModbusAddress.java
create mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/ReadDiscreteInputsModbusAddress.java
create mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/ReadHoldingRegistersModbusAddress.java
create mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/ReadInputRegistersModbusAddress.java
create mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/RegisterModbusAddress.java
delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/netty/ModbusProtocol.java
delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/netty/ModbusTcpProtocol.java
copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/ManualPlc4XAdsTest.java => modbus/src/test/java/org/apache/plc4x/java/modbus/ManualPlc4XModbusTest.java} (68%)
create mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusPlcDriverTest.java
create mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/BaseModbusPlcConnectionTest.java
create mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusConnectionFactoryTest.java
create mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusSerialPlcConnectionTest.java
create mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusTcpPlcConnectionTests.java
create mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/netty/Plc4XModbusProtocolTest.java
copy plc4j/protocols/{benchmarks/src/main => modbus/src/test}/resources/logback.xml (84%)
create mode 100644 src/site/resources/img/apache_incubator_logo.png
create mode 100644 src/site/resources/img/apache_plc4x_logo_small.png
[incubator-plc4x] 02/02: Merged changes from master
Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch feature/site-generation-fixes
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit 0be404c30d0f33865e8654fd90dcbdd9177cbe80
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Wed Jul 11 23:54:25 2018 +0200
Merged changes from master
---
.../java/org/apache/plc4x/java/ads/protocol/util/DigestUtilTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/util/DigestUtilTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/util/DigestUtilTest.java
index 5271462..1570ec7 100644
--- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/util/DigestUtilTest.java
+++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/util/DigestUtilTest.java
@@ -71,7 +71,7 @@ public class DigestUtilTest {
@Ignore("This test is used to find proper crc parameters and can be run manually")
@Test
- public void findRightAdsCrc() throws Exception {
+ public void findRightAdsCrc() {
int[] exampleResponseInt = {
/*Magic Cookie */ 0x01, 0xA5,
/*Sender */ 0x00,
[incubator-plc4x] 01/02: Merged changes from master
Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch feature/site-generation-fixes
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit f9bc17593c3056f92e3dfa91abef1862bb350491
Merge: bb9e8e7 7079cad
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Wed Jul 11 23:53:52 2018 +0200
Merged changes from master
.../java/org/apache/plc4x/camel/Plc4XConsumer.java | 33 +-
.../apache/plc4x/camel/Plc4XPollingConsumer.java | 2 +-
.../plc4x/camel/ResponseItemTypeConverter.java | 30 +-
.../services/org/apache/camel/TypeConverter | 19 ++
.../java/org/apache/plc4x/camel/ManualTest.java | 2 +-
.../java/org/apache/plc4x/camel/MockDriver.java | 57 ++--
.../plc4x/java/api/connection/PlcSubscriber.java | 24 +-
.../plc4x/java/api/messages/PlcNotification.java | 80 -----
.../java/api/messages/PlcProprietaryRequest.java | 23 ++
.../java/api/messages/PlcProprietaryResponse.java | 22 ++
.../apache/plc4x/java/api/messages/PlcRequest.java | 29 +-
.../java/api/messages/PlcRequestContainer.java | 32 ++
.../plc4x/java/api/messages/PlcResponse.java | 32 +-
.../java/api/messages/PlcSubscriptionEvent.java} | 26 +-
.../java/api/messages/PlcSubscriptionRequest.java} | 7 +-
.../api/messages/PlcSubscriptionResponse.java} | 19 +-
.../api/messages/PlcUnsubscriptionRequest.java | 54 ++++
.../api/messages/PlcUnsubscriptionResponse.java} | 4 +-
.../java/api/messages/items/ReadRequestItem.java | 54 +++-
.../java/api/messages/items/ReadResponseItem.java | 52 ++-
.../plc4x/java/api/messages/items/RequestItem.java | 58 +++-
.../java/api/messages/items/ResponseItem.java | 59 +++-
.../api/messages/items/SubscriptionEventItem.java} | 34 +-
...a => SubscriptionRequestChangeOfStateItem.java} | 19 +-
...tem.java => SubscriptionRequestCyclicItem.java} | 25 +-
...Item.java => SubscriptionRequestEventItem.java} | 11 +-
.../messages/items/SubscriptionRequestItem.java | 45 +++
.../messages/items/SubscriptionResponseItem.java} | 31 +-
.../messages/items/UnsubscriptionRequestItem.java | 62 ++++
.../items/UnsubscriptionResponseItem.java} | 27 +-
.../java/api/messages/items/WriteRequestItem.java | 56 +++-
.../java/api/messages/items/WriteResponseItem.java | 28 +-
.../messages/specific/TypeSafePlcReadRequest.java | 21 ++
.../messages/specific/TypeSafePlcWriteRequest.java | 21 ++
.../SubscriptionHandle.java} | 19 +-
.../plc4x/java/api/model/SubscriptionType.java} | 39 +--
plc4j/protocols/ads/pom.xml | 12 +
.../org/apache/plc4x/java/ads/AdsPlcDriver.java | 2 +-
.../api/commands/AdsDeviceNotificationRequest.java | 2 +-
.../java/ads/api/commands/AdsReadResponse.java | 17 +-
.../java/ads/api/commands/AdsReadWriteRequest.java | 2 +-
.../ads/api/commands/AdsReadWriteResponse.java | 2 +-
.../ads/api/commands/AdsWriteControlRequest.java | 2 +-
.../java/ads/api/commands/AdsWriteRequest.java | 2 +-
.../java/ads/api/commands/UnknownCommand.java | 11 +-
.../api/commands/types/AdsNotificationSample.java | 2 +-
.../java/ads/api/commands/types/AdsState.java | 2 +-
.../plc4x/java/ads/api/commands/types/Device.java | 27 +-
.../plc4x/java/ads/api/generic/AmsHeader.java | 34 +-
.../java/ads/api/serial/AmsSerialResetFrame.java | 13 +
.../java/ads/api/serial/types/FragmentNumber.java | 26 ++
.../java/ads/api/serial/types/ReceiverAddress.java | 26 ++
.../ads/api/serial/types/TransmitterAddress.java | 26 ++
.../java/ads/api/serial/types/UserDataLength.java | 23 ++
.../plc4x/java/ads/api/tcp/AmsTcpHeader.java | 2 +-
.../plc4x/java/ads/api/util/ByteReadable.java | 3 +-
.../java/ads/api/util/UnsignedIntLEByteValue.java | 11 +-
.../ads/api/util/UnsignedShortLEByteValue.java | 11 +-
.../ads/connection/AdsAbstractPlcConnection.java | 5 +
.../ads/connection/AdsSerialPlcConnection.java | 2 +
.../java/ads/connection/AdsTcpPlcConnection.java | 208 ++++++------
.../java/ads/model/AdsSubscriptionHandle.java} | 23 +-
.../java/ads/protocol/Ads2PayloadProtocol.java | 2 +
.../java/ads/protocol/Payload2SerialProtocol.java | 117 ++++---
.../java/ads/protocol/Payload2TcpProtocol.java | 6 +-
.../plc4x/java/ads/protocol/Plc4x2AdsProtocol.java | 19 +-
.../java/ads/protocol/exception/AdsException.java | 57 ++++
.../protocol/util/SingleMessageRateLimiter.java | 124 ++++++++
.../java/org/apache/plc4x/java/ads/AdsDumper.java | 2 +-
.../apache/plc4x/java/ads/AdsPlcDriverTest.java | 2 +-
.../apache/plc4x/java/ads/ManualPlc4XAdsTest.java | 32 +-
.../ads/adslib/ADSClientNotificationExample.java | 2 +
.../org/apache/plc4x/java/ads/adslib/AdsLib.java | 30 +-
.../apache/plc4x/java/ads/adslib/AmsRouter.java | 18 +-
.../commands/types/AdsNotificationSampleTest.java | 69 ++++
.../ads/api/commands/types/AdsStampHeaderTest.java | 90 ++++++
.../types/CommandTypesFactoryMethodTest.java | 11 +
.../java/ads/api/commands/types/DeviceTest.java} | 29 +-
.../java/ads/api/commands/types/LengthTest.java | 2 +-
.../ads/api/commands/types/ReadLengthTest.java | 2 +-
.../ads/api/commands/types/SampleSizeTest.java | 2 +-
.../java/ads/api/commands/types/SamplesTest.java | 2 +-
.../ads/api/commands/types/WriteLengthTest.java | 2 +-
.../ads/api/generic/GenericFactoryMethodTest.java | 6 +-
.../java/ads/api/generic/types/AmsPortTest.java | 11 +-
.../java/ads/api/generic/types/DataLengthTest.java | 2 +-
.../java/ads/api/generic/types/TcpLengthTest.java | 2 +-
.../SerialFactoryMethodTest.java} | 29 +-
.../types/GenericTypesFactoryMethodTest.java | 92 ++++++
.../TcpFactoryMethodTest.java} | 8 +-
.../tcp/types/GenericTypesFactoryMethodTest.java | 87 +++++
.../connection/AdsAbstractPlcConnectionTest.java | 2 +-
.../ads/connection/AdsConnectionFactoryTest.java | 2 +-
.../ads/connection/AdsSerialPlcConnectionTest.java | 197 +++++++++++-
.../ads/connection/AdsTcpPlcConnectionTests.java | 46 ++-
...load2SerialProtocolExampleConversationTest.java | 41 ++-
.../java/ads/protocol/util/DigestUtilTest.java | 2 +-
.../ads/protocol/util/LittleEndianDecoderTest.java | 2 +-
.../ads/protocol/util/LittleEndianEncoderTest.java | 4 +-
plc4j/protocols/driver-bases/test/pom.xml | 33 ++
.../java/base/connection/tcp}/TcpHexDumper.java | 2 +-
.../org/apache/plc4x/java/base}/util/Assert.java | 22 +-
.../plc4x/java/base}/util/Junit5Backport.java | 2 +-
plc4j/protocols/modbus/pom.xml | 76 ++++-
.../apache/plc4x/java/modbus/ModbusPlcDriver.java | 41 ++-
.../modbus/connection/BaseModbusPlcConnection.java | 49 +--
.../connection/ModbusConnectionFactory.java} | 32 +-
.../connection/ModbusSerialPlcConnection.java | 25 +-
.../modbus/connection/ModbusTcpPlcConnection.java | 36 ++-
.../java/modbus/model/CoilModbusAddress.java} | 32 +-
.../model/MaskWriteRegisterModbusAddress.java | 88 ++++++
.../plc4x/java/modbus/model/ModbusAddress.java | 42 ++-
.../model/ReadDiscreteInputsModbusAddress.java | 42 +++
.../model/ReadHoldingRegistersModbusAddress.java | 42 +++
.../model/ReadInputRegistersModbusAddress.java | 42 +++
.../java/modbus/model/RegisterModbusAddress.java | 43 +++
.../plc4x/java/modbus/netty/ModbusProtocol.java | 40 ---
.../java/modbus/netty/Plc4XModbusProtocol.java | 351 ++++++++++++++++++++-
.../plc4x/java/modbus/ManualPlc4XModbusTest.java} | 31 +-
.../plc4x/java/modbus/ModbusPlcDriverTest.java | 125 ++++++++
.../connection/BaseModbusPlcConnectionTest.java | 166 ++++++++++
.../connection/ModbusConnectionFactoryTest.java | 95 ++++++
.../connection/ModbusSerialPlcConnectionTest.java | 286 +++++++++++++++++
.../connection/ModbusTcpPlcConnectionTests.java | 134 ++++++++
.../java/modbus/netty/Plc4XModbusProtocolTest.java | 303 ++++++++++++++++++
.../modbus/src/test/resources/logback.xml | 38 +++
.../java/isotp/netty/model/types/DeviceGroup.java | 17 +-
.../isotp/netty/model/types/DisconnectReason.java | 17 +-
.../isotp/netty/model/types/ParameterCode.java | 17 +-
.../isotp/netty/model/types/ProtocolClass.java | 17 +-
.../java/isotp/netty/model/types/RejectCause.java | 17 +-
.../java/isotp/netty/model/types/TpduCode.java | 17 +-
.../java/isotp/netty/model/types/TpduSize.java | 17 +-
.../netty/model/types/DataTransportErrorCode.java | 17 +-
.../s7/netty/model/types/DataTransportSize.java | 17 +-
.../s7/netty/model/types/HeaderErrorClass.java | 17 +-
.../java/s7/netty/model/types/MemoryArea.java | 17 +-
.../java/s7/netty/model/types/MessageType.java | 17 +-
.../java/s7/netty/model/types/ParameterError.java | 17 +-
.../java/s7/netty/model/types/ParameterType.java | 17 +-
.../s7/netty/model/types/SpecificationType.java | 17 +-
.../java/s7/netty/model/types/TransportSize.java | 17 +-
.../netty/model/types/VariableAddressingMode.java | 17 +-
pom.xml | 159 +---------
src/site/asciidoc/developers/vpn.adoc | 7 +
src/site/asciidoc/protocols/s7/s7comm-plus.adoc | 3 +
src/site/resources/img/apache_incubator_logo.png | Bin 0 -> 13171 bytes
src/site/resources/img/apache_plc4x_logo_small.png | Bin 0 -> 18451 bytes
src/site/site.xml | 4 +-
utils/site-skin/pom.xml | 62 ++++
.../main/resources/META-INF/maven/site-macros.vm | 17 +-
.../src/main/resources/META-INF/maven/site.vm | 173 +++++++---
152 files changed, 4538 insertions(+), 1199 deletions(-)
diff --cc pom.xml
index 1ee8073,ab4629a..ec67aa0
--- a/pom.xml
+++ b/pom.xml
@@@ -317,8 -317,8 +317,11 @@@
<!-- Jenkins build related files -->
<exclude>.repository/**</exclude>
+ <!-- Data files created by examples running an embedded elasticsearch -->
+ <exclude>elasticsearch-data/**</exclude>
++
+ <!-- Exclude this for now -->
+ <exclude>utils/**</exclude>
</excludes>
</configuration>
</plugin>
@@@ -358,162 -358,163 +361,6 @@@
-->
<!--
-- The reflow maven skin used for the site-generation requires some static resources.
-- The following plugins configure the acquisition and location of these resources.
-- -->
- <!--plugin>
- <plugin>
-- <groupId>org.apache.maven.plugins</groupId>
-- <artifactId>maven-dependency-plugin</artifactId>
-- <executions>
-- <execution>
-- <id>unpack-js-deps</id>
-- <phase>pre-site</phase>
-- <goals>
-- <goal>unpack</goal>
-- </goals>
-- <configuration>
- <!-
- <!--
-- Bundle these dependencies in the war.
--
-- You must maintain the corresponding info if you
-- add/remove artifacts or change their versions:
-- - entry in src/main/webapp/META-INF/LICENSE
-- - entry in src/main/webapp/META-INF/NOTICE when appropriate
--
-- You must maintain the info in the corresponding
-- console/server files because it bundles this war.
--
-- You must maintain the info in this project's
-- corresponding platforms/java7 files.
- ->
- -->
-- <artifactItems>
-- <artifactItem>
-- <groupId>lt.velykis.maven.skins</groupId>
-- <artifactId>reflow-maven-skin</artifactId>
-- <version>1.1.1</version>
-- <excludes>META-INF/**</excludes>
-- <outputDirectory>${project.build.directory}/dependency/reflow-maven-skin-1.1.1/</outputDirectory>
-- </artifactItem>
-- <artifactItem>
-- <groupId>org.webjars</groupId>
-- <artifactId>bootstrap</artifactId>
-- <version>2.3.2</version>
-- <includes>META-INF/resources/webjars/**/*.min.*</includes>
-- <excludes>META-INF/resources/webjars/**/bootstrap.min.css</excludes>
-- </artifactItem>
-- <artifactItem>
-- <groupId>org.webjars</groupId>
-- <artifactId>jquery</artifactId>
-- <version>1.9.1</version>
-- <includes>META-INF/resources/webjars/**/jquery.min.js</includes>
-- </artifactItem>
-- </artifactItems>
-- </configuration>
-- </execution>
-- </executions>
- </plugin-->
- </plugin>
--
-- <!--
-- Replace the bootstrap css with the version of the theme
-- -->
- <!--lugin>
- <plugin>
-- <groupId>com.googlecode.maven-download-plugin</groupId>
-- <artifactId>download-maven-plugin</artifactId>
-- <version>1.4.0</version>
-- <executions>
-- <execution>
-- <id>get-flatly-bootstrap-theme</id>
-- <phase>pre-site</phase>
-- <goals>
-- <goal>wget</goal>
-- </goals>
-- <configuration>
-- <url>http://netdna.bootstrapcdn.com/bootswatch/2.3.2/flatly/bootstrap.min.css</url>
-- <outputDirectory>${project.build.directory}/dependency/META-INF/resources/webjars/bootstrap/2.3.2/css/
-- </outputDirectory>
-- <outputFileName>bootstrap.min.css</outputFileName>
-- </configuration>
-- </execution>
-- </executions>
- </plugin-->
- </plugin>
--
- <!--plugin>
- <plugin>
-- <groupId>org.apache.maven.plugins</groupId>
-- <artifactId>maven-resources-plugin</artifactId>
-- <executions>
-- <execution>
-- <id>copy-site-resources</id>
-- <phase>pre-site</phase>
-- <goals>
-- <goal>copy-resources</goal>
-- </goals>
-- <configuration>
-- <outputDirectory>${project.build.directory}/site</outputDirectory>
-- <resources>
-- <resource>
- <directory>${project.build.directory}/dependency/META-INF/resources/webjars/bootstrap/2.3.2</directory>
- <directory>${project.build.directory}/dependency/META-INF/resources/webjars/bootstrap/2.3.2
- </directory>
-- </resource>
-- <resource>
-- <directory>${project.build.directory}/dependency/META-INF/resources/webjars/jquery/1.9.1</directory>
-- <targetPath>${project.build.directory}/site/js</targetPath>
-- </resource>
-- </resources>
-- </configuration>
-- </execution>
-- </executions>
- </plugin-->
- </plugin>
--
-- <!--
-- When running asciidoctor as part of the site-generation there were great problems with
- the configuration of the diagram generation. Unfortunately when generating all content here,
- the configuration of the diagram generation. Unfortunatel when generating all content here,
-- the output will not have the site style. That's why here we generate the images to the
-- site directory and have the output written to an outside directory, so it will not interfere.
-- -->
- <!--plugin>
- <plugin>
-- <groupId>org.asciidoctor</groupId>
-- <artifactId>asciidoctor-maven-plugin</artifactId>
-- <version>1.5.6</version>
-- <executions>
-- <execution>
-- <id>generate-asciidoc</id>
-- <phase>site</phase>
-- <goals>
-- <goal>process-asciidoc</goal>
-- </goals>
-- <configuration>
-- <sourceDirectory>src/site/asciidoc</sourceDirectory>
-- <outputDirectory>${project.build.directory}/dump</outputDirectory>
-- <attributes>
-- <source-highlighter>prettify</source-highlighter>
- <!- Tells asciidoctor where to put the generated files ->
- <!-- Tells asciidoctor where to put the generated files -->
-- <imagesoutdir>${project.build.directory}/site/img</imagesoutdir>
-- </attributes>
-- <requires>
-- <require>asciidoctor-diagram</require>
-- </requires>
-- </configuration>
-- </execution>
-- </executions>
-- <dependencies>
-- <dependency>
-- <groupId>org.jruby</groupId>
-- <artifactId>jruby-complete</artifactId>
-- <version>9.1.13.0</version>
-- </dependency>
-- <dependency>
-- <groupId>org.asciidoctor</groupId>
-- <artifactId>asciidoctorj</artifactId>
-- <version>1.5.6</version>
-- </dependency>
-- <dependency>
-- <groupId>org.asciidoctor</groupId>
-- <artifactId>asciidoctorj-diagram</artifactId>
-- <version>1.5.4.1</version>
-- </dependency>
-- </dependencies>
- </plugin-->
- </plugin>
--
-- <!--
Make the maven-site-plugin stage the output in the "asf-site" branch
-->
<plugin>
diff --cc src/site/resources/img/apache_incubator_logo.png
index 0000000,0000000..b741661
new file mode 100644
Binary files differ
diff --cc src/site/resources/img/apache_plc4x_logo_small.png
index 0000000,0000000..539d80d
new file mode 100644
Binary files differ
diff --cc src/site/site.xml
index b22e8f9,1b071c0..73668a5
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@@ -74,13 -74,13 +74,13 @@@
<bannerLeft>
<name>Apache PLC4X (incubating)</name>
-- <src>https://plc4x.apache.org/img/apache_plc4x_logo.png</src>
++ <src>/img/apache_plc4x_logo_small.png</src>
<href>https://plc4x.apache.org/</href>
</bannerLeft>
<bannerRight>
<name>Apache Incubator</name>
-- <src>https://incubator.apache.org/images/incubator_feather_egg_logo_sm.png</src>
++ <src>/img/apache_incubator_logo.png</src>
<href>http://incubator.apache.org/</href>
</bannerRight>
diff --cc utils/site-skin/pom.xml
index 5f5fb71,0000000..7f9f550
mode 100644,000000..100644
--- a/utils/site-skin/pom.xml
+++ b/utils/site-skin/pom.xml
@@@ -1,183 -1,0 +1,245 @@@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>19</version>
+ </parent>
+
+ <groupId>org.apache.plc4x.utils</groupId>
+ <artifactId>plc4x-site-skin</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+
+ <name>plc4x-site-skin</name>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+ <!-- properties used in the integration-test -->
+ <sitePluginVersion>3.7.1</sitePluginVersion>
+ <mpirVersion>2.9</mpirVersion>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <configuration>
+ <delimiters>
+ <delimiter>@</delimiter>
+ </delimiters>
+ <useDefaultDelimiters>false</useDefaultDelimiters>
+ </configuration>
+ </plugin>
++
++ <!--
++ Download the Material Design Light package and unpack it.
++ -->
++ <plugin>
++ <groupId>com.googlecode.maven-download-plugin</groupId>
++ <artifactId>download-maven-plugin</artifactId>
++ <version>1.4.0</version>
++ <executions>
++ <execution>
++ <id>get-mdl-zip</id>
++ <phase>generate-resources</phase>
++ <goals>
++ <goal>wget</goal>
++ </goals>
++ <configuration>
++ <url>https://code.getmdl.io/1.3.0/mdl.zip</url>
++ <outputDirectory>
++ ${project.build.directory}/dependency/mdl
++ </outputDirectory>
++ <unpack>true</unpack>
++ </configuration>
++ </execution>
++ </executions>
++ </plugin>
++
++ <!--
++ Copy the MDL files to the site directory.
++ -->
++ <plugin>
++ <groupId>org.apache.maven.plugins</groupId>
++ <artifactId>maven-resources-plugin</artifactId>
++ <executions>
++ <execution>
++ <id>copy-mdl-site-resources</id>
++ <phase>process-resources</phase>
++ <goals>
++ <goal>copy-resources</goal>
++ </goals>
++ <configuration>
++ <outputDirectory>${project.build.directory}/site</outputDirectory>
++ <resources>
++ <resource>
++ <directory>${project.build.directory}/dependency/mdl</directory>
++ <includes>
++ <include>**.css</include>
++ </includes>
++ <targetPath>${project.build.outputDirectory}/css</targetPath>
++ </resource>
++ <resource>
++ <directory>${project.build.directory}/dependency/mdl</directory>
++ <includes>
++ <include>**.js</include>
++ </includes>
++ <targetPath>${project.build.outputDirectory}/js</targetPath>
++ </resource>
++ </resources>
++ </configuration>
++ </execution>
++ </executions>
++ </plugin>
++
+ </plugins>
+ <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
+ <plugins>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>3.0.0</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>3.7.1</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-invoker-plugin</artifactId>
+ <version>3.0.1</version>
+ </plugin>
+ <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.0.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.7.0</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.20.1</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.0.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>2.5.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.8.2</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ <profiles>
+ <profile>
+ <id>run-its</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-invoker-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>integration-test</id>
+ <goals>
+ <goal>install</goal>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <debug>true</debug>
+ <projectsDirectory>src/it</projectsDirectory>
+ <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+ <preBuildHookScript>setup</preBuildHookScript>
+ <postBuildHookScript>verify</postBuildHookScript>
+ <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+ <settingsFile>src/it/settings.xml</settingsFile>
+ <pomIncludes>
+ <pomInclude>*/pom.xml</pomInclude>
+ </pomIncludes>
+ <goals>
+ <goal>site</goal>
+ </goals>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>minify</id>
+ <build>
+ <resources>
+ <!-- exclude css and js since will include the minified version -->
+ <resource>
+ <directory>${basedir}/src/main/resources</directory>
+ <excludes>
+ <exclude>css/**</exclude>
+ <exclude>js/**</exclude>
+ </excludes>
+ <filtering>true</filtering> <!-- add skin-info -->
+ </resource>
+
+ <!-- include the print.css -->
+ <resource>
+ <directory>/home/herve/projets/maven/git/aggregator/archetypes/target/checkout/maven-archetype-site-skin/src/main/resources</directory>
+ <includes>
+ <include>css/print.css</include>
+ </includes>
+ </resource>
+
+ <!-- include minified only -->
+ <resource>
+ <directory>${project.build.directory}/${project.build.finalName}</directory>
+ <includes>
+ <include>css/plc4x-site-skin-${project.version}.min.css</include>
+ <include>js/plc4x-site-skin-${project.version}.min.js</include>
+ </includes>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>com.samaxes.maven</groupId>
+ <artifactId>maven-minify-plugin</artifactId>
+ <version>1.3.5</version>
+ <executions>
+ <execution>
+ <id>default-minify</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>minify</goal>
+ </goals>
+ <configuration>
+ <webappSourceDir>${basedir}/src/main/resources</webappSourceDir>
+ <cssSourceDir>css</cssSourceDir>
+ <cssSourceFiles>
+ <cssSourceFile>maven-base.css</cssSourceFile>
+ <cssSourceFile>maven-theme.css</cssSourceFile>
+ </cssSourceFiles>
+ <cssFinalFile>plc4x-site-skin-${project.version}.css</cssFinalFile>
+ <!--jsSourceDir>js</jsSourceDir>
+ <jsSourceFiles>
+ <jsSourceFile>fluido.js</jsSourceFile>
+ </jsSourceFiles>
+ <jsFinalFile>plc4x-site-skin-${project.version}.js</jsFinalFile-->
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --cc utils/site-skin/src/main/resources/META-INF/maven/site-macros.vm
index 1a8140d,0000000..386bb8a
mode 100644,000000..100644
--- a/utils/site-skin/src/main/resources/META-INF/maven/site-macros.vm
+++ b/utils/site-skin/src/main/resources/META-INF/maven/site-macros.vm
@@@ -1,474 -1,0 +1,475 @@@
+#macro ( link $href $name $target $img $position $alt $border $width $height $title )
+#**##set ( $linkTitle = ' title="' + $name + '"' )
+#**##if( $target )
+#* *##set ( $linkTarget = ' target="' + $target + '"' )
+#**##else
+#* *##set ( $linkTarget = "" )
+#**##end
+#**##if ( $decoration.isLink( $href ) )
+#* *##set ( $linkClass = ' class="externalLink"' )
+#**##else
+#* *##set ( $linkClass = "" )
+#**##end
+#**##if ( $img )
+#* *##if ( $position == "left" )
+#* *#<a href="$href"$linkClass$linkTarget$linkTitle>#image($img $alt $border $width $height $title)$name</a>##
+#* *##else
+#* *#<a href="$href"$linkClass$linkTarget$linkTitle>$name #image($img $alt $border $width $height $title)</a>##
+#* *##end
+#**##else
+#* *#<a href="$href"$linkClass$linkTarget$linkTitle>$name</a>##
+#**##end
+#end
+##
+#macro ( image $img $alt $border $width $height $title )
+#**##if( $img )
+#* *##if ( !$decoration.isLink( $img ) )
+#* *##set ( $imgSrc = $PathTool.calculateLink( $img, $relativePath ) )
+#* *##set ( $imgSrc = $imgSrc.replaceAll( '\\', '/' ) )
+#* *##set ( $imgSrc = ' src="' + $imgSrc + '"' )
+#* *##else
+#* *##set ( $imgSrc = ' src="' + $img + '"' )
+#* *##end
+#* *##if( $alt )
+#* *##set ( $imgAlt = ' alt="' + $alt + '"' )
+#* *##else
+#* *##set ( $imgAlt = ' alt=""' )
+#* *##end
+#* *##if( $border )
+#* *##set ( $imgBorder = ' border="' + $border + '"' )
+#* *##else
+#* *##set ( $imgBorder = "" )
+#* *##end
+#* *##if( $width )
+#* *##set ( $imgWidth = ' width="' + $width + '"' )
+#* *##else
+#* *##set ( $imgWidth = "" )
+#* *##end
+#* *##if( $height )
+#* *##set ( $imgHeight = ' height="' + $height + '"' )
+#* *##else
+#* *##set ( $imgHeight = "" )
+#* *##end
+#* *##if( $title )
+#* *##set ( $imgTitle = ' title="' + $title + '"' )
+#* *##else
+#* *##set ( $imgTitle = "" )
+#* *##end
+#* *#<img class="imageLink"$imgSrc$imgAlt$imgBorder$imgWidth$imgHeight$imgTitle/>##
+#**##end
+#end
+##
+#macro ( banner $banner $id )
+#**##if ( $banner )
+#* *##if( $banner.href )
+#* *##set ( $hrf = $banner.href )
+#* *##if ( !$decoration.isLink( $hrf ) )
+#* *##set ( $hrf = $PathTool.calculateLink( $hrf, $relativePath ) )
+#* *##set ( $hrf = $hrf.replaceAll( '\\', '/' ) )
+#* *##if ( ( $hrf == '' ) )
+#* *##set ( $hrf = './' )
+#* *##end
+#* *##end
+#* *#<a href="$hrf" id="$id"#if( $banner.alt ) title="$banner.alt"#end>##
+#* *##else
+#* *#<div id="$id">
+#* *##end
+##
+#* *##if( $banner.src )
+#* *##set ( $src = $banner.src )
+#* *##if ( !$decoration.isLink( $src ) )
+#* *##set ( $src = $PathTool.calculateLink( $src, $relativePath ) )
+#* *##set ( $src = $src.replaceAll( '\\', '/' ) )
+#* *##end
+#* *##if ( $banner.alt )
+#* *##set ( $alt = ' alt="' + $banner.alt + '"' )
+#* *##elseif ( $banner.name )
+#* *##set ( $alt = ' alt="' + $banner.name + '"' )
+#* *##else
+#* *##set ( $alt = ' alt=""' )
+#* *##end
+#* *##if( $banner.border )
+#* *##set ( $imgBorder = ' border="' + $banner.border + '"' )
+#* *##else
+#* *##set ( $imgBorder = "" )
+#* *##end
+#* *##if( $banner.width )
+#* *##set ( $imgWidth = ' width="' + $banner.width + '"' )
+#* *##else
+#* *##set ( $imgWidth = "" )
+#* *##end
+#* *##if( $banner.height )
+#* *##set ( $imgHeight = ' height="' + $banner.height + '"' )
+#* *##else
+#* *##set ( $imgHeight = "" )
+#* *##end
+#* *##if( $banner.title )
+#* *##set ( $bannerTitle=' title="' + $banner.title + '"' )
+#* *##else
+#* *##set ( $bannerTitle="" )
+#* *##end
+#* *#<img src="$src" $alt$bannerTitle$imgBorder$imgWidth$imgHeight/>##
+#* *##else
+#* *#$banner.name
+#* *##end
+##
+#* *##if( $banner.href )
+#* *#</a>
+#* *##else
+#* *#</div>
+#* *##end
+#**##end
+#end
+##
+#macro ( links $links )
+#**##set ( $counter = 0 )
+#**##foreach( $item in $links )
+#* *##set ( $counter = $counter + 1 )
+#* *##set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+#* *##set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
+#* *##link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height $item.title )
+#* *##if ( $links.size() > $counter )
+#* *# |
+#* *##end
+#**##end
+#end
+##
+#macro ( breadcrumbs $breadcrumbs )
+#**##foreach( $item in $breadcrumbs )
+#* *##set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+#* *##set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
+#* *##if ( ( $currentItemHref == '' ) )
+#* *##set ( $currentItemHref = './' )
+#* *##end
+##
+#* *##link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height $item.title )
+#**# >
+#**##end
+#**#$shortTitle
+#**##if( $decoration.edit && $docRenderingContext.editable )
+#* *# <a href="$docRenderingContext.getDoxiaSourcePath( $decoration.edit )">[edit]</a>
+#**##end
+#end
+##
+#macro ( displayTree $display $item )
+#**##if ( $item && $item.items && $item.items.size() > 0 )
+#* *##foreach( $subitem in $item.items )
+#* *##set ( $subitemHref = $PathTool.calculateLink( $subitem.href, $relativePath ) )
+#* *##set ( $subitemHref = $subitemHref.replaceAll( '\\', '/' ) )
+##
+#* *##if ( $alignedFileName == $subitemHref )
+#* *##set ( $display = true )
+#* *##end
+##
+#* *##displayTree( $display $subitem )
+#* *##end
+#**##end
+#end
+##
+#macro ( menuItem $item )
+#**##set ( $collapse = "none" )
+#**##set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+#**##set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
+##
+#**##if ( $item && $item.items && $item.items.size() > 0 )
+#* *##if ( $item.collapse == false )
+#* *##set ( $collapse = "expanded" )
+#* *##else
+#* *### By default collapsed
+#* *##set ( $collapse = "collapsed" )
+#* *##end
+##
+#* *##set ( $display = false )
+#* *##displayTree( $display $item )
+##
+#* *##if ( $alignedFileName == $currentItemHref || $display )
+#* *##set ( $collapse = "expanded" )
+#* *##end
+#**##end
+ <li class="$collapse">##
+#**##if ( $item.img )
+#* *##if ( $item.position == "left" )
+#* *##if ( $alignedFileName == $currentItemHref )
+#* *#<strong>#image($item.img $item.alt $item.border $item.width $item.height $item.title) $item.name</strong>
+#* *##else
+#* *##link($currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height $item.title)
+#* *##end
+#* *##else
+#* *##if ( $alignedFileName == $currentItemHref )
+#* *#<strong>$item.name #image($item.img $item.alt $item.border $item.width $item.height $item.title)</strong>
+#* *##else
+#* *##link($currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height $item.title)
+#* *##end
+#* *##end
+#**##else
+#* *##if ( $alignedFileName == $currentItemHref )
+#* *#<strong>$item.name</strong>
+#* *##else
+#* *##link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height $item.title )
+#* *##end
+#**##end
+#**##if ( $item && $item.items && $item.items.size() > 0 )
+#* *##if ( $collapse == "expanded" )
+ <ul>
+#* *##foreach( $subitem in $item.items )
+#* *##menuItem( $subitem )
+#* *##end
+ </ul>
+#* *##end
+#**##end
+ </li>
+#end
+##
+#macro ( mainMenu $menus )
+#**##foreach( $menu in $menus )
+#* *##if ( $menu.name )
+#* *##if ( $menu.img )
+#* *##if( $menu.position )
+#* *##set ( $position = $menu.position )
+#* *##else
+#* *##set ( $position = "left" )
+#* *##end
+##
+#* *##if ( !$decoration.isLink( $menu.img ) )
+#* *##set ( $src = $PathTool.calculateLink( $menu.img, $relativePath ) )
+#* *##set ( $src = $src.replaceAll( '\\', '/' ) )
+#* *##set ( $src = ' src="' + $src + '"' )
+#* *##else
+#* *##set ( $src = ' src="' + $menu.img + '"' )
+#* *##end
+##
+#* *##if( $menu.alt )
+#* *##set ( $alt = ' alt="' + $menu.alt + '"' )
+#* *##else
+#* *##set ( $alt = ' alt="' + $menu.name + '"' )
+#* *##end
+##
+#* *##if( $menu.border )
+#* *##set ( $border = ' border="' + $menu.border + '"' )
+#* *##else
+#* *##set ( $border = ' border="0"' )
+#* *##end
+##
+#* *##if( $menu.width )
+#* *##set ( $width = ' width="' + $menu.width + '"' )
+#* *##else
+#* *##set ( $width = "" )
+#* *##end
+#* *##if( $menu.height )
+#* *##set ( $height = ' height="' + $menu.height + '"' )
+#* *##else
+#* *##set ( $height = "" )
+#* *##end
+#* *##if( $menu.title )
+#* *##set ( $title = ' title="' + $menu.title + '"' )
+#* *##else
+#* *##set ( $title = "" )
+#* *##end
+##
+#* *##set ( $img = '<img class="imageLink"' + $src + $alt + $border + $width + $height + $title + "/>" )
+##
+#* *##if ( $position == "left" )
- <h5>$img $menu.name</h5>
++ <a id="$menu.name.toLowerCase().replaceAll('[^a-z0-9]', '_')" class="plc4x-navigation__link plc4-navigation__link_$menu.name.toLowerCase().replaceAll('[^a-z0-9]', '_') mdl-navigation__link mdl-typography--text-uppercase" href="#">$img $menu.name</a>
+#* *##else
- <h5>$menu.name $img</h5>
++ <a id="$menu.name.toLowerCase().replaceAll('[^a-z0-9]', '_')" class="plc4x-navigation__link plc4-navigation__link_$menu.name.toLowerCase().replaceAll('[^a-z0-9]', '_') mdl-navigation__link mdl-typography--text-uppercase" href="#">$menu.name $img</a>
+#* *##end
+#* *##else
- <h5>$menu.name</h5>
++ <a id="$menu.name.toLowerCase().replaceAll('[^a-z0-9]', '_')" class="plc4x-navigation__link plc4-navigation__link_$menu.name.toLowerCase().replaceAll('[^a-z0-9]', '_') mdl-navigation__link mdl-typography--text-uppercase" href="#">$menu.name</a>
+#* *##end
+#* *##end
+#* *##if ( $menu.items && $menu.items.size() > 0 )
- <ul>
- #* *##foreach( $item in $menu.items )
- #* *##menuItem( $item )
- #* *##end
- </ul>
++ <ul class="plc4x-menu mdl-menu mdl-menu--bottom-left mdl-js-menu mdl-js-ripple-effect"
++ for="$menu.name.toLowerCase().replaceAll('[^a-z0-9]', '_')">
++ #* *##foreach( $item in $menu.items )
++ #* *##menuItem( $item )
++ #* *##end
++ </ul>
+#* *##end
+#**##end
+#end
+##
+#macro ( copyright )
+#**##if ( $project )
+#* *##if ( ${project.organization} && ${project.organization.name} )
+#* *##set ( $period = "" )
+#* *##else
+#* *##set ( $period = "." )
+#* *##end
+##
+#* *##set ( $currentYear = ${currentDate.year} + 1900 )
+##
+#* *##if ( ${project.inceptionYear} && ( ${project.inceptionYear} != ${currentYear.toString()} ) )
+ ${project.inceptionYear}–${currentYear}${period}##
+#* *##else
+ ${currentYear}${period}##
+#* *##end
+##
+#* *##if ( ${project.organization} )
+#* *##if ( ${project.organization.name} && ${project.organization.url} )
+#* *# <a href="$project.organization.url">${project.organization.name}</a>.
+#* *##elseif ( ${project.organization.name} )
+#* *#${project.organization.name}.
+#* *##end
+#* *##end
+#**##end
+#end
+##
+#macro ( publishDate $position $decorationPublishDate $version )
+#**##if ( $publishDate )
+#* *##set ( $dateValue = $dateFormat.format( $publishDate ) )
+#**##elseif ( $decoration.custom.getChild( 'publishDate' ) )
+#* *##set ( $dateValue = $decoration.custom.getChild( 'publishDate' ).getValue() )
+#**##else
+#* *##set ( $dateValue = $dateFormat.format( $currentDate ) )
+#**##end
+##
+#**##set ( $datePosition = $decorationPublishDate.position )
+#**##set ( $versionPosition = $version.position )
+##
+#**##set ( $breadcrumbs = $decoration.body.breadcrumbs )
+#**##set ( $links = $decoration.body.links )
+##
+#**##if ( $datePosition.equalsIgnoreCase( "right" ) && $links && $links.size() > 0 )
+#* *##set ( $prefix = " |" )
+#**##else
+#* *##set ( $prefix = "" )
+#**##end
+##
+#**##if ( $datePosition.equalsIgnoreCase( $position ) )
+#* *##if ( ( $datePosition.equalsIgnoreCase( "right" ) ) || ( $datePosition.equalsIgnoreCase( "bottom" ) ) )
+ $prefix <span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateValue</span>
+#* *##if ( $versionPosition.equalsIgnoreCase( $position ) )
+ | <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+#* *##end
+#* *##elseif ( ( $datePosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $datePosition.equalsIgnoreCase( "navigation-top" ) ) )
+ <div id="lastPublished">
+ <span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateValue</span>
+#* *##if ( $versionPosition.equalsIgnoreCase( $position ) )
+ | <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+#* *##end
+ </div>
+#* *##elseif ( $datePosition.equalsIgnoreCase( "left" ) )
+ <div class="xleft">
+ <span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateValue</span>
+#* *##if ( $versionPosition.equalsIgnoreCase( $position ) )
+ | <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+#* *##end
+#* *##if ( $breadcrumbs && $breadcrumbs.size() > 0 )
+ | #breadcrumbs( $breadcrumbs )
+#* *##end
+ </div>
+#* *##end
+#**##elseif ( $versionPosition.equalsIgnoreCase( $position ) )
+#* *##if ( ( $versionPosition.equalsIgnoreCase( "right" ) ) || ( $versionPosition.equalsIgnoreCase( "bottom" ) ) )
+ $prefix <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+#* *##elseif ( ( $versionPosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $versionPosition.equalsIgnoreCase( "navigation-top" ) ) )
+ <div id="lastPublished">
+ <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+ </div>
+#* *##elseif ( $versionPosition.equalsIgnoreCase( "left" ) )
+ <div class="xleft">
+ <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span>
+#* *##if ( $breadcrumbs && $breadcrumbs.size() > 0 )
+ | #breadcrumbs( $breadcrumbs )
+#* *##end
+ </div>
+#* *##end
+#**##elseif ( $position.equalsIgnoreCase( "left" ) )
+#* *##if ( $breadcrumbs && $breadcrumbs.size() > 0 )
+ <div class="xleft">
+#* *##breadcrumbs( $breadcrumbs )
+ </div>
+#* *##end
+#**##end
+#end
+##
+#macro ( poweredByLogo $poweredBy )
+#**##if( $poweredBy )
+#* *##foreach ($item in $poweredBy)
+#* *##if( $item.href )
+#* *##set ( $href = $PathTool.calculateLink( $item.href, $relativePath ) )
+#* *##set ( $href = $href.replaceAll( '\\', '/' ) )
+#* *##else
+#* *##set ( $href="http://maven.apache.org/" )
+#* *##end
+##
+#* *##if( $item.name )
+#* *##set ( $name = $item.name )
+#* *##else
+#* *##set ( $name = $i18n.getString( "site-renderer", $locale, "template.builtby" ) )
+#* *##set ( $name = "${name} Maven" )
+#* *##end
+##
+#* *##if( $item.img )
+#* *##set ( $img = $item.img )
+#* *##else
+#* *##set ( $img = "images/logos/maven-feather.png" )
+#* *##end
+##
+#* *##if ( !$decoration.isLink( $img ) )
+#* *##set ( $img = $PathTool.calculateLink( $img, $relativePath ) )
+#* *##set ( $img = $img.replaceAll( '\\', '/' ) )
+#* *##end
+##
+#* *##if( $item.alt )
+#* *##set ( $alt = ' alt="' + $item.alt + '"' )
+#* *##else
+#* *##set ( $alt = ' alt="' + $name + '"' )
+#* *##end
+##
+#* *##if( $item.border )
+#* *##set ( $border = ' border="' + $item.border + '"' )
+#* *##else
+#* *##set ( $border = "" )
+#* *##end
+##
+#* *##if( $item.width )
+#* *##set ( $width = ' width="' + $item.width + '"' )
+#* *##else
+#* *##set ( $width = "" )
+#* *##end
+#* *##if( $item.height )
+#* *##set ( $height = ' height="' + $item.height + '"' )
+#* *##else
+#* *##set ( $height = "" )
+#* *##end
+#* *##if( $item.title )
+#* *##set ( $title = ' title="' + $item.title + '"' )
+#* *##else
+#* *##set ( $title = "" )
+#* *##end
+##
+ <a href="$href" title="$name" class="poweredBy">
+ <img class="poweredBy" $alt src="$img" $border $width $height $title />
+ </a>
+#* *##end
+#* *##if( $poweredBy.isEmpty() )
+ <a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" class="poweredBy">
+ <img class="poweredBy" alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/logos/maven-feather.png" />
+ </a>
+#* *##end
+#**##else
+ <a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" class="poweredBy">
+ <img class="poweredBy" alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="$relativePath/images/logos/maven-feather.png" />
+ </a>
+#**##end
+#end
+##
+#macro ( googleAnalytics $accountId )
+#**##if( $accountId && $accountId != "" )
+ <!-- Google Analytics -->
+ <script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', '$accountId']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+
+ </script>
+#**##end
+#end
diff --cc utils/site-skin/src/main/resources/META-INF/maven/site.vm
index 64c98ad,0000000..214d6f4
mode 100644,000000..100644
--- a/utils/site-skin/src/main/resources/META-INF/maven/site.vm
+++ b/utils/site-skin/src/main/resources/META-INF/maven/site.vm
@@@ -1,80 -1,0 +1,163 @@@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+#parse( "site-macros.vm" )
+<!-- Generated by Apache Maven Doxia Site Renderer#if( $doxiaSiteRendererVersion ) $doxiaSiteRendererVersion#end##
+#if( $docRenderingContext.generator || $docRenderingContext.doxiaSource ) from##
+#if( $docRenderingContext.generator ) $docRenderingContext.generator#end##
+#if( $docRenderingContext.doxiaSource ) $docRenderingContext.doxiaSourcePath#end##
+#end
+ at $dateFormat.format( $currentDate ) -->
+<html xmlns="http://www.w3.org/1999/xhtml"#if ( $locale ) xml:lang="$locale.language" lang="$locale.language"#end>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=${outputEncoding}" />
+ <title>$title</title>
+ <style type="text/css" media="all">
- @import url("$relativePath/css/maven-base.css");
++ @import url("$relativePath/css/material.min.css");
++ /*@import url("$relativePath/css/maven-base.css");
+ @import url("$relativePath/css/maven-theme.css");
- @import url("$relativePath/css/site.css");
++ @import url("$relativePath/css/site.css");*/
+ </style>
++ <script src="$relativePath/js/material.min.js"></script>
++ <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/ >
+ <link rel="stylesheet" href="$relativePath/css/print.css" type="text/css" media="print" />
+#foreach( $author in $authors )
+ <meta name="author" content="$author" />
+#end
+#if ( $documentDate )
+ <meta name="date" content="$documentDate" />
+#end
+#if ( $locale )
+ <meta http-equiv="Content-Language" content="$locale.language" />
+#end
+#if( $decoration.body.head )
+#**#$render.eval( $decoration.body.head )
+#end
+ $headContent
+#**##googleAnalytics( $decoration.googleAnalyticsAccountId )
+ </head>
+ <body class="composite">
- <div id="banner">
- #* *##banner( $decoration.bannerLeft "bannerLeft" )
- #* *##banner( $decoration.bannerRight "bannerRight" )
- <div class="clear">
- <hr/>
- </div>
- </div>
- <div id="breadcrumbs">
- #* *##publishDate( "left" $decoration.publishDate $decoration.version )
- <div class="xright">#links( $decoration.body.links )
- #* *##publishDate( "right" $decoration.publishDate $decoration.version )
- </div>
- <div class="clear">
- <hr/>
- </div>
- </div>
- <div id="leftColumn">
- <div id="navcolumn">
- #* *##publishDate( "navigation-top" $decoration.publishDate $decoration.version )
- #* *##mainMenu( $decoration.body.menus )
- #* *##poweredByLogo( $decoration.poweredBy )
- #* *##publishDate( "navigation-bottom" $decoration.publishDate $decoration.version )
- </div>
- </div>
- <div id="bodyColumn">
- <div id="contentBox">
- #* *#$bodyContent
- </div>
- </div>
- <div class="clear">
- <hr/>
- </div>
- <div id="footer">
- <div class="xright">
- #* *##if( $decoration.body.footer )
- $render.eval( $decoration.body.footer )
- #* *##else
- Copyright ©#copyright()All rights reserved.#publishDate( "bottom" $decoration.publishDate $decoration.version )
- #* *##end
- </div>
- <div class="clear">
- <hr/>
- </div>
++ <style>
++ .plc4x-layout-transparent {
++ background-color: #2E2E2E;
++ background-image: url(logo.png);
++ background-size: auto 32px;
++ }
++
++ .plc4x-layout-transparent .mdl-layout__header,
++ .plc4x-layout-transparent .mdl-layout__drawer-button {
++ color: white;
++ }
++
++ .plc4x-layout-header{
++ position: relative;
++ box-sizing: border-box;
++ height: 144px;
++ background-position: 40px 32px;
++ }
++
++ .plc4x-layout__header-row {
++ height: 100px;
++ padding: 0 20px 0 20px;
++ }
++
++ .plc4x-navigation__container {
++ position: absolute;
++ height: 64px;
++ width: 100%;
++ bottom: 0;
++ left: 0;
++ }
++
++ .plc4x-navigation__link {
++ opacity: .65;
++ line-height: 64px;
++ padding: 0 16px;
++ color: #ffffff;
++ box-sizing: border-box;
++ border-bottom: 3px solid transparent;
++ }
++
++ .plc4x-navigation__link:hover {
++ opacity: 1;
++ }
++
++ .plc4-navigation__link_reports {
++ padding: 0 16px 0 60px;
++ }
++
++ .plc4x-layout__content {
++ background-color: #FFFFFF;
++ }
++
++ .plc4x-menu {
++ opacity: 1;
++ background-color: #FFFFFF;
++ }
++
++ .plc4x-footer {
++ opacity: .65;
++ color: #FFFFFF;
++ }
++
++ </style>
++ <div class="plc4x-layout-transparent mdl-layout mdl-js-layout">
++ <header class="plc4x-layout-header mdl-layout__header mdl-layout__header--transparent">
++ <div class="plc4x-layout__header-row mdl-layout__header-row">
++ <span class="mdl-layout-title">
++ #* *##banner( $decoration.bannerLeft "bannerLeft" )
++ </span>
++ <div class="mdl-layout-spacer"></div>
++ <span class="mdl-layout-title">
++ #* *##banner( $decoration.bannerRight "bannerRight" )
++ </span>
++ </div>
++ <div class="plc4x-navigation__container">
++ <!-- Title -->
++ <!-- Add spacer, to align navigation to the right -->
++ <div class="mdl-layout-spacer"></div>
++ <!-- Navigation -->
++ <nav class="plc4x-navigation mdl-navigation">
++ #* *##mainMenu( $decoration.body.menus )
++ <div class="spacer"></div>
++ </nav>
++ <i class="material-icons scrollindicator scrollindicator--right"></i>
++ <i class="material-icons scrollindicator scrollindicator--left"></i>
++ </div>
++ </header>
++ <main class="plc4x-layout__content mdl-layout__content">
++ <div id="breadcrumbs">
++ #* *##publishDate( "left" $decoration.publishDate $decoration.version )
++ <div class="xright">#links( $decoration.body.links )
++ #* *##publishDate( "right" $decoration.publishDate $decoration.version )
++ </div>
++ <div class="clear">
++ <hr/>
++ </div>
++ </div>
++ <div id="leftColumn">
++ <div id="navcolumn">
++ #* *##publishDate( "navigation-top" $decoration.publishDate $decoration.version )
++ #* *##poweredByLogo( $decoration.poweredBy )
++ #* *##publishDate( "navigation-bottom" $decoration.publishDate $decoration.version )
++ </div>
++ </div>
++ <div id="bodyColumn">
++ <div id="contentBox">
++ #* *#$bodyContent
++ </div>
++ </div>
++ <div class="clear">
++ <hr/>
++ </div>
++ </main>
++ <footer class="plc4x-footer">
++ <div class="xright">
++ #* *##if( $decoration.body.footer )
++ $render.eval( $decoration.body.footer )
++ #* *##else
++ Copyright ©#copyright()All rights reserved.#publishDate( "bottom" $decoration.publishDate $decoration.version )
++ #* *##end
++ </div>
++ </footer>
+ </div>
+ </body>
+</html>