Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="lib/gson-2.2.4.jar"/>
<classpathentry kind="lib" path="lib/mongo-java-driver-2.13.0.jar"/>
<classpathentry kind="lib" path="lib/SwingFast.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/bin
/build
/dist
17 changes: 17 additions & 0 deletions .project
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>UMongoi</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Binary file removed lib/mongo-java-driver-2.12.2.jar
Binary file not shown.
Binary file added lib/mongo-java-driver-2.13.0.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion manifest.mf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Manifest-Version: 1.0
Bundle-Name: UMongo
Bundle-Version: 1.6.2
Bundle-Version: 1.6.3
Bundle-Vendor: EdgyTech, LLC
Bundle-ContactAddress: http://www.edgytech.com/umongo
Bundle-SymbolicName: com.edgytech.umongo
Expand Down
9 changes: 4 additions & 5 deletions nbproject/project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,16 @@ dist.jar=${dist.dir}/umongo.jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
file.reference.SwingFast.jar=lib/SwingFast.jar
file.reference.gson-2.2.4.jar=lib/gson-2.2.4.jar
file.reference.mongo-java-driver-2.12.2.jar=lib/mongo-java-driver-2.12.2.jar
file.reference.mongo-java-driver-2.13.0.jar=lib/mongo-java-driver-2.13.0.jar
file.reference.trunk-resource=resource
file.reference.trunk-src=src
includes=**
jar.compress=true
javac.classpath=\
${reference.SwingFast.jar}:\
${file.reference.mongo-java-driver-2.12.2.jar}:\
${file.reference.SwingFast.jar}:\
${file.reference.mongo-java-driver-2.13.0.jar}:\
${file.reference.gson-2.2.4.jar}
# Space-separated list of extra javac options
javac.compilerargs=
Expand Down Expand Up @@ -67,8 +68,6 @@ manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
mkdist.disabled=false
platform.active=default_platform
project.SwingFast=../SwingFast/trunk
reference.SwingFast.jar=${project.SwingFast}/dist/SwingFast.jar
resource.dir=${file.reference.trunk-resource}
run.classpath=\
${javac.classpath}:\
Expand Down
42 changes: 0 additions & 42 deletions src/com/edgytech/umongo/DbPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ enum Item {
evalNoLock,
dbHash,
readWriteOptions,
authenticate,
authUser,
authPassword,
manageUsers,
Expand Down Expand Up @@ -367,47 +366,6 @@ public void readWriteOptions(ButtonBase button) {
refresh();
}

public void authenticate(final ButtonBase button) {
final DbNode dbNode = getDbNode();
final DB db = dbNode.getDb();
final String user = getStringFieldValue(Item.authUser);
final String pass = getStringFieldValue(Item.authPassword);
new DbJob() {

@Override
public Object doRun() {
db.authenticateCommand(user, pass.toCharArray());
return null;
}

@Override
public String getNS() {
return db.getName();
}

@Override
public String getShortName() {
return "Auth";
}

@Override
public void wrapUp(Object res) {
super.wrapUp(res);
if (dbNode.getDb().getName().equals("admin")) {
// now we can list dbs, refresh whole mongo
dbNode.getMongoNode().structureComponent();
} else {
dbNode.structureComponent();
}
}

@Override
public ButtonBase getButton() {
return button;
}
}.addJob();
}

void refreshUserList() {
ListArea list = (ListArea) getBoundUnit(Item.userList);
final DB db = getDbNode().getDb();
Expand Down
40 changes: 22 additions & 18 deletions src/com/edgytech/umongo/MainMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import com.edgytech.umongo.MainMenu.Item;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.MongoCredential;
import com.mongodb.MongoURI;
import java.io.BufferedReader;
import java.io.InputStreamReader;
Expand Down Expand Up @@ -179,36 +180,39 @@ public void connect() {
addrs.add(new ServerAddress(tmp[0]));
}
}
if ("Direct".equals(dialog.getStringFieldValue(ConnectDialog.Item.connectionMode)))
mongo = new MongoClient(addrs.get(0), dialog.getMongoClientOptions());
else
mongo = new MongoClient(addrs, dialog.getMongoClientOptions());


String sdbs = dialog.getStringFieldValue(ConnectDialog.Item.databases);
if (!sdbs.trim().isEmpty()) {
for (String db : sdbs.split(",")) {
dbs.add(db.trim());
}
}

List<MongoCredential> lCreds = new ArrayList<MongoCredential>();
String user = dialog.getStringFieldValue(ConnectDialog.Item.user).trim();
String password = dialog.getStringFieldValue(ConnectDialog.Item.password);
if (!user.isEmpty()) {
// authenticate against all dbs
if (!dbs.isEmpty()) {
for (String db : dbs) {
lCreds.add(MongoCredential.createCredential(user, db, password.toCharArray()));
}
} else {
lCreds.add(MongoCredential.createCredential(user, "admin", password.toCharArray()));
}
}

if ("Direct".equals(dialog.getStringFieldValue(ConnectDialog.Item.connectionMode)))
mongo = new MongoClient(addrs.get(0), lCreds, dialog.getMongoClientOptions());
else
mongo = new MongoClient(addrs, lCreds, dialog.getMongoClientOptions());

}

