Repository: incubator-rocketmq-externals Updated Branches: refs/heads/master 378b12a60 -> 22ac6808e
add rocketmq-go Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/commit/75c767a8 Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/tree/75c767a8 Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/diff/75c767a8 Branch: refs/heads/master Commit: 75c767a8066c0b2e2cfd5c7e9542d04562c6403e Parents: 378b12a Author: stevenschew <[email protected]> Authored: Sun Apr 2 11:30:33 2017 +0800 Committer: stevenschew <[email protected]> Committed: Sun Apr 2 11:30:33 2017 +0800 ---------------------------------------------------------------------- rocketmq-go/.gitignore | 9 + .../.idea/libraries/GOPATH__rocketmq_go_.xml | 41 +++ rocketmq-go/.idea/libraries/Go_SDK.xml | 10 + rocketmq-go/.idea/misc.xml | 18 ++ rocketmq-go/.idea/modules.xml | 8 + rocketmq-go/.idea/rocketmq-go.iml | 11 + rocketmq-go/.idea/workspace.xml | 253 +++++++++++++++++++ rocketmq-go/LICENSE | 201 +++++++++++++++ rocketmq-go/NOTICE | 5 + rocketmq-go/STYLE.md | 80 ++++++ 10 files changed, 636 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/75c767a8/rocketmq-go/.gitignore ---------------------------------------------------------------------- diff --git a/rocketmq-go/.gitignore b/rocketmq-go/.gitignore new file mode 100644 index 0000000..bc74c0f --- /dev/null +++ b/rocketmq-go/.gitignore @@ -0,0 +1,9 @@ +bin +coverage.out +.idea/ +*.iml +*.swp +*.log +tags +temp_parser_file +y.output http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/75c767a8/rocketmq-go/.idea/libraries/GOPATH__rocketmq_go_.xml ---------------------------------------------------------------------- diff --git a/rocketmq-go/.idea/libraries/GOPATH__rocketmq_go_.xml b/rocketmq-go/.idea/libraries/GOPATH__rocketmq_go_.xml new file mode 100644 index 0000000..33e147c --- /dev/null +++ b/rocketmq-go/.idea/libraries/GOPATH__rocketmq_go_.xml @@ -0,0 +1,41 @@ +<component name="libraryTable"> + <library name="GOPATH <rocketmq-go>"> + <CLASSES> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/influxdb" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/codis" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/cockroach" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/glow" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/golang.org" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/gopkg.in" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/tidb" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/github.com" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/owl" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/nomad" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/go" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/freecache" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/ledisdb" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/go-disruptor" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/Gjvm" /> + </CLASSES> + <SOURCES> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/influxdb" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/codis" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/cockroach" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/glow" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/golang.org" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/gopkg.in" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/tidb" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/github.com" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/owl" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/nomad" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/go" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/freecache" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/ledisdb" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/go-disruptor" /> + <root url="file://$PROJECT_DIR$/../../../../openSource/go-project/src/Gjvm" /> + </SOURCES> + <excluded> + <root url="file://$PROJECT_DIR$" /> + </excluded> + </library> +</component> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/75c767a8/rocketmq-go/.idea/libraries/Go_SDK.xml ---------------------------------------------------------------------- diff --git a/rocketmq-go/.idea/libraries/Go_SDK.xml b/rocketmq-go/.idea/libraries/Go_SDK.xml new file mode 100644 index 0000000..c1cc89a --- /dev/null +++ b/rocketmq-go/.idea/libraries/Go_SDK.xml @@ -0,0 +1,10 @@ +<component name="libraryTable"> + <library name="Go SDK"> + <CLASSES> + <root url="file://$PROJECT_DIR$/../../../../openSource/go/src" /> + </CLASSES> + <SOURCES> + <root url="file://$PROJECT_DIR$/../../../../openSource/go/src" /> + </SOURCES> + </library> +</component> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/75c767a8/rocketmq-go/.idea/misc.xml ---------------------------------------------------------------------- diff --git a/rocketmq-go/.idea/misc.xml b/rocketmq-go/.idea/misc.xml new file mode 100644 index 0000000..96ce66b --- /dev/null +++ b/rocketmq-go/.idea/misc.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="masterDetails"> + <states> + <state key="ScopeChooserConfigurable.UI"> + <settings> + <splitter-proportions> + <option name="proportions"> + <list> + <option value="0.2" /> + </list> + </option> + </splitter-proportions> + </settings> + </state> + </states> + </component> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/75c767a8/rocketmq-go/.idea/modules.xml ---------------------------------------------------------------------- diff --git a/rocketmq-go/.idea/modules.xml b/rocketmq-go/.idea/modules.xml new file mode 100644 index 0000000..234ba4f --- /dev/null +++ b/rocketmq-go/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/rocketmq-go.iml" filepath="$PROJECT_DIR$/.idea/rocketmq-go.iml" /> + </modules> + </component> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/75c767a8/rocketmq-go/.idea/rocketmq-go.iml ---------------------------------------------------------------------- diff --git a/rocketmq-go/.idea/rocketmq-go.iml b/rocketmq-go/.idea/rocketmq-go.iml new file mode 100644 index 0000000..27fd2a1 --- /dev/null +++ b/rocketmq-go/.idea/rocketmq-go.iml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="WEB_MODULE" version="4"> + <component name="Go" c="true" /> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$" /> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" scope="PROVIDED" name="Go SDK" level="project" /> + <orderEntry type="library" name="GOPATH <rocketmq-go>" level="project" /> + </component> +</module> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/75c767a8/rocketmq-go/.idea/workspace.xml ---------------------------------------------------------------------- diff --git a/rocketmq-go/.idea/workspace.xml b/rocketmq-go/.idea/workspace.xml new file mode 100644 index 0000000..165ecc6 --- /dev/null +++ b/rocketmq-go/.idea/workspace.xml @@ -0,0 +1,253 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ChangeListManager"> + <list default="true" id="75df76b1-541a-4439-b762-cfbac5e0907d" name="Default" comment="" /> + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> + <option name="TRACKING_ENABLED" value="true" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> + <component name="FileEditorManager"> + <leaf> + <file leaf-file-name=".gitignore" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/.gitignore"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="3" lean-forward="false" selection-start-line="0" selection-start-column="3" selection-end-line="0" selection-end-column="3" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="LICENSE" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/LICENSE"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="STYLE.md" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/STYLE.md"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="13" lean-forward="false" selection-start-line="0" selection-start-column="13" selection-end-line="0" selection-end-column="13" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="NOTICE" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/NOTICE"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="108"> + <caret line="4" column="56" lean-forward="false" selection-start-line="4" selection-start-column="56" selection-end-line="4" selection-end-column="56" /> + <folding /> + </state> + </provider> + </entry> + </file> + </leaf> + </component> + <component name="IdeDocumentHistory"> + <option name="CHANGED_PATHS"> + <list> + <option value="$PROJECT_DIR$/.gitignore" /> + <option value="$PROJECT_DIR$/STYLE.md" /> + <option value="$PROJECT_DIR$/NOTICE" /> + </list> + </option> + </component> + <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> + <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" /> + <component name="JsGulpfileManager"> + <detection-done>true</detection-done> + <sorting>DEFINITION_ORDER</sorting> + </component> + <component name="ProjectFrameBounds"> + <option name="x" value="507" /> + <option name="y" value="48" /> + <option name="width" value="1440" /> + <option name="height" value="837" /> + </component> + <component name="ProjectView"> + <navigator currentView="ProjectPane" proportions="" version="1"> + <flattenPackages /> + <showMembers /> + <showModules /> + <showLibraryContents /> + <hideEmptyPackages /> + <abbreviatePackageNames /> + <autoscrollToSource /> + <autoscrollFromSource /> + <sortByType /> + <manualOrder /> + <foldersAlwaysOnTop value="true" /> + </navigator> + <panes> + <pane id="Scope" /> + <pane id="Scratches" /> + <pane id="ProjectPane"> + <subPane> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="rocketmq-go" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="rocketmq-go" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + </subPane> + </pane> + </panes> + </component> + <component name="PropertiesComponent"> + <property name="settings.editor.selected.configurable" value="com.goide.configuration.GoLibrariesConfigurableProvider$1" /> + <property name="configurable.Global.GOPATH.is.expanded" value="true" /> + <property name="last_opened_file_path" value="$USER_HOME$" /> + </component> + <component name="RecentsManager"> + <key name="CopyFile.RECENT_KEYS"> + <recent name="$PROJECT_DIR$" /> + </key> + </component> + <component name="RunDashboard"> + <option name="ruleStates"> + <list> + <RuleState> + <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> + </RuleState> + <RuleState> + <option name="name" value="StatusDashboardGroupingRule" /> + </RuleState> + </list> + </option> + </component> + <component name="RunManager"> + <configuration default="true" type="GoApplicationRunConfiguration" factoryName="Go Application"> + <module name="rocketmq-go" /> + <working_directory value="$PROJECT_DIR$/" /> + <go_parameters value="-i" /> + <filePath value="$PROJECT_DIR$/" /> + <kind value="FILE" /> + <method /> + </configuration> + <configuration default="true" type="GoRunFileConfiguration" factoryName="Go Single File"> + <module name="rocketmq-go" /> + <working_directory value="$PROJECT_DIR$/" /> + <filePath value="$PROJECT_DIR$/" /> + <method /> + </configuration> + <configuration default="true" type="GoTestRunConfiguration" factoryName="Go Test"> + <module name="rocketmq-go" /> + <working_directory value="$PROJECT_DIR$/" /> + <go_parameters value="-i" /> + <framework value="gotest" /> + <kind value="DIRECTORY" /> + <method /> + </configuration> + <configuration default="true" type="JavaScriptTestRunnerJest" factoryName="Jest"> + <node-interpreter value="project" /> + <working-dir value="" /> + <envs /> + <scope-kind value="ALL" /> + <method /> + </configuration> + <configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor"> + <config-file value="" /> + <node-interpreter value="project" /> + <envs /> + <method /> + </configuration> + <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug"> + <method /> + </configuration> + <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js"> + <method /> + </configuration> + <configuration default="true" type="js.build_tools.npm" factoryName="npm"> + <command value="run" /> + <scripts /> + <node-interpreter value="project" /> + <envs /> + <method /> + </configuration> + </component> + <component name="ShelveChangesManager" show_recycled="false"> + <option name="remove_strategy" value="false" /> + </component> + <component name="ToolWindowManager"> + <frame x="507" y="48" width="1440" height="837" extended-state="0" /> + <editor active="true" /> + <layout> + <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> + <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> + <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" /> + <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" /> + <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> + <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> + <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> + <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + </layout> + </component> + <component name="TypeScriptGeneratedFilesManager"> + <option name="processedProjectFiles" value="true" /> + </component> + <component name="VcsContentAnnotationSettings"> + <option name="myLimit" value="2678400000" /> + </component> + <component name="XDebuggerManager"> + <breakpoint-manager /> + <watches-manager /> + </component> + <component name="editorHistoryManager"> + <entry file="file://$PROJECT_DIR$/.gitignore"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="3" lean-forward="false" selection-start-line="0" selection-start-column="3" selection-end-line="0" selection-end-column="3" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/LICENSE"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/STYLE.md"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="0"> + <caret line="0" column="13" lean-forward="false" selection-start-line="0" selection-start-column="13" selection-end-line="0" selection-end-column="13" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/NOTICE"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="108"> + <caret line="4" column="56" lean-forward="false" selection-start-line="4" selection-start-column="56" selection-end-line="4" selection-end-column="56" /> + <folding /> + </state> + </provider> + </entry> + </component> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/75c767a8/rocketmq-go/LICENSE ---------------------------------------------------------------------- diff --git a/rocketmq-go/LICENSE b/rocketmq-go/LICENSE new file mode 100644 index 0000000..b67d909 --- /dev/null +++ b/rocketmq-go/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {} + + Licensed 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. http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/75c767a8/rocketmq-go/NOTICE ---------------------------------------------------------------------- diff --git a/rocketmq-go/NOTICE b/rocketmq-go/NOTICE new file mode 100644 index 0000000..5384857 --- /dev/null +++ b/rocketmq-go/NOTICE @@ -0,0 +1,5 @@ +Apache RocketMQ (incubating) +Copyright 2016-2017 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-externals/blob/75c767a8/rocketmq-go/STYLE.md ---------------------------------------------------------------------- diff --git a/rocketmq-go/STYLE.md b/rocketmq-go/STYLE.md new file mode 100644 index 0000000..4befe9c --- /dev/null +++ b/rocketmq-go/STYLE.md @@ -0,0 +1,80 @@ +# RocketMQ-Go Style guide + +## Go Code +We're following the +[Google Go Code Review](https://code.google.com/p/go-wiki/wiki/CodeReviewComments) +fairly closely. In particular, you want to watch out for proper +punctuation and capitalization in comments. We use two-space indents +in non-Go code (in Go, we follow `gofmt` which indents with +tabs). + +### Line Length +Format your code assuming it will be read in a window 100 columns wide. +Wrap code at 100 characters and comments at 80 unless doing so makes the +code less legible. These values assume tab width is 2 characters. + +### Wrapping Function Signatures +When wrapping function signatures that do not fit on one line, +put the name, arguments, and return types on separate lines, with the closing `)` +at the same indentation as `func` (this helps visually separate the indented +arguments from the indented function body). Example: +```go +func (s *someType) myFunctionName( + arg1 somepackage.SomeArgType, arg2 int, arg3 somepackage.SomeOtherType, +) (somepackage.SomeReturnType, error) { + ... +} +``` + +If the arguments list is too long to fit on a single line, switch to one +argument per line: +```go +func (s *someType) myFunctionName( + arg1 somepackage.SomeArgType, + arg2 int, + arg3 somepackage.SomeOtherType, +) (somepackage.SomeReturnType, error) { + ... +} +``` + +If the return types need to be wrapped, use the same rules: +```go +func (s *someType) myFunctionName( + arg1 somepackage.SomeArgType, arg2 somepackage.SomeOtherType, +) ( + somepackage.SomeReturnType, + somepackage.SomeOtherType, + error, +) { + ... +} +``` + +Exception when omitting repeated types for consecutive arguments: +short and related arguments (e.g. `start, end int64`) should either go on the same line +or the type should be repeated on each line -- no argument should appear by itself +on a line with no type (confusing and brittle when edited). + +### fmt Verbs + +Prefer the most specific verb for your use. In other words, prefer to avoid %v +when possible. However, %v is to be used when formatting bindings which might +be nil and which do not already handle nil formatting. Notably, nil errors +formatted as %s will render as "%!s(<nil>)" while nil errors formatted as %v +will render as "<nil>". Therefore, prefer %v when formatting errors which are +not known to be non-nil. + +### Distinguishing user errors from internal errors + +When creating an error for something that the user did wrong (and thus isn't +indicative of an unexpected situation in our code), use `fmt.Errorf()` to create +the error. + +When creating an error for an unexpected situation, use methods from the +[`errors` package that we use](https://github.com/pkg/errors), such as +`errors.New()`, `errors.Errorf()`, `errors.Wrap()`, or `errors.Wrapf()`. + +The reason for this distinction is somewhat historical (#7424), but maintaining +it will help us immensely if we ever switch to using new error types for the +different situations.
