You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2013/08/28 20:15:21 UTC

svn commit: r1518312 - in /hbase/trunk: hbase-protocol/README.txt hbase-protocol/pom.xml hbase-protocol/src/main/protobuf/README.txt src/main/docbkx/developer.xml

Author: stack
Date: Wed Aug 28 18:15:20 2013
New Revision: 1518312

URL: http://svn.apache.org/r1518312
Log:
HBASE-9299 Generate the protobuf classes with hadoop-maven-plugin

Added:
    hbase/trunk/hbase-protocol/README.txt
Removed:
    hbase/trunk/hbase-protocol/src/main/protobuf/README.txt
Modified:
    hbase/trunk/hbase-protocol/pom.xml
    hbase/trunk/src/main/docbkx/developer.xml

Added: hbase/trunk/hbase-protocol/README.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-protocol/README.txt?rev=1518312&view=auto
==============================================================================
--- hbase/trunk/hbase-protocol/README.txt (added)
+++ hbase/trunk/hbase-protocol/README.txt Wed Aug 28 18:15:20 2013
@@ -0,0 +1,35 @@
+These are the protobuf definition files used by hbase. The produced java
+classes are generated into src/main/java/org/apache/hadoop/hbase/protobuf/generated
+and then checked in.  The reasoning is that they change infrequently.
+
+To regenerate the classes after making definition file changes, ensure first that
+the protobuf protoc tool is in your $PATH (You may need to download it and build
+it first; its part of the protobuf package obtainable from here: 
+http://code.google.com/p/protobuf/downloads/list).
+
+Then run the following (You should be able to just copy and paste the below into a
+terminal and hit return -- the protoc compiler runs fast):
+
+  UNIX_PROTO_DIR=src/main/protobuf
+  JAVA_DIR=src/main/java/
+  mkdir -p $JAVA_DIR 2> /dev/null
+  if which cygpath 2> /dev/null; then
+    PROTO_DIR=`cygpath --windows $UNIX_PROTO_DIR`
+    JAVA_DIR=`cygpath --windows $JAVA_DIR`
+  else
+    PROTO_DIR=$UNIX_PROTO_DIR
+  fi
+  # uncomment the next line if you want to remove before generating
+  # rm -fr $JAVA_DIR/org/apache/hadoop/hbase/protobuf/generated
+  for PROTO_FILE in $UNIX_PROTO_DIR/*.proto
+  do
+    protoc -I$PROTO_DIR --java_out=$JAVA_DIR $PROTO_FILE
+  done
+  ll $JAVA_DIR/org/apache/hadoop/hbase/protobuf/generated
+
+After you've done the above, check it in and then check it in (or post a patch
+on a JIRA with your definition file changes and the generated files).
+
+Optionally, you can uncomment the hadoop-maven-plugins plugin in hbase-protocol/pom.xml.
+This plugin will generate for the classes during the build. Once again, you will need protocol buffers
+to be installed on your build machine (https://developers.google.com/protocol-buffers)

Modified: hbase/trunk/hbase-protocol/pom.xml
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-protocol/pom.xml?rev=1518312&r1=1518311&r2=1518312&view=diff
==============================================================================
--- hbase/trunk/hbase-protocol/pom.xml (original)
+++ hbase/trunk/hbase-protocol/pom.xml Wed Aug 28 18:15:20 2013
@@ -32,7 +32,7 @@
     <description>Protobuf protocol classes used by HBase to communicate.</description>
 
     <build>
-        <plugins>
+      <plugins>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-site-plugin</artifactId>
@@ -53,24 +53,109 @@
           <skipAssembly>true</skipAssembly>
         </configuration>
       </plugin>
-            <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <!-- Always skip the second part executions, since we only run
-          simple unit tests in this module -->
-                <executions>
-                    <execution>
-                        <id>secondPartTestsExecution</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>test</goal>
-                        </goals>
-                        <configuration>
-                            <skip>true</skip>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
+        <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <!-- Always skip the second part executions, since we only run simple unit tests in this module -->
+            <executions>
+                <execution>
+                    <id>secondPartTestsExecution</id>
+                    <phase>test</phase>
+                    <goals>
+                        <goal>test</goal>
+                    </goals>
+                    <configuration>
+                        <skip>true</skip>
+                    </configuration>
+                </execution>
+            </executions>
+        </plugin>
+<!-- 
+        <plugin>
+          <groupId>org.apache.hadoop</groupId>
+          <artifactId>hadoop-maven-plugins</artifactId>
+          <version>2.0.5-alpha</version>
+          <executions>
+            <execution>
+              <id>compile-protoc</id>
+              <phase>generate-sources</phase>
+              <goals>
+                <goal>protoc</goal>
+              </goals>
+              <configuration>
+                <protocVersion>${protobuf.version}</protocVersion>
+                <protocCommand>${protoc.path}</protocCommand>
+                <imports>
+                  <param>${basedir}/src/main/protobuf</param>
+                </imports>
+                <source>
+                  <directory>${basedir}/src/main/protobuf</directory>
+                  <includes>
+                    <include>AccessControl.proto</include>
+                    <include>Admin.proto</include>
+                    <include>Aggregate.proto</include>
+                    <include>Authentication.proto</include>
+                    <include>Cell.proto</include>
+                    <include>Client.proto</include>
+                    <include>ClusterId.proto</include>
+                    <include>ClusterStatus.proto</include>
+                    <include>Comparator.proto</include>
+                    <include>ErrorHandling.proto</include>
+                    <include>Filter.proto</include>
+                    <include>FS.proto</include>
+                    <include>hbase.proto</include>
+                    <include>HFile.proto</include>
+                    <include>LoadBalancer.proto</include>
+                    <include>MapReduce.proto</include>
+                    <include>MasterAdmin.proto</include>
+                    <include>MasterMonitor.proto</include>
+                    <include>Master.proto</include>
+                    <include>MultiRowMutationProcessorMessages.proto</include>
+                    <include>MultiRowMutation.proto</include>
+                    <include>RegionServerStatus.proto</include>
+                    <include>RowProcessor.proto</include>
+                    <include>RPC.proto</include>
+                    <include>SecureBulkLoad.proto</include>
+                    <include>Tracing.proto</include>
+                    <include>WAL.proto</include>
+                    <include>ZooKeeper.proto</include>
+                  </includes>
+                </source>
+                <output>${project.build.directory}/generated-sources/java</output>
+              </configuration>
+            </execution>
+          </executions>
+        </plugin>
+-->
+       </plugins>
+      <pluginManagement>
+        <plugins>
+          <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+          <plugin>
+            <groupId>org.eclipse.m2e</groupId>
+            <artifactId>lifecycle-mapping</artifactId>
+            <version>1.0.0</version>
+            <configuration>
+              <lifecycleMappingMetadata>
+                <pluginExecutions>
+                  <pluginExecution>
+                    <pluginExecutionFilter>
+                      <groupId>org.apache.hadoop</groupId>
+                      <artifactId>hadoop-maven-plugins</artifactId>
+                      <versionRange>[2.0.5-alpha,)</versionRange>
+                      <goals>
+                        <goal>protoc</goal>
+                      </goals>
+                    </pluginExecutionFilter>
+                    <action>
+                      <ignore></ignore>
+                    </action>
+                  </pluginExecution>
+                </pluginExecutions>
+              </lifecycleMappingMetadata>
+            </configuration>
+          </plugin>
+         </plugins>
+      </pluginManagement>
     </build>
 
     <dependencies>
@@ -100,4 +185,5 @@
             </properties>
         </profile>
     </profiles>
+    
 </project>

Modified: hbase/trunk/src/main/docbkx/developer.xml
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/docbkx/developer.xml?rev=1518312&r1=1518311&r2=1518312&view=diff
==============================================================================
Binary files - no diff available.