if (dbs.size() == 0) {
dbs = null;
}

String user = dialog.getStringFieldValue(ConnectDialog.Item.user).trim();
String password = dialog.getStringFieldValue(ConnectDialog.Item.password);
if (!user.isEmpty()) {
// authenticate against all dbs
if (dbs != null) {
for (String db : dbs) {
mongo.getDB(db).authenticate(user, password.toCharArray());
}
} else {
mongo.getDB("admin").authenticate(user, password.toCharArray());
}
}

final MongoClient fmongo = mongo;
final List<String> fdbs = dbs;
// doing in background can mean concurrent modification, but dialog is modal so unlikely
Expand Down
40 changes: 0 additions & 40 deletions src/com/edgytech/umongo/MongoPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ enum Item {
close,
createDB,
createDbName,
authenticate,
authUser,
authPassword,
maxObjectSize,
Expand Down Expand Up @@ -185,45 +184,6 @@ public void wrapUp(Object res) {
}.addJob();
}

public void authenticate(final ButtonBase button) {
final MongoClient mongo = getMongoNode().getMongoClient();
final String user = getStringFieldValue(Item.authUser);
final String passwd = getStringFieldValue(Item.authPassword);

new DbJob() {
@Override
public Object doRun() throws IOException {
mongo.getDB("admin").authenticateCommand(user, passwd.toCharArray());
return null;
}

@Override
public String getNS() {
return "Mongo";
}

@Override
public String getShortName() {
return "Auth";
}

@Override
public void wrapUp(Object res) {
super.wrapUp(res);
if (res == null) {
// need to refresh tree
refresh();
}
}

@Override
public ButtonBase getButton() {
return button;
}
}.addJob();

}

public void serverStatus(ButtonBase button) {
new DbJobCmd(getMongoNode().getMongoClient().getDB("admin"), "serverStatus").addJob();
}
Expand Down
22 changes: 22 additions & 0 deletions src/com/edgytech/umongo/PasswordPromptDialog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.edgytech.umongo;

import com.edgytech.swingfast.FormDialog;

public class PasswordPromptDialog extends FormDialog {

public enum Item {
resource, password;
}

public PasswordPromptDialog() {
setEnumBinding(Item.values(), null);
}

public void setResource(String resource) {
setStringFieldValue(Item.resource, resource);
}

public String getPassword() {
return getStringFieldValue(Item.password);
}
}
6 changes: 0 additions & 6 deletions src/com/edgytech/umongo/TextView.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,6 @@ public TextView(String id, String label, DbJob job) {

/**
* create a doc view with static document
*
* @param id
* @param label
* @param job
* @param root
* @param doc
*/
public TextView(String id, String label, DbJob job, String text) {
this(id, label, job);
Expand Down