Skip to content

Commit 1430e9a

Browse files
author
Wenjun Che
committed
ADAP-38: support for security realm
1 parent 13f9ec9 commit 1430e9a

File tree

3 files changed

+42
-161
lines changed

3 files changed

+42
-161
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<dependency>
3939
<groupId>co.openfin</groupId>
4040
<artifactId>openfin-desktop-java-adapter</artifactId>
41-
<version>4.40.2.7</version>
41+
<version>4.40.2.10</version>
4242
</dependency>
4343
<dependency>
4444
<groupId>tablelayout</groupId>

src/main/java/com/openfin/desktop/demo/AppCreateDialog.java

Lines changed: 25 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,13 @@
1414
* Created by richard on 2/28/15.
1515
*/
1616
public class AppCreateDialog extends JDialog {
17-
protected JTextField uuidText, nameText, urlText, versionText, applicationIconText,
18-
defaultLeftText, defaultTopText, defaultWidthText, defaultHeightText, windowStateText,
19-
applicationIconTopText, applicationIconLeftText;
17+
protected JTextField uuidText, nameText, urlText, applicationIconText,
18+
defaultLeftText, defaultTopText, defaultWidthText, defaultHeightText;
2019

21-
protected JLabel uuidLabel, nameLabel, urlLabel, versionLabel, applicationIconLabel,
22-
defaultLeftLabel, defaultTopLabel, defaultWidthLabel, defaultHeightLabel, windowStateLabel,
23-
applicationIconTopLabel, applicationIconLeftLabel;
20+
protected JLabel uuidLabel, nameLabel, urlLabel, applicationIconLabel,
21+
defaultLeftLabel, defaultTopLabel, defaultWidthLabel, defaultHeightLabel;
2422

25-
protected JCheckBox resizeCheck, frameCheck, alwaysOnBottomCheck,
26-
showTaskbarIconCheck, autoShowCheck, draggableCheck;
23+
protected JCheckBox resizeCheck, frameCheck, showTaskbarIconCheck, autoShowCheck;
2724

2825
protected JButton createButton;
2926
protected boolean createClicked = false;
@@ -44,27 +41,22 @@ private JPanel layoutDescriptionPanel() {
4441

4542
uuidLabel = new JLabel("UUID: ");
4643
uuidLabel.setHorizontalAlignment(SwingConstants.RIGHT);
47-
uuidText = new JTextField(UUID.randomUUID().toString());
44+
uuidText = new JTextField("Hello OpenFin");
4845
uuidText.setColumns(50);
4946

5047
nameLabel = new JLabel("Name: ");
5148
nameLabel.setHorizontalAlignment(SwingConstants.RIGHT);
52-
nameText = new JTextField("FX Live v1.4.0.0b");
49+
nameText = new JTextField("Hello OpenFin");
5350
nameText.setColumns(50);
5451

5552
urlLabel = new JLabel("URL: ");
5653
urlLabel.setHorizontalAlignment(SwingConstants.RIGHT);
57-
urlText = new JTextField("https://fxlive.openf.in/fxlive/1.4.0.0b/");
54+
urlText = new JTextField("http://demoappdirectory.openf.in/desktop/config/apps/OpenFin/HelloOpenFin/index.html");
5855
urlText.setColumns(50);
5956

60-
versionLabel = new JLabel("Version: ");
61-
versionLabel.setHorizontalAlignment(SwingConstants.RIGHT);
62-
versionText = new JTextField("1.1.0.0b");
63-
versionText.setColumns(50);
64-
6557
applicationIconLabel = new JLabel("Icon URL:" );
6658
applicationIconLabel.setHorizontalAlignment(SwingConstants.RIGHT);
67-
applicationIconText = new JTextField("https://fxlive.openf.in/fxlive/1.1.0.0b/img/FXlive_icon.png");
59+
applicationIconText = new JTextField("http://demoappdirectory.openf.in/desktop/config/apps/OpenFin/HelloOpenFin/img/openfin.ico");
6860
applicationIconText.setColumns(50);
6961

7062
defaultLeftLabel = new JLabel("Left: ");
@@ -74,40 +66,23 @@ private JPanel layoutDescriptionPanel() {
7466

7567
defaultTopLabel = new JLabel("Top: ");
7668
defaultTopLabel.setHorizontalAlignment(SwingConstants.RIGHT);
77-
defaultTopText = new JTextField("10");
69+
defaultTopText = new JTextField("50");
7870
defaultTopText.setColumns(4);
7971

80-
applicationIconLeftLabel = new JLabel("Icon Left: ");
81-
applicationIconLeftLabel.setHorizontalAlignment(SwingConstants.RIGHT);
82-
applicationIconLeftText = new JTextField("100");
83-
applicationIconLeftText.setColumns(4);
84-
85-
applicationIconTopLabel = new JLabel("Icon Top: ");
86-
applicationIconTopLabel.setHorizontalAlignment(SwingConstants.RIGHT);
87-
applicationIconTopText = new JTextField("100");
88-
applicationIconTopText.setColumns(4);
89-
9072
defaultWidthLabel = new JLabel("Width: ");
9173
defaultWidthLabel.setHorizontalAlignment(SwingConstants.RIGHT);
92-
defaultWidthText = new JTextField("858");
74+
defaultWidthText = new JTextField("395");
9375
defaultWidthText.setColumns(4);
9476

9577
defaultHeightLabel = new JLabel("Height: ");
9678
defaultHeightLabel.setHorizontalAlignment(SwingConstants.RIGHT);
97-
defaultHeightText = new JTextField("545");
79+
defaultHeightText = new JTextField("525");
9880
defaultHeightText.setColumns(4);
9981

100-
windowStateLabel = new JLabel("Window State: ");
101-
windowStateLabel.setHorizontalAlignment(SwingConstants.RIGHT);
102-
windowStateText = new JTextField("normal");
103-
windowStateText.setColumns(10);
104-
105-
resizeCheck = new JCheckBox("resize", true);
106-
frameCheck = new JCheckBox("frame", true);
107-
alwaysOnBottomCheck = new JCheckBox("alwaysOnBottom", false);
82+
resizeCheck = new JCheckBox("resize", false);
83+
frameCheck = new JCheckBox("frame", false);
10884
showTaskbarIconCheck = new JCheckBox("showTaskbarIcon", true);
10985
autoShowCheck = new JCheckBox("autoShow", true);
110-
draggableCheck = new JCheckBox("draggable", false);
11186

11287
JPanel fieldPanel = new JPanel();
11388

@@ -126,32 +101,23 @@ private JPanel layoutDescriptionPanel() {
126101
twoColPanel.add(nameText , "1, 1");
127102
twoColPanel.add(urlLabel , "0, 2");
128103
twoColPanel.add(urlText , "1, 2");
129-
twoColPanel.add(versionLabel , "0, 3");
130-
twoColPanel.add(versionText , "1, 3");
131-
twoColPanel.add(applicationIconLabel , "0, 4");
132-
twoColPanel.add(applicationIconText , "1, 4");
133-
twoColPanel.add(applicationIconLeftLabel , "0, 5");
134-
twoColPanel.add(applicationIconLeftText , "1, 5");
135-
twoColPanel.add(applicationIconTopLabel , "0, 6");
136-
twoColPanel.add(applicationIconTopText , "1, 6");
137-
twoColPanel.add(defaultLeftLabel , "0, 7");
138-
twoColPanel.add(defaultLeftText , "1, 7");
139-
twoColPanel.add(defaultTopLabel , "0, 8");
140-
twoColPanel.add(defaultTopText , "1, 8");
141-
twoColPanel.add(defaultWidthLabel , "0, 9");
142-
twoColPanel.add(defaultWidthText , "1, 9");
143-
twoColPanel.add(defaultHeightLabel , "0, 10");
144-
twoColPanel.add(defaultHeightText , "1, 10");
145-
twoColPanel.add(windowStateLabel , "0, 11");
146-
twoColPanel.add(windowStateText , "1, 11");
104+
105+
twoColPanel.add(applicationIconLabel , "0, 3");
106+
twoColPanel.add(applicationIconText , "1, 3");
107+
twoColPanel.add(defaultLeftLabel , "0, 4");
108+
twoColPanel.add(defaultLeftText , "1, 4");
109+
twoColPanel.add(defaultTopLabel , "0, 5");
110+
twoColPanel.add(defaultTopText , "1, 5");
111+
twoColPanel.add(defaultWidthLabel , "0, 6");
112+
twoColPanel.add(defaultWidthText , "1, 6");
113+
twoColPanel.add(defaultHeightLabel , "0, 7");
114+
twoColPanel.add(defaultHeightText , "1, 7");
147115

148116
fieldPanel.add(twoColPanel);
149117
fieldPanel.add(resizeCheck);
150118
fieldPanel.add(frameCheck);
151-
fieldPanel.add(alwaysOnBottomCheck);
152119
fieldPanel.add(showTaskbarIconCheck);
153120
fieldPanel.add(autoShowCheck);
154-
fieldPanel.add(draggableCheck);
155121
return fieldPanel;
156122
}
157123

@@ -161,24 +127,17 @@ public ApplicationOptions getApplicatonOptions() {
161127
String uuid = uuidText.getText();
162128
String name = nameText.getText();
163129
String url = urlText.getText();
164-
String version = versionText.getText();
165130
String applicationIcon = applicationIconText.getText();
166-
int applicationIconTop = Integer.parseInt(applicationIconTopText.getText());
167-
int applicationIconLeft = Integer.parseInt(applicationIconLeftText.getText());
168131
int defaultLeft = Integer.parseInt(defaultLeftText.getText());
169132
int defaultTop = Integer.parseInt(defaultTopText.getText());
170133
int defaultWidth = Integer.parseInt(defaultWidthText.getText());
171134
int defaultHeight = Integer.parseInt(defaultHeightText.getText());
172-
String state = windowStateText.getText();
173135
boolean resize = resizeCheck.isSelected();
174136
boolean frame = frameCheck.isSelected();
175-
boolean alwaysOnBottom = alwaysOnBottomCheck.isSelected();
176137
boolean showTaskbarIcon = showTaskbarIconCheck.isSelected();
177138
boolean autoShow = autoShowCheck.isSelected();
178-
boolean draggable = draggableCheck.isSelected();
179139

180140
options = new ApplicationOptions(name, uuid, url);
181-
options.setVersion(version);
182141
options.setApplicationIcon(applicationIcon);
183142

184143
WindowOptions mainWindowOptions = new WindowOptions();
@@ -188,7 +147,6 @@ public ApplicationOptions getApplicatonOptions() {
188147
mainWindowOptions.setDefaultLeft(defaultLeft);
189148
mainWindowOptions.setDefaultTop(defaultTop);
190149
mainWindowOptions.setDefaultWidth(defaultWidth);
191-
mainWindowOptions.setState(state);
192150
mainWindowOptions.setResizable(resize);
193151
mainWindowOptions.setFrame(frame);
194152
mainWindowOptions.setShowTaskbarIcon(showTaskbarIcon);

src/main/java/com/openfin/desktop/demo/OpenFinDesktopDemo.java

Lines changed: 16 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -59,20 +59,20 @@ public class OpenFinDesktopDemo extends JPanel implements ActionListener, Window
5959
protected LoadAppsDialog loadAppsDialog;
6060

6161
protected JTextArea status;
62-
private final String desktopCommandLine;
63-
private String startupUUID;
6462

65-
private JLabel uuidLabel, nameLabel, versionLabel, urlLabel, adminLabel, resizeLabel, autoShowLabel, draggableLabel, frameLabel;
63+
private JLabel uuidLabel, nameLabel, versionLabel, urlLabel, resizeLabel, autoShowLabel, frameLabel;
6664

6765

68-
public OpenFinDesktopDemo(final String desktopCommandLine, String startupUUID) {
69-
this.startupUUID = startupUUID;
66+
public OpenFinDesktopDemo(final String securityRealm) {
7067
try {
71-
this.controller = new DesktopConnection("OpenFinDesktopDemoJava", "localhost", 9696);
68+
this.controller = new DesktopConnection("OpenFinDesktopDemoJava");
69+
if (securityRealm != null) {
70+
this.controller.setRuntimeSecurityRealm(securityRealm);
71+
}
72+
this.controller.setAdditionalRuntimeArguments("--v=1"); // enable additional logging
7273
} catch (DesktopException desktopError) {
7374
desktopError.printStackTrace();
7475
}
75-
this.desktopCommandLine = desktopCommandLine;
7676
this.appCreateDialog = new AppCreateDialog();
7777
this.loadAppsDialog = new LoadAppsDialog();
7878

@@ -172,11 +172,9 @@ private JPanel layoutAppDescriptionPanel() {
172172
panel.add(versionLabel = new JLabel(), "0, 2, 0, 2");
173173
panel.add(urlLabel = new JLabel(), "0, 3, 0, 3");
174174

175-
panel.add(adminLabel = new JLabel(), "1, 0, 1, 0");
176175
panel.add(resizeLabel = new JLabel(), "1, 1, 1, 1");
177176
panel.add(frameLabel = new JLabel(), "1, 2, 1, 2");
178177
panel.add(autoShowLabel = new JLabel(), "1, 3, 1, 3");
179-
panel.add(draggableLabel = new JLabel(), "1, 4, 1, 4");
180178

181179
return panel;
182180
}
@@ -387,22 +385,6 @@ private void createAdminApplication() throws DesktopException {
387385
updateMessagePanel("Connected to Desktop");
388386
setMainButtonsEnabled(true);
389387

390-
if (this.startupUUID != null) {
391-
Application app = Application.wrap(this.startupUUID, this.controller);
392-
ApplicationOptions options = new ApplicationOptions("Startup App", this.startupUUID, null);
393-
options.setMainWindowOptions(new WindowOptions());
394-
this.applicationList.put(options.getUUID(), app);
395-
addApplication(options);
396-
397-
app.addEventListener("closed", new EventListener() {
398-
@Override
399-
public void eventReceived(com.openfin.desktop.ActionEvent actionEvent) {
400-
updateMessagePanel("startup app closed");
401-
}
402-
}, null);
403-
404-
}
405-
406388
openfinSystem.addEventListener("desktop-icon-clicked", new EventListener() {
407389
@Override
408390
public void eventReceived(com.openfin.desktop.ActionEvent actionEvent) {
@@ -456,7 +438,7 @@ public void onOutgoingMessage(String message) {
456438
};
457439

458440
try {
459-
controller.launchAndConnect(this.desktopCommandLine, listener, 10000);
441+
controller.connectToVersion("stable", listener, 10000);
460442
} catch (Exception ex) {
461443
ex.printStackTrace();
462444
}
@@ -474,19 +456,6 @@ public void actionPerformed(ActionEvent e) {
474456
if (options != null) {
475457
createApplication(options);
476458
}
477-
} else if ("create-rfq".equals(e.getActionCommand())) {
478-
InterApplicationBus bus = controller.getInterApplicationBus();
479-
480-
org.json.JSONObject message = getRandomQuote(random.nextInt());
481-
482-
bus.publish("price", message);
483-
484-
} else if ("load-apps".equals(e.getActionCommand())) {
485-
this.loadAppsDialog.show(this);
486-
JSONObject message = this.loadAppsDialog.getCredentials();
487-
if (message != null) {
488-
retrieveApplications(message);
489-
}
490459
} else if ("minimize".equals(e.getActionCommand())) {
491460
if (this.selectedApplication != null) {
492461
this.selectedApplication.getWindow().minimize();
@@ -619,44 +588,8 @@ public void onSuccess(WindowBounds result) {
619588
private static final String[] platforms = {"Trade Desk"};
620589
private static final String[] types = {"ASK", "BID"};
621590

622-
private JSONObject getRandomQuote(int id) {
623-
String issuer = issuers[random.nextInt(issuers.length)];
624-
String year = new Integer(random.nextInt(11)).toString();
625-
if (year.length() == 1) {
626-
year = "0" + year;
627-
}
628-
String maturity = new Integer(random.nextInt(12) + 1).toString() + "/" + new Integer(random.nextInt(30) + 1).toString() + "/" + year;
629-
double coupon = Math.abs(1 * random.nextGaussian()) + 5;
630-
int size = 1000000 * (random.nextInt(10) + 1);
631-
String ccy = ccys[random.nextInt(ccys.length)];
632-
String account = accounts[random.nextInt(accounts.length)];
633-
String platform = platforms[random.nextInt(platforms.length)];
634-
double marketData = Math.abs(200 * random.nextGaussian() + 1000);
635-
String type = types[random.nextInt(types.length)];
636-
int expirationTime = 30;
637-
638-
JSONObject quote = new JSONObject();
639-
640-
try {
641-
quote.put(ISSUER, issuer);
642-
quote.put(MATURITY, maturity);
643-
quote.put(COUPON, coupon);
644-
quote.put(SIZE, size);
645-
quote.put(CCY, ccy);
646-
quote.put(ACCOUNT, account);
647-
quote.put(PLATFORM, platform);
648-
quote.put(MARKET_DATA, marketData);
649-
quote.put(TYPE, type);
650-
quote.put(EXPIRATION_TIME, expirationTime);
651-
quote.put(ID, id);
652-
} catch(Exception e) {
653-
e.printStackTrace();
654-
}
655-
656-
return quote;
657-
}
658-
659591
private void setMainButtonsEnabled(boolean enabled) {
592+
java.lang.System.out.println("setMainButtonsEnabled " + enabled);
660593
launch.setEnabled(!enabled);
661594

662595
close.setEnabled(enabled);
@@ -676,15 +609,6 @@ private void setAppButtonsEnabled(boolean enabled) {
676609

677610
}
678611

679-
private void retrieveApplications(JSONObject message) {
680-
bus = controller.getInterApplicationBus();
681-
try {
682-
bus.send("ExternalClientUtils", "get-user-app-settings", message);
683-
} catch (Exception e) {
684-
e.printStackTrace();
685-
}
686-
}
687-
688612
private void createApplication(final ApplicationOptions options) {
689613
Application app = new Application(options, controller, new AckListener() {
690614
@Override
@@ -736,14 +660,14 @@ private String getBooleanString(boolean value) {
736660
return value ? "Y" : "N";
737661
}
738662

739-
private static void createAndShowGUI(final String desktopCommandLine, String startupUUID) {
663+
private static void createAndShowGUI(final String securityRealm) {
740664

741665
//Create and set up the window.
742666
jFrame = new JFrame("Java Login Demo");
743667
jFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
744668

745669
//Create and set up the content pane.
746-
OpenFinDesktopDemo newContentPane = new OpenFinDesktopDemo(desktopCommandLine, startupUUID);
670+
OpenFinDesktopDemo newContentPane = new OpenFinDesktopDemo(securityRealm);
747671
newContentPane.setOpaque(true); //content panes must be opaque
748672
jFrame.setContentPane(newContentPane);
749673
jFrame.addWindowListener(newContentPane);
@@ -767,18 +691,17 @@ private static void createAndShowGUI(final String desktopCommandLine, String sta
767691
* @param args
768692
*/
769693
public static void main(String[] args) throws Exception {
770-
final String desktop_option = java.lang.System.getProperty("OpenFinOption");
771694

772-
final String startupUUID;
773-
if (java.lang.System.getProperty("StartupUUID") != null) {
774-
startupUUID = java.lang.System.getProperty("StartupUUID");
695+
final String securityRealm;
696+
if (java.lang.System.getProperty("SecurityRealm") != null) {
697+
securityRealm = java.lang.System.getProperty("SecurityRealm");
775698
} else {
776-
startupUUID = "OpenFinHelloWorld";
699+
securityRealm = null;
777700
}
778701

779702
javax.swing.SwingUtilities.invokeLater(new Runnable() {
780703
public void run() {
781-
createAndShowGUI(desktop_option, startupUUID);
704+
createAndShowGUI(securityRealm);
782705
}
783706
});
784707
}

0 commit comments

Comments
 (0)