[GitHub] milleruntime commented on issue #289: ACCUMULO-4677 Sanitizing PathParam values in REST-based Monitor

2017-11-28 Thread GitBox
milleruntime commented on issue #289: ACCUMULO-4677 Sanitizing PathParam values 
in REST-based Monitor
URL: https://github.com/apache/accumulo/pull/289#issuecomment-347701597
 
 
   I think i fixed the dependency issues with test pom with d3cf72f but the 
WevViewsiT is still failing.  


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] mikewalch closed pull request #41: ACCUMULO-4734 Updated syntax highlighting

2017-11-28 Thread GitBox
mikewalch closed pull request #41: ACCUMULO-4734 Updated syntax highlighting
URL: https://github.com/apache/accumulo-website/pull/41
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/_sass/_syntax-highlighting.scss b/_sass/_syntax-highlighting.scss
index b479b95..a72eb09 100644
--- a/_sass/_syntax-highlighting.scss
+++ b/_sass/_syntax-highlighting.scss
@@ -1,70 +1,65 @@
-/**
- * Syntax highlighting styles
- */
-.highlight {
-background: #fff;
-
-.highlighter-rouge & {
-  background: #f5f5f5;
-}
-
-.c { color: #998; font-style: italic } // Comment
-.err   { color: #a61717; background-color: #e3d2d2 } // Error
-.k { font-weight: bold } // Keyword
-.o { font-weight: bold } // Operator
-.cm{ color: #998; font-style: italic } // Comment.Multiline
-.cp{ color: #999; font-weight: bold } // Comment.Preproc
-.c1{ color: #998; font-style: italic } // Comment.Single
-.cs{ color: #999; font-weight: bold; font-style: italic } // 
Comment.Special
-.gd{ color: #000; background-color: #fdd } // Generic.Deleted
-.gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
-.ge{ font-style: italic } // Generic.Emph
-.gr{ color: #a00 } // Generic.Error
-.gh{ color: #999 } // Generic.Heading
-.gi{ color: #000; background-color: #dfd } // Generic.Inserted
-.gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
-.go{ color: #888 } // Generic.Output
-.gp{ color: #555 } // Generic.Prompt
-.gs{ font-weight: bold } // Generic.Strong
-.gu{ color: #aaa } // Generic.Subheading
-.gt{ color: #a00 } // Generic.Traceback
-.kc{ font-weight: bold } // Keyword.Constant
-.kd{ font-weight: bold } // Keyword.Declaration
-.kp{ font-weight: bold } // Keyword.Pseudo
-.kr{ font-weight: bold } // Keyword.Reserved
-.kt{ color: #458; font-weight: bold } // Keyword.Type
-.m { color: #099 } // Literal.Number
-.s { color: #d14 } // Literal.String
-.na{ color: #008080 } // Name.Attribute
-.nb{ color: #0086B3 } // Name.Builtin
-.nc{ color: #458; font-weight: bold } // Name.Class
-.no{ color: #008080 } // Name.Constant
-.ni{ color: #800080 } // Name.Entity
-.ne{ color: #900; font-weight: bold } // Name.Exception
-.nf{ color: #900; font-weight: bold } // Name.Function
-.nn{ color: #555 } // Name.Namespace
-.nt{ color: #80 } // Name.Tag
-.nv{ color: #008080 } // Name.Variable
-.ow{ font-weight: bold } // Operator.Word
-.w { color: #bbb } // Text.Whitespace
-.mf{ color: #099 } // Literal.Number.Float
-.mh{ color: #099 } // Literal.Number.Hex
-.mi{ color: #099 } // Literal.Number.Integer
-.mo{ color: #099 } // Literal.Number.Oct
-.sb{ color: #d14 } // Literal.String.Backtick
-.sc{ color: #d14 } // Literal.String.Char
-.sd{ color: #d14 } // Literal.String.Doc
-.s2{ color: #d14 } // Literal.String.Double
-.se{ color: #d14 } // Literal.String.Escape
-.sh{ color: #d14 } // Literal.String.Heredoc
-.si{ color: #d14 } // Literal.String.Interpol
-.sx{ color: #d14 } // Literal.String.Other
-.sr{ color: #009926 } // Literal.String.Regex
-.s1{ color: #d14 } // Literal.String.Single
-.ss{ color: #990073 } // Literal.String.Symbol
-.bp{ color: #999 } // Name.Builtin.Pseudo
-.vc{ color: #008080 } // Name.Variable.Class
-.vg{ color: #008080 } // Name.Variable.Global
-.vi{ color: #008080 } // Name.Variable.Instance
-.il{ color: #099 } // Literal.Number.Integer.Long
-}
+.highlight .hll { background-color: #d6d6d6 }
+.highlight  { background: #f5f5f5; color: #4d4d4c }
+.highlight .c { color: #8e908c } /* Comment */
+.highlight .err { color: #c82829 } /* Error */
+.highlight .k { color: #8959a8 } /* Keyword */
+.highlight .l { color: #f5871f } /* Literal */
+.highlight .n { color: #4d4d4c } /* Name */
+.highlight .o { color: #3e999f } /* Operator */
+.highlight .p { color: #4d4d4c } /* Punctuation */
+.highlight .cm { color: #8e908c } /* Comment.Multiline */
+.highlight .cp { color: #8e908c } /* Comment.Preproc */
+.highlight .c1 { color: #8e908c } /* Comment.Single */
+.highlight .cs { color: #8e908c } /* Comment.Special */
+.highlight .gd { color: #c82829 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gh { color: #4d4d4c; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #718c00 } /* Generic.Inserted */
+.highlight .gp { color: #8e908c; font-weight: bold } /* 

[GitHub] ctubbsii commented on a change in pull request #326: ACCUMULO-4745 Fixed broken links in tables table on monitor

2017-11-28 Thread GitBox
ctubbsii commented on a change in pull request #326: ACCUMULO-4745 Fixed broken 
links in tables table on monitor
URL: https://github.com/apache/accumulo/pull/326#discussion_r153630572
 
 

 ##
 File path: 
server/monitor/src/main/java/org/apache/accumulo/monitor/rest/tables/TablesResource.java
 ##
 @@ -112,6 +112,7 @@ private static TablesList generateTables(TablesList 
tableNamespace) {
 for (Entry entry : 
Tables.getNameToIdMap(HdfsZooInstance.getInstance()).entrySet()) {
   String tableName = entry.getKey();
   Table.ID tableId = entry.getValue();
+  String canonicalTableId = tableId.canonicalID();
 
 Review comment:
   I was thinking this could be deferred to the constructors of 
`TableInformation`; that way, this class wouldn't need to change at all, and we 
can keep the `Table.ID` object around as long as possible before it is 
serialized in `TableInformation`.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[jira] [Comment Edited] (ACCUMULO-4746) Create Builder for Mutation

2017-11-28 Thread Keith Turner (JIRA)

[ 
https://issues.apache.org/jira/browse/ACCUMULO-4746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16269423#comment-16269423
 ] 

Keith Turner edited comment on ACCUMULO-4746 at 11/28/17 8:43 PM:
--

While trying to puzzle through the issues I was running into with 
ConditionalMutation I thought about this issue more deeply. I came to the 
conclusion that a builder is not the right path for Mutation.  For Key it made 
more sense because Key had a lot of constructors and no setters.  However for 
mutation, it has all of these put methods.  So after creating a mutation with a 
builder, its possible to call put methods to further change it. This seems 
silly to me.

What is nice about the key builder is that it allows easy mixing of different 
types.  For example its easy to have a byte array for the row, String for the 
family, and byte array for the qualifier.  Currently this is not possible with 
the mutation put methods.  There are put methods for all byte arrays or all 
strings, but not combinations.  

Based on the reasons above, I think having a fluent way to mix types for an 
existing mutation instead of a builder is a better path.  If we were designing 
the API from scratch I think a builder that creates immutable mutations would 
be the way to go.  However that is not an option for the current API.  Below is 
a proposed Fluent API for mutating that easily supports mixing types.

{code:java}
class Mutation {
  public interface FamilyStep extends QualifierStep {
// TODO other types?
QualifierStep family(CharSequence f);

QualifierStep family(byte[] f);

QualifierStep family(ByteBuffer f);
  }

  public interface QualifierStep extends VisibilityStep {
// TODO other types?
VisibilityStep qualifier(CharSequence q);

VisibilityStep qualifier(byte[] q);

VisibilityStep qualifier(ByteBuffer q);
  }

  public interface VisibilityStep extends TimestampStep {
// TODO other types?
TimestampStep visibility(CharSequence cv);

TimestampStep visibility(byte[] cv);

TimestampStep visibility(ByteBuffer cv);

TimestampStep visibility(ColumnVisibility cv);
  }

  public interface TimestampStep extends MutateStep {
MutateStep timestamp(long t);
  }

  public interface MutateStep {
// TODO other types?
void set(byte[] v);

void set(ByteBuffer v);

void set(CharSequence v);

void delete();
  }

  // this could be called put... 
  public FamilyStep mutate() {
//TODO implement.. could return a private inner class that implements all 
interfaces...
return null;
  }
}
{code}

Below is an example of using the new API that shows easily mixing different 
types

{code:java}
Mutation m1 = new Mutation("row1");

byte[] fam = new byte[] {42, 21, 7, 9, 3, 34};
ByteBuffer bb = ...;

m1.mutate().family(fam).qualifier("q1").set("v1");
m1.mutate().family(fam).qualifier("q2").set(bb);
m1.mutate().family(fam).qualifier("q3").delete();

ByteBuffer bb2 = ...;

//below is an example of using the existing put method with different types
byte[] tmp = new byte[bb2.remaining()];
bb2.put(tmp);
// must make all types same, so made all into byte arrays
m1.put(fam, "q4".getBytes(StandardCharsets.UTF_8), tmp);
{code}


was (Author: kturner):
While trying to puzzle through the issues I was running into with 
ConditionalMutation I thought about this issue more deeply. I came to the 
conclusion that a builder is not the right path for Mutation.  For Key it made 
more sense because Key had a lot of constructors and no setters.  However for 
mutation, it has all of these put methods.  So after creating a mutation with a 
builder, its possible to call put methods to further change it. This seems 
silly to me.

What is nice about the key builder is that it allows easy mixing of different 
types.  For example its easy to have a byte array for the row, String for the 
family, and byte array for the qualifier.  Currently this is not possible with 
the mutation put methods.  There are put methods for all byte arrays or all 
strings, but not combinations.  

Based on the reasons above, I think having a fluent way to mix types for an 
existing mutation instead of a builder is a better path.  If we were designing 
the API from scratch I think a builder that creates immutable mutations would 
be the way to go.  However that is not an option for the current API.  Below is 
a proposed Fluent API for mutating that easily supports mixing types.

{code:java}
class Mutation {
  public interface FamilyStep extends QualifierStep {
// TODO other types?
QualifierStep family(CharSequence f);

QualifierStep family(byte[] f);

QualifierStep family(ByteBuffer f);
  }

  public interface QualifierStep extends VisibilityStep {
// TODO other types?
VisibilityStep qualifier(CharSequence q);

VisibilityStep qualifier(byte[] 

[jira] [Commented] (ACCUMULO-4746) Create Builder for Mutation

2017-11-28 Thread Keith Turner (JIRA)

[ 
https://issues.apache.org/jira/browse/ACCUMULO-4746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16269423#comment-16269423
 ] 

Keith Turner commented on ACCUMULO-4746:


While trying to puzzle through the issues I was running into with 
ConditionalMutation I thought about this issue more deeply. I came to the 
conclusion that a builder is not the right path for Mutation.  For Key it made 
more sense because Key had a lot of constructors and no setters.  However for 
mutation, it has all of these put methods.  So after creating a mutation with a 
builder, its possible to call put methods to further change it. This seems 
silly to me.

What is nice about the key builder is that it allows easy mixing of different 
types.  For example its easy to have a byte array for the row, String for the 
family, and byte array for the qualifier.  Currently this is not possible with 
the mutation put methods.  There are put methods for all byte arrays or all 
strings, but not combinations.  

Based on the reasons above, I think having a fluent way to mix types for an 
existing mutation instead of a builder is a better path.  If we were designing 
the API from scratch I think a builder that creates immutable mutations would 
be the way to go.  However that is not an option for the current API.  Below is 
a proposed Fluent API for mutating that easily supports mixing types.

{code:java}
class Mutation {
  public interface FamilyStep extends QualifierStep {
// TODO other types?
QualifierStep family(CharSequence f);

QualifierStep family(byte[] f);

QualifierStep family(ByteBuffer f);
  }

  public interface QualifierStep extends VisibilityStep {
// TODO other types?
VisibilityStep qualifier(CharSequence q);

VisibilityStep qualifier(byte[] q);

VisibilityStep qualifier(ByteBuffer q);
  }

  public interface VisibilityStep extends TimestampStep {
// TODO other types?
TimestampStep visibility(CharSequence cv);

TimestampStep visibility(byte[] cv);

TimestampStep visibility(ByteBuffer cv);

TimestampStep visibility(ColumnVisibility cv);
  }

  public interface TimestampStep extends MutateStep {
MutateStep timestamp(long t);
  }

  public interface MutateStep {
// TODO other types?
void set(byte[] v);

void set(ByteBuffer v);

void set(CharSequence v);

void delete();
  }

  // this could be called put... 
  public FamilyStep mutate() {
//TODO implement.. could return a private inner class that implements all 
interfaces...
return null;
  }
}
{code}

Below is an example of using the new API that shows easily mixing different 
types

{code:java}
Mutation m1 = new Mutation("row1");

byte[] fam = new byte[] {42, 21, 7, 9, 3, 34};
ByteBuffer bb = null;

m1.mutate().family(fam).qualifier("q1").set("v1");
m1.mutate().family(fam).qualifier("q2").set(bb);
m1.mutate().family(fam).qualifier("q3").delete();

ByteBuffer bb2 = null;

//below is an example of using the existing put method with different types
byte[] tmp = new byte[bb2.remaining()];
bb2.put(tmp);
// must make all types same, so made all into byte arrays
m1.put(fam, "q4".getBytes(StandardCharsets.UTF_8), tmp);
{code}

> Create Builder for Mutation
> ---
>
> Key: ACCUMULO-4746
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4746
> Project: Accumulo
>  Issue Type: Sub-task
>  Components: client
>Reporter: Keith Turner
> Fix For: 2.0.0
>
>
> Accumulo needs a builder for mutation similar to the one that was added for 
> Key.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] milleruntime closed pull request #38: Continue tour

2017-11-28 Thread GitBox
milleruntime closed pull request #38: Continue tour
URL: https://github.com/apache/accumulo-website/pull/38
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/_data/tour.yml b/_data/tour.yml
index d84b5bb..c7de9ed 100644
--- a/_data/tour.yml
+++ b/_data/tour.yml
@@ -1,6 +1,12 @@
 docs:
  - getting-started
  - basic-read-write
+ - data-model
+ - data-model-code
+ - authorizations
+ - authorizations-code
+ - ranges-splits
  - batch-scanner
+ - batch-scanner-code
  - conditional-writer
  - using-iterators
diff --git a/tour/authorizations-code.md b/tour/authorizations-code.md
new file mode 100644
index 000..04ea47b
--- /dev/null
+++ b/tour/authorizations-code.md
@@ -0,0 +1,64 @@
+---
+title: Authorizations Code
+---
+```java
+// start writing your code here
+// Connect to Mini Accumulo as the root user and create a table called 
"GothamPD".
+Connector conn = mac.getConnector("root", "tourguide");
+conn.tableOperations().create("GothamPD");
+
+// Create a "secretIdentity" authorization & visibility
+final String secId = "secretIdentity";
+Authorizations auths = new Authorizations(secId);
+ColumnVisibility visibility = new ColumnVisibility(secId);
+
+// Create a user with the "secretIdentity" authorization and grant him 
read permissions on our table
+conn.securityOperations().createLocalUser("commissioner", new 
PasswordToken("gordanrocks"));
+conn.securityOperations().changeUserAuthorizations("commissioner", 
auths);
+conn.securityOperations().grantTablePermission("commissioner", 
"GothamPD", TablePermission.READ);
+
+// Create 3 Mutation objects, securing the proper columns.
+Mutation mutation1 = new Mutation("id0001");
+mutation1.put("hero","alias", "Batman");
+mutation1.put("hero","name", visibility, "Bruce Wayne");
+mutation1.put("hero","wearsCape?", "true");
+Mutation mutation2 = new Mutation("id0002");
+mutation2.put("hero","alias", "Robin");
+mutation2.put("hero","name", visibility,"Dick Grayson");
+mutation2.put("hero","wearsCape?", "true");
+Mutation mutation3 = new Mutation("id0003");
+mutation3.put("villain","alias", "Joker");
+mutation3.put("villain","name", "Unknown");
+mutation3.put("villain","wearsCape?", "false");
+
+// Create a BatchWriter to the GothamPD table and add your mutations 
to it.
+// Once the BatchWriter is closed by the try w/ resources, data will 
be available to scans.
+try(BatchWriter writer = conn.createBatchWriter("GothamPD", new 
BatchWriterConfig())) {
+writer.addMutation(mutation1);
+writer.addMutation(mutation2);
+writer.addMutation(mutation3);
+}
+
+// Read and print all rows of the commissioner can see. Pass Scanner 
proper authorizations
+Connector commishConn = mac.getConnector("commissioner", 
"gordanrocks");
+try(Scanner scan = commishConn.createScanner("GothamPD", auths)) {
+System.out.println("Gotham Police Department Persons of 
Interest:");
+for (Map.Entry entry : scan) {
+System.out.printf("Key : %-60s  Value : %s\n", entry.getKey(), 
entry.getValue());
+}
+}
+```
+
+The code above will print (timestamp will differ):
+```commandline
+Gotham Police Department Persons of Interest:
+Key : id0001 hero:alias [] 1511900180231 false  Value : 
Batman
+Key : id0001 hero:name [secretIdentity] 1511900180231 false Value : 
Bruce Wayne
+Key : id0001 hero:wearsCape? [] 1511900180231 false Value : 
true
+Key : id0002 hero:alias [] 1511900180231 false  Value : 
Robin
+Key : id0002 hero:name [secretIdentity] 1511900180231 false Value : 
Dick Grayson
+Key : id0002 hero:wearsCape? [] 1511900180231 false Value : 
true
+Key : id0003 villain:alias [] 1511900180231 false   Value : 
Joker
+Key : id0003 villain:name [] 1511900180231 falseValue : 
Unknown
+Key : id0003 villain:wearsCape? [] 1511900180231 false  Value : 
false
+```
\ No newline at end of file
diff --git a/tour/authorizations.md b/tour/authorizations.md
new file mode 100644
index 000..ac45ffe
--- /dev/null
+++ b/tour/authorizations.md
@@ -0,0 +1,46 @@
+---
+title: Authorizations
+---
+Authorizations are a set of Strings that enable a user to read protected data. 
A column visibility is a boolean expression 
+that is evaluated using the authorizations provided by a scanner. If it 
evaluates to true, then the data is visible. 
+
+For example:
+* Bob scans with authorizations = { IT, User }

[GitHub] milleruntime commented on issue #38: Continue tour

2017-11-28 Thread GitBox
milleruntime commented on issue #38: Continue tour
URL: https://github.com/apache/accumulo-website/pull/38#issuecomment-347652061
 
 
   I am merging this up to the branch so others can continue work on the tour.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] milleruntime commented on issue #289: ACCUMULO-4677 Sanitizing PathParam values in REST-based Monitor

2017-11-28 Thread GitBox
milleruntime commented on issue #289: ACCUMULO-4677 Sanitizing PathParam values 
in REST-based Monitor
URL: https://github.com/apache/accumulo/pull/289#issuecomment-347633985
 
 
   @glitch If you want me to fix the conflicts for you, just let me know.  I 
can check out the PR, squash and merge it all up since your work looks complete.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] milleruntime commented on issue #289: ACCUMULO-4677 Sanitizing PathParam values in REST-based Monitor

2017-11-28 Thread GitBox
milleruntime commented on issue #289: ACCUMULO-4677 Sanitizing PathParam values 
in REST-based Monitor
URL: https://github.com/apache/accumulo/pull/289#issuecomment-347632590
 
 
   @glitch Sorry for the conflicts, I had wrapped up ACCUMULO-4739 yesterday 
but missed a few updates. My changes to WebViews should be isolated to the new 
method I created though.  I will put off the rest of the changes I wanted to 
make to the Monitor until we can get this merged up.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[jira] [Commented] (ACCUMULO-4746) Create Builder for Mutation

2017-11-28 Thread Keith Turner (JIRA)

[ 
https://issues.apache.org/jira/browse/ACCUMULO-4746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16269237#comment-16269237
 ] 

Keith Turner commented on ACCUMULO-4746:


ConditionalMutation extends Mutation.  I am currently experimenting with 
creating a builder API for ConditionalMutation that uses the proposed API 
above.  I am running into some issues.

> Create Builder for Mutation
> ---
>
> Key: ACCUMULO-4746
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4746
> Project: Accumulo
>  Issue Type: Sub-task
>  Components: client
>Reporter: Keith Turner
> Fix For: 2.0.0
>
>
> Accumulo needs a builder for mutation similar to the one that was added for 
> Key.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (ACCUMULO-4746) Create Builder for Mutation

2017-11-28 Thread Keith Turner (JIRA)

[ 
https://issues.apache.org/jira/browse/ACCUMULO-4746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16269132#comment-16269132
 ] 

Keith Turner edited comment on ACCUMULO-4746 at 11/28/17 5:47 PM:
--

I was experimenting with an API for this builder and came up with the following.

{code:java}
class Mutation {
  public interface Builder extends QualifierStep {

// TODO other types
QualifierStep family(CharSequence f);

public Mutation build();
  }

  public interface QualifierStep extends VisibilityStep {
// TODO other types
VisibilityStep qualifier(CharSequence q);
  }

  public interface VisibilityStep extends TimestampStep {
// TODO other types
TimestampStep visibility(CharSequence v);
  }

  public interface TimestampStep extends MutateStep {
// TODO other types
MutateStep timestamp(long t);
  }

  public interface MutateStep {
Builder set(CharSequence v);

Builder delete();
  }

  //TODO support other types for row
  public static Builder builder(CharSequence row) {
return null; // TODO
  }
}
{code}

Using the API above, can write code like the following to create mutations.

{code:java}
Builder builder = Mutation.builder("row1");

builder.family("f1").qualifier("q1").set("v1");
builder.family("f1").qualifier("q2").delete();
builder.qualifier("q1").set("v2"); // empty family

Mutation m = builder.build();

Mutation m2 = Mutation.builder("row1")
.family("f1").qualifier("q1").set("v1")
.family("f1").qualifier("q2").set("v2")
.family("f1").qualifier("q3").delete()
.family("f2").visibility("A").set("v3") // empty qualifier

.family("f3").qualifier("q1").visibility("A|B").timestamp(56).set("v4").build();
  }
{code}


was (Author: kturner):
I was experimenting with an API for this builder and came up with the following.

{code:java}
class Mutation {
  public interface Builder extends QualifierStep {

// TODO other types
QualifierStep family(CharSequence f);

public Mutation build();
  }

  public interface QualifierStep extends VisibilityStep {
// TODO other types
VisibilityStep qualifier(CharSequence q);
  }

  public interface VisibilityStep extends TimestampStep {
// TODO other types
TimestampStep visibility(CharSequence v);
  }

  public interface TimestampStep extends MutateStep {
// TODO other types
MutateStep timestamp(long t);
  }

  public interface MutateStep {
Builder set(CharSequence v);

Builder delete();
  }

  //TODO support other types for row
  public static Builder builder(CharSequence row) {
return null; // TODO
  }
}
{code}

Using the API above, can write code like the following to create mutations.

{code:java}
Builder builder = Mutation.builder("row1");

builder.family("f1").qualifier("q1").set("v1");
builder.family("f1").qualifier("q2").delete();
builder.qualifier("q1").set("v2"); // empty qualifier

Mutation m = builder.build();

Mutation m2 = Mutation.builder("row1")
.family("f1").qualifier("q1").set("v1")
.family("f1").qualifier("q2").set("v2")
.family("f1").qualifier("q3").delete()
.family("f2").visibility("A").set("v3") // empty qualifier

.family("f3").qualifier("q1").visibility("A|B").timestamp(56).set("v4").build();
  }
{code}

> Create Builder for Mutation
> ---
>
> Key: ACCUMULO-4746
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4746
> Project: Accumulo
>  Issue Type: Sub-task
>  Components: client
>Reporter: Keith Turner
> Fix For: 2.0.0
>
>
> Accumulo needs a builder for mutation similar to the one that was added for 
> Key.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (ACCUMULO-4746) Create Builder for Mutation

2017-11-28 Thread Keith Turner (JIRA)

[ 
https://issues.apache.org/jira/browse/ACCUMULO-4746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16269132#comment-16269132
 ] 

Keith Turner commented on ACCUMULO-4746:


I was experimenting with an API for this builder and came up with the following.

{code:java}
class Mutation {
  public interface Builder extends QualifierStep {

// TODO other types
QualifierStep family(CharSequence f);

public Mutation build();
  }

  public interface QualifierStep extends VisibilityStep {
// TODO other types
VisibilityStep qualifier(CharSequence q);
  }

  public interface VisibilityStep extends TimestampStep {
// TODO other types
TimestampStep visibility(CharSequence v);
  }

  public interface TimestampStep extends MutateStep {
// TODO other types
MutateStep timestamp(long t);
  }

  public interface MutateStep {
Builder set(CharSequence v);

Builder delete();
  }

  //TODO support other types for row
  public static Builder builder(CharSequence row) {
return null; // TODO
  }
}
{code}

Using the API above, can write code like the following to create mutations.

{code:java}
Builder builder = Mutation.builder("row1");

builder.family("f1").qualifier("q1").set("v1");
builder.family("f1").qualifier("q2").delete();
builder.qualifier("q1").set("v2"); // empty qualifier

Mutation m = builder.build();

Mutation m2 = Mutation.builder("row1")
.family("f1").qualifier("q1").set("v1")
.family("f1").qualifier("q2").set("v2")
.family("f1").qualifier("q3").delete()
.family("f2").visibility("A").set("v3") // empty qualifier

.family("f3").qualifier("q1").visibility("A|B").timestamp(56).set("v4").build();
  }
{code}

> Create Builder for Mutation
> ---
>
> Key: ACCUMULO-4746
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4746
> Project: Accumulo
>  Issue Type: Sub-task
>  Components: client
>Reporter: Keith Turner
> Fix For: 2.0.0
>
>
> Accumulo needs a builder for mutation similar to the one that was added for 
> Key.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (ACCUMULO-4746) Create Builder for Mutation

2017-11-28 Thread Keith Turner (JIRA)
Keith Turner created ACCUMULO-4746:
--

 Summary: Create Builder for Mutation
 Key: ACCUMULO-4746
 URL: https://issues.apache.org/jira/browse/ACCUMULO-4746
 Project: Accumulo
  Issue Type: Sub-task
Reporter: Keith Turner
 Fix For: 2.0.0


Accumulo needs a builder for mutation similar to the one that was added for Key.




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] milleruntime commented on a change in pull request #326: ACCUMULO-4745 Fixed broken links in tables table on monitor

2017-11-28 Thread GitBox
milleruntime commented on a change in pull request #326: ACCUMULO-4745 Fixed 
broken links in tables table on monitor
URL: https://github.com/apache/accumulo/pull/326#discussion_r153568544
 
 

 ##
 File path: 
server/monitor/src/main/java/org/apache/accumulo/monitor/rest/tables/TableInformation.java
 ##
 @@ -30,7 +29,7 @@
 
   // Variable names become JSON keys
   public String tablename;
-  public Table.ID tableId;
+  public String tableId;
 
 Review comment:
   Could change the variable name, like you did below.  You would probably have 
to change it on the front end as well though.  You could use tableIdString if 
the other is too long.  It is just nice to know you are working with a string 
and not the Table.ID object.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] jmark99 commented on a change in pull request #327: ACCUMULO-4546 Create default log message for IllegalTableTransitionException

2017-11-28 Thread GitBox
jmark99 commented on a change in pull request #327: ACCUMULO-4546 Create 
default log message for IllegalTableTransitionException
URL: https://github.com/apache/accumulo/pull/327#discussion_r153558081
 
 

 ##
 File path: 
server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java
 ##
 @@ -115,10 +115,22 @@ public TableState getTableState(String tableId) {
 
 final TableState oldState;
 final TableState newState;
+final String message;
 
 public IllegalTableTransitionException(TableState oldState, TableState 
newState) {
+  this(oldState, newState, "");
+}
+
+public IllegalTableTransitionException(TableState oldState, TableState 
newState, String message) {
   this.oldState = oldState;
   this.newState = newState;
+
+  if (message != null && !message.isEmpty())
 
 Review comment:
   Thanks, @milleruntime . I like that better.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] jmark99 commented on a change in pull request #327: ACCUMULO-4546 Create default log message for IllegalTableTransitionException

2017-11-28 Thread GitBox
jmark99 commented on a change in pull request #327: ACCUMULO-4546 Create 
default log message for IllegalTableTransitionException
URL: https://github.com/apache/accumulo/pull/327#discussion_r153557966
 
 

 ##
 File path: 
server/base/src/test/java/org/apache/accumulo/server/tables/IllegalTableTransitionExceptionTest.java
 ##
 @@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.server.tables;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.accumulo.core.master.state.tables.TableState;
+import 
org.apache.accumulo.server.tables.TableManager.IllegalTableTransitionException;
+import org.junit.Test;
+
+public class IllegalTableTransitionExceptionTest {
+
+  final TableState oldState = TableState.ONLINE;
+  final TableState newState = TableState.OFFLINE;
+  final String defaultMsg = "Error transitioning from " + oldState + " state 
to " + newState + " state";
+
+  @Test
+  public void testIllegalTableTransitionExceptionMessage() {
+String userMessage = null;
+try {
+  userMessage = "User suppled message - Exception from " + oldState + " 
state to " + newState + " state";
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState, userMessage);
+} catch (IllegalTableTransitionException e) {
+  assertEquals(userMessage, e.getMessage());
+}
+  }
+
+  @Test
+  public void testIllegalTableTransitionExceptionDefaultMessage() {
+try {
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState);
+} catch (IllegalTableTransitionException e) {
+  assertEquals(defaultMsg, e.getMessage());
+}
+  }
+
+  @Test
+  public void testIllegalTableTransitionExceptionEmptyMessage() {
+try {
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState, "");
 
 Review comment:
   Added additional unit test.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[jira] [Resolved] (ACCUMULO-4739) Make 3rd party web resources (js, css) location configurable

2017-11-28 Thread Michael Miller (JIRA)

 [ 
https://issues.apache.org/jira/browse/ACCUMULO-4739?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Miller resolved ACCUMULO-4739.
--
Resolution: Fixed

> Make 3rd party web resources (js, css) location configurable
> 
>
> Key: ACCUMULO-4739
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4739
> Project: Accumulo
>  Issue Type: Task
>  Components: monitor
>Reporter: Christopher Tubbs
>Assignee: Michael Miller
>Priority: Blocker
>  Labels: pull-request-available
> Fix For: 2.0.0
>
>  Time Spent: 4h 40m
>  Remaining Estimate: 0h
>
> Currently, in the new monitor for 2.0 (after ACCUMULO-3005), some 3rd party 
> web resources are accessed via an external CDN. This is suitable in many 
> cases, but could be problematic for client browsers not currently connected 
> to the internet or with a cached copy of the resources from the CDN.
> These resources include bootstrap and jquery. Flot is also a 3rd party 
> resource, but is currently bundled with Accumulo and served by the monitor.
> The location of these resources should be made configurable, so that they can 
> be bundled with, and served by, the Accumulo monitor instead of a 
> internet-based CDN. Making the locations configurable also makes it possible 
> for users to update, if there's a bug in a particular version of jquery that 
> the administrator wishes to avoid, or they want to use a different bootstrap 
> theme, for example.
> Any new configuration option added to support making these configurable 
> should be capable of supporting an arbitrary number of script and stylesheet 
> resources, and possibly other resource types, as well as any accompanying 
> integrity/crossorigin attributes for CDN access (see 
> server/monitor/src/main/resources/templates/default.ftl for current values).
> Also, I think the default value should be to point to the CDN, and not the 
> locally bundled and served resources, so that the browser can take advantage 
> of any caching for these commonly used resources. This would allow us to 
> achieve ACCUMULO-2983 by stopping bundling these third party resources, but 
> still supporting bundling, if needed.
> To complete this issue, we basically need 2 things:
> # Ensure monitor serves (to a predictable location) whatever arbitrary static 
> resources it finds on the class path (so users can bundle their own static 
> resources), and
> # Ensure resources are configurable to point to the served versions or 
> versions in a CDN.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] keith-turner commented on a change in pull request #327: ACCUMULO-4546 Create default log message for IllegalTableTransitionException

2017-11-28 Thread GitBox
keith-turner commented on a change in pull request #327: ACCUMULO-4546 Create 
default log message for IllegalTableTransitionException
URL: https://github.com/apache/accumulo/pull/327#discussion_r153540247
 
 

 ##
 File path: 
server/base/src/test/java/org/apache/accumulo/server/tables/IllegalTableTransitionExceptionTest.java
 ##
 @@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.server.tables;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.accumulo.core.master.state.tables.TableState;
+import 
org.apache.accumulo.server.tables.TableManager.IllegalTableTransitionException;
+import org.junit.Test;
+
+public class IllegalTableTransitionExceptionTest {
+
+  final TableState oldState = TableState.ONLINE;
+  final TableState newState = TableState.OFFLINE;
+  final String defaultMsg = "Error transitioning from " + oldState + " state 
to " + newState + " state";
+
+  @Test
+  public void testIllegalTableTransitionExceptionMessage() {
+String userMessage = null;
+try {
+  userMessage = "User suppled message - Exception from " + oldState + " 
state to " + newState + " state";
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState, userMessage);
+} catch (IllegalTableTransitionException e) {
+  assertEquals(userMessage, e.getMessage());
+}
+  }
+
+  @Test
+  public void testIllegalTableTransitionExceptionDefaultMessage() {
+try {
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState);
+} catch (IllegalTableTransitionException e) {
+  assertEquals(defaultMsg, e.getMessage());
+}
+  }
+
+  @Test
+  public void testIllegalTableTransitionExceptionEmptyMessage() {
+try {
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState, "");
 
 Review comment:
   I saw both were supported in the code.  I was thinking could have test for 
both.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] milleruntime commented on a change in pull request #327: ACCUMULO-4546 Create default log message for IllegalTableTransitionException

2017-11-28 Thread GitBox
milleruntime commented on a change in pull request #327: ACCUMULO-4546 Create 
default log message for IllegalTableTransitionException
URL: https://github.com/apache/accumulo/pull/327#discussion_r153539758
 
 

 ##
 File path: 
server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java
 ##
 @@ -115,10 +115,22 @@ public TableState getTableState(String tableId) {
 
 final TableState oldState;
 final TableState newState;
+final String message;
 
 public IllegalTableTransitionException(TableState oldState, TableState 
newState) {
+  this(oldState, newState, "");
+}
+
+public IllegalTableTransitionException(TableState oldState, TableState 
newState, String message) {
   this.oldState = oldState;
   this.newState = newState;
+
+  if (message != null && !message.isEmpty())
 
 Review comment:
   Could use StringUtils.isNotEmpty() from apache commons.  Or even static 
import it so it just reads if(isNotEmpty(message))


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] jmark99 commented on a change in pull request #327: ACCUMULO-4546 Create default log message for IllegalTableTransitionException

2017-11-28 Thread GitBox
jmark99 commented on a change in pull request #327: ACCUMULO-4546 Create 
default log message for IllegalTableTransitionException
URL: https://github.com/apache/accumulo/pull/327#discussion_r153534009
 
 

 ##
 File path: 
server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java
 ##
 @@ -115,10 +115,21 @@ public TableState getTableState(String tableId) {
 
 final TableState oldState;
 final TableState newState;
+final String message;
 
 public IllegalTableTransitionException(TableState oldState, TableState 
newState) {
+  this(oldState, newState, "");
+}
+
+public IllegalTableTransitionException(TableState oldState, TableState 
newState, String message) {
   this.oldState = oldState;
   this.newState = newState;
+
+  String defaultMessage = "Error transitioning from " + oldState + " state 
to " + newState + " state";
 
 Review comment:
   Yes...done.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] jmark99 commented on a change in pull request #327: ACCUMULO-4546 Create default log message for IllegalTableTransitionException

2017-11-28 Thread GitBox
jmark99 commented on a change in pull request #327: ACCUMULO-4546 Create 
default log message for IllegalTableTransitionException
URL: https://github.com/apache/accumulo/pull/327#discussion_r153532444
 
 

 ##
 File path: 
server/base/src/test/java/org/apache/accumulo/server/tables/IllegalTableTransitionExceptionTest.java
 ##
 @@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.server.tables;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.accumulo.core.master.state.tables.TableState;
+import 
org.apache.accumulo.server.tables.TableManager.IllegalTableTransitionException;
+import org.junit.Test;
+
+public class IllegalTableTransitionExceptionTest {
+
+  final TableState oldState = TableState.ONLINE;
+  final TableState newState = TableState.OFFLINE;
+  final String defaultMsg = "Error transitioning from " + oldState + " state 
to " + newState + " state";
+
+  @Test
+  public void testIllegalTableTransitionExceptionMessage() {
+String userMessage = null;
+try {
+  userMessage = "User suppled message - Exception from " + oldState + " 
state to " + newState + " state";
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState, userMessage);
+} catch (IllegalTableTransitionException e) {
+  assertEquals(userMessage, e.getMessage());
+}
+  }
+
+  @Test
+  public void testIllegalTableTransitionExceptionDefaultMessage() {
+try {
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState);
+} catch (IllegalTableTransitionException e) {
+  assertEquals(defaultMsg, e.getMessage());
+}
+  }
+
+  @Test
+  public void testIllegalTableTransitionExceptionEmptyMessage() {
+try {
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState, "");
 
 Review comment:
   I went back and forth between null and the empty string.  Both will work. I 
can go with either if you have a preference.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] keith-turner commented on a change in pull request #327: ACCUMULO-4546 Create default log message for IllegalTableTransitionException

2017-11-28 Thread GitBox
keith-turner commented on a change in pull request #327: ACCUMULO-4546 Create 
default log message for IllegalTableTransitionException
URL: https://github.com/apache/accumulo/pull/327#discussion_r153531488
 
 

 ##
 File path: 
server/base/src/main/java/org/apache/accumulo/server/tables/TableManager.java
 ##
 @@ -115,10 +115,21 @@ public TableState getTableState(String tableId) {
 
 final TableState oldState;
 final TableState newState;
+final String message;
 
 public IllegalTableTransitionException(TableState oldState, TableState 
newState) {
+  this(oldState, newState, "");
+}
+
+public IllegalTableTransitionException(TableState oldState, TableState 
newState, String message) {
   this.oldState = oldState;
   this.newState = newState;
+
+  String defaultMessage = "Error transitioning from " + oldState + " state 
to " + newState + " state";
 
 Review comment:
   Could this be moved inside the else block?


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] keith-turner commented on a change in pull request #327: ACCUMULO-4546 Create default log message for IllegalTableTransitionException

2017-11-28 Thread GitBox
keith-turner commented on a change in pull request #327: ACCUMULO-4546 Create 
default log message for IllegalTableTransitionException
URL: https://github.com/apache/accumulo/pull/327#discussion_r153531327
 
 

 ##
 File path: 
server/base/src/test/java/org/apache/accumulo/server/tables/IllegalTableTransitionExceptionTest.java
 ##
 @@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.accumulo.server.tables;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.accumulo.core.master.state.tables.TableState;
+import 
org.apache.accumulo.server.tables.TableManager.IllegalTableTransitionException;
+import org.junit.Test;
+
+public class IllegalTableTransitionExceptionTest {
+
+  final TableState oldState = TableState.ONLINE;
+  final TableState newState = TableState.OFFLINE;
+  final String defaultMsg = "Error transitioning from " + oldState + " state 
to " + newState + " state";
+
+  @Test
+  public void testIllegalTableTransitionExceptionMessage() {
+String userMessage = null;
+try {
+  userMessage = "User suppled message - Exception from " + oldState + " 
state to " + newState + " state";
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState, userMessage);
+} catch (IllegalTableTransitionException e) {
+  assertEquals(userMessage, e.getMessage());
+}
+  }
+
+  @Test
+  public void testIllegalTableTransitionExceptionDefaultMessage() {
+try {
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState);
+} catch (IllegalTableTransitionException e) {
+  assertEquals(defaultMsg, e.getMessage());
+}
+  }
+
+  @Test
+  public void testIllegalTableTransitionExceptionEmptyMessage() {
+try {
+  throw new TableManager.IllegalTableTransitionException(oldState, 
newState, "");
 
 Review comment:
   In addition to `""`, could also try null.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] asfgit commented on issue #327: ACCUMULO-4546 Create default log message for IllegalTableTransitionException

2017-11-28 Thread GitBox
asfgit commented on issue #327: ACCUMULO-4546 Create default log message for 
IllegalTableTransitionException
URL: https://github.com/apache/accumulo/pull/327#issuecomment-347564023
 
 
   Can one of the admins verify this patch?


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[jira] [Updated] (ACCUMULO-4546) IllegalTableTransitionException should include a default message that logs the requested state transition

2017-11-28 Thread ASF GitHub Bot (JIRA)

 [ 
https://issues.apache.org/jira/browse/ACCUMULO-4546?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated ACCUMULO-4546:
-
Labels: pull-request-available  (was: )

> IllegalTableTransitionException should include a default message that logs 
> the requested state transition
> -
>
> Key: ACCUMULO-4546
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4546
> Project: Accumulo
>  Issue Type: Bug
>  Components: server-base
>Affects Versions: 1.6.6
>Reporter: John Vines
>Assignee: Mark Owens
>  Labels: pull-request-available
> Fix For: 1.7.4, 1.8.2, 2.0.0
>
>
> While trying to track down the root of an Illegal state transition for a 
> table, I hit a dead end when the original transition to bring a table online 
> failed. The IllegalTableTransitionException takes in the old and new states 
> in the contstructor for the exception, but these states are not used to 
> construct any sort of message, so this information isn't available in the 
> logs. We should have a default message for this constructor.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] jmark99 opened a new pull request #327: ACCUMULO-4546 Create default log message for IllegalTableTransitionException

2017-11-28 Thread GitBox
jmark99 opened a new pull request #327: ACCUMULO-4546 Create default log 
message for IllegalTableTransitionException
URL: https://github.com/apache/accumulo/pull/327
 
 
   ACCUMULO-4546 Updated the IllegalTableTransitionException class within 
TableManager.java to print
   a default log message when exception is thrown. User also has option of 
supplying a
   custom message. Created unit test.
   
   Moved import in AccumuloTest.java to make mvn happy.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] mikewalch commented on issue #41: ACCUMULO-4734 Updated syntax highlighting

2017-11-28 Thread GitBox
mikewalch commented on issue #41: ACCUMULO-4734 Updated syntax highlighting
URL: https://github.com/apache/accumulo-website/pull/41#issuecomment-34755
 
 
   @ctubbsii, this is the color scheme that Apache Fluo uses.  @milleruntime, 
made a comment that it's more readable and I agree. Below is an example of the 
Fluo syntax highlighting:
   
   https://fluo.apache.org/docs/fluo/1.1.0-incubating/applications/ 
   
   Below is an example of current highlighting:
   
   https://accumulo.apache.org/docs/2.0/development/mapreduce


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[jira] [Assigned] (ACCUMULO-4546) IllegalTableTransitionException should include a default message that logs the requested state transition

2017-11-28 Thread Mark Owens (JIRA)

 [ 
https://issues.apache.org/jira/browse/ACCUMULO-4546?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Owens reassigned ACCUMULO-4546:


Assignee: Mark Owens

> IllegalTableTransitionException should include a default message that logs 
> the requested state transition
> -
>
> Key: ACCUMULO-4546
> URL: https://issues.apache.org/jira/browse/ACCUMULO-4546
> Project: Accumulo
>  Issue Type: Bug
>  Components: server-base
>Affects Versions: 1.6.6
>Reporter: John Vines
>Assignee: Mark Owens
> Fix For: 1.7.4, 1.8.2, 2.0.0
>
>
> While trying to track down the root of an Illegal state transition for a 
> table, I hit a dead end when the original transition to bring a table online 
> failed. The IllegalTableTransitionException takes in the old and new states 
> in the contstructor for the exception, but these states are not used to 
> construct any sort of message, so this information isn't available in the 
> logs. We should have a default message for this constructor.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)